Type-Tiny
=========
Created: 2013-03-23
Home page: <https://typetiny.toby.ink/>
Home page: <https://metacpan.org/release/Type-Tiny>
Bug tracker: <https://github.com/tobyink/p5-type-tiny/issues>
Maintainer: Toby Inkster (TOBYINK) <tobyink@cpan.org>
2.001_002 2022-12-03
[ Test Suite ]
- Test `t/20-modules/Type-Tiny-Enum/exporter_lexical.t` will now run on
older versions of Perl, provided Lexical::Sub is installed.
[ Packaging ]
- Depend on Exporter::Tiny 1.006000 which offers lexical export support
for older versions of Perl, provided Lexical::Sub is installed.
[ Other ]
- If Type::Params signatures receive multiple unrecognized named
arguments, the error message now lists them using
Type::Utils::english_list() instead of just joining them with commas.
This means that the error message will include 'and' before the last
unrecognized named argument. If Type::Tiny::AvoidCallbacks is set to
true while the signature is compiled, the old behaviour will be
retained.
- Type::Params no longer attempts to figure out the maximum number of
expected arguments to functions which take key-value pairs. This allows
`yourfunc(y=>1,y=>2)` to behave more intuitively, with the function just
seeing the second value for `y`, instead of it throwing an exception
complaining about too many arguments.
2.001_001 2022-10-19
[ Documentation ]
- Typo fix in Type::Tiny::Manual::UsingWithMoo.
[ Other ]
- Type::Library will better detect if two types result in functions with
the same name.
- Type::Tiny::XS will now provide XS implementations of some parameterized
ArrayLike/HashLike types.
- When importing `use Type::Library -util`, Type::Library will now pass
some relevant import options to Type::Utils.
2.001_000 2022-09-29
[ Bug Fixes ]
- Avoid uninitialized warnings when creating a union between an Enum type
and a non-Enum type.
Diab Jerius++
[ Documentation ]
- Clearer documentation of Types::TypeTiny::to_TypeTiny.
[ Test Suite ]
- No longer report Type::Tie version at start of test suite, as Type::Tie
is now bundled.
[ Other ]
- Added: Type::Library now has an undocumented, but tested and hopefully
stable `_remove_type` method.
- Added: Type::Tiny now has a `definition_context` attribute/method
indicating the file and line number where a type constraint was first
defined.
- The list of packages Type::Tiny considers to be 'internal' has been
moved from Error::TypeTiny to Type::Tiny.
- Type::Tiny will now mark particular parts of its guts as readonly.
Currently this is mainly used to prevent people pushing to and popping
from type constraints which overload `@{}`.
2.000001 2022-09-29
[ Bug Fixes ]
- Avoid uninitialized warnings when creating a union between an Enum type
and a non-Enum type.
Diab Jerius++
[ Documentation ]
- Clearer documentation of Types::TypeTiny::to_TypeTiny.
[ Test Suite ]
- No longer report Type::Tie version at start of test suite, as Type::Tie
is now bundled.
2.000000 2022-09-23
[ Test Suite ]
- Minor fix for Class::Plain-related tests.
[ Packaging ]
- Repackage Type-Tiny 1.999_013 as a stable release.
1.999_013 2022-09-23 Type::Tiny 2.0 Preview N
[ Documentation ]
- Document usage with Class::Plain.
- Fix pod typo in manual.
Florian Schlichting++
- Improvements to Type::Params documentation.
[ Test Suite ]
- Test usage with Class::Plain.
[ Other ]
- Type::Params signature_for will respect inheritance when looking for
methods to wrap, when the `method` option is true.
1.999_012 2022-09-21 Type::Tiny 2.0 Preview M
[ Documentation ]
- Document in Type::Tie that Type::Tie is implicitly loaded when you tie a
variable to a Type::Tiny type constraint. (It was already documented in
the manual.)
- Document the Type::Tie::BASE `type` method.
- Removed stub pod from a bunch of internal modules. They're internal, so
nobody should be expecting pod.
[ Test Suite ]
- Bundle a (renamed) copy of Type::Nano in the test suite for some tests
combining Type::Nano and Type::Tiny type constraints, and converting
Type::Nano to Type::Tiny.
- Improved test cases for Type::Tie with an aim at 100% coverage.
[ Packaging ]
- Add Class::XSAccessor to Type::Tiny's recommendations.
[ Other ]
- Adding a type constraint to a type library will now also add it to the
library's type registry. (Even though this registry is unlikely to be
used.)
- Rewrite much of Type::Tie to no longer use inside-out objects and avoid
a dependency on Hash::Util::FieldHash or alternative implementations of
fieldhashes.
- Type::Parser's internal packages now have version numbers.
- Type::Tie now supports variables being cloned with Clone::clone(). It
already supported Storable::dclone().
- Type::Tie will now try to load Class::XSAccessor::Array for a speed-up.
- Using Type::Utils to declare a named type will now automatically add the
type to the caller's type registry.
1.999_011 2022-09-20 Type::Tiny 2.0 Preview L
- Added: Bundle Type::Tie which was previously in a separate distribution
on the CPAN.
1.999_010 2022-09-18 Type::Tiny 2.0 Preview K
[ Test Suite ]
- More tests.
[ Other ]
- Eval::TypeTiny::CodeAccumulator now supports $coderef->compile(alias =>
1).
- If the `ws parameter is set to true in parameterized DelimitedStr type
constraints, leading and trailing whitespace will now be permitted.
- Non-parameterized DelimitedStr now has a coercion from ArrayRef[Str].
- The ${^TYPE_PARAMS_MULTISIG} magic global variable is now called
${^_TYPE_PARAMS_MULTISIG}. The old name will still be supported for at
least six months after the next stable release.
1.999_009 2022-09-16 Type::Tiny 2.0 Preview J
[ Test Suite ]
- Another test for `-base`.
[ Other ]
- Added: Types::Common::String now has a DelimitedStr type.
- Improve cache key generation for parameterized types.
- Minor improvements to the default name generator, used to generate the
display_name for parameterized type constraints.
1.999_008 2022-09-14 Type::Tiny 2.0 Preview I
[ Bug Fixes ]
- More sensible error message trying to import a type constraint using
-declare outside a type library.
Diab Jerius++
[ Other ]
- Added: Type::Tiny now has an exportables_by_tag method.
- Added: Type::Tiny::_DeclaredType is now a separate module. (It was
previously defined inline in Type/Library.pm.)
- Eval::TypeTiny::type_to_coderef() can now handle being passed undef as a
type constraint and will create a Type::Tiny::_DeclaredType object to
wrap instead.
- If a type library has been made immutable, you can no longer add new
types and coercions to it.
- Type::Params `signature_for` will now delay most of the signature
compilation until the function is called for the first time, like
`wrap_subs`/`wrap_methods` used to do. It still does enough up-front to
detect some common errors in signatures.
- Various Type::Library cleanups.
1.999_007 2022-09-13 Type::Tiny 2.0 Preview H
[ Documentation ]
- Fix pod formatting issue in Type::Params.
[ Test Suite ]
- Improved test cases; now 100% coverage on coveralls.io.
[ Other ]
- Minor refactoring, mostly to make things more easily testable.
1.999_006 2022-09-12 Type::Tiny 2.0 Preview G
[ BACK COMPAT ]
- If none of a multisig's alternative sigs match the parameter list
${^TYPE_PARAMS_MULTISIG} will be explicitly set to undef, instead of
being left as-is.
- The Eval::TypeTiny::HAS_LEXICAL_VARS constant no longer exists. It was
deprecated in Type-Tiny-1.004000 (2018-07-27).
[ Other ]
- Get the `multiple` option working with the `signature_for` function from
Type::Params.
- Improved test cases and miscellaneous small bugfixes for slurpy
parameters in Type::Params.
1.999_005 2022-09-11 Type::Tiny 2.0 Preview F
[ Bug Fixes ]
- What was supposed to be a warning for slurpy+default in Type::Params was
throwing an exception. Corrected to be a warning.
[ Documentation ]
- Minor improvements to Type::Params documentation.
[ Other ]
- The functionality provided by Type::Params::multisig() is now provided
in the Type::Params v2 API. (And is slightly more functional!)
1.999_004 2022-09-09 Type::Tiny 2.0 Preview E
[ Documentation ]
- Minor documentation clarifications around new constructor methods for
Type::Tiny subclasses.
[ Test Suite ]
- Add versions of tests for the new Type::Params v2 API which don't rely
on Perl 5.20 features.
- More tests for Type::Tiny::{Class,Duck,Enum,Role} exporting.
[ Packaging ]
- Require Exporter::Tiny 1.004001.
[ Other ]
- Type::Tiny::{Class,Duck,Enum,Role} subclass Exporter::Tiny instead of
handling exports manually.
1.999_003 2022-09-09 Type::Tiny 2.0 Preview D
[ Bug Fixes ]
- Setting a default for a slurpy parameter in Type::Params now warns and
ignores the default instead of failing to compile because of a syntax
error.
Zhtwn++
[ Other ]
- Added: Move two helper subs out of Type::Library and into
Eval::TypeTiny, clean them up, and document them as part of the API
(set_subname and type_to_coderef).
- Added: Type::Tiny now has an `exportables` method which provides a list
of functions that the type can export. Type libraries now defer to this
when deciding what they can export.
- Added: Type::Tiny::Class is now an exporter.
- Added: Type::Tiny::Duck is now an exporter.
- Added: Type::Tiny::Enum has an is_word_safe method which indicates
whether all values in the enumeration are 'words' (i.e. contain only
word characters).
- Added: Type::Tiny::Enum is now an exporter.
- Added: Type::Tiny::Role is now an exporter.
- Added: Word-safe enumerations export constants for each value.
Branislav Zahradník++
- Major simplifications of Type::Library internals.
- The NICE_PROTOTYPES constant has been moved from Type::Library to
Eval::TypeTiny, though a copy of it is still available in Type::Library
for backwards compatibility.
- The intersection of two Type::Tiny::Enum objects is now a
Type::Tiny::Enum instead of a Type::Tiny::Intersection.
Branislav Zahradník++
- The union of two Type::Tiny::Enum objects is now a Type::Tiny::Enum
instead of a Type::Tiny::Union.
- Type::Params will call default coderefs as a method for signatures where
method => 1.
1.999_002 2022-09-07 Type::Tiny 2.0 Preview C
[ Bug Fixes ]
- Types::Common was not correctly handling the -sigs export tag.
[ Documentation ]
- Fix up some heading levels in the pod for Type::Params.
- Update NEWS.
[ Test Suite ]
- Better tests for `strictness` option in Type::Params.
- Improved tests for slurpy handling in Type::Params.
- The internal module Type::Params::Signature now has some tests of its
own.
[ Other ]
- Minor bugfixes and improvements to slurpy handling in Type::Params.
- The type_default method will accept parameters, and sort-of curry them.
1.999_001 2022-09-05 Type::Tiny 2.0 Preview B
[ Documentation ]
- Fix misspelling of 'GitHub' in documentation.
- Further revisions of Type::Manual.
- Update the SYNOPSIS for Types::Standard and Type::Tiny.
[ Test Suite ]
- Tests for the `type_default` of all builtin types.
[ Other ]
- Changes to the `type_default` for a few parameterized types.
- Types::Common now also extends Types::TypeTiny.
1.999_000 2022-09-04 Type::Tiny 2.0 Preview A
[ Documentation ]
- Updated Type::Tiny::Manual to cover new features.
[ Other ]
- %Error::TypeTiny::CarpInternal is now an alias for %Carp::CarpInternal.
- Added: Type::Tiny `type_default` method.
- Added: Type::Tiny overloads `/`.
- Added: Types::Common module.
- The Type::Params API has had a major overhaul, introducing `signature`
and `signature_for` functions. The `compile`, `compile_named`,
`compile_named_oo`, `validate`, `validate_named`, `wrap_subs`, and
`wrap_methods` functions are now considered the legacy API. There are no
plans to drop support for the legacy API in the foreseeable future.
- Updated: Dropping support for Perl 5.6.1 (which was released in April
2001), 5.6.2 (November 2003), and Perl 5.8.0 (July 2002). Type::Tiny now
requires at least Perl 5.8.1.
- Updated: Require Exporter::Tiny 1.004000+. (Previously required
Exporter::Tiny 1.000000.)
1.016010 2022-08-31
[ Bug Fixes ]
- Fix an uninitialized warning when calling compile_named_oo outside a
sub.
Diab Jerius++
[ Documentation ]
- List which versions of Perl Type::Tiny requires in
Type::Tiny::Manual::Policies.
1.016009 2022-08-27
[ Bug Fixes ]
- Parameterizable type constraints have a name generator, which is a
coderef that generates the names of their parameterized child type
constraints. The default name generator now strips ASCII control
characters (such as null, tab, and new line) from names it generates.
sbuggles++
1.016008 2022-08-14
- Added: Type::Params now has a `goto_next` option, which if set to a
coderef will generate a signature which on success, instead of returning
@_, passes @_ to the coderef. If `goto_next` is set to true, the
signature instead expects to be passed such a coderef as its first
argument.
- Eval::TypeTiny::CodeAccumulator now better handles placeholders.
- Type::Params `wrap_subs` and `wrap_methods` internally use `goto_next`.
1.016007 2022-08-04
- Added: Type::Params now has a `strictness` option, which if set to false
(or certain strings of Perl code that evaluate to false) will skip type
checks apart from when needed for coercions, skip parameter count
checks, and skip checks for unknown named parameters. You generally
don't want to set it to false or indeed set it at all.
1.016006 2022-07-25
[ Documentation ]
- Added a new page to the manual: Type::Tiny::Manual::UsingWithMite.
[ Other ]
- Type::Tiny now overloads 0+ to return a unique number per type
constraint.
1.016005 2022-07-23
[ Bug Fixes ]
- Minor bugfix in Type::Tiny::cmp where in some cases it was returning '0'
instead of '0E0'; unlikely to affect anything.
[ Other ]
- Updated: Updated Type::Params benchmarking scripts.
- When Type::Registry/Type::Parser has to create a class or role type
constraint, use Types::Standard InstanceOf/ConsumerOf instead of
creating new anonymous Type::Tiny::Class/Type::Tiny::Role constraints.
1.016004 2022-07-22
- Added: Type::Params now allows named parameters to have aliases.
1.016003 2022-07-22
- Catalyst was relying on the internals of the old slurpy function. Next
release of Catalyst should fix that, but this version of Types::Standard
introduces a workaround for the issue without going back to implementing
Slurpy the old way. (The Catalyst test suite passes at least!)
- In most places that accept a Slurpy, happily accept a child of a child
of a child of Slurpy.
- Rename Type::Params::Coderef to Eval::TypeTiny::CodeAccumulator as it's
not really Type::Params-specific. Add test cases for it and make it part
of the public API.
- Use Eval::TypeTiny::CodeAccumulator in compile_match_on_type.
- When Type::Tiny's is_subtype_of, etc methods are called passing a string
as a parameter, pay attention to calling package's type registry.
1.016002 2022-07-19
[ BACK COMPAT ]
- The slurpy(Foo) function from Types::Standard has been replaced by a new
Slurpy parameterized type, so you can use Slurpy[Foo] instead. A
slurpy() function is still provided for backwards compatibility, but if
you were relying on the internal detail that this used to return an
unblessed hashref, this release might break that assumption.
1.016001 2022-07-18
- Allow Type::Utils::extends to extend Type::Library::Compiler libraries.
- Allow the add_types method of Type::Registry to consume
Type::Library::Compiler libraries.
- Improved coercion of Type::Library::Compiler's type constraints to
Type::Tiny.
1.016000 2022-07-16
- Add a clone option to parameters in Type::Params to clone them with
Storable::dclone(). This is mostly a test of how much easier improving
Type::Params is since it was refactored.
1.015_003 2022-07-16
- The simple case of compile() with no parameters was broken by
refactoring. It should now work.
1.015_002 2022-07-16
- Defaults for Type::Params parameters can now be a reference to a string
of Perl code (like Mite).
1.015_001 2022-07-16
- Type::Params::Signature now avoids using the word `return` in its
generated source code, as MooX::Press was using that as a talisman. Also
avoid using the `return` keyword to return the final results of the
signature check, as falling through performs better on older Perls, plus
it enables MooX::Press to convert the coderef into a do{} block.
1.015_000 2022-07-16
[ BACK COMPAT ]
- Type::Params is now smarter at calculating the expected $#_ for
functions which take named parameters, so it can 'fail early' more often
when there are extra parameters or missing required parameters. This
means you may get errors indicating the wrong number of parameters when
you were previously getting errors indicating particular unrecognized or
missing required parameters. This may break test suites which were
looking for particular error messages.
[ Other ]
- Major refactoring of Type::Params, splitting out signature compilation
into separate backend OO-modules which Type::Params now acts as a
frontend for. Compiling signature checks is probably now a little
slower, but once they're compiled Type::Params is still the fastest Perl
implementation of typed parameter checks. This refactor should make the
code easier to work with, add new features to, and tweak the performance
of.
1.014000 2022-06-27
[ Documentation ]
- Update copyright dates to 2022.
- Various minor documentation improvements.
[ Test Suite ]
- Eliminate some warnings and other noise from the test suite.
- Rename some directories in the test suite to better reflect their
contents.
[ Packaging ]
- Repackaged as stable version.
[ Other ]
- Added: $Type::Tiny::SafePackage variable.
- Added: Error::TypeTiny now has a `throw_cb` method which acts like
`throw` but takes an initial callback parameter.
jsf116++
- Added: Type::Params `compile`, `compile_named`, and `compile_named_oo`
functions now support an `on_die` callback.
jsf116++
- Eliminate warnings while generating deep explanations for type
constraint check fails under some circumstances. (Mostly affects
StrMatch when Regexp::Util isn't installed.)
James Wright++
1.013_001 2022-06-23
[ Documentation ]
- Various minor documentation improvements.
[ Other ]
- Added: $Type::Tiny::SafePackage variable.
1.013_000 2022-06-09
[ Documentation ]
- Update copyright dates to 2022.
- Various minor documentation improvements.
[ Test Suite ]
- Eliminate some warnings and other noise from the test suite.
- Rename some directories in the test suite to better reflect their
contents.
[ Other ]
- Added: Error::TypeTiny now has a `throw_cb` method which acts like
`throw` but takes an initial callback parameter.
jsf116++
- Added: Type::Params `compile`, `compile_named`, and `compile_named_oo`
functions now support an `on_die` callback.
jsf116++
- Eliminate warnings while generating deep explanations for type
constraint check fails under some circumstances. (Mostly affects
StrMatch when Regexp::Util isn't installed.)
James Wright++
1.012005 2022-06-07
[ Bug Fixes ]
- Ensure coderefs returned by overload::Method are called with three
parameters, as passing two parameters can break subs imlpemented in XS.
Hugo van der Sanden++
- Fix explanation message for NumRange/IntRange
- Prevent stringification of Error::TypeTiny from clobbering $@.
bokutin++
[ Documentation ]
- Fix typos in documentation for wrap_methods from Type::Params.
1.012004 2021-07-29
[ Documentation ]
- Fixed typo in Types::Standard documentation where StrMatch regexp
parameter didn't use qr// properly.
Lucas Tiago de Moraes++
1.012003 2021-05-09
[ Documentation ]
- Fixed typo in Type::Tiny::Enum where the `closest_match` method was
documented as being called `closet_match`.
[ Other ]
- Type::Parser now supports negative hexadecimal integers.
1.012002 2021-05-02
[ Bug Fixes ]
- Fix precendence error in generated code for Tuples.
Philippe Bruhat++
<https://github.com/tobyink/p5-type-tiny/pull/64>
[ Documentation ]
- Fixed typo in pod for Type::Tiny::Enum
Windymelt++
<https://github.com/tobyink/p5-type-tiny/pull/70>
[ Test Suite ]
- Fix testcase for Tuples with slurpy HashRef to pass a literal hashref
(which should fail) instead of an arrayref (which should also fail, but
less subtly).
Philippe Bruhat++
<https://github.com/tobyink/p5-type-tiny/pull/64>
- Type::Tiny is no longer routinely tested on Perl versions older than
5.8.1.
<https://github.com/tobyink/p5-type-tiny/actions>
[ Other ]
- Type::Parser now supports hexadecimal integers.
<https://github.com/tobyink/p5-type-tiny/issues/71>
1.012001 2021-01-10
[ Test Suite ]
- Extra test cases to improve coverage. (100% on Coveralls; 90% on
Codecov.)
- Hide warnings in Kavorka integration tests.
[ Packaging ]
- Move issue tracker from RT to Github Issues.
- Stop hiding Type::Parser::Token, Type::Parser::TokenStream, and
Type::Parser::AstBuilder from the CPAN indexer.
[ Other ]
- Much code tidying using perltidy and manually.
- When generic validation objects (blessed objects with a `check` method)
are converted to native Type::Tiny type constraints, no longer require
them to provide a `get_message` method. This allows Type::Tiny to adopt
Data::Constraint type constraints.
1.012000 2020-10-28
[ Documentation ]
- Update NEWS file.
1.011_011 2020-10-16
[ Test Suite ]
- Bugs in old versions of Return::Type prevent integration tests from
passing on Perl 5.8.x; those tests now require Return::Type 0.007 or
above.
- More tests for Type::Coercion::FromMoose.
[ Packaging ]
- If the EXTENDED_TESTING environment variable is true, Perl 5.8.9 or
above is being used, and either Type::Tiny's version contains '_' or
testing is running on Travis CI, then Makefile.PL will add extra testing
dependencies.
[ Other ]
- Remove unnecessary BEGIN block in Eval::TypeTiny.
1.011_010 2020-10-16
- Simple useful coercions from Str for Type::Tiny::Enum (and
Types::Standard::Enum).
1.011_009 2020-10-09
[ Documentation ]
- Add _ForeignTypeConstraint to AllTypes.pod.
[ Test Suite ]
- Add tests for _ForeignTypeConstraint.
- Improve test coverage by adding tests for various esoteric parts of the
distribution and edge cases.
[ Other ]
- More efficient use of Type::Tiny::XS by Types::TypeTiny.
- Refactoring of Types::TypeTiny.
- Where various parts of Type::Tiny internally use type constraints to
check values, prefer is_* and assert_* functions over method calls.
1.011_008 2020-10-07
[ Documentation ]
- Some minor tidyups and updates to Type::Tiny::Manual.
[ Test Suite ]
- Better tests for the placeholder type constraints created by
Type::Library -declare flag.
- Test integration with Type::Nano as an example of a generic
non-Type::Tiny type constraint class.
- Test that $type->() works with subclasses that override the
assert_return method.
- Write tests for some internal undocumented methods.
[ Other ]
- Added: Type::Utils::assert() function.
1.011_007 2020-10-06
[ Bug Fixes ]
- ArgsObject inlining was closing over a coderef in a way that didn't work
on archaic versions of Perl. Resolve by calling the coderef outside the
closure.
1.011_006 2020-10-02
[ Documentation ]
- Include JSONCapable type example.
[ Test Suite ]
- Improved test coverage for Type::Library.
- Improved test coverage for Type::Params.
- Improved test coverage for Type::Registry.
- Improved test coverage for Type::Tiny::Union.
- Improved tests for Type::Utils::is().
- Various tests for garbage collection using Devel::Refcount.
[ Other ]
- Added: Type::Params now exports an ArgsObject type constraint.
- Test::TypeTiny's should_pass and should_fail exercise type constraints
in even more ways in EXTENDED_TESTING mode.
1.011_005 2020-09-30
- Added: Type::Library import now supports -extends and -utils flags.
- Type::Library -base import flag now marks the caller package as loaded
in %INC.
1.011_004 2020-09-30
[ Bug Fixes ]
- Make predeclared type constraints work better for Zydeco.
[ Documentation ]
- Document that ArrayLike and HashLike are now parameterizable.
[ Test Suite ]
- Make test suite work better with App::Yath.
1.011_003 2020-09-25
[ Bug Fixes ]
- Old versions of Data::Dumper would sometimes die when dumping certain
overloaded objects. Type::Tiny::_dd() now catches this in an eval {}.
- Types::Standard would sometimes complain about very old versions of
Scalar::Util.
[ Other ]
- ArrayLike and HashLike are now parameterizable, though the
implementation for the parameterized version is in pure Perl, not XS.
- Type::Tiny::Enum better caches regexps.
- Updated: ArrayLike, HashLike, CodeLike, and StringLike type constraints
can use XS if Type::Tiny::XS 0.022 is installed.
1.011_002 2020-09-22
- Added: Type::Utils now exports an `is` function but it needs to be
requested explicitly.
1.011_001 2020-09-21
[ Documentation ]
- Update the NEWS file.
[ Other ]
- Added: Add new list processing functions to Type::Tiny.
1.011_000 2020-09-15
[ Documentation ]
- Describe deficiencies of is_* functions for parameterized types.
Fixes RT#132918.
<https://rt.cpan.org/Public/Bug/Display.html?id=132918>
[ Other ]
- Type::Tiny::Enum now generates faster regexps to validate enums. (Code
stolen from Regexp::Trie.)
1.010006 2020-09-04
[ Bug Fixes ]
- Eliminate recusion warnings when Type::Parser needs to parse complex
types.
Fixes RT#121957.
Diab Jerius++
<https://rt.cpan.org/Ticket/Display.html?id=121957>
[ Other ]
- Better handling of coercions for pre-declared types in Type::Library.
The type objects created before the type was properly defined will now
lazily attempt to find coercions from the properly defined type once it
becomes available.
1.010005 2020-08-26
- Improvements to $AvoidCallbacks support for
Type::Tiny::{Class,Role,Duck,Enum,Union,Intersection}, and LaxNum, Ref,
RegexpRef, FileHandle, Object, Overload, and Tied types from
Types::Standard.
1.010004 2020-08-18
[ Bug Fixes ]
- Fix XSifying Enum[] where the strings contain certain non-word
characters.
Andrew Ruder++
<https://github.com/tobyink/p5-type-tiny-xs/pull/12>
<https://github.com/tobyink/p5-type-tiny/pull/59>
- Type::Params compile_named using both the head and named_to_list options
would cause compilation error.
Fixes RT#132419.
Hauke D++
Sandor Patocs++
<https://rt.cpan.org/Public/Bug/Display.html?id=132419>
- Workaround RT#121957 by avoiding attempting to XSify Enum type
constraints with more than 50 possible strings.
Fixes RT#121957.
Diab Jerius++
<https://rt.cpan.org/Ticket/Display.html?id=121957>
[ Documentation ]
- Link to HTTPS version of Type::Tiny web page.
1.010003 2020-08-08 The Crazy 88
[ Bug Fixes ]
- ClassName type constraint should treat empty @ISA as if no @ISA were
defined, like Type::Tiny::XS.
Fixes RT#132583.
Szymon Nieznański++
<https://rt.cpan.org/Public/Bug/Display.html?id=132583>
- Fix for Type::Tiny->can called as a class method.
Meredith Howard++
<https://github.com/tobyink/p5-type-tiny/pull/57>
- Fix predeclared types in Type::Library.
Meredith Howard++
<https://github.com/tobyink/p5-type-tiny/pull/58>
[ Documentation ]
- Document some edge cases for Types::Standard Int.
<https://rt.cpan.org/Ticket/Display.html?id=132754>
1.010002 2020-05-01 Mayday
[ Bug Fixes ]
- Better bareword handling on Perl < 5.14.
Fixes RT#132455.
Graham Knop++
Karen Etheridge++
<https://rt.cpan.org/Public/Bug/Display.html?id=132455>
- If Scalar::Util was below 1.18, the LaxNum type from Types::Standard
would accept blobs as being numbers. This is now fixed.
Fixes RT#132426.
Graham Knop++
<https://rt.cpan.org/Public/Bug/Display.html?id=132426>
1.010001 2020-03-16
[ Documentation ]
- MooX::Pression mentions in documentation now refer to Zydeco.
[ Test Suite ]
- Test suite passes in cperl, albeit with warnings.
1.010000 2020-02-19
[ Documentation ]
- Correct documentation of slurpy with compile_named.
Fixes RT#131720.
<https://rt.cpan.org/Public/Bug/Display.html?id=131720>
[ Packaging ]
- Package as stable.
1.009_003 2020-02-11
[ Bug Fixes ]
- Fix importing multiple type libraries into a type registry at once.
Fixes RT#131744.
<https://rt.cpan.org/Public/Bug/Display.html?id=131744>
[ Documentation ]
- Fix typo in documentation of `my_methods`.
Philippe Bruhat++
1.009_002 2020-02-11
[ Documentation ]
- Mention MooX::Pression.
[ Other ]
- Added: Type::Params now supports `head` and `tail` options for
`compile`, `compile_named`, and `compile_named_oo`.
- Parameterized `Ref` type constraint in Types::Standard now checks its
parameter is a known Perl ref type.
- Type::Params on Perl older than 5.10 now uses its own B::perlstring
implementation to quote strings instead of using B::cstring.
1.009_001 2020-02-06
[ Test Suite ]
- More tests for recursively defined type constraints.
[ Other ]
- Added: Type::Tiny::Enum now has an `as_regexp` method.
- In some edge cases, the regexps used by Type::Tiny::Enum will now be
slightly faster.
1.009_000 2020-02-04
- Subclasses of Moose::Meta::TypeConstraint are now converted to the
appropriate subclasses of Type::Tiny by Types::TypeTiny::to_TypeTiny,
instead of always being converted to the base class. This improves
inlining amongst other things.
- When types are declared by Type::Library's -declare import parameter,
the temporary subs installed can now generate placeholder type
constraints which allow the types to be used in recursive type
definitions.
1.008005 2020-01-30
[ Test Suite ]
- Remove some Perl 5.012+ syntax from test suite.
1.008004 2020-01-29
[ Bug Fixes ]
- When possible, inject `package Type::Tiny` in generated inline code that
has an appropriate lexical scope to insert it into. This will (mostly)
avoid inline code mistakenly using overridden versions of CORE::
functions.
- to_TypeTiny will now cowardly refuse to inline Moose types if they have
anything in their inline environment.
1.008003 2020-01-13
[ Documentation ]
- Update copyright dates to 2020.
[ Packaging ]
- Makefile.PL will now bail out on cperl if AUTOMATED_TESTING environment
variable is set to true.
[ Other ]
- Added: Type::Registry can now have a parent registry.
1.008002 2020-01-11
[ Bug Fixes ]
- Fix bareword errors if certain Type::Tiny subclasses were loaded prior
to Type::Tiny.
Fixes RT#131401.
<https://rt.cpan.org/Public/Bug/Display.html?id=131401>
[ Documentation ]
- Fix typos.
Hauke D++
[ Other ]
- Type::Tiny didn't accept string constraints for parameterizable type
constraints; this was not a documented restriction and didn't seem to
serve any purpose, so the restriction has been lifted.
<https://rt.cpan.org/Ticket/Display.html?id=131238>
1.008001 2019-12-28
- Types::TypeTiny honours $Type::Tiny::AvoidCallbacks.
- Types::TypeTiny now better mocks Type::Library, offering is_* and
assert_* functions for export.
- Use improved inline_assert when building the coderef for &{$type}
overloading.
1.008000 2019-12-11
[ Packaging ]
- Repackage as stable.
1.007_015 2019-12-10
[ Documentation ]
- Minor formatting changes.
- No longer suggest that Type::Tiny::Manual needs rewriting in
Contributing.pod.
1.007_014 2019-12-10
[ Documentation ]
- Mostly formatting changes.
1.007_013 2019-12-10
[ Documentation ]
- Add links to homepage in pod.
[ Packaging ]
- Rebuild with newer RDF::DOAP.
1.007_012 2019-12-10
[ Bug Fixes ]
- Fix tr/// stuff on $Type::Tiny::VERSION.
[ Documentation ]
- Minor tweaks to Type::Tiny::Manual.
[ Packaging ]
- Metadata updates.
[ Other ]
- Updated: Type::Tiny will stop trying to use very old versions of
Type::Tiny::XS. (It already recommended newer versions in META.json.)
1.007_011 2019-12-09
[ Documentation ]
- Make the Moo parts of the manual use less Moo-specific syntax, so it is
more applicable to Moose and Mouse.
- Rewrite Type::Tiny::Manual::Coercions.
1.007_010 2019-12-08
[ Bug Fixes ]
- Avoid undef warnings from Type::Tiny::_failed_check when the type has
become undefined before the error message can be generated.
[ Test Suite ]
- Minor improvements to the test suite.
1.007_009 2019-12-06
[ Documentation ]
- Document some undocumented files in the test suite.
[ Other ]
- Obscure changes to Error::TypeTiny::Assertion.
- Type::Tiny's inline_assert method has been overhauled.
1.007_008 2019-12-05
[ Documentation ]
- Expand per-type tests of bundled type libraries.
- More work on the Type::Tiny manual.
1.007_007 2019-12-03
[ Documentation ]
- Expand per-type tests of bundled type libraries.
- More work on the Type::Tiny manual.
1.007_006 2019-12-02
[ Documentation ]
- Expand per-type tests of bundled type libraries.
1.007_005 2019-12-01
[ Bug Fixes ]
- Fixes for inlining Tuples which have a combination of Optional and
slurpy slots.
[ Documentation ]
- Expand per-type tests of bundled type libraries.
[ Other ]
- Improvements to deep coercions for Tuples.
1.007_004 2019-11-30
[ Bug Fixes ]
- Fixes for some edge cases in the overidden `can` method on old Perl
5.8.x versions for types with the secret `is_object` parameter set to
true. (There were problems in 5.8.1 but 5.8.9 was okay; not sure the
exact version where the delta was that affected it. Either way, fixed
now.)
[ Documentation ]
- Expand per-type tests of bundled type libraries.
[ Test Suite ]
- Clean up some warnings and stuff from test output.
[ Other ]
- Improvements to $AvoidCallbacks support for Types::Standard::Maybe.
1.007_003 2019-11-27
[ Documentation ]
- Expand per-type tests of bundled type libraries.
- More work on the Type::Tiny manual.
jplindstrom++
1.007_002 2019-11-26
[ Documentation ]
- Expand per-type tests of bundled type libraries.
- Fix various documentation typos.
- Improve Type::Params SYNOPSIS.
- Improve Type::Tiny SYNOPSIS.
- More work on the Type::Tiny manual.
- Move CONTRIBUTING.pod into the manual.
- Types::Standard now has a SYNOPSIS.
[ Other ]
- (~Types::Standard::Any)->name is now 'None'
- Control over whether types are allowed to make callbacks in inlined code
is now via a package variable instead of an environment variable and can
be toggled at runtime.
1.007_001 2019-11-23
[ Bug Fixes ]
- ClassName/RoleName no longer accepts a glob.
- Fix the 'my variable $base masks earlier declaration' warning caused by
IntRange/NumRange.
- The `Tied` type no longer assumes that any reference which isn't a HASH
or ARRAY must be a SCALAR.
[ Documentation ]
- Add a huge amount of tests for the built-in type constraints, intended
as documentation as well as tests.
- Complete rewrite of the Type::Tiny manual.
[ Other ]
- Added: The `extends` function is now able to extend Specio::Exporter
libraries.
- Added: Type::Params now has `wrap_subs` and `wrap_methods` functions.
- Returning a list of strings from an inlining coderef is now officially
supported and no longer experimental.
- Type::Tiny::XS integration is now officially supported and no longer
experimental.
1.007_000 2019-11-17
[ Bug Fixes ]
- Strip underscores in version numbers for dev releases.
Fixes RT#125839.
<https://rt.cpan.org/Public/Bug/Display.html?id=125839>
- Type::Params will now keep a reference to all type constraints passed to
it; this may use more memory in some cases, but will improve exceptions
thrown.
Fixes RT#121763.
<https://rt.cpan.org/Public/Bug/Display.html?id=121763>
- Type::Tiny better mimics the Moose::Meta::TypeConstraint::Parameterized
API, adding `parameterized_from` and `has_parameterized_from` methods.
Fixes RT#114915.
<https://rt.cpan.org/Public/Bug/Display.html?id=114915>
- Type::Tiny::Enum will now avoid triggering a Type::Tiny::XS bug
involving hyphens in strings.
Fixes RT#129729.
<https://rt.cpan.org/Public/Bug/Display.html?id=129729>
- When extending a MooseX::Types library, be more careful checking to see
if types have coercions, because a Moose::Meta::TypeCoercion object may
be an empty list of coercions.
Fixes RT#102748.
<https://rt.cpan.org/Public/Bug/Display.html?id=102748>
[ Test Suite ]
- Add a test that Specio type constraints can be converted to Type::Tiny
types, and inlining works.
- Bundle some tests for Types::ReadOnly because it does interesting stuff
with coercions and parameterizable types.
- Bundle test from RT#104154, which turned out to not be a bug.
<https://rt.cpan.org/Ticket/Display.html?id=104154>
- More tests for extending MooseX::Types libraries.
[ Packaging ]
- Dropped the TODO file from the repo and distribution because it was
mostly out of date. Use RT instead.
[ Other ]
- Added: Many type constraints now support `stringifies_to`,
`numifies_to`, and `with_attribute_values` methods. Type::Tiny 1.006000
accidentally included an undocumented early implementation of these with
some differences.
- Added: Provide a control over whether types are allowed to make
callbacks in inlined code.
- Added: Type::Tiny::ConstrainedObject exists as a superclass for
Type::Tiny::Class, Type::Tiny::Role, and Type::Tiny::Duck.
- Added: When Types::TypesTiny::to_TypeTiny converts a Moose/Mouse type to
a Type::Tiny type, the returned type will now be parameterizable if they
original type was parameterizable.
- Added: When importing type constraints from non-Moose/non-Mouse blessed
type constraint systems (Specio, Types::Nano, others?), support
inlining.
- Smarter caching and reuse of parameterized types.
1.006000 2019-11-12
[ Documentation ]
- Links to Type::Tiny on GitHub/Travis/AppVeyor/Coveralls in Type::Tiny
pod.
- Minor correction to POD header for Type::Params
Jonas B Nielsen++
<https://github.com/tobyink/p5-type-tiny/pull/43>
- Types::Standard documentation fix.
Lucas Buchala++
<https://github.com/tobyink/p5-type-tiny/pull/48>
[ Test Suite ]
- Improve test coverage.
[ Packaging ]
- Bump minimum required version of Exporter::Tiny to 1.000000.
- Type::Tiny::XS 0.016 is recommended.
[ Other ]
- Added: Type::Library now supports `of` and `where` options when
importing type constraints.
- Added: Type::Params multisig function now supports custom error
messages.
Benct Philip Jonsson++
<https://github.com/tobyink/p5-type-tiny/pull/44>
- Added: Type::Params named_to_list feature.
<https://rt.cpan.org/Ticket/Display.html?id=128337>
- Added: Type::Params signatures with slurpy hashrefs now allow true
hashrefs to be passed to them.
- Added: Type::Tiny::Enum now has a `unique_values` method.
<https://rt.cpan.org/Ticket/Display.html?id=129650>
- Added: Types::Standard ArrayRef parameterized type can now take a second
parameter, the minimum array length.
- Better implementation of is_subtype_of/is_supertype_of and related
functions.
- Don't use Int from Type::Tiny::XS unless version 0.016 is available.
<https://rt.cpan.org/Ticket/Display.html?id=130411>
- Eliminate memory cycles created by coderef overloading in Type::Tiny and
Type::Coercion.
Fixes RT#130823.
Ivanov Anton++
<https://rt.cpan.org/Public/Bug/Display.html?id=130823>
- Eval::TypeTiny's API is now considered to be stable.
- Fix Types::Standard's LazyLoad implementation.
- The `values` attribute of Type::Tiny::Enum now preserves order.
Fixes RT#129650.
Daniel Schröer++
<https://rt.cpan.org/Public/Bug/Display.html?id=129650>
- Tidy up Type::Tiny namespace a little by fully-referencing some
functions instead of importing them.
- Tweaks to Type::Tiny and Type::Coercion to avoid unnecessarily loading
overload.pm and overloading.pm.
- Types::TypeTiny::TypeTiny->has_coercion is now true.
1.005_004 2019-11-11
1.005_003 2019-02-26
1.005_002 2019-01-29
1.005_001 2019-01-23
1.005_000 2019-01-20
1.004004 2019-01-08
[ Bug Fixes ]
- Depend on Exporter::Tiny 0.040; older versions don't provide all the
functions Type::Library needs.
1.004003 2019-01-08
[ Bug Fixes ]
- Fix spelling in error message for Types::Common::String
LowerCaseSimpleStr.
Robert Rothenberg++
<https://github.com/tobyink/p5-type-tiny/pull/47>
[ Documentation ]
- Fix Type::Params documentation error.
Nelo Onyiah++
<https://github.com/tobyink/p5-type-tiny/pull/45>
- Fix Types::Standard documentation error: incorrect third-party module
name.
Nelo Onyiah++
<https://github.com/tobyink/p5-type-tiny/pull/46>
1.004002 2018-07-29
[ Bug Fixes ]
- Skip one particular test on old versions of Moo because it relies on a
feature introduced in Moo 1.004000.
Fixes RT#125948.
<https://rt.cpan.org/Public/Bug/Display.html?id=125948>
1.004001 2018-07-28
[ Bug Fixes ]
- Add Eval::TypeTiny::Sandbox to the list of packages which should be
skipped as internal by Error::TypeTiny, as it was mistakenly removed in
1.003_008.
Fixes RT#125942.
<https://rt.cpan.org/Public/Bug/Display.html?id=125942>
[ Documentation ]
- Correct release date of 1.004000 in change log.
1.004000 2018-07-27
[ Documentation ]
- Update NEWS.
- Update TODO.
[ Packaging ]
- Repackage as a stable release. No functional changes since 1.003_010.
1.003_010 2018-07-25
[ Test Suite ]
- Improve test coverage for Type::Utils, Type::Coercion,
Types::Standard::Tuple, Eval::TypeTiny, Type::Registry,
Type::Tiny::Class, and Types::Standard::Tied.
1.003_009 2018-07-24
[ Documentation ]
- Better documentation of parameterization API.
[ Test Suite ]
- Improve testing of Test::TypeTiny itself; the matchfor() function in
particular.
- Test bad parameters to NumRange and IntRange.
- Test late loading of Sub::Quote.
[ Other ]
- Types::Standard::Defined->complementary_type will now return
Types::Standard::Undef, and vice versa.
1.003_008 2018-07-16
[ REGRESSIONS ]
- Make Error::TypeTiny aware of some newer internal modules.
[ Bug Fixes ]
- Fix error messages generating deep explanations of some parameterized
types.
Fixes RT#125765.
KB Jørgensen++
<https://rt.cpan.org/Public/Bug/Display.html?id=125765>
[ Test Suite ]
- Improve test coverage.
- Test Type::Utils' match_on_type's support for wantarray on strings of
code.
[ Other ]
- Improve processing of parameters to Types::Standard's parameterized type
constraints
- Simplify how Type::Registry generates the `t()` function.
- Split out some code from Types::Standard into autoloaded modules to
speed up loading.
- Types::Common::Numeric's IntRange and NumRange do better checking of
parameters.
- Types::Common::String's StrLength does better checking of parameters.
1.003_007 2018-07-12
[ Test Suite ]
- Add tests for deep coercions in Tuples.
- Better tests for Eval::TypeTiny's implementations of alias=>1.
- Improve coverage.
- Restructure Types::TypeTiny test cases so more of them run when Moose
and Mouse aren't available.
[ Other ]
- Added: Eval::TypeTiny now supports PadWalker as a fallback
implementation of alias => 1.
- Added: Eval::TypeTiny provides a collection of constants to indicate the
current implementation of alias => 1.
- Eval::TypeTiny will now throw errors when it detects a mismatch between
sigils and reference types in the environment hashref but only if
EXTENDED_TESTING environment variable is true. Perl will probably give
you its own error message for this later on anyway.
- Improve progressive exporter in Types::TypeTiny to avoid loading
Exporter::TypeTiny more often.
- Removed: Eval::TypeTiny::HAS_LEXICAL_VARS constant is no longer
documented and will be removed at a later date.
- Types::Standard does better at checking the parameters of parameterized
types are valid.
- Updated: Eval::TypeTiny now supports Perl 5.22 refaliasing as the
preferred implementation of alias => 1.
1.003_006 2018-07-08
[ Bug Fixes ]
- Fix issues with arrayref and hashref defaults in Type::Params.
- Workaround for Regexp-based check for Int clobbering $1 sometimes (this
will sometimes slow down Int checks a little, but is needed for
correctness).
Fixes RT#125132.
<https://rt.cpan.org/Public/Bug/Display.html?id=125132>
[ Documentation ]
- Better documentation of environment variables.
- Type::Params caller_level option is now documented.
[ Test Suite ]
- Improve coverage.
[ Other ]
- Added: PERL_TYPE_PARAMS_XS environment variable.
- Added: Type::Params compile/compile_named now have subname and
description options.
1.003_005 2018-07-05
[ Documentation ]
- Type::Tiny::Manual::Coercions improvements.
Fixes RT#122305.
<https://rt.cpan.org/Public/Bug/Display.html?id=122305>
[ Other ]
- Added: Allow type libraries to mark certain type constraints as
deprecated.
Fixes RT#124728.
<https://rt.cpan.org/Public/Bug/Display.html?id=124728>
1.003_004 2018-06-12
[ Bug Fixes ]
- Load modules with `use` instead of `require` in 00-begin.t.
Fixes RT#124067.
Andreas J König++
Slaven Rezić++
<https://rt.cpan.org/Public/Bug/Display.html?id=124067>
1.003_003 2018-06-10
[ BACK COMPAT ]
- Bool (Types::Standard) is stricter, no longer allowing blessed objects
that overload stringification because that's weird.
[ Other ]
- Added: Bool now allows coercion from Any.
1.003_002 2018-05-28
- Added: Types::Common::Numeric now has NumRange and IntRange types.
- Added: Types::Common::String now has a StrLength type.
1.003_001 2018-05-22
[ Test Suite ]
- Tests for coercions to CycleTuple from Types::Standard with
non-inlineable type constraints.
[ Other ]
- Don't use Type::Tiny::XS's implementation of Bool in Types::Standard
unless Type::Tiny::XS >= 0.014.
- Looser definition of FileHandle in Types::Standard.
Fixes RT#121762.
<https://rt.cpan.org/Public/Bug/Display.html?id=121762>
1.003_000 2018-05-20
[ Bug Fixes ]
- Compatibility with constants and with CV-in-stash optimisation.
Fixes RT#123408.
<https://rt.cpan.org/Public/Bug/Display.html?id=123408>
[ Documentation ]
- Add a new CONTRIBUTING.pod file.
- Document Type::Library's :coercion export tag.
Diab Jerius++
- Fix typo.
Philippe Bruhat++
- Improvements to Type::Params documentation.
[ Test Suite ]
- Skip t/30-integration/Moose/native-attribute-traits.t on older Moose
because Test::Moose is broken.
[ Packaging ]
- Ref::Util::XS 0.100 should be recommended, not 0.200 (which doesn't
exist yet).
Fixes RT#121981.
<https://rt.cpan.org/Public/Bug/Display.html?id=121981>
[ Other ]
- Added: Allow Type::Coercion's add_type_coercion to accept a
Type::Coercion object, which was already documented as working.
Diab Jerius++
- Added: Type::Params compile_named now supports bless/class/constructor
options.
- Added: Type::Params now exports a compile_named_oo function which
returns a parameters object.
- Added: Type::Params now supports parameter defaults.
- Don't use Type::Tiny::XS's implementation of PositiveInt in
Types::Common::Numeric unless Type::Tiny::XS >= 0.013.
1.002001 2017-06-08
[ Test Suite ]
- Skip t/30-integration/Moose/native-attribute-traits.t on older Moose
because Test::Moose is broken.
[ Packaging ]
- Ref::Util::XS 0.100 should be recommended, not 0.200 (which doesn't
exist yet).
Fixes RT#121981.
<https://rt.cpan.org/Public/Bug/Display.html?id=121981>
1.002000 2017-06-01
[ Packaging ]
- Stable version number.
1.001_016 2017-05-30
[ Documentation ]
- Include page-numbers.pl example
1.001_015 2017-05-20
[ Bug Fixes ]
- Fix HashRef[Str]|Undef|Str parsing on Perl < 5.14.
Fixes RT#121764.
Aran Clary Deltac++
Graham Knop++
<https://rt.cpan.org/Public/Bug/Display.html?id=121764>
1.001_014 2017-05-19
- Include trailing line break at the end of stringified version of some
exceptions.
Peter Valdemar Mørch++
1.001_013 2017-05-18 Kittiversary
[ Bug Fixes ]
- Fixed crazy amount of UTF-8 warnings from Type::Params on Perl 5.6.x and
Perl 5.8.x.
Fixes RT#101582.
André Walker++
<https://rt.cpan.org/Public/Bug/Display.html?id=101582>
<https://github.com/tobyink/p5-type-tiny/pull/16>
- StrMatch changes in previous release broke the ability to check type
equality between two parameterized StrMatch types under some
circumstances. Changed how the hash key for stashing regexp references
gets built — is now closer to the old way. This doesn't revert the
change in 1.001_012 where regexp checks can be inlined better, but only
applies to those regexp references that can't easily be inlined.
1.001_012 2017-05-17
[ BACK COMPAT ]
- RegexpRef now accepts blessed objects if $object->isa('Regexp') returns
true.
[ Other ]
- StrMatch will use Regexp::Util (if available) to inline regular
expressions more sensibly.
1.001_011 2017-05-17
[ Bug Fixes ]
- Type constraints like Tuple[Int] shouldn't report they have a coercion
if Int doesn't have a coercion.
[ Other ]
- Added: Types::Standard now has a CycleTuple type.
1.001_010 2017-05-16 Puppiversary
[ Test Suite ]
- t/00-begin.t will now work around ANDK's apparently broken XS testing
environment.
1.001_009 2017-05-13
- Rewrite some benchmarking scripts to use
Benchmark::Featureset::ParamCheck.
- Use Ref::Util::XS (if it's installed) to speed up certain type checks.
1.001_008 2017-05-10
[ Bug Fixes ]
- Type::Params should make sure Type::Utils is loaded before calling
english_list().
[ Documentation ]
- Rearrange the examples directory in the distribution.
[ Other ]
- Added: Named parameter validation benchmarking script.
- Added: Reduce scope of local $SIG{__DIE__} in Type::Registry.
Graham Knop++
1.001_007 2017-05-04 May the fourth be with you
[ Documentation ]
- Comparison of Type::Params with new(ish) CPAN module
Params::ValidationCompiler.
- Show example of how to set defaults for parameters with Type::Params.
[ Other ]
- Added: Type::Params' `multisig` function now sets a variable
`${^TYPE_PARAMS_MULTISIG}` to indicate which signature succeeded.
- Optimization of Type::Params positional parameter checking for simple
cases with no slurpy parameter and no coercions.
- Optimizations for Tuple and StrMatch type constraints from
Types::Standard.
1.001_006 2017-04-30
- Allow Type::Tiny's `constraint` parameter to be a string of Perl code.
- Localize $SIG{__DIE__} in Type::Registry.
Fixes RT#100780.
<https://rt.cpan.org/Public/Bug/Display.html?id=100780>
1.001_005 2017-04-19
[ Bug Fixes ]
- 02-api.t should check version of Moose available.
<https://github.com/tobyink/p5-type-tiny/pull/20>
- 20-unit/Type-Utils/warnings.t should check version of Test::Warnings.
Alexandr Ciornii++
<https://github.com/tobyink/p5-type-tiny/pull/21>
- Fix minor typos in documentation for Types::Standard.
Zoffix Znet++
<https://github.com/tobyink/p5-type-tiny/pull/30>
- Fix variable name typo in documentation for Type::Params.
Lucas Buchala++
<https://github.com/tobyink/p5-type-tiny/pull/37>
[ Documentation ]
- Include projected release date for Type::Tiny 1.002000 in NEWS.
[ Test Suite ]
- Bundle a test case for GH issue 14.
<https://github.com/tobyink/p5-type-tiny/issues/14>
[ Other ]
- Improved error location reporting for Moo
Peter Valdemar Mørch++
<https://github.com/tobyink/p5-type-tiny/pull/35>
- Updated: NumericCode now coerces from strings with whitespace in them,
like MooseX::Types::Common::Numeric.
Denis Ibaev++
<https://github.com/tobyink/p5-type-tiny/pull/22>
1.001_004 2017-02-06
- Attempting ArrayRef[Int, Int] or similar now throws an exception.
Fixes RT#105299.
Thomas Sibley++
<https://rt.cpan.org/Public/Bug/Display.html?id=105299>
1.001_003 2017-02-02
- Updated: Merge fixes from stable Type-Tiny 1.000006.
1.001_002 2014-10-25
[ Bug Fixes ]
- Fix short-circuiting optimizations for parameterized HashRef, ArrayRef,
ScalarRef, and Map type constraints.
Fixes RT#99312.
Marcel Timmerman++
<https://rt.cpan.org/Public/Bug/Display.html?id=99312>
- Inlined version of Types::Standard::Int should check that the value is
not a reference.
[ Test Suite ]
- Fix annoying warning message in test suite with recent versions of
Exporter::Tiny.
[ Other ]
- Make equals/is_a_type_of/is_subtype_of/is_supertype_of in
Type::Tiny::Union work more like Moose::Meta::TypeConstraint::Union.
1.001_001 2014-09-19
- Lazy-load Text::Balanced in Type::Parser. (Many parses don't even need
it.)
- Lazy-load Type::Tiny::Union in Type::Params.
- Updated: Prefer Sub::Util over Sub::Name. (The former is smaller.)
1.001_000 2014-09-07
[ Bug Fixes ]
- Fix for Type::Registry::DWIM.
Fixes RT#98458.
Marcel Montes++
<https://rt.cpan.org/Public/Bug/Display.html?id=98458>
- Fix issues with coercions and native attribute traits with some oldish
versions of Moose on oldish versions of Perl.
Fixes RT#98159.
Peter Flanigan++
<https://rt.cpan.org/Public/Bug/Display.html?id=98159>
[ Documentation ]
- Updated NEWS file.
- Updated TODO file.
- Updates to Type::Tiny::Manual::UsingWithMoose,
Type::Tiny::Manual::UsingWithMoo, and
Type::Tiny::Manual::UsingWithMouse.
[ Test Suite ]
- Make some of the test case skip_all bits more ambitious; test older
versions of Moose and Moo than we were testing before.
[ Other ]
- Added: Type::Params now provides `compile_named` and `validate_named`
functions which do the same thing as `compile` and `validate` but are
better for named arguments.
- Updated: If Sub::Name is unavailable, but the shiny new core Sub::Util
is available, then use it instead.
- Updated: Want Type::Tiny::XS 0.011.
- `Type::Utils::dwim_type` now allows more control over fallback
behaviours.
1.000006 2017-01-30
[ Bug Fixes ]
- Fix escaping within q{...} in a test case.
Fixes RT#114386.
Karen Etheridge++
<https://rt.cpan.org/Public/Bug/Display.html?id=114386>
1.000005 2014-10-25
[ Bug Fixes ]
- Fix short-circuiting optimizations for parameterized HashRef, ArrayRef,
ScalarRef, and Map type constraints.
Fixes RT#99312.
Marcel Timmerman++
<https://rt.cpan.org/Public/Bug/Display.html?id=99312>
[ Test Suite ]
- Fix annoying warning message in test suite with recent versions of
Exporter::Tiny.
1.000004 2014-09-02
[ Bug Fixes ]
- Fix for Type::Registry::DWIM.
Fixes RT#98458.
Marcel Montes++
<https://rt.cpan.org/Public/Bug/Display.html?id=98458>
- Fix issues with coercions and native attribute traits with some oldish
versions of Moose on oldish versions of Perl.
Fixes RT#98159.
Peter Flanigan++
<https://rt.cpan.org/Public/Bug/Display.html?id=98159>
1.000003 2014-08-28
[ Bug Fixes ]
- Fix for coercions to parameterized Dict including a mixture of
inlineable and non-inlineable optional values.
Fixes RT#98362.
Gianni Ceccarelli++
<https://rt.cpan.org/Public/Bug/Display.html?id=98362>
1.000002 2014-08-18
[ Bug Fixes ]
- Fix for overloaded operation fallback on Perl 5.10.x.
Fixes RT#98113.
Dagfinn Ilmari Mannsåker++
Peter Flanigan++
<https://rt.cpan.org/Public/Bug/Display.html?id=98113>
1.000001 2014-08-18
[ Bug Fixes ]
- Changes to dwim_type() in 0.047_09 broke the fallback to creating class
types in some circumstances. This broke the MooX::late test suite, and
some usages of MooX::late.
Shlomi Fish++
1.000000 2014-08-16 Happy CPAN Day!
[ Documentation ]
- Document the Type::Tiny versioning policy.
- Updated NEWS file.
- Updated TODO file.
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.
0.047_08 2014-08-05 Sanity++
[ 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>
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.
0.047_06 2014-07-31 What made the Queen go all ice crazy?
[ 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.
0.047_05 2014-07-29 Sanity++
[ REGRESSIONS ]
- Introduced bug concerning coercions to parameterized Dicts with a
mixture of inlineable and non-inlineable optional values.
<http://purl.org/NET/cpan-uri/rt/ticket/98362>
[ 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.
0.047_04 2014-07-28 The 98% Coverage Release
[ 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.
0.047_03 2014-07-26 The 96% Coverage Release
[ 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.
0.047_02 2014-07-23 The 92% Coverage Release
[ 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>
0.047_01 2014-07-21 The 87% Coverage Release
[ 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.)
0.046 2014-07-18
[ Bug Fixes ]
- Fix for Types::TypeTiny::to_TypeTiny($coderef) when Sub::Quote is loaded
but not used.
- Undef no longer passes the Types::TypeTiny::StringLike type constraint.
[ Test Suite ]
- Add test cases for Types::TypeTiny (the library of type constraints used
internally by Type::Tiny).
[ Other ]
- Minor optimizations to Types::TypeTiny::to_TypeTiny.
0.045_05 2014-07-18
[ Bug Fixes ]
- More sensible use of Sub::Name in Type::Library.
[ Documentation ]
- Added a Type::Tiny::Manual::Optimization perldoc page.
[ Other ]
- Added: Type::Tiny now has a `where` method which is a shortcut for
creating a child type with a constraint coderef.
- Added: Type::Tiny now has an `of` method which is a shortcut for
`parameterize` which I can never spell properly.
- Restore and improve Mouse XS stuff dropped in Type-Tiny 0.045_03.
0.045_04 2014-07-15
[ Bug Fixes ]
- Type::Params was warning about additional arguments passed to sprintf
under Perl blead. The additional argument has been removed.
[ Documentation ]
- Updated NEWS file.
[ Test Suite ]
- Cope with changes to Type::Tie error messages introduced in Type::Tie
0.008.
- Fix warnings in 30-integration/Moose/native-attribute-traits.t when run
under perl -w.
Peter Karman++
- Generally stop testing the contents of error messages produced by
external modules!
0.045_03 2014-07-11
[ REGRESSIONS ]
- The Mouse XS stuff introduced in Type-Tiny 0.003_09 has been partially
removed. (I do plan on restoring it, and improving it.)
[ Documentation ]
- Update benchmark scripts, showing results with/without Type::Tiny::XS.
[ Test Suite ]
- When testing equivalence between Types::Standard types and core Moose
types, don't test `Num` because Types::Standard provides two different
implementations for it.
[ Other ]
- Type::Tiny::XS is now used (if available) to speed up some of the
Types::Standard type constraints, plus Type::Tiny::Class and
Type::Tiny::Duck.
0.045_02 2014-07-10
[ Bug Fixes ]
- Remove outdated references to the overloaded + operator from
Types::Standard documentation.
Fixes RT#96379.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=96379>
[ Documentation ]
- Include benchmark/example of Type::Params versus Scalar::Validation.
0.045_01 2014-06-30
[ Bug Fixes ]
- Ensure that when a Type::Tiny object is inflated into a
Moose::Meta::TypeConstraint, inlining still happens via Type::Tiny.
omega++
- Workaround strange behaviour of exists() function when applied to @_ on
Perl older than 5.20 which caused some uses of Optional[Foo] to accept
an explicit undef.
Caleb Cushing++
0.044 2014-06-03
[ Documentation ]
- Updated NEWS file.
0.043_05 2014-05-21
[ Bug Fixes ]
- Fix inflation of Type::Coercion objects to Moose::Meta::TypeCoercion
when some of the coercion routines are given as strings.
[ Documentation ]
- Document the is_*, to_*, and assert_* functions in
Type::Tiny::Manual::Libraries.
Alexander Hartmaier++
- Mention coercion=>1 and why it is useful in
Type::Tiny::Manual::Coercions.
Alexander Hartmaier++
[ Test Suite ]
- Integration tests for MooseX::Getopt.
Alexander Hartmaier++
[ Other ]
- Detect missing comma in declaration of type constraints using
Type::Utils a la `declare Foo as Bar`, and print a warning.
Tim Bunce++
- No longer need to inflate a Type::Tiny object to
Moose::Meta::TypeConstraint in order to give an answer to
$type->isa('Moose::Meta::TypeConstraint::Union').
0.043_04 2014-05-21
[ Test Suite ]
- Improve test cases for integration with Moose native attribute traits.
0.043_03 2014-05-06
[ Documentation ]
- Rename Types::Datetime to Example::Types because there is now really a
Types::DateTime on CPAN.
- Type::Tiny::Manual::Libraries add example of using the custom types
library.
Peter Karman++
[ Test Suite ]
- Add some test cases for the Error::TypeTiny class.
- Improve Eval::TypeTiny test cases.
- Tests for Type::Library error messages.
[ Packaging ]
- Updated bundled version of Try::Tiny.
[ Other ]
- Added: Extremely experimental and mostly undocumented my_method stuff.
- Added: Type::Utils::classifier
0.043_02 2014-04-11
- Added: Experimental my_methods attribute so that type constraints can
offer additional methods.
- Added: Type::Tiny now has a find_parent method.
0.043_01 2014-04-06
- Sub::Quote quoted coderefs passed to to_TypeTiny() now result in
inlinable type constraints.
0.042 2014-04-02
[ Documentation ]
- Include more recent results in benchmarking example scripts.
- List currently unstable/experimental parts of the distribution in
Type::Tiny::Manual::Policies.
0.041_04 2014-03-31
[ Test Suite ]
- Add tests for given/when matching against type constraints.
0.041_03 2014-03-28
[ Documentation ]
- Improve documentation for the Type::Coercion class; especially its
constructors, attributes and methods.
- Improve documentation for the Type::Tiny class; especially its
constructor, attributes and methods.
0.041_02 2014-03-26
[ Bug Fixes ]
- Fix Type::Tiny::Duck's inlining of code when given the variable name
`$_`.
Fixes RT#94196.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=94196>
[ Documentation ]
- Type::Tiny::Manual links to various parts of the test suite to document
concepts. These links had grown stale and have now been updated.
- Updated NEWS file.
[ Test Suite ]
- Prevent 20-unit/Type-Registry/moosextypes.t from failing due to too old
MooseX::Types::Common - just skip the test script if MXTC is older than
0.001004.
0.041_01 2014-03-17
[ BACK COMPAT ]
- Type::Tiny and Type::Coercion no longer overload addition. This feature
never really worked very well with regard to precendence, requiring lot
of parentheses to use. The overload also made solving the
parameterizable type coercion problem very difficult.
[ Other ]
- Parameterizable coercions are now passed a reference to the type
constraint they should target.
0.040 2014-03-17
[ Documentation ]
- Refreshed SEE ALSO section of Type::Tiny::Manual::Libraries.
- Updated NEWS file.
0.039_13 2014-03-15
[ Bug Fixes ]
- Fix occasional segfaults on threaded Perl 5.18.x.
Graham Knop++
[ Test Suite ]
- Test for occasional segfaults on threaded Perl 5.18.x.
Graham Knop++
0.039_12 2014-03-12
[ Bug Fixes ]
- Various Type::Utils functions were trying to dereference undef as a hash
or array in certain circumstances.
Matt Phillips++
[ Other ]
- Type::Utils' class_type and role_type functions will $name =~ s/:://g.
Matt Phillips++
0.039_11 2014-03-11
[ Test Suite ]
- Because of changes to Data::Dumper in Perl 5.19.x, the test suite was
previously skipping some Dumper-based test cases depending on Perl
version. However, Dumper is dual-lifed, so older versions of Perl may
have shiny, new Dumpers. Skip test cases based on Data::Dumper version
instead.
0.039_10 2014-03-10
[ Documentation ]
- Document the benefits of freezing coercions, and of defining coercions
either within the type library, or via $type->plus_coercions.
[ Other ]
- $type->plus_coercions and friends now return objects with frozen
coercions.
0.039_09 2014-02-25
[ Documentation ]
- Update Type::Tiny::Manual::Params to mention Kavorka, and newer features
of Function::Parameters.
[ Test Suite ]
- Test integration with Moops.
- Test integration with Switcheroo.
- Test that coercions attached to Moose type constraints get inherited by
Type::Tiny when they are inhaled.
- Unit tests for Devel::TypeTiny::Perl56Compat.
- Unit tests for Devel::TypeTiny::Perl58Compat.
0.039_08 2014-02-24
[ Test Suite ]
- Test integration with Kavorka.
0.039_07 2014-02-17
[ Bug Fixes ]
- Fix hash ordering bug in Return::Type integration tests.
0.039_06 2014-02-17
[ Bug Fixes ]
- Type::Tiny's SUPPORT_SMARTMATCH constant was broken; fixed now.
- Type::Tiny's TIEARRAY and TIEHASH methods were broken; fixed now.
[ Test Suite ]
- Enable some old tests that had been disabled as not-yet-implemented for
parameterized type constraints; the feature they test was implemented
ages ago.
- Test integration with Return::Type.
- Test integration with Type::Tie.
- Test integration with match::simple.
0.039_05 2014-02-15
- Apply the Type::Tiny::_HalfOp trick to overloaded addition too.
0.039_04 2014-02-05
- Make overloaded ops on parameterized type constraints work more
consistently between Perl above and below 5.14, reducing the need for
parenthesizing complex type constraint expresssions.
Graham Knop++
<https://github.com/tobyink/p5-type-tiny/pull/8>
0.039_03 2014-02-05
[ Bug Fixes ]
- Make Type::Utils::declare_coercion work outside type libraries.
Fixes RT#92591.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=92591>
- Weak reference from Type::Coercion objects to target type constraint
caused bad behaviour in some cases. This has been fixed by retaining
enough information within the Type::Coercion to be able to reconstruct
its type constraint if it disappears due to the reference count falling
to zero.
Fixes RT#92571.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=92571>
0.039_02 2014-01-25
[ Test Suite ]
- Add tests for Test::TypeTiny.
0.039_01 2014-01-21
[ Documentation ]
- The preferred IRC channel for support is now #moops.
[ Test Suite ]
- Restructure the 't' directory.
[ Other ]
- Removed: Exporter::TypeTiny.
0.038 2014-01-01
[ Documentation ]
- Copyright 2014.
- Updated NEWS file.
0.037_03 2013-12-30
[ Bug Fixes ]
- Fix problems with Moo::HandleMoose integration on threaded Perls.
Graham Knop++
Kevin Dawson++
Matt S Trout++
[ Test Suite ]
- Skip leak.t on threaded Perls (for now).
0.037_02 2013-12-29
[ Documentation ]
- Link to the Type::Tiny stability policy from the pod of each module it
covers.
0.037_01 2013-12-24
[ Bug Fixes ]
- Fix a Type::Params/B problem on Perl 5.6.x.
0.036 2013-12-21
[ Documentation ]
- Updated NEWS file.
0.035_01 2013-12-17
- Make Type::Parser work with newer versions of MooseX::Types::Common
which uses namespace::autoclean.
Fixes RT#91468.
David Steinbrunner++
<https://rt.cpan.org/Public/Bug/Display.html?id=91468>
- Make parameterized Dict and Map type constraints work with Moose native
hash attribute trait.
Jason R Mash++
0.034 2013-12-09
[ Documentation ]
- Updated NEWS file.
0.033_04 2013-12-06
[ Test Suite ]
- Further tests related to RT#90096.
Diab Jerius++
<http://purl.org/NET/cpan-uri/rt/ticket/90096>
[ Other ]
- Implement coercion_names, get_coercion, has_coercion, and has_type
methods for Types::TypeTiny, to make it more like a real Type::Library
type library.
- The `extends` function from Type::Utils now allows inheritance of
coercions, not just types.
Fixes RT#91153.
Jason R Mash++
<https://rt.cpan.org/Public/Bug/Display.html?id=91153>
0.033_03 2013-11-26
[ Bug Fixes ]
- Fix bug in Type::Params::multisig with regard to slurpy parameters.
Fixes RT#90865.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=90865>
[ Documentation ]
- Make Error::TypeTiny::Assertion's explain method act more according to
documentation.
Fixes RT#90867.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=90867>
[ Packaging ]
- Recommend Sub::Name in META.json.
0.033_02 2013-11-26
- Split out some of the longer parts of Types::Standard into other modules
that will be loaded on demand; this shaves about 20% off the load time
of Types::Standard.
0.033_01 2013-11-07
[ Bug Fixes ]
- Type::Params now localizes $_ before trying to assign anything to it.
Fixes RT#90096.
Samuel Kaufman++
<https://rt.cpan.org/Public/Bug/Display.html?id=90096>
[ Test Suite ]
- Test case using a Type::Params compiled check within the scope of a
read-only $_ variable.
Samuel Kaufman++
[ Other ]
- Added: Types::Common::Numeric
- Added: Types::Common::String
0.032 2013-11-05 Remember, remember the fifth of November
[ Bug Fixes ]
- Eliminate a warning under Perl 5.6.x.
[ Documentation ]
- Updated NEWS file.
0.031_05 2013-11-04
[ Documentation ]
- Fix minor typo.
David Steinbrunner++
[ Other ]
- Allow Dict to take a slurpy parameter - a la Dict[foo => Int, slurpy
HashRef[Num]].
Matt S Trout++
0.031_04 2013-11-03
[ Bug Fixes ]
- Type::Parser 0.031_02 introduced a bug under Perl 5.6.x where we relied
on the existence (or not) of a hash item being affected by `local`; this
was implemented in Perl 5.8.0. Work around this problem by checking
definedness instead.
0.031_03 2013-11-03
- Added: Deep coercions for Maybe[`a].
Fixes RT#89936.
Brendan Byrd++
<https://rt.cpan.org/Public/Bug/Display.html?id=89936>
0.031_02 2013-11-03
- Type::Parser now differentiates between Tuple[] and Tuple too.
- Type::Parser only treats a comma as an operator within a
parameterization now, and is thus now able to parse types from the head
of a string which is a comma-separated list of types.
0.031_01 2013-10-28
[ Bug Fixes ]
- Differentiate Tuple[] vs Tuple, and Dict[] vs Dict.
Fixes RT#89696.
Benct Philip Jonsson++
<https://rt.cpan.org/Public/Bug/Display.html?id=89696>
[ Documentation ]
- Improved documentation for Types::TypeTiny.
[ Test Suite ]
- Adjustments to cope with newer Moose is-class-loaded heuristics.
- Check Moose exception objects with isa rather than regexp matching.
0.030 2013-10-18
[ Documentation ]
- Updated NEWS file.
[ Test Suite ]
- Skip leak.t on Perl < 5.10.1. Type-Tiny does have some memory leaks in
particular older versions of Perl: 5.8.8 and 5.10.0 are known to be
problematic, but 5.8.9 seems fine. Ultimately it would be nice to get
these fixed, but in the mean time skipping the test case makes the
distribution easier to install.
0.029_04 2013-10-17
[ Bug Fixes ]
- Fix inlining of type checks in Moo which was broken around about version
0.027_09.
- Fix validate_explain error messages in Type::Tiny::Union.
Fixes RT#89279.
Brendan Byrd++
<https://rt.cpan.org/Public/Bug/Display.html?id=89279>
[ Other ]
- $Type::Tiny::DD can be set numerically.
Fixes RT#89251.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=89251>
- Improve error messages under Moo.
Fixes RT#89234.
Graham Knop++
<https://rt.cpan.org/Public/Bug/Display.html?id=89234>
0.029_03 2013-10-17
[ Bug Fixes ]
- Fix segfault on Perl 5.8.1 to 5.8.3. (And possibly some other 5.8.x
Perls.) Caused by the combination of eval and goto.
Dagfinn Ilmari Mannsåker++
Graham Knop++
Peter Rabbitson++
- Older versions of Scalar::Util::looks_like_number return true for undef;
work around them.
0.029_02 2013-10-11
[ BACK COMPAT ]
- Renamed the Type::Exception modules to Error::TypeTiny.
Fixes RT#89280.
Brendan Byrd++
<https://rt.cpan.org/Public/Bug/Display.html?id=89280>
[ Documentation ]
- Fix typos in documentation of Error::TypeTiny package variables.
[ Other ]
- $Type::Tiny::DD package variable can now be used for a pluggable data
dumper coderef.
Fixes RT#89251.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=89251>
- Type::Tiny::Enum type constraints are now subtypes of
Types::Standard::Str; not Types::Standard::Defined.
David Golden++
- Types::Standard::Item is now a subtype of not Types::Standard::Any.
David Golden++
0.029_01 2013-09-26
- Replace Exporter::TypeTiny with Exporter::Tiny (an external dependency).
0.028 2013-09-26
[ Documentation ]
- Note in documentation for Type::Tiny::Union, etc that
constraint/inlining coderefs not only should not be provided to the
constructor, but cannot!
Fixes RT#88655.
Brendan Byrd++
<https://rt.cpan.org/Public/Bug/Display.html?id=88655>
- Updated NEWS file.
0.027_09 2013-09-20
[ REGRESSIONS ]
- Inlining of type checks in Moo broken in this release, or hereabouts.
Fixed in 0.029_04.
[ Bug Fixes ]
- Fix whitespace in error messages.
[ Test Suite ]
- Skip leak.t on Perl 5.10.0.
0.027_08 2013-09-19
[ Bug Fixes ]
- Fix typo in Type::Utils for coerce=>1 --> coercion=>1.
Fixes RT#88798.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=88798>
- Fix typo in changelog for previous developer release.
- Type::Exception::Assertion changes from 0.027_05 are now conditional
upon Perl version; only take effect on Perl 5.8+; they just weren't
working on Perl 5.6.
[ Test Suite ]
- More changes to version numbers reported by 00-begin.t.
[ Other ]
- Explicitly overload boolification (always true!) in Type::Exception.
0.027_07 2013-09-18
[ Bug Fixes ]
- Fix missing version number in Type::Coercion::FromMoose
[ Test Suite ]
- Changes to version numbers reported by 00-begin.t.
[ Other ]
- Also ensure Mouse type constraints converted to Type::Tiny constraints
retain their coercions.
0.027_06 2013-09-18
[ Documentation ]
- Add a draft Stability Policy to Type::Tiny::Manual.
[ Other ]
- Added: Override `validate_explain` in all the bundled subclasses of
Type::Tiny.
- Added: Type::Coercion::FromMoose
- Added: Type::Tiny::Union now provides a `find_type_for` method which
should be compatible with Moose's equivalent method.
- Added: Type::Utils now provides an `english_list` function like
Moose::Util does. This was useful internally for implementing
`validate_explain` methods.
- Loosen the rules for Type::Tiny and Type::Coercion name attributes;
allow them to begin with one or two leading underscores.
- Memoize Types::TypeTiny::to_TypeTiny.
- Stop using base.pm.
- Type::Tiny::Union's compiled checks no longer close over the type
constraints which are in the union.
- Types::TypeTiny::to_TypeTiny now uses Type::Coercion::FromMoose to
ensure Moose type constraints converted to Type::Tiny constraints retain
their coercions.
0.027_05 2013-09-15
- Added: Provide a `validate_explain` method as part of Type::Tiny's
public API.
- Include a detailed explanation in the stringification of
Type::Exception::Assertion.
- Refactor the explanation generation mechanism.
0.027_04 2013-09-09
[ Test Suite ]
- The file t/moose-coercion.t was checking a particular Moose warning
message. In Moose 2.1100, this warning has been upgraded to an
exception. For now, disable that particular check.
0.027_03 2013-09-09
[ Bug Fixes ]
- Prevent Eval::TypeTiny from leaking stashes by recycling the sandbox.
[ Test Suite ]
- Fix the ultra-finicky t/02-api.t to cope with changes to
Moose::Meta::TypeConstraint API in Moose 2.1100.
0.027_02 2013-09-08
[ Bug Fixes ]
- Restore Type::Tiny -> Moose -> Type::Tiny round-tripping broken in
previous release.
[ Documentation ]
- In Type::Tiny::Manual::Coercions, explain how to chain coercions.
<http://purl.org/NET/cpan-uri/rt/ticket/88452>
0.027_01 2013-09-07
[ REGRESSIONS ]
- Weakening various references to fix memory leaks led to breaking
Type::Tiny -> Moose -> Type::Tiny round-tripping via
Types::TypeTiny::to_TypeTiny. Test cases for this marked TODO.
[ Bug Fixes ]
- Fixed some memory leaks. Still some work to do in this area.
[ Other ]
- Added `coercibles` method to Type::Tiny.
Diab Jerius++
<http://purl.org/NET/cpan-uri/rt/ticket/88452>
0.026 2013-09-05
[ Documentation ]
- Updated NEWS file.
0.025_03 2013-09-04
[ Documentation ]
- Document that multisig() accepts coderefs.
[ Packaging ]
- Use a newer version of RDF::DOAP to process this changelog.
0.025_02 2013-09-02
[ Bug Fixes ]
- functionparameters.t now requires Moo or Moose and is skipped otherwise.
[ Other ]
- Added: Type::Params now provides a multisig() function, allowing you to
define multiple function signatures, and attempt to validate @_ against
them each in turn.
Fixes RT#88291.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=88291>
0.025_01 2013-09-02
[ Bug Fixes ]
- The Tuple structured type was treating arrays with missing required
elements as if they were present but undef.
Fixes RT#88277.
Steven Lee++
<https://rt.cpan.org/Public/Bug/Display.html?id=88277>
[ Documentation ]
- Document the internals of Exporter::TypeTiny.
[ Packaging ]
- Take advantage of dynamic_config to ask automated testers to test
Type::Tiny with Moose present, but only if the Type::Tiny version number
includes an underscore.
- use Dist-Inkt
[ Other ]
- Exporter::TypeTiny will now use method-style resolution when searching
for a sub to export.
- Make Exporter::TypeTiny support generators with less internals-hacking.
0.024 2013-08-27
[ Documentation ]
- Updated NEWS file.
0.023_03 2013-08-23
[ Bug Fixes ]
- Constructors for some subclasses of Type::Tiny rejected hashrefs of
paramaters.
Fixes RT#88064.
Brendan Byrd++
<https://rt.cpan.org/Public/Bug/Display.html?id=88064>
- Stop considering the empty string to be a valid package name.
[ Test Suite ]
- Include additional test cases stolen from Moose.
[ Other ]
- Implementation of RegexpRef in Types::Standard is now closer to Moose's
implementation (accepts blessed Regexps).
0.023_02 2013-08-23
[ Bug Fixes ]
- Fix quoting in error messages which caused Type::Params to be unable to
compile some coderefs.
Fixes RT#87846.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=87846>
- Improve ugly type assertion failure messages when given structures of
nested references.
Fixes RT#87999.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=87999>
[ Other ]
- Added: Type::Registry now has an `add_type` method, for adding a single
type constraint to a registry.
- Type::Registry's `add_types` method now supports importing MooseX::Types
and MouseX::Types libraries.
- Type::Utils' `extend` function now supports extending MooseX::Types and
MouseX::Types libraries.
0.023_01 2013-08-16
[ Bug Fixes ]
- Fix Moo -> Moose type inflation issue.
Matt Phillips++
0.022 2013-08-06
[ Documentation ]
- Updated NEWS file.
[ Other ]
- Improved implementations of is_subtype_of/is_strictly_subtype_of; better
for subclassing.
- In Devel::TypeTiny::Perl56Compat, `use strict` and `use warnings`.
0.021_04 2013-07-30
[ Bug Fixes ]
- Fix Type::Parser's handling of numeric parameters; they shouldn't need
quoting.
- Fix Types::Standard::Dict differentiating between undef and not exists.
Fixes RT#87443.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=87443>
[ Packaging ]
- Add dependency on Exporter 5.57 for older versions of Perl.
0.021_03 2013-07-30
- Improve compatibility between Type::Tiny and Moose attribute native
traits.
- Restore Eval::TypeTiny's pre-0.019_01 behaviour re closing over
lexicals, but enable the 0.021_02 behaviour if alias=>1 option is passed
in.
0.021_02 2013-07-26
- Use real lexicals again for Eval::TypeTiny; this requires
Devel::LexAlias, but there's a fallback to using tied variables.
0.021_01 2013-07-24
- Added: Type::Tiny is_strictly_a_type_of method.
- Added: Type::Tiny is_strictly_subtype_of method.
- Added: Type::Tiny is_strictly_supertype_of method.
- Added: Type::Tiny strictly_equals method.
0.020 2013-07-23
[ Documentation ]
- Updated NEWS file.
0.019_01 2013-07-23
[ Bug Fixes ]
- Eval::TypeTiny now closes over variables properly.
- Work around lack of B::perlstring() function in Perl 5.6.x in test
suite.
0.018 2013-07-21
[ Documentation ]
- Updated NEWS file.
0.017_02 2013-07-20
[ Bug Fixes ]
- Further changes for Perl 5.6.x support.
[ Other ]
- Hopefully improved workaround for missing B::perlstring() using
Data::Dumper instead of quotemeta().
Peter Rabbitson++
0.017_01 2013-07-19
[ Bug Fixes ]
- Work around lack of B::perlstring() function in Perl 5.6.x.
[ Documentation ]
- Fix typo in Types::Standard 'regular exception' -> 'regular expression'.
Mark Stosberg++
<https://github.com/tobyink/p5-type-tiny/pull/4>
- Give an example of the default error messages thrown by Type::Tiny.
- Improve examples of custom type constraint error message in Type::Utils
and Type::Tiny::Manual::Libraries.
Fixes RT#86892.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=86892>
[ Other ]
- Updated: Eval::TypeTiny now supports lexical subs under Perl 5.18.
0.016 2013-07-16
[ Documentation ]
- Add some pod links.
- Updated NEWS file.
0.015_05 2013-07-15
[ Packaging ]
- Experimentally drop required version of Perl from 5.8.1 to 5.6.1. I've
not been able to extensively test Type-Tiny on Perl 5.6.x, but I believe
it should mostly work. (The only feature that seems unlikely to work is
non-ASCII names for type constraints and coercions.)
[ Other ]
- Stop monkey-patching Moose::Meta::TypeContraint; it's not necessary and
has never been documented.
0.015_04 2013-07-13
[ Documentation ]
- Clarify when inlining via Sub::Quote may be less efficient than
hand-written inlining.
Fixes RT#86893.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=86893>
- Mention in Type::Tiny::Manual::Libraries that the `extends` function is
no longer exported by default; update example code.
Fixes RT#86813.
Pierre Masci++
<https://rt.cpan.org/Public/Bug/Display.html?id=86813>
<https://github.com/tobyink/p5-type-tiny/pull/2>
[ Other ]
- Allow an inline_as block to return a list of strings (which are
implictly joined with &&); allow the first item on the list to be undef,
which is treated as the inlined parent type constraint.
Fixes RT#86891.
Tim Bunce++
<https://rt.cpan.org/Public/Bug/Display.html?id=86891>
0.015_03 2013-07-08
- Added: Implement TIESCALAR, TIEARRAY and TIEHASH methods for Type::Tiny;
this improves Type::Tie integration.
- Slight speed improvements for `compile_match_on_type`.
- The `dwim_type` function now prioritizes lookups within the caller
class' type registry over Types::Standard's built-in types.
0.015_02 2013-07-06
- Better test cases for `dwim_type`.
- Improvements to DWIMness of Type::Parser for the benefit of `dwim_type`.
0.015_01 2013-07-05
- Added: Type::Utils now provides a `dwim_type` function; this is powered
by a hidden Type::Registry::DWIM package.
- Type::Parser can now pull in types from MooseX::Types libraries
properly.
0.014 2013-06-28
[ Documentation ]
- Updated NEWS file.
0.013_01 2013-06-27
[ BACK COMPAT ]
- Type::Parser functions no longer accept an arrayref of tokens, as they
expect to pull tokens from a stream as required.
- Type::Parser no longer provides a `tokens` function as it no longer
pre-emptively tokenizes the whole string it is given.
[ Other ]
- Added: Type::Parser now provides a `extract_type` function which parses
a type constraint expression from the head of a string and returns a
Type::Tiny object, plus the tail of the string. (This is designed to
make it easier to use Type::Parser to parse things like function
signatures.)
- Type::Parser's tokenization is now done on a pull basis, allowing
one-pass building of the AST.
0.012 2013-06-25
[ Documentation ]
- Updated NEWS file.
0.011_03 2013-06-25
[ Bug Fixes ]
- Type::Tiny now overloads `cmp`. Necessary because Mouse does a sort on
type constraints in a union, and overload's fallback doesn't seem to
cover `cmp` on Perl prior to 5.12.
0.011_02 2013-06-25
[ Bug Fixes ]
- Types::Standard 0.009_02 stopped including 'library' attribute in its
types, and thus broke MooX::late. Type::Library modified to make
'library' attribute more automatic, and less reliant on Type::Utils to
do the right thing.
Graham Knop++
0.011_01 2013-06-25
[ Bug Fixes ]
- B::SPECIAL-related fix.
Fixes RT#86383.
Peter Flanigan++
<https://rt.cpan.org/Public/Bug/Display.html?id=86383>
- Unions of Type::Tiny and Mouse::Meta::TypeConstraints now work properly.
This makes Type::Tiny and MouseX::Types play nice together (much like
Type::Tiny already plays nice with MooseX::Types).
[ Other ]
- Cleanups within Type::Coercion. Necessary because in some places the
entire type_coercion_map (including conversion coderefs) was passed
through Types::Standard::to_TypeTiny, when really only the type
constraints should have been.
- Types::Standard::to_TypeTiny now accepts any object implementing the
Type::API::Constraint or Type::API::Constraint::Coercion interfaces. As
Mouse::Meta::TypeConstraint implements this interface, specific support
for importing Mouse types has been dropped; the generic Type::API import
'just works' for Mouse types.
- Types::Standard::to_TypeTiny now accepts unblessed coderefs and converts
them to type constraints. This allows things like `Int & sub { $_ < 10
}` to work.
0.010 2013-06-24
[ Documentation ]
- Updated NEWS file.
0.009_07 2013-06-24
[ Test Suite ]
- Make rt86172.t an 'xt' test case because it's causing random CPAN
testers failures unrelated to the feature it's supposed to be testing.
<http://purl.org/NET/cpan-uri/rt/ticket/86172>
- More test cases for interacting with MooseX::Types type constraints.
[ Other ]
- If a Type::Tiny object is instantiated with a Sub::Quote quoted
constraint coderef, and no inlined coderef, then Type::Tiny will use
Sub::Quote to make an inlined coderef.
- Subclasses of Type::Tiny reject 'inlined' coderef, just like they
already reject 'constraint' coderef.
- Type::Params no longer uses Type::Utils.
- Types::Standard::to_TypeTiny now sets 'display_name' instead of 'name'
on generated type constraints.
0.009_06 2013-06-23
[ Bug Fixes ]
- Careful calling the DOES method (it doesn't exist in Perl 5.8).
0.009_05 2013-06-23
[ Bug Fixes ]
- Type::Registry does the AUTOLOAD thing, so ought to provide a DESTROY
method.
0.009_04 2013-06-23
[ Bug Fixes ]
- Type::Tiny::Class shouldn't completely trust @ISA when establishing
parent class heirarchies.
[ Other ]
- Constructors for Type::Tiny subclasses no longer accept the 'constraint'
parameter; it doesn't make sense.
- Updated: Support Type::API interfaces.
0.009_03 2013-06-22
[ Bug Fixes ]
- Fix Types::Standard compilation errors under Perl 5.8.x.
0.009_02 2013-06-22
[ REGRESSIONS ]
- Types::Standard types no longer have 'library' attribute set; this
subtly breaks Moo type inflation, and breaks the MooX::late test suite
which relies on type inflation working correctly.
[ Bug Fixes ]
- Fix for compiled_checks for type constraints inheriting from
Type::Tiny::Class, etc.
Richard Simões++
[ Other ]
- Types::Standard no longer uses Type::Utils.
- Various minor optimizations for Eval::TypeTiny, Type::Tiny, etc.
0.009_01 2013-06-21
[ Bug Fixes ]
- Fix error messages from type constraints with null constraint coderefs.
[ Other ]
- Added: Reply::Plugin::TypeTiny.
0.008 2013-06-21
[ Documentation ]
- Updated NEWS file.
0.007_10 2013-06-21
[ Bug Fixes ]
- Fixed many small parsing bugs in Type::Parser.
- MooseX::Types objects used in Type::Tiny::Union,
Type::Tiny::Intersection and parameterized Type::Tiny type constraints
would break in some circumstances, as Types::TypeTiny::to_TypeTiny was
failing to convert them to native Type::Tiny type constraints.
Fixes RT#86303.
<https://rt.cpan.org/Ticket/Display.html?id=86303>
[ Documentation ]
- Document status of Type::Registry.
[ Test Suite ]
- Add test cases for Type::Parser.
- Better test cases for Type::Registry.
[ Other ]
- Added: Type::Parser now exports a _std_eval function useful for testing.
- Improved error messages from Type::Parser.
- Type::Parser now supports parentheses in its DSL.
0.007_09 2013-06-18
[ Bug Fixes ]
- Fix problems inlining Dict deep coercions where the target constraint
could not be inlined.
Fixes RT#86233.
Vyacheslav Matyukhin++
<https://rt.cpan.org/Public/Bug/Display.html?id=86233>
- Fix unintuitive Dict deep coercions.
Fixes RT#86239.
Vyacheslav Matyukhin++
<https://rt.cpan.org/Public/Bug/Display.html?id=86239>
[ Test Suite ]
- Bundle various tests for deep Dict coercions.
Vyacheslav Matyukhin++
0.007_08 2013-06-17
[ Bug Fixes ]
- Fix problem with interaction between constraints, coercions, and Moose
classes that inherit from Moo classes.
Fixes RT#86172.
Peter Flanigan++
<https://rt.cpan.org/Public/Bug/Display.html?id=86172>
[ Test Suite ]
- Bundle test for interaction between constraints, coercions, and Moose
classes that inherit from Moo classes.
Peter Flanigan++
0.007_07 2013-06-16
[ Bug Fixes ]
- Partly roll back prototype changes. Now we use `;$` for Perl since 5.14,
but `;@`, for older Perls that don't support `;$` so well.
0.007_06 2013-06-16
[ BACK COMPAT ]
- Better prototypes (was `;@`, now `;$`) for parameterizable type
'constants' exported by type libraries.
Matt S Trout++
- Type::Utils no longer exports 'extends' by default.
[ Documentation ]
- Document the evaluation environment used by Eval::TypeTiny.
- Rearranged documentation for Type::Utils, avoiding previous split into
Moose-like and non-Moose-like functions.
[ Other ]
- Added: Type::Exception is now capable of supplying stack traces
(requires Devel::StackTrace).
- Exceptions thrown for Moo isa/coerce now indicate which attribute was
involved.
0.007_05 2013-06-12
[ Documentation ]
- Mention Scalar::Does and Type::Tie in manual.
- Vastly improved documentation for Type::Utils.
- Vastly improved documentation for Types::Standard.
[ Test Suite ]
- Added test cases for InstanceOf, ConsumerOf, HasMethods and Enum types
defined by Types::Standard.
[ Other ]
- Added: Add match_on_type and compile_match_on_type to Type::Utils.
- Support '0' and '1' as shortcuts for Optional[Any] and Any in
Type::Params. (Not documented yet.)
0.007_04 2013-06-09
[ Bug Fixes ]
- Overloading of `$type eq $type` now works in Perl 5.8.
Fixes RT#85895.
Vyacheslav Matyukhin++
<https://rt.cpan.org/Public/Bug/Display.html?id=85895>
- The combination of Dict, Optional and coercions seems to have been
broken in certain circumstances.
Fixes RT#86001.
Diab Jerius++
<https://rt.cpan.org/Ticket/Display.html?id=86001>
0.007_03 2013-06-08
[ Bug Fixes ]
- Inlining of certain deep Dict, Tuple and Map coercions was broken, but
Type::Params attempted to inline them anyway, leading to death.
Fixes RT#85911.
Diab Jerius++
<https://rt.cpan.org/Public/Bug/Display.html?id=85911>
[ Documentation ]
- Better document Type::Tiny's 'parents' method which differs from the
Moose method of the same name.
0.007_02 2013-06-04
[ Documentation ]
- Improvements to Type::Tiny::Manual.
- Improvements to Type::Tiny::Manual::Params, including rewritten manual
processing section, and processing type constraints in function
signatures via Function::Parameters/Attribute::Constract.
[ Test Suite ]
- Test cases for usage with Function::Parameters.
[ Other ]
- Added: New constraints added to Types::Standard: InstanceOf, ConsumerOf,
HasMethods and Enum.
Graham Knop++
- Allow constraint_generators (for parameterizable type constraints) to
return full Type::Tiny objects instead of plain coderefs.
- Drop use of Carp in Type::Parser.
- Type::Tiny::Class types now have an automatically calculated parent type
constraint based on @ISA.
- Type::Tiny::Duck types now have a parent type constraint of
Types::Standard::Object.
- Type::Tiny::Enum types now have a parent type constraint of
Types::Standard::Str.
- Type::Tiny::Intersection types now have an arbitrary parent type
constraint.
- Type::Tiny::Role types now have a parent type constraint of
Types::Standard::Object.
- Type::Tiny::Union types now have an automatically calculated parent type
constraint based on the most specific common parent type constraint.
0.007_01 2013-06-01 Happy birthday to me...
[ BACK COMPAT ]
- Types::Standard's Num constraint is now a subtype of either LaxNum and
StrictNum (depending on environment).
[ Bug Fixes ]
- Fix $VERSION defined in Type::Library.
[ Packaging ]
- Generate README from Type::Tiny::Manual instead of Type::Tiny.
[ Other ]
- Added: Type::Parser.
- Added: Types::Standard now has LaxNum/StrictNum type constraints.
- Implemented Types::TypeTiny->meta->get_type.
- Re-introduce Type::Registry, with improved parsing thanks to
Type::Parser.
0.006 2013-05-28
[ Bug Fixes ]
- Exporter::TypeTiny::mkopt_hash now works.
0.005_08 2013-05-28
[ Test Suite ]
- Add 00-begin.t.
- Rearrange test cases
- 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
[ Bug Fixes ]
- Assertions using the assert_return pattern were triggering FATAL
warnings when inlined with Sub::Quote. Inlined assertions are now
prefixed with 'no warnings "void";'.
[ Documentation ]
- Add pure-Perl Mouse to examples/benchmark-constraints.pl.
0.005_06 2013-05-26
[ Bug Fixes ]
- Fix StrMatch to properly support regexps containing slashes.
[ Other ]
- Fold Types::Standard::DeepCoercion into Types::Standard.
0.005_05 2013-05-24
[ Documentation ]
- Suggest newer version of Validation::Class.
[ Other ]
- Added: Type::Tiny now has an assert_return method, which is used in most
places in preference to assert_valid.
- Fix warnings under Perl 5.18.
- Removed: Removed Type::Registry from the release; it will return at a
later date.
0.005_04 2013-05-17
[ Bug Fixes ]
- Fixed bug in non-inlined code for Types::Standard::MkOpt.
[ Other ]
- Added: Type::Exception::Compilation.
- 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.
- Deep explanations for Types::Standard::{Map,Maybe,Ref,Dict,Tuple} type
constraint assertion failures.
- 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
- Many error conditions now throw exception objects instead of string
error messages.
- Removed: Bytes and Chars type constraints removed from Types::Standard.
- Removed: Decode and Encode coercions removed from Types::Standard.
0.005_02 2013-05-14
[ Documentation ]
- Fix a typo in declare_coercion in Type::Tiny::Manual::Coercions.
Vyacheslav Matyukhin++
- Link to Type::Tiny::Manual::Libraries instead of non-existing
Type::Tiny::Intro.
Vyacheslav Matyukhin++
0.005_01 2013-05-07
[ Bug Fixes ]
- Type::Library should require Perl 5.8.1, not 5.8.3.
[ Other ]
- Added: ArrayLike type added to Types::TypeTiny.
- Added: Type::Registry.
0.004 2013-05-06
[ Bug Fixes ]
- Eval::Closure now strips line breaks and other unsavoury characters from
descriptions.
[ Other ]
- 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.
- Improve Type::Coercion documentation.
[ Other ]
- 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
- Improvements to to_TypeTiny function, including accepting
Validation::Class::Simple objects.
0.003_14 2013-05-03
0.003_13 2013-05-03
[ Bug Fixes ]
- Don't crash in old versions of Moose that have no
Class::MOP::_definition_context() function.
[ Documentation ]
- Fix typo in Type::Params documentation.
Diab Jerius++
<https://bitbucket.org/tobyink/p5-type-tiny/pull-request/1/fix-typo-in-d
ocs/diff>
[ Test Suite ]
- BAIL_OUT in test suite if 00-compile.t or 01-api.t fail.
[ Other ]
- Better documentation and tests of Moose/Mouse-compatible API.
0.003_12 2013-05-01
[ Bug Fixes ]
- Sane behaviour for Types::Standard's 'slurpy' function when it appears
mid-list.
[ Other ]
- 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.
Vyacheslav Matyukhin++
<http://play-perl.org/quest/517efcef53a418983f000012>
0.003_11 2013-04-30
[ Test Suite ]
- Test cases for Eval::TypeTiny.
[ Other ]
- Automatic coercion for parameterized Dict will no longer drop key/value
pairs to force a coercion.
Vyacheslav Matyukhin++
<http://play-perl.org/quest/51682ae05efa74c95c00001e>
- Automatic coercion for parameterized Tuple will no longer drop values to
force a coercion.
Vyacheslav Matyukhin++
<http://play-perl.org/quest/51682ae05efa74c95c00001e>
0.003_10 2013-04-29
[ Documentation ]
- Improve Exporter::TypeTiny documentation.
- Improve advice on inlining type constraints and coercions.
[ Packaging ]
- Bump version of Test::More dependency fom 0.88 to 0.96.
[ Other ]
- Added: Bundle Type::Params, which had previously appeared on CPAN in a
separate developer release.
- Added: New module, Eval::TypeTiny
- Added: Type::Tiny::SUPPORT_SMARTMATCH constant.
- General code tidy-up.
- Much of the stringy eval stuff has been factored out into
Eval::TypeTiny.
0.003_09 2013-04-28
[ Documentation ]
- Document usage with Params::Check and Object::Accessor.
[ Other ]
- Added: 'Tied' type constraint added to Types::Standard.
- 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
[ Documentation ]
- More Exporter::TypeTiny docs, including usage with
Sub::Exporter::Lexical.
[ Test Suite ]
- Add test case using Exporter::TypeTiny with Sub::Exporter::Lexical.
[ Other ]
- 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
[ Bug Fixes ]
- Fix method conflicts when exporting type constraints to roles.
Kevin Dawson++
[ Documentation ]
- Document usage with Class::InsideOut.
- Minor improvements to manual.
0.003_06 2013-04-25
[ Documentation ]
- Add lots of stuff to Type::Tiny::Manual::UsingWithMouse.
- Document deep coercions (feature added in 0.003_01).
[ Other ]
- 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.)
- Types::TypeTiny::to_TypeTiny can now coerce from a
Mouse::Meta::TypeConstraint.
- Various minor changes to Exporter::TypeTiny to make it more
Sub::Exporter compatible.
0.003_05 2013-04-19
[ Bug Fixes ]
- 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 ]
- Create a new manual page Type::Tiny::Manual::Coercions.
- Document Exporter::TypeTiny.
[ Other ]
- Added: Chars and Bytes types added to Types::Standard.
- Added: Encode, Decode, Join and Split coercions added to
Types::Standard.
- Added: Type::Tiny::Class now has a plus_constructors method.
- Allow coercions to accept parameters.
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
- Added: 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.
[ Other ]
- Avoid unnecessarily regenerating parameterized type constraints.
0.003_01 2013-04-16
[ Documentation ]
- Link from Test::TypeTiny to Test::Deep::Type.
[ Other ]
- 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.
- Allow subtypes to inherit coercions from their parent type constraint.
(They do not by default.)
- 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].
- Overload "+" operator for Type::Coercion and Type::Tiny allows coercions
to be added to each other, and added to type constraints.
- Type::Library packages can now include "standalone" Type::Coercion
objects, not attached to a type constraint. These can be exported on
request.
0.002 2013-04-26
[ Bug Fixes ]
- Fix method conflicts when exporting type constraints to roles.
Kevin Dawson++
- 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.
[ Other ]
- Added: Chars and Bytes types added to Types::Standard.
- Avoid unnecessarily regenerating parameterized type constraints.
- Make Type::Tiny's has_coercion method more DWIM.
0.001 2013-04-15 First public release
[ Bug Fixes ]
- Some inline code assumed that it would be compiled in a package that had
'blessed' imported.
- Some inline code wasn't wrapped in parentheses.
[ Documentation ]
- Minor improvements.
[ Test Suite ]
- More test cases for Optional[`a] within Dict[`a].
[ Other ]
- 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
[ Bug Fixes ]
- Fix prototype for Type::Utils::as.
[ Other ]
- 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
[ Bug Fixes ]
- Fix incorrect Test::Requires line in 'mouse-coercion.t'.
[ Other ]
- Improvements to has_coercion_for_{type,value} from Type::Coercion.
0.000_09 2013-04-08
[ Documentation ]
- Bundle benchmarking scripts.
- Fill in the Usage with Moose section of the fine manual.
[ Packaging ]
- Tidy up the 'examples' directory.
[ Other ]
- When generating Moose/Mouse constraints from Type::Tiny objects, prefer
to generate anonymous ones.
0.000_08 2013-04-07
- 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.
- Types::TypeTiny::to_TypeTiny can be used to coerce a Moose type
constraint object to Type::Tiny.
0.000_07 2013-04-06
[ Bug Fixes ]
- Fix inlining for Type::Tiny::Intersection.
- Fix inlining of certain conditionals into coercion code.
- Types within libraries, if accessed directly rather than exported, did
not accept parameters.
[ Documentation ]
- Document constructor for Type::Tiny::Class.
[ Test Suite ]
- More test cases.
[ Other ]
- Added: New module Type::Coercion::Union automatically handles coercion
to union types.
0.000_06 2013-04-05
[ Documentation ]
- Improved documentation of parameterization attributes.
- Section in manual comparing Type::Tiny with various other type library
frameworks.
- Using Type::Tiny with Moo added to manual.
[ Test Suite ]
- More test cases.
[ Other ]
- Added: Type::Tiny now has an 'inline_assert' function.
- 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.
- In Moo, type assertions and coercions are now inlined.
Matt S Trout++
- Monkey patch Moose::Meta::TypeConstraint to be able to retrieve
Type::Tiny constraints from inflated Moose constraints.
0.000_05 2013-04-04
[ BACK COMPAT ]
- Rename Type::Standard module to Types::Standard.
[ Bug Fixes ]
- Fix is_parameterized method.
- Get Mouse coercions working.
[ Test Suite ]
- Factor out some functions from test suite into a new module:
Test::TypeTiny.
- Rearrange test suite slightly.
[ Other ]
- Allow null type constraints with no parent type (e.g. 'Any' in
Types::Standard) to be inlined.
- Don't die with full stack trace.
- 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
- Added: Finally implement Type::Coercion's has_coercion_for_type method.
- Added: Type::Tiny equals/is_subtype_of/is_supertype_of/is_a_type_of
methods for type constraint comparisons.
- Added: 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
[ Bug Fixes ]
- Fix the crashing t/moo-inflation.t test case.
[ Documentation ]
- Document Type::Coercion's overloading.
[ Test Suite ]
- Add test cases for ScalarRef[`a].
[ Other ]
- All of Type::Standard cannow be inlined.
- 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
[ Bug Fixes ]
- Anchor enum regexps to beginning and end of string.
[ Documentation ]
- Beginnings of Type::Tiny::Manual.
[ Other ]
- Added: StrMatch added to Type::Standard.
- use Type::Library -base
- use Type::Library -declare
0.000_01 2013-04-02 Developer preview