1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
|
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.
|