| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Attached is a patch that changes how the tokeniser looks up subroutines,
when they're referenced by a bareword, for prototype and const-sub
purposes. Formerly, it has looked up bareword subs directly in the
package, which is contrary to the way the generated op tree looks up
the sub, via an rv2cv op. The patch makes the tokeniser generate the
rv2cv op earlier, and dig around in that.
The motivation for this is to allow modules to hook the rv2cv op
creation, to affect the name->subroutine lookup process. Currently,
such hooking affects op execution as intended, but everything goes wrong
with a bareword ref where the tokeniser looks at some unrelated CV,
or a blank space, in the package. With the patch in place, an rv2cv
hook correctly affects the tokeniser and therefore the prototype-based
aspects of parsing.
The patch also changes ck_subr (which applies the argument context and
checking parts of prototype behaviour) to handle subs referenced by an
RV const op inside the rv2cv, where formerly it would only handle a gv
op inside the rv2cv. This is to support the most likely kind of
modified rv2cv op.
The attached patch is the resulting revised version of the bareword
sub patch. It incorporates the original patch (allowing rv2cv op
hookers to control prototype processing), the GV-downgrading addition,
and a mention in perldelta.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Date: Tue, 27 Oct 2009 01:29:40 +0000
From: Zefram <zefram@fysh.org>
To: perl5-porters@perl.org
Subject: bareword sub lookups
Attached is a patch that changes how the tokeniser looks up subroutines,
when they're referenced by a bareword, for prototype and const-sub
purposes. Formerly, it has looked up bareword subs directly in the
package, which is contrary to the way the generated op tree looks up
the sub, via an rv2cv op. The patch makes the tokeniser generate the
rv2cv op earlier, and dig around in that.
The motivation for this is to allow modules to hook the rv2cv op
creation, to affect the name->subroutine lookup process. Currently,
such hooking affects op execution as intended, but everything goes wrong
with a bareword ref where the tokeniser looks at some unrelated CV,
or a blank space, in the package. With the patch in place, an rv2cv
hook correctly affects the tokeniser and therefore the prototype-based
aspects of parsing.
The patch also changes ck_subr (which applies the argument context and
checking parts of prototype behaviour) to handle subs referenced by an
RV const op inside the rv2cv, where formerly it would only handle a gv
op inside the rv2cv. This is to support the most likely kind of modified
rv2cv op.
[This commit includes the Makefile.PL for XS-APITest-KeywordRPN missing
from the original patch, as well as updates to perldiag.pod and a
MANIFEST sort]
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
An accident of Perl's parser meant that my $pi := 4; was parsed as an empty
attribute list. Empty attribute lists are ignored, hence the above is
equivalent to my $pi = 4; However, the fact that it is currently valid syntax
means that := cannot be used as new token, without silently changing the
meaning of existing code.
Hence it is now deprecated, so that it can subsequently be removed, allowing
the possibility of := to be used as a new token with new semantics.
|
|
|
|
|
|
| |
regcomp.c stopped using it before 5.10, leaving only toke.c. The only code on
CPAN that uses it is copies of regcomp.c. Replace it with a static function,
with a cleaner interface.
|
| |
|
| |
|
| |
|
|
|
|
| |
perlrepository instead.
|
| |
|
| |
|
|
|
|
| |
(suggested by Aristotle Pagaltzis -- see [perl #69957])
|
| |
|
|
|
|
|
|
|
| |
branch policy.
Wrote down the existing "no, don't mess with blead's history, bozo"
setup
|
| |
|
|
|
|
|
| |
Segfaults cause $? to be set to 139 on my machine, which stops the bisect
process.
|
| |
|
|
|
|
|
|
| |
in a regular expression" documentation
The docs were now wrong, due to new optimisations to the regexp engine.
|
|
|
|
|
| |
This solves bug "[perl #69927] wrong runaway error for write",
which is a link to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=77707
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
been lightly copyedited
|
| |
|
| |
|
| |
|
|
|
|
| |
"known issues"
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The latest commit in https://github.com/briandfoy/perlfaq is
aa2b30a3bcbf1ac69f000fe363b0c384fbc44723
dated Thu Oct 15 20:01:45 2009 -0500
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As a minor C function, I feel that at most it should be in "changed internals".
However, as it was not part of the public API, and searches showed that nothing
was using it, likely nothing is going to break if it goes. And if any naughty
code does break:
a: It will be at link time
b: It will be easy to find the cause from git log
I also feel that it's worth removing it, as existing perldeltas are the most
obvious guide for new volunteers in terms of "write something like this".
So having bad examples isn't going to help educate future authors.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Rather than transposing n + 1 bytes, including 1 it was not passed, before
calling utf16_to_utf8() and having that croak.
e 69422~
|
| |
|
|
|
|
| |
portable to Mac OS Classic
|
|
|
|
|
|
|
| |
perldelta.
perl5111delta.pod is synced up to 704e1b1ec3309aeb0e2629c93331ffd4c18c8183
but needs heavy editing and organization
|
| |
|
| |
|
| |
|
| |
|