- updated to 0.819.0 (0.819)
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.819 2025-01-10
[CHANGES]
* Initial experimental attempt to support lexical `my class` syntax
* Neater, smaller `hax/` files by squashing out code guarded on
versions of Perl before 5.18
0.818 2024-12-23
[BUGFIXES]
* Ensure that `method :common` works with the new `OP_ARGELEM` code
in the signature handling code (RT158048)
0.817 2024-12-20
[CHANGES]
* Initial attempt at supporting an `:abstract` attribute on classes.
Similar to roles but much simpler and easier to implement
* Much internal reärrangement of the way OP_METHSTART is set up, to
hopefully allow more seamless integration with upcoming core perl
`faster-signatures` branch work
0.816 2024-11-25
[CHANGES]
* Rewrote module introduction documentation, emphasising the relating
to core perl 'class' feature and `Feature::Compat::Class`
* Added a documentation file, giving a guide to migrating from
classical Perl to `Object::Pad`
[BUGFIXES]
* Fix for t/82devel-mat-dumper-helper.t should require `Devel::MAT`
v0.53 or later, in case DMD writes a file in format version 0.6
(RT157189)
0.815 2024-11-13
[CHANGES]
* Initial experiment at adding `APPLY` phaser blocks to roles
0.814 2024-09-20
[CHANGES]
* Depend on `XS::Parse::Sublike` v0.25 because of RT155630 bugfix
* Document and test the operation of `my method`
[BUGFIXES]
* Don't segfault when `->get_direct_method` fails to find the
requested method
0.813 2024-09-03
[CHANGES]
* Removed the `has` keyword; it now immediately throws a compiletime
error
[BUGFIXES]
* Ensure that the RHS of a field init expression permits any kind of
listexpr, including `( VAL ) x COUNT`
* Fix some docs typoes (thanks Nick Morrott) (RT155106)
0.812 2024-08-29
[BUGFIXES]
* Fix for perl 5.41.3, when `SAVEt_LONG` was removed
OBS-URL: https://build.opensuse.org/request/show/1239658
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=22
- updated to 0.811.0 (0.811)
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.811 2024-08-21
[CHANGES]
* Accept requesting additional attributes to the
`$classmeta->add_field` MOP method
* XS API changes:
+ `get_obj_fieldsv()` does not need to take a ClassMeta argument
+ Added `mop_field_get_class()`
+ Added `get_field_for_padix()`
0.810 2024-08-10
[CHANGES]
* Use `File::ShareDir` for storing .h include file, rather than
storing the contents in the `__DATA__` section of the build helper
* Added field hook function `gen_valueassert_op`
* Warn when enabling all experiments at once with an unqualified
`:experimental` import
[BUGFIXES]
* Don't attempt to reserve the embedding slot in the pad twice when
making roles under composed_adjust (RT154494)
* Ensure that field variables are not visible at compiletime of
:common methods (RT154639)
OBS-URL: https://build.opensuse.org/request/show/1195938
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=21
- updated to 0.809.0 (0.809)
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.809 2024-07-14
[CHANGES]
* Experimental attempt at supporting anonymous `class` syntax
* Add an extra debugging aid in the form of "linnets", canary-like
values added to every struct and checked on pointer casts
[BUGFIXES]
* Do not create a `new` constructor method for roles, only classes
* Ensure perl doesn't attempt to free() a non-malloced pointer when
deleting a method of an invokable role (RT152793)
* Ensure that `Object::Pad::MOP::Class->for_class` is not confused by
non-OP subclasses
* Make sure not to embed CVs of `:common` methods because that will
upset any lexical or pad temporary at pad index 3
OBS-URL: https://build.opensuse.org/request/show/1187505
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=20
- updated to 0.808
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.808 2023-12-28
[CHANGES]
* Added `Object::Pad::MOP::Class->try_for_class`
* Nicer error message when calling `->for_class` on a package not
implemented using Object::Pad
0.807 2023-12-11
[CHANGES]
* Added `inherit` and `apply` keywords in an attempt to make
subclassing and role-application more flexible in future
* Experimental new ability to "import" fields from superclasses into
subclasses, permitting subclasses to interact with base class
fields directly
* Allow setting the `OBJECTPAD_FLAG_ATTR_*_VALUE` flags when
registering a custom attribute via the Perl-level MOP API
OBS-URL: https://build.opensuse.org/request/show/1153621
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=18
- updated to 0.802
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.802 2023-08-22
[CHANGES]
* Internal XS-level changes:
+ Generate the basic accessor ops directly before invoking the
gen_accessor_ops chain, ensuring more reliable ordering
+ Renamed the `post_initfields` field hook to `post_makefields` to
better reflect when it actually runs
* Removed the special-case warning about `method BUILD`
* Added docs to point out that `ADJUST` blocks see method-like field
lexicals
OBS-URL: https://build.opensuse.org/request/show/1108662
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=13
- new version format, see https://github.com/openSUSE/cpanspec/issues/47
- updated to 0.801
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.801 2023-08-10
[CHANGES]
* Warn at compiletime if `ADJUST` blocks perform out-of-block control
flow. This warning will become a compiletime error in a later
version
* Added `mop_class_get_attribute()` and
`mop_class_get_attribute_values()` to C-level API
* Removed the old `ClassHook->hookdata` and `FieldHook->hookdata`
variable aliases
[BUGFIXES]
* A better `sub VERSION` that works as a more transparent wrapper
(RT149357)
0.800 2023-08-09
[CHANGES]
* Switched to three-digit version numbering
* Removed experimental warnings from non-constant field initialiser
expressions
* Emit deprecation warnings at compiletime from `has` keyword
* Expanded documentation about the implied pragmata changes, which
will likely be removed entirely in a later version.
* Emit a warning if implied strict/warnings was enabled, conditional
on `use Object::Pad` with this version number or later.
OBS-URL: https://build.opensuse.org/request/show/1103508
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=12
- updated to 0.77
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.77 2022-12-19
[BUGFIXES]
* Fix C compiler errors and warnings
+ Neater handling of OP_NULL in optrees; avoids error of a case
label applied to a declaration, which upsets non-gcc compilers
+ Use PTR2UV / NUM2PTR pairs instead of plain casting
0.76 2022-12-16
[CHANGES]
* No longer consider `field VAR = CONST` experimental for constant
expressions
* Make field assignment and `ADJUST :params` slightly more efficient
by stealing new OP_HELEMEXISTSOR op from upcoming perl version
* Defined new ABI version 0.76
+ Adds `pre_seal` and `post_seal` functions for class hooks
0.75 2022-12-14
[CHANGES]
* Support fields using `//=` and `||=` defaulting operators, to match
the core perl `class` feature
* Define more configuration options for `Feature::Compat::Class`
0.74 2022-12-04
[BUGFIXES]
* Ensure that all struct fields are initialised after Newx(), by
using a C99-style struct assignment, ensuring no uninitialised
behaviour (RT145289)
0.73 2022-12-03
[CHANGES]
* Accept `field VAR = EXPR;` syntax; evaluated within constructor
similarly to block form
* Generally prefer `field` over `has` in docs, unit tests, etc...
* Long-deprecated `extends` and `implements` keywords are now
immediate compile-time failures
* Extended the C-level extension API
+ Added `get_compclassmeta()`
+ Added `mop_class_add_method_cv()` and `mop_class_get_name()`
+ Optional integration with XS::Parse::Keyword via the addition
of the `OPXKP_*` macros
[BUGFIXES]
* Account for bleadperl's slightly changed warning message of
"bareword found ..."
0.72 2022-11-30
[CHANGES]
* Accept `//=` and `||=` in named signature-like syntax for
`ADJUST :params` blocks
* Added `__CLASS__`
* Deprecate use of params hashref in `ADJUST` blocks; needs to be
written as `ADJUSTPARAMS`, which is not longer exactly synonymous
with `ADJUST`
OBS-URL: https://build.opensuse.org/request/show/1046331
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=9
- updated to 0.71
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.71 2022-11-01
[CHANGES]
* Add a =head2 heading to docs on `ADJUST :params` for ease of
linking
* Support latest blead-perl which adds the xV_FROM_REF macros
[BUGFIXES]
* Make sure to deref the CODE reference to ->add_method before
stuffing it into the GV (RT144975)
* Avoid C99-style for() loop variable, to keep older MSWin32
compilers happy
0.70 2022-10-29
[CHANGES]
* Added `ADJUST :params`, which permits named parameters to ADJUST
blocks (currently experimental)
0.69 2022-10-25
[CHANGES]
* Internal tidying to the way the initfields stage of the constructor
works
* Support for Feature::Compat::Class to enable the :isa class
attribute alone
OBS-URL: https://build.opensuse.org/request/show/1034255
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=8
- updated to 0.68
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.68 2022-08-13
[BUGFIXES]
* Wording fix in new Object::Pad::MetaFunctions docs
* Avoid label at end of compound statement (RT144005)
0.67 2022-08-12
[CHANGES]
* Added `Object::Pad::MetaFunctions` to contain some introspection
and reflection helper functions
* Avoid writing the rather silly-sounding `field $field` in docs;
use single-letter field names like `$x` or `$f` instead
OBS-URL: https://build.opensuse.org/request/show/997387
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=7
- updated to 0.66
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.66 2022-07-07
[CHANGES]
* Improved performance on perl 5.22 onwards, by merging the operation
of the individual pp_fieldpad ops into the main pp_methstart op
* Prepare compatibility with core's `use feature 'class'`:
+ Support `field` keyword as a synonym of `has`, though without
immediate EXPR version
+ Merge meaning of `ADJUST` and `ADJUSTPARAMS`; give all such blocks
a params hashref. `ADJUSTPARAMS` is now just a synonym
* Print "discouraged" warnings on `requires` keyword
* Print deprecation warnings on `isa` and `does` subkeywords
* Added list-returning ->get_attribute_values() accessor to
Object::Pad::MOP::Field
* Deleted legacy XS symbols relating to "slot" from before it was
renamed to "field"
OBS-URL: https://build.opensuse.org/request/show/988351
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=6
- updated to 0.64
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.64 2022-04-02
[CHANGES]
* Improvements to `:experimental` import tag (RT141801):
+ Support multiple experiments at once
+ Make sure to still enable the default keywords
* Much better integration with `Devel::MAT::Dumper`:
+ Export complete C-level structures and magic VTBL root
* Adjusted wording of "MOP API is experimental" so it doesn't refer
to a package that doesn't actually exist (RT141801)
OBS-URL: https://build.opensuse.org/request/show/967715
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=4
- updated to 0.63
see /usr/share/doc/packages/perl-Object-Pad/Changes
0.63 2022-03-07
[CHANGES]
* Deleted long-deprecated Object::Pad->begin_class
* No longer declare the entire module as "experimental"
* Add experimental warnings to still-experimental features; recognise
`:experimental` import tags to silence them
[BUGFIXES]
* Ensure that generated accessors work correctly regardless of the
prevailing package when they were generated (RT141599)
* Ensure that classes and accessors can be generated entirely outside
of a BEGIN block (RT141677)
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)
OBS-URL: https://build.opensuse.org/request/show/960461
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-Pad?expand=0&rev=3