| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the &Internals::* functions that use references in their
prototypes to check if the argument is SvROK() before calling SvRV().
If the function is called as Internals::FOO() perl does this check for
us, but prototypes are bypassed on &Internals::FOO() so we still have
to check this manually.
This fixes [perl #77776], this bug was present in 5.10.x, 5.12.x, and
probably all earlier perl versions that had these functions, but I
haven't tested that.
I'm adding a new test file (t/lib/universal.t) to test universal.c
functions as part of this patch. The testing for Internal::* in t/ was
and is very sparse, but before universal.t there was no obvious place
to put these tests.
Signed-off-by: Ævar Arnfjörð Bjarmason <avar@cpan.org>
|
|
|
|
|
| |
Signed-off-by: Florian Ragwitz <rafl@debian.org>
[rafl@debian.org: Changed tabs to spaces in perlguts chunks for consistency]
|
|
|
|
|
| |
neither warnings nor warnings::register are new. Also mention the version
changes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. &warnings::register is added as the public mechanism for adding
new warning categories, rather than warnings::register::import
knowing about warnings's internals
2. warnings::register::import is updated to use &warnings::register
3. warnings::register::import can take a list of subcategories
The upshot is that you can now write:
package MyTool;
use warnings::register qw(io typos);
warnings::warnif('MyTool::io', $message);
...and tools that register new warnings categories do not need to cargo cult
code from warnings/register.pm
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This makes a qw(...) list literal a distinct token type for the
parser, where previously it was munged into a "(",THING,")" sequence.
The change means that qw(...) can't accidentally supply parens to parts
of the grammar that want real parens. Due to many bits of code taking
advantage of that by "foreach my $x qw(...) {}", this patch also includes
a hack to coerce qw(...) to the old-style parenthesised THING, emitting
a deprecation warning along the way.
|
|
|
|
|
|
|
|
|
| |
As of Perl 5.12.0, the each(), keys() and values() functions also
operate on arrays, but were not listed in the table of contents section
titled "Functions for real @ARRAYs". This patch fixes that oversight.
The delete() and exists() functions were not added, as their use on
array elements has been deprecated.
|
|
|
|
|
|
|
| |
This was introduced with the perlXXXdelta.pod -> perldelta.pod move. buildtoc
assumed the copy target (perldelta.pod) should appear in perl.pod. Now
perldelta.pod is the copy source, but should still appear in perl.pod, while
perlXXXdelta.pod should not.
|
|
|
|
| |
Pointed out by pjcj++ and, again, ilmari++
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
yyparse() becomes reentrant. The yacc stack and related resources
are allocated in yyparse(), rather than in lex_start(), and they are
localised to yyparse(), preserving their values from any outer parser.
yyparse() now takes a parameter which determines which production it
will parse at the top level. New API function parse_fullstmt() uses this
facility to parse just a single statement. The top-level single-statement
production that is used for this then messes with the parser's head so
that the parsing stops without seeing EOF, and any lookahead token seen
after the statement is pushed back to the lexer.
|
| |
|
| |
|
|
|
|
|
| |
Stop magic applied to $!, %SIG, et al. from applying to similarly-
named variables in other packages.
|
|
|
|
|
| |
This way patches including perldelta entries will apply properly, no matter when
they are applied. If there's conflicts, they'll at least be in the right file.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
From a suggestion from Ben Morrow.
The first argument used to be struct refcounted_he *, which exposed an
implementation detail - that the COP's labels are (now) stored in this way.
Google Code Search and an unpacked CPAN both fail to find any users of this
API, so the impact should be minimal.
|
|
|
|
|
| |
This change is analogous to bc3707112523ba7a in Tie::Scalar, but with far fewer
tests.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This patch retroactively adds a description of the breakage to
perl5134delta so it will be copied eventually into perl5140delta.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
The description of the J debugging flag was logically the reverse of what
it should be; i.e. -DJ enables, rather than suppresses, output in debugger
packages
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was some misleading, or uncharitably, wrong text in this pod about
user-defined casing. And, it jumped the gun, presuming that 5.14 would
fix something for which there has not been a patch submitted yet.
And, I realized there was a way around having to figure out the utf8 for
a character.
|
| | |
|
| |
| |
| |
| |
| | |
It looks as though a space was inadvertently removed. The example makes no sense
without it.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are left from PERL_OBJECT, which was an implementation of
multiplicity using C++ objects. PERL_OBJECT was removed in 5.8, but the
macros seem to have been cargo-culted all over the core (including in
places where they would have been inappropriate originally). Since they
now do exactly nothing, it's cleaner to remove them.
I have left the definitions in perl.h, under #ifndef PERL_CORE, since
some CPAN XS code uses them (also often incorrectly). I have also left
STATIC alone, since it seems potentially more useful and is much more
ingrained.
The only appearance of these macros this patch doesn't touch is in
Devel-PPPort, because that's a CPAN module.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
They've always been sort of private, even tho the symbols are exported.
|