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