Revision history for Object-Pad
0.16 2020-03-26
[CHANGES]
* Always generate the slots AV even with no slots because otherwise
METHSTART gets upset about no-slot subclasses
* Capture the `async method` unit tests from Future-AsyncAwait
[BUGFIXES]
* Ensure that object refs or slot values don't hang around in method
lexicals after they've returned (RT132228)
* Use OP_STUB to ensure no-slot subclasses don't crash OP_PUSH on
perls 5.18 to 5.22 (thanks ilmari)
0.15 2020-03-19
[CHANGES]
* Use XS::Parse::Sublike 0.04
+ Provides bugfixes for parameters in sub signatures with defaults
[BUGFIXES]
* Handle class-scoped regular lexicals and outer captures
0.14 2020-03-17
[CHANGES]
* Use XS::Parse::Sublike 0.02's `register_xs_parse_sublike()` ability
0.13 2020-03-15
[CHANGES]
* Use XS::Parse::Sublike for the bulk of the `method` parsing work
[BUGFIXES]
* Inline the code for Perl_package_version() because it isn't
exported API so not actually visible on non-ELF platforms
0.12 2020-03-10
[CHANGES]
* Minor adjustments to order of operations in method keyword parsing
to closer match core's parser
[BUGFIXES]
* Rename t/80dynamically+Object::Pad.t to use a hyphen because colons
confuse MSWin32 (RT132087)
0.11 2020-03-07
[CHANGES]
* More efficient method enter on perl 5.22 onwards by detecting which
slots are being used per method and only set those ones up
[BUGFIXES]
* Fix some C99isms in XS code (RT131417)
* Avoid a C++-style comment in hax/lexer-additions.c.inc
0.10 2019-11-20
[BUGFIXES]
* Back-compat fixes for perl 5.16, 5.20
0.09 2019-11-20
[CHANGES]
* Accept optional version number for `class` declaration and
`extends` base class
* Provide a default `BUILDALL` method which invokes all the available
`BUILD` methods of component packages
* Unit-test that Syntax::Keyword::Dynamically works correctly with
object slots and document the fact that `local` does not
[BUGFIXES]
* Generate the constructor as an XSUB so we can find the superclass
for derived subclasses better and avoid an infinite recusion loop
on double-subclassing.
0.08 2019-11-10
[CHANGES]
* Accept `class Name;` to introduce a toplevel class scope
* Attempt to `require` the relevant module for `extends` if it
doesn't appear to be loaded
0.07 2019-10-25
[CHANGES]
* Allow subclassing of non-Object::Pad base classes, provided they
are HASH-based
[BUGFIXES]
* Correct handling of UTF-8 package and slot names (thanks ilmari)
0.06 2019-10-23
[CHANGES]
* First attempt at `has $slot = DEFAULT` expressions. Only accepts
compiletime constants and only on scalar slots
0.05 2019-10-20
[CHANGES]
* Implement single-inheriance subclassing
0.04 2019-10-19
[CHANGES]
* Croak on attempts to invoke methods on non-instances, non-derived
classes, etc...
* Support perls back to 5.16 by various trickery
* Store array and hash slot variables via RV so the instances are
well-behaved as perl data structures
0.03 2019-10-18
[CHANGES]
* Implement sub signatures
* Apply automatic pragmata - strict, warnings, -indirect
0.02 2019-10-17
[CHANGES]
* `method name :lvalue` and (maybe) other attributes
* Support perls back to 5.22 due to wrap_keyword_plugin hax
0.01 2019-10-17
First version, released on an unsuspecting world.