Revision history for Function-Parameters 1.0702 2015-12-21 - fix parsing of _ in prototypes (caused bogus "Illegal character after '_' in prototype" warnings) 1.0701 2015-12-04 - remove old "bare" import syntax: use Function::Parameters 'foo', 'bar'; # equivalent to # use Function::Parameters { foo => 'function', bar => 'method' }; (marked as deprecated in 0.06, no longer documented since 1.00) 1.0605 2015-04-26 - update metacpan links - remove wonky test 1.0604 2015-04-22 - new explicit "lax" mode - fix info() with taint mode on (gh pr #12) - don't hide syntax errors that are followed by a parameter list with types (gh #15) - compatibility with perl v5.21.11 (#103843) 1.0603 2014-11-25 - some documentation changes - compatibility with perl development versions 1.0602 2014-10-21 - fix warnings under perl5.21 (causes harmless test failure) 1.0601 2014-10-20 - allow nameless parameters for arguments that should be ignored - fix string comparison bug (":lvaluefoobar" treated as ":lvalue", etc) - explicitly disallow $_/@_/%_ as parameters - change "Not enough" to "Too few" in error message to match perl - don't parse $#foo as a sigil plus comment - remove implicitly optional parameters ("fun foo($x = 42, $y)" used to be equivalent to "fun foo($x = 42, $y = undef)") 1.0503 2014-10-17 - skip initializing parameters if the default argument is undef (don't generate '$x = undef if @_ < 1' for 'fun ($x = undef)') 1.0502 2014-10-16 - fix bug that prevents building with threaded perls 1.0501 2014-10-13 - support :prototype(...) for setting the prototype - allow fun foo($x =, $y =) (empty default arg equivalent to specifying undef) 1.0404 2014-10-13 - fix segfault on 'fun foo(A[[' (malformed type) 1.0403 2014-10-12 - general overhaul for 5.18 and 5.20 support - be more flexible about strict 'vars' error message in tests (#99100) 1.0402 2014-09-01 - fix #92871: don't access dead stack frames on error - fix #95803: don't dereference NULL 1.0401 2013-10-09 - enable type checks by default 1.0301 2013-09-16 - support 'defaults' to base keywords on existing keyword types - 'check_argument_count' no longer controls type checks - new 'check_argument_types' property controls type checks - new 'strict' property does what 'check_argument_count' used to - new 'runtime' property lets you define functions at runtime - some more tests 1.0202 2013-08-28 - make t/foreign/Fun/name.t less fragile to support newer Carp - support older Moo without ->meta support 1.0201 2013-08-13 - custom (per-keyword) type reification - actually use documented defaults for custom keywords 1.0104 2013-06-16 - support unicode in custom keywords - actually validate default attributes 1.0103 2013-06-09 - properly allow non-moose-based custom type constraints (#85851) 1.0102 2013-03-08 - prepare for internals changes in the upcoming 5.18 release (https://rt.cpan.org/Ticket/Display.html?id=83439) - only allocate memory after recognizing a keyword like 'fun' (might speed up parsing a little) 1.0101 2013-02-05 - new reflection API to inspect parameter information of functions - Moose types in parameter lists - more tests 1.0004 2012-11-26 - fix test relying on hash ordering 1.0003 2012-11-19 - clean up internals - fix build errors on some platforms - fix module metadata - some more tests 1.00 2012-11-01 - add named parameters with ':$foo, :$bar' syntax - rewrite documentation - more tests (some of them copied from similar modules on CPAN) 0.10 2012-10-21 - add ':strict' import target - support $invocant: parameter syntax 0.09 2012-10-14 - fix wrong line number for statement immediately following a function 0.08 2012-07-19 - support UTF-8 in function/parameter names - better detection of invalid prototypes 0.07 2012-06-25 - completely rework internals to generate optrees directly (no more generating/reparsing source) - simplify / fewer dependencies - new feature: default arguments (on by default) - new feature: strict argument count checks (off by default) enabled by "*_strict" variants of symbolic types 0.06 2012-06-19 - complete rewrite in XS - require perl 5.14+ - hopefully fix bug where it would get the line numbers wrong - we're a lexical pragma now; remove import_into() - more fine-grained control over behavior of generated keywords: * function name can be optional/required/prohibited * invocant name can be any variable, not just $self * default attributes (and method now defaults to ':method') 0.05 2011-08-02 - complete rewrite - hopefully fix bug where it would swallow compilation errors or get the line numbers wrong - method keyword! - more flexible keyword customization 0.04 2010-03-03 - allow renaming the function keyword - provide import_into so you can mess with other packages 0.03 2009-12-14 First version, released on an unsuspecting world.