In perl.git, the branch smoke-me/khw-restrict_variable_names has been created
<http://perl5.git.perl.org/perl.git/commitdiff/130e56423b0a5987d57c60abb7424968c81be0a6?hp=0000000000000000000000000000000000000000> at 130e56423b0a5987d57c60abb7424968c81be0a6 (commit) - Log ----------------------------------------------------------------- commit 130e56423b0a5987d57c60abb7424968c81be0a6 Author: Brian Fraser <[email protected]> Date: Tue Feb 26 17:46:37 2013 -0300 Simplify the rules for package delimiters. This disallows multiple double colons (foo::::::bar) and following double colons with a single quote (foo::'bar). This leaves TODO, which is disallowing package Foo::; M embed.fnc M embed.h M pod/perldata.pod M pod/perldelta.pod M proto.h M t/base/lex.t M t/op/method.t M t/op/stash.t M t/run/switchd.t M t/uni/stash.t M toke.c commit 6f3dd74ac3740c2efaac90b39b2aaa1898fc7c14 Author: Brian Fraser <[email protected]> Date: Tue Feb 26 07:25:45 2013 -0300 toke.c: Stop parse_ident from punishing the non-utf8 case. As a leftover from before the refactor, parse_ident was making identifiers under 'no utf8;' go through the entire loop for each character. Originally this way to stop it from glossing over the [a-zA-Z]\p{XIDC} case, but since the utf8 check comes first now, it's no longer needed; we can enter an inner loop until there are no more WORDCHAR_A characters. M toke.c commit 20e24b6e74d93dced540a10ac3222c3f26acc17b Author: Brian Fraser <[email protected]> Date: Tue Feb 26 06:52:06 2013 -0300 Update the pod for the recent identifier changes M pod/perldata.pod M pod/perldelta.pod commit 4fd2d08d1e57602deb7dfef5ddac7d0c7cefbca9 Author: Brian Fraser <[email protected]> Date: Tue Feb 26 06:45:44 2013 -0300 utf8.h: Restore isIDFIRST_lazy_if to treat the non-UTF case as ascii, rather than latin1 M t/uni/variables.t M utf8.h commit c2abe8d4c6206370d96e042c6a5bded2a118385f Author: Brian Fraser <[email protected]> Date: Sun Feb 17 22:40:29 2013 -0300 toke.c: Made S_scan_word use S_parse_ident. S_scan_word also replicated a large portion of the ident-parsing logic. M embed.fnc M embed.h M pod/perldata.pod M proto.h M t/base/lex.t M t/uni/labels.t M t/uni/variables.t M toke.c commit 8612ae70c4e432b4d35df09e1a1bbb2f3acbdb28 Author: Brian Fraser <[email protected]> Date: Wed Jun 27 16:04:32 2012 -0300 Fix several differences in the parsing of $.. and ${...} Namely: * The first character in ${...} used to have no restrictions * ${foo:bar} used to be legal * ${foo::bar} worked, but ${foo'bar} didn't And possibly other subtle, so far undiscovered bugs. This was resolved by simply using the same code for both things. As a side-effect, this removes the 'Illegal character %s (%s) in variable name' error introduced earlier. M embed.fnc M embed.h M pod/perldelta.pod M pod/perldiag.pod M proto.h M t/uni/variables.t M toke.c commit ecc41fc243a4983bfbad34943a67e32280ac27fc Author: Brian Fraser <[email protected]> Date: Tue Jun 26 18:24:34 2012 -0300 Documentation updates for the previous commit M pod/perldata.pod M pod/perldelta.pod M pod/perldiag.pod commit e1d4d278bdc6bf1a7bbf94936c74c000138535f0 Author: Brian Fraser <[email protected]> Date: Tue Jun 26 18:17:40 2012 -0300 Restrict the valid identifier syntax, fix some identifier bugs. Fixes: * Length-one identifiers are now restricted to [\p{XIDS}\p{POSIX_Punct}\p{POSIX_Digit}\p{POSIX_Cntrl}] * The latin-1 range behaves the same regardless of the status of 'use utf8' * Identifiers that start with ASCII letters can be followed with XIDC characters M MANIFEST M gv.c M lib/utf8.t M t/base/lex.t M t/lib/croak/op A t/uni/variables.t M toke.c M utf8.h ----------------------------------------------------------------------- -- Perl5 Master Repository
