The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Kavorka
=======

Created:      2013-09-23
Home page:    <https://metacpan.org/release/Kavorka>
Bug tracker:  <http://rt.cpan.org/Dist/Display.html?Queue=Kavorka>
Maintainer:   Toby Inkster (TOBYINK) <tobyink@cpan.org>

0.018	2013-11-18

 - Allow non-Type::Tiny type constraints to be returned by type constraint
   expressions, provided they can be converted to Type::Tiny objects via
   Types::TypeTiny::to_TypeTiny.

0.017	2013-11-18

 - Extensibility via parameter traits.
 - Rename Kavorka::Signature::Parameter -> Kavorka::Parameter.
 - Rename Kavorka::Signature::ReturnType -> Kavorka::ReturnType.

0.016	2013-11-07

 [ Bug Fixes ]
 - Bypass the Internals::SvREADONLY prototype because handling of the ($;$)
   prototype changed in 5.16.0 and we were relying on the new behaviour.

0.015	2013-11-07

 [ BACK COMPAT ]
 - Change the syntax of lexical functions and methods to include the `my`
   keyword in their declaration.

 [ Bug Fixes ]
 - $sub->signature now returns undef if no signature was given in the
   declaration.
 - Most of the closure issues associated with Parse::Keyword are now worked
   around.

 [ Documentation ]
 - Document that fun ($x, $y=$x) {...} doesn't work how you might expect it
   to, and some work-arounds.

 [ Test Suite ]
 - Tidy up some of the closure tests.

 [ Other ]
 - Checking if @_ < 0 is silly; stop doing that.

0.014	2013-11-05	Gunpowder, treason and plot

 - Added: Lexical functions and methods.
 - Added: Return types, optionally with coercion.
 - Updated: Work with (and indeed require Type::Tiny 0.032).

0.013	2013-10-27

 [ Bug Fixes ]
 - Compiled dispatchers introduced in Kavorka 0.012 are essentially a form
   of cache. No cache invalidation was in place, leading to issues when
   adding extra same-named multi method candidates to parent classes after
   a multi method had already been invoked in a child class. Cache
   invalidation now works.

 [ Test Suite ]
 - Test for cache invalidation of compiled multi sub dispatchers.
 - Test that definition of multi subs happens at runtime, and definition
   can continue even after the multi sub has been invoked.

0.012	2013-10-26

 [ Documentation ]
 - Various documentation improvements.

 [ Other ]
 - Optimization: avoid double type checks in multi subs.
 - Optimization: compile dispatchers for multi subs on demand.

0.011	2013-10-25

 [ Documentation ]
 - Split up documentation into a manual with bite-sized chunks.

 [ Other ]
 - Allow multiple method names to be modified with a single method
   modifier.
 - Rename ${^NEXT} variable to $next for `around` method modifiers.
 - Support Perl 5.20 style :prototype(...) attribute.

0.010	2013-10-23

 - Allow package variables such as $Foo::Bar in signatures.
 - General refactoring of variable name parsing.
 - Support 'my' and 'our' prefixes to variable names in signatures.

0.009	2013-10-22

 [ Documentation ]
 - Minor fix to KavorkaX::Dancer2 example extension module.

 [ Packaging ]
 - Package my TODO list.

0.008	2013-10-17

 [ Documentation ]
 - Include an example of extending Kavorka to cover some Dancer2 concepts.
 - Minor documentation fixes.

 [ Other ]
 - Make subclassing Kavorka.pm itself a little easier.

0.007	2013-10-16

 - Allow named parameters to have multiple "outside" names.
 - Make the parentheses surrounding long named parameters optional.
 - Refactor Kavorka::Sub.

0.006	2013-10-15

 [ Documentation ]
 - Document interplay between multi subs and multiple inheritance.

 [ Test Suite ]
 - Test cases for multi subs versus multiple inheritance.

 [ Other ]
 - Use invocant as starting point for searching for multi method
   candidates.

0.005	2013-10-13

 [ Bug Fixes ]
 - Fix error parsing `where` clauses.

 [ Documentation ]
 - Included fibonnacci.pl example of using multi subs.

 [ Other ]
 - $parameter->constraints is now an arrayref of coderefs rather than an
   arrayref of strings of Perl code.
 - Changed error message resulting from failed value constraint.

0.004	2013-10-13

 [ Documentation ]
 - Correct minor typo.

 [ Other ]
 - Added: Implement multi subs and multi methods.

0.003	2013-10-12

 - Allow @_ and %_ to be used in signatures.
 - Improve sanity checking for signatures.

0.002	2013-10-11

 - Added: Kavorka::Signature now provides args_min and args_max methods.
 - Refactor some of the code generation in Kavorka::Signature.

0.001	2013-10-09	First public release

0.000_11	2013-10-09

 [ Documentation ]
 - Document Kavorka's exports.
 - Fix MooseX::KavorkaInfo SYNOPSIS.
 - Provide an example script using MooseX::KavorkaInfo.

 [ Test Suite ]
 - Check that it's possible to define a method called `method`.

 [ Other ]
 - Throw an exception if people use method modifier keywords to define
   anonymous functions.

0.000_10	2013-10-09

 [ Documentation ]
 - Minor documentation improvements.

 [ Other ]
 - Added: MooseX::KavorkaInfo provides Kavorka->info data through Moose
   meta objects.
 - Allow Function::Parameters-style type constraint expressions.

0.000_09	2013-10-08

 [ Documentation ]
 - Document the yadayada operator.

 [ Test Suite ]
 - Tests for lvalue subs.

 [ Other ]
 - Better support for subroutine attributes.
 - Change parsing technique for named subs.

0.000_08	2013-10-08

 [ Documentation ]
 - Documented Kavorka::Signature.
 - Documented Kavorka::Signature::Parameter.
 - Documented Kavorka::Sub.
 - Improve 'Introspection API' section of documentation for Kavorka.pm
   itself.

 [ Test Suite ]
 - Add tests for introspection API.

 [ Other ]
 - Function objects doing the Kavorka::Sub role now keep track of which
   keyword they were declared with.
 - Tidy up and improve the Kavorka::Signature API.
 - Tidy up the Kavorka::Sub API.

0.000_07	2013-10-08

 [ Documentation ]
 - Documented an 'rw' trait which is just a no-op.
 - Documented traits better.

 [ Test Suite ]
 - Add tests for various traits.

 [ Other ]
 - Implemented the 'alias' trait.
 - Implemented the 'locked' trait.
 - Implemented the 'ro' trait.
 - Long overdue refactoring of the code-generating internals of
   Kavorka::Signature::Parameter.

0.000_06	2013-10-07

 [ Bug Fixes ]
 - Fix installing of method modifiers into Moo::Role roles.

 [ Test Suite ]
 - Add tests for method modifiers in Class::Tiny/Role::Tiny.
 - Add tests for method modifiers in Moo.
 - Add tests for method modifiers in Moose.
 - Add tests for method modifiers in Mouse.

0.000_05	2013-10-07

 [ Bug Fixes ]
 - Fix off-by-one bug failing to populate a slurpy array/arrayref if it
   would only have one item.
 - Fix warning assigning odd number of items to %_ which should have been
   fatal instead.

 [ Test Suite ]
 - Add tests for non-inlinable type constraints.
 - Add tests for type coercions.

0.000_04	2013-10-06

 [ Test Suite ]
 - Add tests for invocants.
 - Add tests for slurpy parameters.

 [ Other ]
 - Allow anonymous slurpy parameters.
 - Also populate the %_ hash for functions with a hash(ref) slurpy but zero
   named parameters.
 - Minor speed-ups.

0.000_03	2013-10-05

 [ Bug Fixes ]
 - Error message for unknown named parameters isn't unintentionally always
   thrown for all named parameters except the first.

 [ Documentation ]
 - Include my TODO file.

 [ Test Suite ]
 - Add tests for named parameters.
 - Add tests for positional parameters.
 - Add tests for the `method` keyword.

 [ Other ]
 - The `default` attribute of Kavorka::Signature::Parameter is now a
   coderef rather than a string.

0.000_02	2013-10-04

 [ Bug Fixes ]
 - Fix error finding the position to start slurping from in signatures that
   have a slurpy after zero positional parameters.
 - Fix syntax error compiling functions using non-inlinable type
   constraints in the signature.

 [ Documentation ]
 - Include benchmarking script as an example.

 [ Test Suite ]
 - Add some rudimentary tests for type constraints.

0.000_01	2013-10-03	Preview release