|
Packit |
42cdad |
0.42 2017-11-04
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The Perl library claimed it provided types named LaxVersionStr and
|
|
Packit |
42cdad |
StrictVersionStr but they were really named LaxVersion and
|
|
Packit |
42cdad |
StrictVersion. The names have now been fixed to match the documentation, so
|
|
Packit |
42cdad |
they are LaxVersionStr and StrictVersionStr.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.41 2017-11-04
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed checks for whether a class is loaded in light of upcoming optimization
|
|
Packit |
42cdad |
in Perl 5.28. Fixed by Sprout (GH #12).
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.40 2017-08-03
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed more bugs with {any,object}_{can,does,isa}_type. When passed a glob
|
|
Packit |
42cdad |
(not a globref) they would die in their type check. On Perl 5.16 or earlier,
|
|
Packit |
42cdad |
passing a number to an any_* type would also die.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed subification overloading. If Sub::Quote was loaded, this would be
|
|
Packit |
42cdad |
used, but any environment variables needed for the closure would not be
|
|
Packit |
42cdad |
included. This broke enums, among other things.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.39 2017-08-02
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Many bug fixes and improves to the types created by
|
|
Packit |
42cdad |
{any,object}_{can,does,isa}_type. In some cases, an invalid value could
|
|
Packit |
42cdad |
cause an exception in type check itself. In other cases, a value which
|
|
Packit |
42cdad |
failed a type check would cause an exception when generating a message
|
|
Packit |
42cdad |
describing the failure. These cases have all been fixed.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The messages describing a failure for all of these types have been improved.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- You can now create anonymous *_does and *_isa types using the exports from
|
|
Packit |
42cdad |
Specio::Declare.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.38 2017-07-01
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Simplify checks for overloading to not call overload::Overloaded(). Just
|
|
Packit |
42cdad |
checking the return value of overload::Method() is sufficient.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.37 2017-05-09
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Possible fix for very weird failures seen under threaded Perls with some
|
|
Packit |
42cdad |
modules that use Specio.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.36 2017-02-19
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Inlined coercions would attempt to coerce for every type which matched the
|
|
Packit |
42cdad |
value given, instead of stopping after the first type. Fixed by Graham Knop
|
|
Packit |
42cdad |
(GH #11).
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Inlined coercions did not include the inline environment variables needed by
|
|
Packit |
42cdad |
the type from which the coercion was being performed. Fixed by Graham Knop
|
|
Packit |
42cdad |
(GH #8).
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- When you use the same type repeatedly as coderef (for example, as a
|
|
Packit |
42cdad |
constraint with Moo), it will only generated its subified form once, rather
|
|
Packit |
42cdad |
than regenerating it each time it is de-referenced.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added an API to Specio::Subs to allow you to combine type libraries and
|
|
Packit |
42cdad |
helper subs in one package for exporting. See the Specio::Exporter docs for
|
|
Packit |
42cdad |
more details.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.35 2017-02-12
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added Specio::Subs, a module which allows you to turn one or more library's
|
|
Packit |
42cdad |
types into subroutines like is_Int() and to_Int().
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added an inline_coercion method to Specio constraints.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.34 2017-01-29
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Packages with Specio::Exporter as their parent can now specify additional
|
|
Packit |
42cdad |
arbitrary subs to exporter. See the Specio::Exporter docs for details.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Importing the same library twice in a given package would throw an
|
|
Packit |
42cdad |
exception. The second attempt to import is now ignored.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added an alpha implementation of structured types. See
|
|
Packit |
42cdad |
Specio::Library::Structured for details.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.33 2017-01-24
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed a mistake in the SYNOPSIS for Specio::Declare. The example for the
|
|
Packit |
42cdad |
*_isa_type helpers was not correct.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed the alpha warning from the docs. This is being used by enough of my
|
|
Packit |
42cdad |
modules on CPAN that I don't plan on doing any big breaking changes without
|
|
Packit |
42cdad |
a deprecation first.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.32 2017-01-12
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed a bug in the inlining for types create by any_can_type() and
|
|
Packit |
42cdad |
object_can_type(). This inlining mostly worked by accident because of some
|
|
Packit |
42cdad |
List::Util XS magic, but this broke under the debugger. Reported by
|
|
Packit |
42cdad |
Christian Walde (GH #6) and Chan Wilson
|
|
Packit |
42cdad |
(https://github.com/houseabsolute/DateTime.pm/issues/49).
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.31 2016-11-05
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The stack trace contained by Specio::Exception objects no longer includes a
|
|
Packit |
42cdad |
stack frames for the Specio::Exception package.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Made the inline_environment() and description() methods public on type and
|
|
Packit |
42cdad |
coercion objects.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.30 2016-10-15
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fix a bug with the Sub::Quoted sub returned by $type->coercion_sub. If a
|
|
Packit |
42cdad |
type had more than one coercion, the generated sub could end up coercing the
|
|
Packit |
42cdad |
value to undef some of the time. Depending on hash key ordering, this could
|
|
Packit |
42cdad |
end up being a heisenbug that only occured some of the time.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.29 2016-10-09
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Doc Specio::PartialDump because you may want to use it as part of the
|
|
Packit |
42cdad |
failure message generation code for a type.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.28 2016-10-02
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added a Test::Specio module to provide helpers for testing Specio libraries.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed another bug with a subtype of special types and inlining.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.27 2016-10-01
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Cloning a type with coercions defined on it would cause an exception.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Creating a subtype of a special type created by *_isa_type, *_can_type, or
|
|
Packit |
42cdad |
*_does_type, or enum would die when trying to inline the type constraint.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed the never-documented Any type.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added documentation for each type in Specio::Library::Builtins.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.26 2016-09-24
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Require Role::Tiny 1.003003. This should fix the test failures some
|
|
Packit |
42cdad |
CPANTesters reported with this error:
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
Can't resolve method "???" overloading "&{}" in package
|
|
Packit |
42cdad |
"Specio::Constraint::Simple" at Specio::Constraint::Simple->new line 35.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.25 2016-09-04
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Calling {any,object}_{isa,does}_type repeatedly in a package with the same
|
|
Packit |
42cdad |
class or role name would die. These subs are now special-cased to simply
|
|
Packit |
42cdad |
return an existing type for the given name when they receive a single
|
|
Packit |
42cdad |
argument (the name of the class or role). This could come up if you had two
|
|
Packit |
42cdad |
attributes both of which required an object of the same type.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.24 2016-06-20
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fix a bizarre failure on Perl before 5.14. AFAICT this was a test problem,
|
|
Packit |
42cdad |
not a library problem.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.23 2016-06-20
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added intersection types.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.22 2016-06-18
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Require version.pm 0.83. I know 0.77 doesn't work but I'm not sure exactly
|
|
Packit |
42cdad |
which version fixed the problem, since I cannot install older
|
|
Packit |
42cdad |
versions. Reported by Slaven Rezic. RT #115418.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.21 2016-06-18
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Don't load Sub::Quote, but use it if it's already loaded. Since Moo uses it,
|
|
Packit |
42cdad |
this should make Specio constraints just work with Moo.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.20 2016-06-18
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed test dependency on namespace::autoclean.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.19 2016-06-17
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed dependency on Devel::PartialDump by making a copy of just the bits
|
|
Packit |
42cdad |
we need. Gross but effective.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.18 2016-06-15
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added union types.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- If a subtype's parent could be inlined and the subtype itself did not
|
|
Packit |
42cdad |
specify any additional constraints (inlinable or not), then the subtype was
|
|
Packit |
42cdad |
not being inlined, even though it could be.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- This distro now works with Perl 5.8 (though it was only tested with 5.8.8).
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.17 2016-06-01
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Change "use v5.10" to "use 5.010". The former appears to cause warnings on
|
|
Packit |
42cdad |
older Perls.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.16 2016-05-30
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Remove use of Class::Load and Module::Runtime.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.15 2016-05-30
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The Num and Int type now accepts numbers in scientific notation such as 1e10
|
|
Packit |
42cdad |
or -1.2e-5.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed various prereqs that weren't really needed.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added three new libraries, Specio::Library::String, ::Numeric, and
|
|
Packit |
42cdad |
::Perl. These provide additional commonly used string and numeric types, as
|
|
Packit |
42cdad |
well as some types related to Perl syntax.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.14 2016-05-22
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added an inline_assert method for constraint objects. This makes certain
|
|
Packit |
42cdad |
types of inlining tasks easier.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Parameterized constraint objects now have a default name based on the parent
|
|
Packit |
42cdad |
type and contained type.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Rewrote the code used for inlined types so that the generated inline code is
|
|
Packit |
42cdad |
optimized to check the most common cases first.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed a bug where two enum types could not be inlined together in the same
|
|
Packit |
42cdad |
sub.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.13 2016-05-15
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Parameterizing a type which generated inline parameterized constraints (like
|
|
Packit |
42cdad |
the ArrayRef and HashRef builtins) now dies if given a parameter which
|
|
Packit |
42cdad |
cannot itself be inlined. Mixing inlinable and non-inlinable constraints
|
|
Packit |
42cdad |
previously caused very confusing errors.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.12 2015-12-19
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed tests that failed if Moose wasn't installed. Reported by Karen
|
|
Packit |
42cdad |
Etheridge. RT #109247.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.11 2014-05-27
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Remove a Perl 5.14-ism.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.10 2014-05-26
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added Class::Method::Modifiers to prereqs.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Made Specio classes faster by inlining all accessors and constructors.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added support for Moo. Specio constraints now overloading sub-ification so
|
|
Packit |
42cdad |
you can pass them as "isa" values for Moo attributes. Also added a new
|
|
Packit |
42cdad |
$type->coercion_sub() method which returns a sub ref suitable for the
|
|
Packit |
42cdad |
"coerce" value. These all use Sub::Quote so that the returned sub refs can
|
|
Packit |
42cdad |
be inlined.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.09 2014-05-25
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Reimplemented entirely without Moose. This module now implements its own
|
|
Packit |
42cdad |
half-assed (really, more like eighth-assed) OO system.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
* TODO: Integrate cleanly with Moo and Moose.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
* TODO: Improve the internal OO system to do some eighth-assed inlining so
|
|
Packit |
42cdad |
creating type objects is faster.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.08 2013-06-08
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Removed the use of the encoding pragma from the tests. This pragma is
|
|
Packit |
42cdad |
deprecated in 5.18.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.07 2013-03-03
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Disabled the tests that rely on an as-yet-unreleased Moose. These were
|
|
Packit |
42cdad |
mostly disabled but some cpan testers boxes were set up in a way that made
|
|
Packit |
42cdad |
them run.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.06 2013-03-02
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Renamed Type to Specio.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.05 2012-10-14
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- This module didn't really need XS. It turns out that 5.10 added
|
|
Packit |
42cdad |
re::is_regexp() so we can use that instead. Thanks to Jesse Luehrs for
|
|
Packit |
42cdad |
pointing this out.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.04 2012-09-30
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added any_does_type and object_does_type declaration helpers. These check
|
|
Packit |
42cdad |
whether a class and/or object does a given role. They work with Moose,
|
|
Packit |
42cdad |
Mouse, and Role::Tiny.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Fixed implementation of any_isa_type and object_isa_type to match docs. If
|
|
Packit |
42cdad |
given more than one argument, the docs said they expected named parameters
|
|
Packit |
42cdad |
but internally the code expected positional parameters.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.03 2012-09-30
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Various hacks to make Specio::Constraint objects play nice with Moose. Needs
|
|
Packit |
42cdad |
changes to Moose to work properly, however.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The message generator sub is no longer called as a method. It is called as a
|
|
Packit |
42cdad |
sub so it doesn't receive the type as an argument.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The inline environment variable names used for each type are now
|
|
Packit |
42cdad |
unique. This means that types will not step on each other if you want to
|
|
Packit |
42cdad |
inline more than one type check in the same scope.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Non-inlined type coercions were completely broken.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Added $type->is_same_type_as and $type->is_a_type_of methods.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- The Maybe type was a subtype of Ref in the code, which is wrong. It is now a
|
|
Packit |
42cdad |
subtype of Item.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- This module now explicitly requires Perl 5.10.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.02 2012-05-14
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- Now with lots more documentation, but this is still very alpha. Feedback
|
|
Packit |
42cdad |
from potential users is welcome.
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
0.01 2012-05-13
|
|
Packit |
42cdad |
|
|
Packit |
42cdad |
- First release upon an unsuspecting world. This is very alpha and subject to
|
|
Packit |
42cdad |
change. I'm mostly releasing it to get some feedback on the design. Do not
|
|
Packit |
42cdad |
use this in your code yet, unless you promise not to complain about the lack
|
|
Packit |
42cdad |
of docs or the fact that the next release breaks your code.
|