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 `@{}`.
|
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.
|