- New upstream release 0.48
- Importing types into a class that inherited from another class that had
imported types wouldn't work, leaving the child class with no 't()' sub
- New upstream release 0.47
- Change Specio constraint object's stringification overloading to return the
type name rather than the default Perl object stringification, which gives
you something like
"Specio::Constraint::Parameterized=HASH(0x564d258efb48)"; anonymous are
special cased to return something you can print
- All types now overload the 'eq' comparison operator: Moose expects types to
be comparable in this manner when doing role summation (GH#18)
- New upstream release 0.44
- Replaced the use of B with XString if it is installed; the latter is much
smaller and provides the one subroutine from B we cared about (based on
GH#15)
- Use %{make_build} and %{make_install}
- New upstream release 0.43
- Optimized compile-time operations to make Specio itself quicker to load;
Specio's load time is a non-trivial part of the load time of DateTime (and
presumably other things that use it)
- Based on https://github.com/houseabsolute/DateTime.pm/issues/85
- Package new CODE_OF_CONDUCT.md file
- New upstream release 0.42
- Fixed checks for whether a class is loaded in light of upcoming
optimization in Perl 5.28 (GH#12)
- The Perl library claimed it provided types named LaxVersionStr and
StrictVersionStr but they were really named LaxVersion and StrictVersion;
the names have now been fixed to match the documentation, so they are
LaxVersionStr and StrictVersionStr
- New upstream release 0.40
- Fixed more bugs with {any,object}_{can,does,isa}_type
- When passed a glob (not a globref) they would die in their type check
- On Perl 5.16 or earlier, passing a number to an any_* type would also die
- Fixed subification overloading: if Sub::Quote was loaded, this would be
used, but any environment variables needed for the closure would not be
included, which broke enums, among other things
- New upstream release 0.39
- Many bug fixes and improvements to the types created by
{any,object}_{can,does,isa}_type; in some cases, an invalid value could
cause an exception in type check itself, and in other cases, a value that
failed a type check would cause an exception when generating a message
describing the failure
- The messages describing a failure for all of these types have been improved
- You can now create anonymous *_does and *_isa types using the exports from
Specio::Declare
- New upstream release 0.38
- Simplify checks for overloading to not call overload::Overloaded(); just
checking the return value of overload::Method() is sufficient
- New upstream release 0.36
- Inlined coercions would attempt to coerce for every type that matched the
value given, instead of stopping after the first type (GH#11)
- Inlined coercions did not include the inline environment variables needed
by the type from which the coercion was being performed (GH#8)
- When you use the same type repeatedly as coderef (for example, as a
constraint with Moo), it will only generate its subified form once, rather
than regenerating it each time it is de-referenced
- Added an API to Specio::Subs to allow you to combine type libraries and
helper subs in one package for exporting; see the Specio::Exporter docs for
more detail
- New upstream release 0.35
- Added Specio::Subs, a module that allows you to turn one or more library's
types into subroutines like is_Int() and to_Int()
- Added an inline_coercion method to Specio constraints
- New upstream release 0.34
- Packages with Specio::Exporter can now specify additional arbitrary subs to
exporter; see the Specio::Exporter docs for details
- Importing the same library twice in a given package would throw an
exception; the second attempt to import is now ignored
- New upstream release 0.33
- Fixed a mistake in the SYNOPSIS for Specio::Declare; the example for the
- *_isa_type helpers was not correct
- Removed the alpha warning from the docs; this is being used by enough of my
modules on CPAN that I don't plan on doing any big breaking changes without
a deprecation first
- New upstream release 0.32
- Fixed a bug in the inlining for types create by any_can_type() and
object_can_type(); this inlining mostly worked by accident because of some
List::Util XS magic, but this broke under the debugger (GH#17,
https://github.com/houseabsolute/DateTime.pm/issues/49)
- New upstream release 0.31
- The stack trace contained by Specio::Exception objects no longer includes
stack frames for the Specio::Exception package
- Made the inline_environment() and description() methods public on type and
coercion objects