Revision history for Perl extension MOP
0.14 2018-01-31
- use `parent` where it is needed, no need
not to, it is core
- also fix the travis config
0.13 2018-01-25
- added support for Travis CI
- added in some new tests
- thanks to Lisa Hare for these
- added patches to support 5.27/bleadperl
- thanks to FatherC for these
[DEPENDENCIES]
- dropping the Sub::Name dependency in favor of Sub::Util
which will be core eventually
- thanks to Toby Inkster for this
0.12 2017-10-30
[ENHANCEMENT]
- MOP::Util::get_meta now will check for the existance
of a METACLASS method in the given $package and will
use the result of that method call to construct a
metaobject for that package
- this is only in MOP::Util::get_meta, you should
be able to override this/ignore this if needed
[BACKWARDS INCOMPATIBLE CHANGES]-ish
- switched back to Carp::confess from Carp::cluck, the
stack trace is vital until this module matures and
the error messages improve
0.11 2017-10-22
- fixing the missing Devel::Hook dependency
0.10 2017-10-20
[ENHANCEMENT]
- There is now a public API of utility functions in
the MOP::Util module.
- see the docs for more info
- added the MOP::Method::Attribute class to represent
any attributes attached to a method.
- see below for how this changes the `get_code_attributes`
method within MOP::Method
[!!!!BREAKING CHANGES!!!!]
[ Roles ]
- role to class composition behavior has changed
- there is now no difference in the way compositon
beheaves when applied to a class or to a role
- previously only classes complained if there was a
conflict in the compositon process, now both
roles and classes complain
- previously only classes complained if there was a
method requirement after composition was complete,
now both roles and classes complain
[ MOP::Slot ]
- The `add_slot` method now will set the COMP_STASH
of the initializer, therefore taking ownership of
that CV, this mirrors what `add_method` does
- this is actually unlikely to break much, but
is significant, so maybe
- MOP::Slot objects no longer act as overloaded CODE
refs (the &{} operator), this function is now the
domain of the MOP::Slot::Initializer
- MOP::Slot::Initializer has completely changed, the
last version should be ignored completely
- the `builder` feature has been completely removed
- all methods other than `new` have been removed
- it is a blessed CODE reference
[ MOP::Method ]
- the API for `get_code_attributes` in MOP::Method has
changed, it now returns MOP::Method::Attribute objects
[DEPENDENCIES]
- added Sub::Metadata, used to detect null CVs and
mutate the COMP_STASH of CVs.
- added Devel::Hook, which is used in the new MOP::Util
function `defer_until_UNITCHECK`
- bumped the UNIVERSAL::Object dependency version to
make sure we have support for immutable CODE ref
instances (needed for MOP::Slot::Initializer)
0.09 2017-09-27
[ENHANCEMENT]
- moved the Slot::Intitializer class from Moxie back
to this level, I believe it is more appropritate
0.08 2017-08-08
[ENHANCEMENT]
- added support for CODE overloaded (&{})
objects stored as %HAS values
- added Devel::OverloadInfo as dependency
0.07 2017-06-19
[MISC]
- fix edge case where we need to vivify a GLOB slot
0.06 2017-05-08
[INTERNALS]
- make all instance use UNIVERSAL::Object::Immutable
[MISC]
- bumped UNIVERSAL::Object to latest
0.05 2017-02-07
[API]
- added `has_required_method` to MOP::Role
- added tests for this
- added `fully_qualified_name` to MOP::Method
- added tests for this
[MISC]
- switched everything from die to Carp::croack
0.04 2017-01-15
[MISC]
- restored Test::Fatal, sorry that was
just stupid of me
0.03 2017-01-13
[MISC]
- fixing some POD issues
- adjusting some dependencies
- removed Test::Fatal
- bumped UNIVERSAL::Object to latest
0.02 2017-01-12
[ENHANCEMENT]
- fixing constructors to allow both named
and positional argument forms
- added tests and docs for this
[MISC]
- adding in a few more tests
- fixing some POD issues
- fleshing out some documentation
0.01 2017-01-11
- Initial release to an unsuspecting world