- updated to 2.002003
see /usr/share/doc/packages/perl-Function-Parameters/Changes
2.002003 2023-04-19
- Fix line numbers after inlined type checks (gh #42).
Previously, the code for type checks was inlined literally, so if a
particular check took 5 lines of code, all the following line
numbers in the source file would be off by 5 (they would be "pushed
down" by the interpolated code). These bad line numbers would show
up in error messages from Perl (including warn and die) as well as
__LINE__ and caller (and thus stack traces).
OBS-URL: https://build.opensuse.org/request/show/1080812
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Function-Parameters?expand=0&rev=18
- updated to 2.002002
see /usr/share/doc/packages/perl-Function-Parameters/Changes
2.002002 2023-04-01
- Work around old versions of ExtUtils::MakeMaker not providing
is_make_type(), whose version dependency is undocumented (sigh).
- Restrict GNU syntax for exporting variables to type 'gmake'; should
fix building on BSD, Solaris, etc.
- Declare dependency on ExtUtils::MakeMaker 7+ and remove
compatibility code for older versions.
2.002001 2023-04-01
- Fix (hopefully) Windows builds using nmake.exe.
2.002 2023-04-01
- Provide //= for default arguments that are also used when the
caller passes in undef.
- Provide more type combinators in parameter declarations: In
addition to | (union types), now ~ & / are also supported (for
complement types, intersection types, and alternative types,
respectively).
- Enable type coercions. If a parameter has a declared type and that
type supports coercions ($type->has_coercion returns true), call
its ->coerce($value) method to transform arguments before type
checking.
- Enable inline type checks. If a parameter has a declared type and
that type supports inlining ($type->can_be_inlined returns true),
its inline code (as provided by ->inline_check('$value')) is baked
into the function definition instead of a call to ->check($value).
This may speed up type checks.
- Move a big chunk of tests to xt/ (author testing only).
- Remove xt/ from the distribution.
- Enable parallel testing by default (with -j4).
2.001006 2023-03-27
- Work around perl core issue GH#20950 (use re "eval" doesn't capture
lexical %^H environment like eval() does and stringifies it
instead) by downgrading the previous hard error to a warning (in
the new category 'Function::Parameters') and switching
Function::Parameters off in the affected scope.
OBS-URL: https://build.opensuse.org/request/show/1076917
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Function-Parameters?expand=0&rev=17
see /usr/share/doc/packages/perl-Function-Parameters/Changes
2.001003 2017-11-11
- Fix threaded initialization issue better. This is the same issue
that was fixed in 2.001002, but now we use PL_op_mutex instead of
PL_check_mutex. This has the advantage of also being thread-safe on
v5.14.
2.001002 2017-11-09
- Fix crash when Function::Parameters is loaded at runtime by
multiple threads (a stack overflow due to infinite recursion).
This is arguably a core bug (#132413). The current workaround
employed by Function::Parameters slightly abuses an internal perl
mutex meant for something else (protecting op checkers), but it
fixes the issue on perls v5.16 .. v5.26.
v5.14 doesn't have this API yet, so the workaround is not thread
safe there. It is technically possible to still run into this issue
if two threads initialize Function::Parameters at the exact same
moment (I haven't managed to reproduce this yet, so hopefully it's
unlikely in practice).
It is possible to completely avoid the problem on all versions of
perl and Function::Parameters by making sure the module is loaded
before the first thread is created.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Function-Parameters?expand=0&rev=15