| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- remove template notes
- add items not mentioned before
- key highlights of updated modules
- changes to supported platforms
- perlbug enhancements
- perldiag's removal of diag corresponding to experimental::lexical_topic
- "Allow sub-in-stash outside of main" change actually happened in 5.27.5
- added a few RT#s to existing entries
- misc markup and spelling fixes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because OP_MULTICONCAT optimises away any const SVs, they have to be
recreated if a concat overload method is called. Up until now (for
efficiency) the same SvTEMP was used to create each const TEMP. This
caused problems if an overload method saved a ref to the argument.
This is easily fixed by not reusing the TEMP (and the extra inefficiency
is small compared to the overall burden of calling out to an overloaded
method).
With this patch, the following test code changes from getting "BB" to
getting "AB":
my @a;
use overload '.' => sub { push @a, \$_[1]; $_[0] };
my $o = bless [];
my $x = $o . "A" . $o . 'B';
is "${$a[0]}${$a[2]}", "AB", "RT #132385";
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
xz compresses better and decompresses faster, gzip is still more
compatible and uses less memory. In the recent years we've
archived perl as both gzip, bzip2 and xz which doesn't make much
sense. This is a followup to f276fdad.
closes [perl #132381].
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The substitution code was trying to track the taintedness of the
replacement string itself, but it didn't account for the replacement
being an untainted object with overloading that returns a tainted
stringification. It looked at the taintedness of the object value, not
realising that taint could arise during the string concatenation per se.
Change the taint checks to look at the actual TAINT_get flag after string
concatenation. This may falsely ascribe to the replacement taint that
actually came from somewhere else, but the end result is the same anyway:
there's no visible behaviour that distinguishes taint specifically from
the replacement. Also remove a related taint check that seems to be
not needed at all. Fixes [perl #115266].
|
| |
|
|
|
|
| |
..as the comment next to the $VERSION declaration reminds us to do
|
|
|
|
| |
For commit 9b79e9e3431d11e79a4f85268f70130b7b4369f6
|
|
|
|
|
|
| |
The previous commit calculates this and placed the result in a header
file. This now uses the calculated value instead of a hard-coded "4",
which is incorrect on EBCDIC platforms.
|
|
|
|
|
| |
We need the length of the UTF-8 for this code point elsewhere, and it
is different between ASCII and EBCDIC.
|
| |
|
|
|
|
|
| |
Since that now matches what we have in blead, we no longer need to have a
CUSTOMIZED entry in Porting/Maintainers.pl.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C89 does not in fact define snprintf() or vsnprintf(), and we must therefore
probe for the existence of those functions before trying to use them.
khw++ for pointing out my earlier error.
This reverts part or all of each of the following commits:
13d66b05c6163c3514774d3d11da5f3950e97e98 Rely on C89 vsnprintf()
e791399041815a1a45cea3c7f277c7045b96e51b Rely on C89 snprintf()
adf7d503e55721c500f0bf66560b8f5df7966fe7 pod/perlhacktips.pod: remove some outdated portability notes
|
|
|
|
|
|
|
|
| |
Cross/config.sh-arm-linux-n770 should probably have been added to the list
of config-symbol files when it was first added, and the fact that it wasn't
means that there are many symbols it doesn't list. In the absence of any
better information, I've defaulted them to the Cross/config.sh-arm-linux
values.
|
| |
|
| |
|
|
|
|
|
|
| |
Commit 46857622bdd8fff9558b66485f86ae4eb019ec55 of the metaconfig repo
reverts to the upstream version of i_sysmman.U, which has a slightly
different comment.
|
|
|
|
|
|
|
|
|
|
|
| |
perluniprops was not updated to reflect the changes made to what
\p{Word} contains as of 5.18. What was added was the code points that
have the Join_Control property, which, so far, only contain U+200C and
U+200D. This commit uses Join Control instead of the hard-coded code
point numbers, so that when Unicode changes it, it automatically will
still be valid.
Thanks for spotting this.
|
|
|
|
| |
Documentation changes get =items, not =head3s.
|
|
|
|
| |
[perl #132460]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When deparsing a reference to a sub in the current package, other than in
a call expression, with "use strict 'vars'" in effect and no lexical sub
of the same name in scope, commit dd6661605fe0a54c602f2e55f875acfdcd330b79
accidentally changed the deparsing from "&main::foo" to "&foo".
Both deparsings are correct, and the short one arguably preferable.
In fact, the deparsing was originally of the short form, but changed to
the long form (probably accidentally) in Perl 5.21.7, when the deparser
started adding the package to distinguish package subs from lexical subs
of the same name. Nevertheless, it was not the intention to change this
output in that edit, and it broke a CPAN module's tests. Consequently,
this commit restores the long-form deparsing in this case.
|
|
|
|
| |
[perl #119635]
|
|
|
|
|
|
|
| |
The E flag added in cfd95a374972942cba5e8afc019dc6019815b45c needs
either the X flag or be private to its containing file.
Spotted by Craig Berry.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The file test operators for Unix permission bits were returning a blanket
false result on systems where the bit being tested for doesn't exist.
That's a sensible way to treat a nonexistent bit when statting a file,
but the false result was being returned without checking that the argument
actually refers to a file. Remove the pre-stat checks for nonexistent
bits, so that we get the correct errors for non-files. We still get a
blanket false result for nonexistent bits on files.
|
|
|
|
|
|
|
|
|
| |
Prepending './' to what might not be a Unix filespec can't be
relied on to work (and it definitely doesn't on VMS). So use the
functions File::Spec provides to do this portably.
N.B. File::Spec->catfile() is smart enough not to prepend the
value of curdir() if it's already there.
|
|
|
|
|
|
|
|
|
| |
See thread starting at
http://nntp.perl.org/group/perl.perl5.porters/247120
I don't believe this needs a perldelta, as the functions weren't
documented, hence are not supposed to be used, and in fact are not used
in cpan.
|
| |
|
| |
|
|
|
|
| |
Either one would have caught the error fixed by the previous commit.
|
|
|
|
|
| |
"$$_TEST" gets parsed as "${$_TEST}", which evaluates to the empty
string, because this test uses neither strict nor warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The file pattern TEST.symlink.$$ is an ambiguous filename on VMS
because the digits of the $$ could be construed as a version
number or as part of the filename proper, depending on various
environmental settings. This would not cause stat.t to fail but
could prevent removal of the symlink. Which would then cause
ext/File-Glob/t/basic.t to fail because it scans the t/ directory
for files match TES* and falls down when it finds files it does
not expect.
In principle this could cause trouble for parallel tests on any
platform if stat.t's detritus happens to be present while the
File::Glob tests are running.
Short of a major rethink of the test suite to stop tests from using
t/ as their personal playground, the safest bet seems to be to use
a filename that is unambiguous on VMS and will not collide with
tests expecting t/TEST to be the only file in that directory that
begins with 'TES'.
|
|
|
|
|
| |
4-arg substr uses its first arg as an lvalue, but wasn't lvaluifying
it properly. [perl #115258]
|
|
|
|
|
|
|
| |
For the last several releases of Perl, the items listed in the note were
always those from the C locale, regardless of the real one. Before
that, it was even more buggy, whether you got the C locale or the real
one was complicated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A bareword ending in "::" has one "::" suffix stripped upon parsing,
so when deparsing a glob name ending in "::" as a bareword it needs
another "::" added. But this only applies to barewords, not to glob
names that follow sigils, so the deparser needs to distinguish between
contexts for glob names in some places where it previously did not.
Fixes [perl #113716].
This change supersedes the recent change about deparsing glob names in
the CORE stash. Those glob names are now handled by suffixing "::",
and this suffix is only added in bareword contexts, making the handling
of the two unusual cases identical.
|
|
|
|
|
|
|
| |
It seemed to imply that the bytes making up the char were s..e; they're
actually s..(e-1).
NPD
|
|
|
|
|
|
| |
ASSIGNOP includes mutators like += as well as basic assignment
NPD
|
|
|
|
|
|
|
| |
A bareword such as "::CORE::foo", where it refers to a GV, is liable to be
confused with the "CORE::foo" syntax, which can't refer to a GV but is a
way of supplying a keyword, and is illegal if the keyword doesn't exist.
Make sure to deparse it with the "::" prefix. Fixes [perl #113714].
|
|
|
|
|
| |
B::Deparse is distributed only with the core. It has no need to be
portable between Perl versions or to have its own change log.
|
| |
|
|
|
|
|
|
|
|
| |
This commits fixes remarks raised
during the 2017 p5h in Amsterdam.
- fix precedence issue with '=~'
- stop using indirect new calls for SelectSaver.
|
| |
|