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.007_005	2025-03-07

 [ Documentation ]
 - Minor fixes and improvements for `Type::Params` documentation.

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++
   <https://github.com/tobyink/p5-type-tiny/pull/145>
 - 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++
   <https://github.com/tobyink/p5-type-tiny/pull/155>
 - 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++
   <https://github.com/tobyink/p5-type-tiny/pull/161>

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.
   <https://metacpan.org/release/TOBYINK/Type-Tiny-2.002001/source/Changes>

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.
   <https://github.com/tobyink/p5-type-tiny/issues/129>

 [ 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.
   <https://github.com/tobyink/p5-type-tiny/issues/133>
 - Added: Type::Tiny::Bitfield class.
   <https://github.com/tobyink/p5-type-tiny/issues/131>
 - Added: Types::TypeTiny::BoolLike type constraint.
   <https://github.com/tobyink/p5-type-tiny/issues/137>

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
