Revision history for XS-Parse-Sublike
0.31 2024-12-20
[CHANGES]
* Optionally permit named function declarations in fully-qualified
packages if all hooks agree
* Added experimental `start_signature` and `finish_signature` hook
stages
* Added experimental `xps_signature_add_param()` API
0.30 2024-10-18
[BUGFIXES]
* Ensure that named parameter variables are introduced before the
next variable's defaulting expression is parsed, just like
positional ones already do
0.29 2024-10-14
[CHANGES]
* Allow `Sublike::Extended` to take over core perl's handling of
`sub` or `method`, allowing extended sublike syntax without needing
the `extended` keyword.
0.28 2024-10-08
[CHANGES]
* Make the subroutine body optional when using `extended` subs
* Declare the named parameter and parameter attribute features as
non-experimental
[BUGFIXES]
* Use PTR2UV() properly when making debug values (RT155804)
* Avoid compiler warnings about unused var or label on Perl 5.16
0.27 2024-09-23
[BUGFIXES]
* Ensure that signature parameter attribute hook functions can
correctly see and modify the optree fragments
0.26 2024-09-20
[BUGFIXES]
* Don't segfault on attempts to use unnamed slurpy variables with
named parameters (RT155654)
0.25 2024-09-19
[BUGFIXES]
* Make sure not to introduce signature parameter variables until
after their own defaulting expression is parsed (RT155630)
0.24 2024-09-18
[CHANGES]
* Support lexical subs when prefixed with `my`
* Rewritten implementation of named parameters to avoid indirection
via a slurpy HV for much performance improvement
* Support also slurpy AVs along with named parameters
* Docs updates for clarity about named params
[BUGFIXES]
* Avoid some more C99 `for()` loop variable declarations and struct
initialisers as they upset some C compilers
0.23 2024-08-15
[CHANGES]
* New ABI version 6
+ Adds a `ver` field to the `XSParseSublikeHooks` structure
* Support named parameters using defined-or and true-or defaulting
operators
* Support positional parameters using defined-or and true-or
defaulting operators in extension parser, on Perl version 5.38+
* Store the `File::ShareDir` data in the per-module path, not the
per-dist path
0.22 2024-07-08
[CHANGES]
* Use `File::ShareDir` for storing .h include file, rather than
storing the contents in the `__DATA__` section of the build helper
0.21 2023-10-11
[BUGFIXES]
* Ensure that exceptions thrown from runtime signature handling
appear to come from the callsite and not declaration
* Fix signedness of printf format when complaining about
mismatched `->ver`
0.20 2023-09-09
[BUGFIXES]
* Correct ->VERSION check for Object::Pad or Future::AsyncAwait
cross-module tests (RT149700)
* Don't upset gcc's -Wformat by passing an unbounded STRLEN into
%.*s format (RT133035)
* Avoid colons in filename of t/71extended+Object-Pad.t because
Windows doesn't like them (RT149712)
* Ensure that mixed positional + named params in signatures work
properly (thanks alh)
* Ensure name shadowing of param names prints the right diagnostic
warning (thanks alh)
0.19 2023-09-07
[CHANGES]
* Added `Sublike::Extended`, a prefix keyword to enable the extended
signature parser for named params and attributes
* Beginnings of an (experimental) XS-level API for attributes on
parameters
* Complain on attempts to register a sublike keyword with neither a
permit function nor hinthash key
0.18 2023-06-14
[CHANGES]
* Swap all the unit tests from Test::More to Test2::V0
[BUGFIXES]
* Remember to set `-std=c99` compiler flag on Perls before v5.36
0.17 2023-03-21
[CHANGES]
* Experimental support for named param syntax in parse_subsignature()
* Support core perl's `method` syntax when available by setting
CVf_IsMETHOD (perl >= 5.37.10)
0.16 2021-12-16
[CHANGES]
* No longer support ABI version 3 even in back-compatibility mode
[BUGFIXES]
* Remember to adjust the SET_CVNAME and INSTALL_SYMBOL actions bits
in the non-dynamic-actions case
* Avoid using C99-style `//` comments as some compilers dislike it
(mistagged RT140487)
0.15 2021-12-15
[CHANGES]
* Added ctx->actions, the DYNAMIC_ACTIONS compat flag, and associated
flags and machinery
* Added ctx->moddata
0.14 2021-10-28
[CHANGES]
* Added XS_PARSE_SUBLIKE_FLAG_PREFIX; discourage the _any() function
to achieve similar effect
* Added XS_PARSE_SUBLIKE_FLAG_BODY_OPTIONAL to permit bodyless sublike
declarations
* Better compiletime warnings when a sub declaration lacks a
body-delimiting brace
[BUGFIXES]
* Fix for Perl < 5.20 on Win32 (thanks ilmari) (RT139296)
* Handle the new OP_ARGCHECK aux structure of perl 5.31.5 (thanks
ilmari) (RT139295)
* Accomodate newly-added core sv_setrv_*() functions
0.13 2021-08-30
[CHANGES]
* New ABI version 4
+ Set up functions in PL_modglobal instead of perl-visible global
symbol table
+ Add a `permit_hintkey` convenient shortcut
* Better code structure of XS::Parse::Sublike::Builder
0.12 2021-06-21
[BUGFIXES]
* Try to work around parse_block()'s unbalanced scopestack messups
* Namespace the static variables in the .h file appropriately in case
both this as XSParseKeyword are loaded
0.11 2021-01-18
[BUGFIXES]
* Don't SEGV on signature parse error (RT133865)
* Account for change of signature validation error message in latest
bleadperl (RT134012)
0.10 2020-06-20
[BREAKING CHANGES]
* New ABI version 3
[CHANGES]
* Pass an additional 'hookdata' parameter around between caller and
hook stage functions
0.09 2020-06-15
[CHANGES]
* Define API for an optional stage for filtering and applying
attributes during parsing
0.08 2020-06-12
[CHANGES]
* Define API to either require or skip parsing the name of a sub, or
skip parsing attributes or signatures
0.07 2020-04-02
[BUGFIXES]
* Ensure that empty-signature functions are still parsed correctly
and include arg count check (RT132284)
0.06 2020-03-27
[CHANGES]
* Pass a standard shared context struct through the various hook
stages
* Add an early hook stage before the call to start_subparse()
0.05 2020-03-26
[BUGFIXES]
* Fix hax/parse_subsignature.c.inc to cope with whitespace between
parameter declarations
0.04 2020-03-18
[CHANGES]
* Pass a required module version number to boot_xs_parse_sublike()
* Added lots of unit tests
0.03 2020-03-18
[CHANGES]
* Added xs_parse_sublike_any() allowing custom keywords to combine
with registered hooks
[BUGFIXES]
* Avoid double-free of sigops in case of parse failure
* Fix hax/parse_subsignature.c.inc for named parameters with default
expressions
0.02 2020-03-17
[CHANGES]
* Added `register_xs_parse_sublike()` and the `permit` hook stage
* Added toplevel PL_keyword_hook parser function
0.01 2020-03-15
First version, released on an unsuspecting world.