./devel/p5-Type-Tiny, Tiny, yet Moo(se)-compatible type constraint

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.006000nb1, Package name: p5-Type-Tiny-2.006000nb1, Maintainer: pkgsrc-users

Type::Tiny is a tiny class for creating Moose-like type constraint
objects which are compatible with Moo, Moose and Mouse.

Maybe now we won't need to have separate MooseX, MouseX and MooX
versions of everything? We can but hope...


Required to run:
[lang/perl5] [devel/p5-Exporter-Tiny]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)

Filesize: 466.646 KB

Version history: (Expand)


CVS history: (Expand)


   2024-11-16 13:08:07 by Thomas Klausner | Files touched by this commit (2504)
Log message:
*: recursive bump for perl 5.40
   2024-10-07 22:15:40 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
p5-Type-Tiny: update to 2.006000.

2024-09-29 Type-Tiny version 2.006000 released!

 - Improvements to `tie( VAR, TYPE)`.
 - Fixed compatibility with Perl 5.41.x.
   2023-07-06 11:43:03 by Thomas Klausner | Files touched by this commit (2483)
Log message:
*: recursive bump for perl 5.38
   2023-06-30 13:50:04 by Wen Heping | Files touched by this commit (2)
Log message:
Update to 2.004000

Upstream changes:
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>
   2023-01-27 01:06:27 by Wen Heping | Files touched by this commit (2)
Log message:
Update to 2.002001
Update DEPENDS

Upstream changes:
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 `@{}`.
   2022-10-01 17:44:25 by Wen Heping | Files touched by this commit (2)
Log message:
Update to 2.000001
Update DEPENDS

Upstream changes:
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.
   2022-06-28 13:38:00 by Thomas Klausner | Files touched by this commit (3952)
Log message:
*: recursive bump for perl 5.36
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip