Object-Pad
view release on metacpan or search on metacpan
0.62 2022-03-01
[CHANGES]
* Add "common" methods:
+ Implement `:common` attribute for methods
+ Take 'common' argument to `$metaclass->add_method`
+ Added `$metamethod->is_common` accessor
* Don't require a terminating semicolon after `has $field { EXPR }`
[BUGFIXES]
* Better handling of role method embeddings that include lexical
captures (RT141483)
0.61 2022-02-16
[CHANGES]
* Added Object::Pad::MOP::Class->create_{class,role}
* Added $metaclass->seal (RT141294)
* Added $metaclass->add_required_method and ->required_method_names
(RT141314)
* Accept bodyless `method NAME;` declarations to declare a required
role method
[BUGFIXES]
* Assert when compclassmeta->name doesn't match PL_curstname (RT141293)
0.60 2022-02-01
[CHANGES]
* The Great Slot/Field Rename:
+ "slot" is now called "field"; all perl-visible and XS API has
been renamed. Various back-compatibility redirections exist for
most of the parts used by other distributions.
* Print a deprecation warning on the legacy 'implements' and
'extends' keywords
* No longer supports the hooks API from pre-v57
* Perform unit testing using Data::Dumper instead of Data::Dump to
reduce non-core test_requires dependencies
0.59 2021-12-15
[CHANGES]
* Support lexical methods, stored in lexical variables
[BUGFIXES]
* Check :strict(params) even without any :param slots or ADJUSTPARAM
blocks (RT140314)
* Docs updates to improve searchability (RT140141)
* Don't fiddle with PL_curcop on non-DEBUGGING builds to avoid
disturbing caller() output (RT139408)
0.58 2021-11-25
[CHANGES]
* Trim whitespace within :attribute values (RT140109)
[BUGFIXES]
* Early seal on outer class when deriving an inner subclass of it
* Store the real slotix in fasthook cache, not its index within the
direct_slots AV
0.57 2021-11-18
[CHANGES]
* Defined new ABI version for class/slot hooks
+ Adds `funcdata` at registration and callback time
+ Adds MOP accessor functions for slotmeta default SV
* Added :isa() and :does() class attributes; encourage those rather
than the older keyword style
* Added more MOP methods:
+ $classmeta->direct_methods, ->get_direct_method
+ $classmeta->all_methods, ->get_method
+ $slotmeta->has_attribute, ->get_attribute_value
* Added Object::Pad::MOP::SlotAttr, allowing pure-perl slot
attributes that provide simple metadata storage
0.56 2021-10-22
[CHANGES]
* Support roles inheriting from (possibly-multiple) other roles
(RT139772)
* Recognise `accessor` argument to $classmeta->add_slot
* Add some more MOP methods:
+ $classmeta->direct_roles
+ $classmeta->all_roles
+ $slotmeta->sigil
[BUGFIXES]
* Fix an uninitialised memory warning from valgrind to do with class
creation
* Quiet the compiler warnings about hv_fetch's key argument maybe
being NULL
Development time for this release was sponsored by Perl-Verein Schweiz
0.55 2021-10-11
[CHANGES]
* Support :reader and :writer on array and hash slots (RT139647)
[BUGFIXES]
* Complain on attempt to invoke constructor of a class that is not
yet complete (RT139664)
* Ensure that psotslots and construct slothooks still run for
superclasses and applied roles (RT139665)
Development time for this release was sponsored by Deriv
0.54 2021-10-07
[CHANGES]
* Support slot initialiser blocks; don't invoke blocks for values
passed by :param
* Support slot default values on non-scalars
Development time for this release was sponsored by Deriv
0.53 2021-09-29
[CHANGES]
* Support null-or-unary reader/writer accessors, called simply
`:accessor`
[BUGFIXES]
* Avoid some C99'isms which upset Windows compilers
* Remember to register pp_weaken() as a custom op
* Account for the newer OP_ARGCHECK aux structure of perl 5.31.5
* Set correct XPK_LEXVARNAME() type (related to RT139444)
0.52 2021-08-25
( run in 1.056 second using v1.01-cache-2.11-cpan-39a47a84364 )