The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
Sub-MultiMethod
===============

Created:      2020-01-27
Home page:    <https://metacpan.org/release/Sub-MultiMethod>
Bug tracker:  <https://github.com/tobyink/p5-sub-multimethod/issues>
Maintainer:   Toby Inkster (TOBYINK) <tobyink@cpan.org>

1.000	2022-09-23

 [ BACK COMPAT ]
 - The `multimethods_from_roles` function has been removed.

 [ Other ]
 - Change API to match Type::Params v2 more closely. (Older API is still
   supported, but no longer documented.)
 - Updated: Require Type::Params v2.

0.909	2022-06-26

 [ Documentation ]
 - Other minor pod tidy ups.
 - Use Perl 5.20+ sub signatures in examples.

0.908	2022-06-26

 [ Documentation ]
 - Update examples to no longer call deprecated methods.

 [ Other ]
 - Minor code tidy ups.

0.907	2022-06-26

 [ BACK COMPAT ]
 - The `multimethods_from_roles` function is deprecated. Prior to
   Sub::MultiMethods 0.900, this was a function you'd call in your class to
   auto-copy any multimethods defined in roles into your class. In
   Sub::MultiMethods 0.900 that functionality became automatic, and the
   function to do it manually became a dummy do-nothing sub. It now issues
   a warning and will be removed at a later date.

 [ Other ]
 - Added: Add `multifunction` and `monofunction` to the exports.

0.906	2022-06-25

 [ Bug Fixes ]
 - Fix precedence issue which somehow only came up with Type::Tiny::XS
   installed.

0.905	2022-06-19

 - Avoid using a particular optimization if Type::Param's head or tail
   options are being used.

0.904	2022-06-19

 - When calling a method which was a coderef, it shouldn't be necessary to
   look in parent classes.

0.903	2022-06-19

 [ Packaging ]
 - Drop support for Perl 5.8.0 (Jul 2002); minimum Perl version is now
   5.8.1 (Sep 2003).

 [ Other ]
 - Added: Sub::MultiMethod now supports references to coderefs as method
   names.

0.902	2020-11-15

 [ Packaging ]
 - Should require Sub::Util 1.40, not Sub::Name 1.40.

0.901	2020-10-09

 - Refactor role support, setting up role hooks in the API instead of the
   exported `multimethod` function.

0.900	2020-10-09

 - Simplify usage in roles.

0.008	2020-02-11

 [ Bug Fixes ]
 - Fix a candidate selection issue that could arise from late-loaded base
   classes and/or diamond inheritance.

 [ Documentation ]
 - Document obscure Perl 5.8 mro issue.

 [ Test Suite ]
 - Diamond inheritance tests.

0.007	2020-02-07

 [ Documentation ]
 - Minor fixes for roles documentation.

 [ Other ]
 - Added: Add a warning if a conflict is detected in number of invocants
   for a multimethod.
 - Refactor to expose more internals as part of the API.

0.006	2020-02-06

 [ Packaging ]
 - Don't require MRO::Compat on Perl 5.10 or above.
 - Don't require Sub::Util if Sub::Name is already installed.

0.005	2020-02-06

 [ Documentation ]
 - Document the behaviour of multimethods with a number of invocants not
   equal to 1.
 - Various improvements to documentation including exporting functions.

 [ Test Suite ]
 - Test `method => $n` for $n=0 and $n=2.
 - Test `multimethod(undef, %spec)` works.

0.004	2020-02-05

 [ Bug Fixes ]
 - Fix for multimethods in roles that consume other roles.

 [ Documentation ]
 - Improve documentation about multimethods and roles.
 - Rock/paper/scissors example.

 [ Other ]
 - Added: Provide a `monomethod` function to install non-multimethods with
   the same signature handling as `monomethod`.

0.003	2020-01-28

 [ Bug Fixes ]
 - Fix bug in aliases where the signature checker could end up as a hashref
   instead of a coderef.

0.002	2020-01-28

 [ Packaging ]
 - Add missing dependency on MRO::Compat.

0.001	2020-01-28	Initial release