Revision history for XS-Parse-Sublike
0.37 2025-02-07
[CHANGES]
*
Added `xps_signature_query_*()` API
[BUGFIXES]
*
Don't store signature parsing state in the `PL_parser->sig_*` vars,
so as to cope when Perl v5.41.9 removes them
0.36 2025-01-15
[BUGFIXES]
*
Handle the new shape of `PL_compiling.cop_features` in perl 5.41.8
or above
0.35 2025-01-07
[BUGFIXES]
*
Restore the original kw/kwlen after a failed `my` prefix hack to
avoid confusing other modules that are doing the same thing
0.34 2025-01-06
[BUGFIXES]
*
Don't get confused by function names immediately followed by the
colon of attribute syntax with no intervening whitespace
0.33 2025-01-02
[BUGFIXES]
*
Ensure test .xs files are valid C before C23, by not using unnamed
parameters to functions (RT158225)
0.32 2024-12-20
[BUGFIXES]
*
Ensure that signature start+finish hooks are run if present even on
empty signatures
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.