Type-Tiny ========= Created: 2013-03-23 Home page: Home page: Bug tracker: Maintainer: Toby Inkster (TOBYINK) 2.007_004 2025-03-07 [ Bug Fixes ] - Avoid the `//` operator in `Type::Params::Parameter` as it isn't supported in Perl 5.8. Fixes bug introduced in 2.007_003. - Use `List::Util::sum` instead of `List::Util::sum0` which doesn't exist in some older versions of List::Util. Fixes bug introduced in 2.007_003. [ Documentation ] - Major rewrite of `Type::Params` documentation to prioritize `signature_for` and modern Perl, and some corresponding adjustments to `Type::Tiny::Manual`. [ Other ] - The `goto_next` option in `Type::Params` is now just called `next`. The original name is still supported for backwards compatibility. 2.007_003 2025-03-06 [ Documentation ] - Minor pod fixed and improvements. - Update copyright dates to 2025. [ Other ] - Added: New Type::Params feature allow_dash automatically supports `-foo` as an alias for `foo`. - Added: New Type::Params feature list_to_named automatically extracts named parameters from a list of positional arguments. - Added: Type::Params optionally exports two shortcut keywords: `signature_for_func` and `signature_for_method`. The exact behaviour of these may change in the future. 2.007_002 2024-12-23 [ Documentation ] - Update most examples to use features (postfix derefs, sub signatures) from more modern versions of Perl that allow for cleaner, tidier code. 2.007_001 2024-11-24 [ Bug Fixes ] - If Perl has been built with -Dusequadmath then cowardly refuse to use Type::Tiny::XS's implementation of is_Int. Andreas J König++ 2.007_000 2024-10-20 - Added: The `signature_for` function in Type::Params now includes most of the functionality of Return::Type (a separate CPAN distribution not bundled with Type::Tiny). - Added: The `signature_for` function in Type::Params now returns a value, though in most contexts you'll probably want to call it in void context anyway. 2.006000 2024-09-24 [ Documentation ] - Update NEWS. [ Packaging ] - Repackage as stable. (See also the changelog for 2.005_001 and 2.005_002.) 2.005_002 2024-09-08 [ Bug Fixes ] - Fix uninitialized warning messages from Error::TypeTiny when processing very shallow stack traces. Diab Jerius++ [ Documentation ] - Fix minor typo in documentation for named parameters in `Type::Params`. - Update copyright notices in files to 2024. [ Other ] - Improved initialization of variables when they are tied to a type constraint; initialization to explicit values will work even when not tied via the `ttie` wrapper function; if no explicit values are provided, tied scalars will be initialized to the type's `type_default`. So for example, `tie( my $title, Str )` will initialize `$title` to the empty string instead of undef, and `tie( my $title, Str, 'Foo' )` will initialize the variable to 'Foo' as was already implied by documentation. Daniel Mita++ XSven++ - Inlining `Int` now calls the XS implementation when available. (The speed improvement is negligible, but it also may result in small memory savings.) Zaki Mughal++ - Removed: Support for the ${^TYPE_PARAMS_MULTISIG} global variable has been dropped. Using this global variable was deprecated in trial version 1.999_010 and stable version 2.000000, both of which are nearly two years old. Use ${^_TYPE_PARAMS_MULTISIG} instead. 2.005_001 2024-09-07 [ Documentation ] - Fixes for various typos. Yoshikazu Sawa++ - Improve documentation for the initialization of the `coercion` attribute for `Type::Tiny`. Diab Jerius++ [ Other ] - Updated: Smartmatch discontinued beginning perl-5.41.3; Type::Tiny will no longer attempt to support smartmatch if the Perl version is too high. James E Keenan++ 2.004000 2023-04-05 [ Documentation ] - Document that the `BoolLike` type is unstable. - Minor pod changes to Types::Standard. [ Packaging ] - Summarized the change log for versions prior to Type::Tiny 2.000000. If you need more information, see the Changes file included with Type::Tiny 2.002001. 2.003_000 2023-04-02 [ Documentation ] - Add SYNOPSIS for Type::Tiny::Class. - Add SYNOPSIS for Type::Tiny::Duck. - Add SYNOPSIS for Type::Tiny::Enum. - Add SYNOPSIS for Type::Tiny::Intersection. - Add SYNOPSIS for Type::Tiny::Role. - Add SYNOPSIS for Type::Tiny::Union. - Add documentation and tests for the combination of the `goto_next` and `multiple` options when used with `signature_for`. - Add example of `signature_for` applying a signature to multiple functions at once. - Document changes to `make_immutable` in Type::Library v2.x. [ Other ] - Added: Type::Tiny now has an `exception_class` attribute, allowing a type to throw exceptions using a custom class. These classes should usually be a subclass of Error::TypeTiny::Assertion. - Added: Type::Tiny::Bitfield class. - Added: Types::TypeTiny::BoolLike type constraint. 2.002001 2023-01-20 [ Bug Fixes ] - Bugfix for Type::Tie+Storable issue affecting 32-bit builds of Perl. 2.002000 2023-01-01 Happy Fibonacci Day! 1/1/23 [ Bug Fixes ] - When Foo is a parameterized StrMatch type, ensure is_Foo always returns a single boolean value, even in list context. Diab Jerius++ [ Documentation ] - Update NEWS. - Update copyright dates to 2023. [ Packaging ] - Repackage as stable. 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 1.999_012 2022-09-21 Type::Tiny 2.0 Preview M 1.999_011 2022-09-20 Type::Tiny 2.0 Preview L 1.999_010 2022-09-18 Type::Tiny 2.0 Preview K 1.999_009 2022-09-16 Type::Tiny 2.0 Preview J 1.999_008 2022-09-14 Type::Tiny 2.0 Preview I 1.999_007 2022-09-13 Type::Tiny 2.0 Preview H 1.999_006 2022-09-12 Type::Tiny 2.0 Preview G 1.999_005 2022-09-11 Type::Tiny 2.0 Preview F 1.999_004 2022-09-09 Type::Tiny 2.0 Preview E 1.999_003 2022-09-09 Type::Tiny 2.0 Preview D 1.999_002 2022-09-07 Type::Tiny 2.0 Preview C 1.999_001 2022-09-05 Type::Tiny 2.0 Preview B 1.999_000 2022-09-04 Type::Tiny 2.0 Preview A 1.016010 2022-08-31 1.016009 2022-08-27 1.016008 2022-08-14 1.016007 2022-08-04 1.016006 2022-07-25 1.016005 2022-07-23 1.016004 2022-07-22 1.016003 2022-07-22 1.016002 2022-07-19 1.016001 2022-07-18 1.016000 2022-07-16 1.015_003 2022-07-16 1.015_002 2022-07-16 1.015_001 2022-07-16 1.015_000 2022-07-16 1.014000 2022-06-27 1.013_001 2022-06-23 1.013_000 2022-06-09 1.012005 2022-06-07 1.012004 2021-07-29 1.012003 2021-05-09 1.012002 2021-05-02 1.012001 2021-01-10 1.012000 2020-10-28 1.011_011 2020-10-16 1.011_010 2020-10-16 1.011_009 2020-10-09 1.011_008 2020-10-07 1.011_007 2020-10-06 1.011_006 2020-10-02 1.011_005 2020-09-30 1.011_004 2020-09-30 1.011_003 2020-09-25 1.011_002 2020-09-22 1.011_001 2020-09-21 1.011_000 2020-09-15 1.010006 2020-09-04 1.010005 2020-08-26 1.010004 2020-08-18 1.010003 2020-08-08 The Crazy 88 1.010002 2020-05-01 Mayday 1.010001 2020-03-16 1.010000 2020-02-19 1.009_003 2020-02-11 1.009_002 2020-02-11 1.009_001 2020-02-06 1.009_000 2020-02-04 1.008005 2020-01-30 1.008004 2020-01-29 1.008003 2020-01-13 1.008002 2020-01-11 1.008001 2019-12-28 1.008000 2019-12-11 1.007_015 2019-12-10 1.007_014 2019-12-10 1.007_013 2019-12-10 1.007_012 2019-12-10 1.007_011 2019-12-09 1.007_010 2019-12-08 1.007_009 2019-12-06 1.007_008 2019-12-05 1.007_007 2019-12-03 1.007_006 2019-12-02 1.007_005 2019-12-01 1.007_004 2019-11-30 1.007_003 2019-11-27 1.007_002 2019-11-26 1.007_001 2019-11-23 1.007_000 2019-11-17 1.006000 2019-11-12 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 1.004003 2019-01-08 1.004002 2018-07-29 1.004001 2018-07-28 1.004000 2018-07-27 1.003_010 2018-07-25 1.003_009 2018-07-24 1.003_008 2018-07-16 1.003_007 2018-07-12 1.003_006 2018-07-08 1.003_005 2018-07-05 1.003_004 2018-06-12 1.003_003 2018-06-10 1.003_002 2018-05-28 1.003_001 2018-05-22 1.003_000 2018-05-20 1.002001 2017-06-08 1.002000 2017-06-01 1.001_016 2017-05-30 1.001_015 2017-05-20 1.001_014 2017-05-19 1.001_013 2017-05-18 Kittiversary 1.001_012 2017-05-17 1.001_011 2017-05-17 1.001_010 2017-05-16 Puppiversary 1.001_009 2017-05-13 1.001_008 2017-05-10 1.001_007 2017-05-04 May the fourth be with you 1.001_006 2017-04-30 1.001_005 2017-04-19 1.001_004 2017-02-06 1.001_003 2017-02-02 1.001_002 2014-10-25 1.001_001 2014-09-19 1.001_000 2014-09-07 1.000006 2017-01-30 1.000005 2014-10-25 1.000004 2014-09-02 1.000003 2014-08-28 1.000002 2014-08-18 1.000001 2014-08-18 1.000000 2014-08-16 Happy CPAN Day! 0.047_09 2014-08-12 0.047_08 2014-08-05 Sanity++ 0.047_07 2014-08-04 0.047_06 2014-07-31 What made the Queen go all ice crazy? 0.047_05 2014-07-29 Sanity++ 0.047_04 2014-07-28 The 98% Coverage Release 0.047_03 2014-07-26 The 96% Coverage Release 0.047_02 2014-07-23 The 92% Coverage Release 0.047_01 2014-07-21 The 87% Coverage Release 0.046 2014-07-18 0.045_05 2014-07-18 0.045_04 2014-07-15 0.045_03 2014-07-11 0.045_02 2014-07-10 0.045_01 2014-06-30 0.044 2014-06-03 0.043_05 2014-05-21 0.043_04 2014-05-21 0.043_03 2014-05-06 0.043_02 2014-04-11 0.043_01 2014-04-06 0.042 2014-04-02 0.041_04 2014-03-31 0.041_03 2014-03-28 0.041_02 2014-03-26 0.041_01 2014-03-17 0.040 2014-03-17 0.039_13 2014-03-15 0.039_12 2014-03-12 0.039_11 2014-03-11 0.039_10 2014-03-10 0.039_09 2014-02-25 0.039_08 2014-02-24 0.039_07 2014-02-17 0.039_06 2014-02-17 0.039_05 2014-02-15 0.039_04 2014-02-05 0.039_03 2014-02-05 0.039_02 2014-01-25 0.039_01 2014-01-21 0.038 2014-01-01 0.037_03 2013-12-30 0.037_02 2013-12-29 0.037_01 2013-12-24 0.036 2013-12-21 0.035_01 2013-12-17 0.034 2013-12-09 0.033_04 2013-12-06 0.033_03 2013-11-26 0.033_02 2013-11-26 0.033_01 2013-11-07 0.032 2013-11-05 Remember, remember the fifth of November 0.031_05 2013-11-04 0.031_04 2013-11-03 0.031_03 2013-11-03 0.031_02 2013-11-03 0.031_01 2013-10-28 0.030 2013-10-18 0.029_04 2013-10-17 0.029_03 2013-10-17 0.029_02 2013-10-11 0.029_01 2013-09-26 0.028 2013-09-26 0.027_09 2013-09-20 0.027_08 2013-09-19 0.027_07 2013-09-18 0.027_06 2013-09-18 0.027_05 2013-09-15 0.027_04 2013-09-09 0.027_03 2013-09-09 0.027_02 2013-09-08 0.027_01 2013-09-07 0.026 2013-09-05 0.025_03 2013-09-04 0.025_02 2013-09-02 0.025_01 2013-09-02 0.024 2013-08-27 0.023_03 2013-08-23 0.023_02 2013-08-23 0.023_01 2013-08-16 0.022 2013-08-06 0.021_04 2013-07-30 0.021_03 2013-07-30 0.021_02 2013-07-26 0.021_01 2013-07-24 0.020 2013-07-23 0.019_01 2013-07-23 0.018 2013-07-21 0.017_02 2013-07-20 0.017_01 2013-07-19 0.016 2013-07-16 0.015_05 2013-07-15 0.015_04 2013-07-13 0.015_03 2013-07-08 0.015_02 2013-07-06 0.015_01 2013-07-05 0.014 2013-06-28 0.013_01 2013-06-27 0.012 2013-06-25 0.011_03 2013-06-25 0.011_02 2013-06-25 0.011_01 2013-06-25 0.010 2013-06-24 0.009_07 2013-06-24 0.009_06 2013-06-23 0.009_05 2013-06-23 0.009_04 2013-06-23 0.009_03 2013-06-22 0.009_02 2013-06-22 0.009_01 2013-06-21 0.008 2013-06-21 0.007_10 2013-06-21 0.007_09 2013-06-18 0.007_08 2013-06-17 0.007_07 2013-06-16 0.007_06 2013-06-16 0.007_05 2013-06-12 0.007_04 2013-06-09 0.007_03 2013-06-08 0.007_02 2013-06-04 0.007_01 2013-06-01 Happy birthday to me... 0.006 2013-05-28 0.005_08 2013-05-28 0.005_07 2013-05-28 0.005_06 2013-05-26 0.005_05 2013-05-24 0.005_04 2013-05-17 0.005_03 2013-05-14 0.005_02 2013-05-14 0.005_01 2013-05-07 0.004 2013-05-06 0.003_16 2013-05-05 0.003_15 2013-05-03 0.003_14 2013-05-03 0.003_13 2013-05-03 0.003_12 2013-05-01 0.003_11 2013-04-30 0.003_10 2013-04-29 0.003_09 2013-04-28 0.003_08 2013-04-26 0.003_07 2013-04-26 0.003_06 2013-04-25 0.003_05 2013-04-19 0.003_04 2013-04-18 0.003_03 2013-04-17 0.003_02 2013-04-16 0.003_01 2013-04-16 0.002 2013-04-26 0.001 2013-04-15 First public release 0.000_12 2013-04-12 0.000_11 2013-04-11 0.000_10 2013-04-09 0.000_09 2013-04-08 0.000_08 2013-04-07 0.000_07 2013-04-06 0.000_06 2013-04-05 0.000_05 2013-04-04 0.000_04 2013-04-03 0.000_03 2013-04-03 0.000_02 2013-04-02 0.000_01 2013-04-02 Developer preview