Father Chrysostomos [Sun, 23 Jun 2013 22:48:41 +0000 (15:48 -0700)]
perldiag: Correct ‘Repeated format line...’
The perldiag entry has differed from the actual error since both were
added in
a1b950687051c.
Father Chrysostomos [Sun, 23 Jun 2013 22:44:08 +0000 (15:44 -0700)]
perldiag: Correct ‘Perl %s required’
Father Chrysostomos [Sun, 23 Jun 2013 22:42:51 +0000 (15:42 -0700)]
perldiag: Correct ‘Pattern subroutine nesting...’
Father Chrysostomos [Sun, 23 Jun 2013 22:41:22 +0000 (15:41 -0700)]
diag.t: Tolerate trailing spaces in C code
Father Chrysostomos [Sun, 23 Jun 2013 22:26:23 +0000 (15:26 -0700)]
perldiag: Document mprotect errors
Father Chrysostomos [Sun, 23 Jun 2013 22:20:07 +0000 (15:20 -0700)]
perldiag: Correct ‘length() used on %s’
Father Chrysostomos [Sun, 23 Jun 2013 22:12:17 +0000 (15:12 -0700)]
perldiag: Document ‘internal %<num>p might conflict’
Father Chrysostomos [Sun, 23 Jun 2013 22:01:48 +0000 (15:01 -0700)]
perldiag: Correct ‘Infinite recursion in regex’
Father Chrysostomos [Sun, 23 Jun 2013 21:38:32 +0000 (14:38 -0700)]
sv.c: Allow COWs through sv_magic unscathed
There is no need to run COWs through sv_force_normal when
attaching magic to them via sv_magic. (I don’t know about
PERL_OLD_COPY_ON_WRITE, but I left it in, just to be sure.)
Before this, only sv_magicext could attach magic to SVs that were
already COWs. That meant pos($cow)=7 would leave it as a COW, but
copy-on-write would never happen with tainted strings.
Father Chrysostomos [Sun, 23 Jun 2013 21:32:39 +0000 (14:32 -0700)]
perldiag: Correct ‘Don't know how to handle magic’
Father Chrysostomos [Sun, 23 Jun 2013 20:53:36 +0000 (13:53 -0700)]
perldiag: Add the elliptical variant of strict refs error
So that diagnostics.pm can find it.
Father Chrysostomos [Sun, 23 Jun 2013 19:06:11 +0000 (12:06 -0700)]
Stop undef &foo from crashing on lex subs
Father Chrysostomos [Sun, 23 Jun 2013 13:49:17 +0000 (06:49 -0700)]
op.c: Refactor calls to bad_type_sv
Every single caller passes gv_ename(namegv), so make it accept a GV
instead and have *it* call gv_ename(namegv).
Father Chrysostomos [Sun, 23 Jun 2013 13:43:25 +0000 (06:43 -0700)]
gv.c:gv_fetchmethod_pvn_flags: Avoid unnecessary extra SV
Father Chrysostomos [Sun, 23 Jun 2013 13:27:35 +0000 (06:27 -0700)]
Use UTF8f in more places
This saves having to allocate as many SVs.
Father Chrysostomos [Sun, 23 Jun 2013 07:04:57 +0000 (00:04 -0700)]
Document scalarref retvals of @INC hook
Or: Reinstate documentation removed by
cec0e1a713ccb.
That commit’s message says ‘Change the documentation of the return
values of @INC-hooks to match what is tested to work.’ But commit
34113e50d, which came before it, had already tested scalar refs.
In any case, this feature has been here for a long time, is well
tested, ain’t going anywhere, and hence needs to be documented.
Father Chrysostomos [Sun, 23 Jun 2013 06:56:40 +0000 (23:56 -0700)]
regcomp.c:regdump_intflags: rem unused var
Father Chrysostomos [Sun, 23 Jun 2013 06:17:21 +0000 (23:17 -0700)]
[Merge] Fix bugs involving compilation and ro SVs
There was an exception in sv_force_normal_flags that allowed read-only
scalars to be modified at compile time (present since
8990e30710, aka
\perl 5.0 alpha 6), which is convenient for modifying op trees.
Unfortunately, much of the code relying on it was simply buggy. So
this commit fixes those bugs and removes the exception. In some cases
the bug fixes led to other bug fixes, not necessarily related to
sv_force_normal/SvREADONLY.
Father Chrysostomos [Sun, 23 Jun 2013 00:40:04 +0000 (17:40 -0700)]
Remove ‘Can't coerce readonly %s’ error
$ ./perl -Ilib -e 'for(\1){ vec($_,0,1)=1 }'
Can't coerce readonly REF to string in sassign at -e line 1.
Why not ‘Modification of a read-only value’ as elsewhere?
The code in question, in sv_pvn_force_flags, allows references to
bypass the initial read-only check. (This has been the case since
perl-5.005_02-1047-g6fc9266. I think it was a mistake.) Then there
is a check further down that croaks with this error, unless called as
SvPV_force_mutable (i.e., with the SV_MUTABLE_RETURN flag).
So that means read-only references can silently be flattened, regard-
less of the read-only flag, if the caller uses SvPV_force_mutable.
Fortunately, the only use of that macro in the core is in fbm_compile,
which I recently modified so that it wouldn’t touch references at all.
I don’t understand the logic that allows read-only thingies to be mod-
ified in the presence of the SV_MUTABLE_RETURN flag, but not other-
wise. As of the previous commit, which removed the exception for
read-only scalars at compile time, nothing can reach that code except
read-only references.
This commit restores the logic inadvertently changed by 6fc9266 and
removes the code that becomes unreachable as a result.
Father Chrysostomos [Sat, 22 Jun 2013 23:14:24 +0000 (16:14 -0700)]
sv.c: Make sv_force_normal always croak on ro SVs
Commit
8990e30710 (perl 5.0 alpha 6) changed several SvREADONLY checks
to apply only to run time. This is convenient when it comes to modify-
ing op trees, whose SVs are, for the most part, marked read-only.
But several pieces of code that relied on this were buggy when dealing
with constants created by ‘use constant’. To make it harder to add
such bugs, I have changed all code that relies on this exception and
am now removing it.
Father Chrysostomos [Sat, 22 Jun 2013 19:43:09 +0000 (12:43 -0700)]
Increase $B::Deparse::VERSION to 1.22
Father Chrysostomos [Sat, 22 Jun 2013 19:09:07 +0000 (12:09 -0700)]
toke.c: Don’t depend on sv_force_normal’s good graces
when parsing ‘keyword =>’ with comments or line breaks before the =>.
sv_force_normal will allow modification of read-only values at compile
time. While this might be convenient, it has resulted in many bugs
elsewhere, so I am trying to change that. This is a necessary pre-
requisite.
Father Chrysostomos [Sat, 22 Jun 2013 08:16:22 +0000 (01:16 -0700)]
Copy scalar refs returned from @INC filters
This commit:
4464f08ea532be08ea7f0c44d0eb6e285a0c36fb is the first bad commit
commit
4464f08ea532be08ea7f0c44d0eb6e285a0c36fb
Author: Nicholas Clark <nick@ccl4.org>
Date: Fri Oct 23 16:54:10 2009 +0100
S_run_user_filter() can use the filter GV itself for the cache buffer.
This saves allocating an extra SV head and body.
caused this:
$ perl -e '@INC = sub { \$_ }; eval { require foo }; $a = $_;'
Bizarre copy of IO in sassign at -e line 1.
Well, passing the existing string to filter_add causes that string
*itself* to be upgraded to SVt_PVIO, which is clearly not a good thing
if the caller can still reference it. So we end up with $ bound to an
IO thingy.
And if the referent is a REGEXP, we get a crash during global destruc-
tion, or at least we did until the previous commit, which stopped
REGEXP->PVIO upgrades from being legal. (Clearly they don’t work.)
The easiest way to fix this is to copy the string into a new scalar,
which then gets upgraded to PVIO.
Father Chrysostomos [Sat, 22 Jun 2013 07:51:14 +0000 (00:51 -0700)]
Stop SVt_REGEXPs from being upgraded.
Any code that is going to write over a REGEXP will call
sv_force_normal first, which converts it to
This code started crashing in 5.12:
$_ = qr//;
@INC = sub { $_ };
require foo;
Search pattern not terminated at /loader/0x7fe3b082c2e8/foo.pm line 1.
Compilation failed in require at - line 4.
Segmentation fault: 11
With current bleadperl:
foo.pm did not return a true value at - line 4.
Segmentation fault: 11
This change makes it like this instead:
Can't upgrade REGEXP (8) to 15 at - line 3.
which is certainly an improvement. We shouldn’t be getting any error
at all (OK, just a syntax error because (?^:) is not a valid expres-
sion), and the next commit will fix that, but this commit at least
turns a crash into a panic, in case future changes accidentally send a
regexp through sv_upgrade(sv, SVt_PVIO).
Father Chrysostomos [Sat, 22 Jun 2013 01:18:33 +0000 (18:18 -0700)]
dump.c: Dump PV fields of SVt_PVIOs
Yes, these can hold PVs when source filters are involved.
Father Chrysostomos [Fri, 21 Jun 2013 21:19:54 +0000 (14:19 -0700)]
util.c: Stop ck_index/fbm_compile from abusing readonliness
There is currently a convenient exception in sv_force_normal that
allows read-only scalars to be modified at compile time.
I want to get rid of it, since most code that relies on it is buggy.
So stop ck_index from relying on that when it calls fbm_compile by
stopping fbm_compile from triggering the error by forcing stringifica-
tion of variables that are already strings.
Father Chrysostomos [Fri, 21 Jun 2013 21:14:08 +0000 (14:14 -0700)]
Stop ck_index from flattening other people’s SVs
By passing to fbm_compile the SV that is the second argument to
index(), ck_index causes it to be stringified.
That means, for example, that dualvars will lose their numeric
representation and regexps will be flattened (affecting regexp
code blocks).
This patch allows POK-only SVs to be compiled into BMs in place, as
it just adds magic and does not otherwise affect them. Other SVs get
copied first.
Also, I avoided a compile-time uninitialized warning by not running
fbm_compile on undef SVs.
Father Chrysostomos [Fri, 21 Jun 2013 20:26:54 +0000 (13:26 -0700)]
sv.h: Correct assertion in BmUSEFUL
BmUSEFUL uses the NV slot, not the IV slot. So asserting that it is
not IOK is not all that useful.
Father Chrysostomos [Fri, 21 Jun 2013 19:54:53 +0000 (12:54 -0700)]
Stop fbm_compile from flattening refs
References can change their stringification any time, so flattening
them ahead of time for efficiency gives incorect results.
Also, using a reference constant as the second argument to index
would result in the constant itself being flattened, even when used
elsewhere.
Father Chrysostomos [Fri, 21 Jun 2013 04:59:40 +0000 (21:59 -0700)]
index.t: Comment final brace
otherwise it can be quite confusing
Father Chrysostomos [Fri, 21 Jun 2013 04:44:00 +0000 (21:44 -0700)]
Stop split from mangling constants
At compile time, if split occurs on the right-hand side of an assign-
ment to a list of scalars, if the limit argument is a constant con-
taining the number 0 then it is modified in place to hold one more
than the number of scalars.
This means ‘constants’ can change their values, if they happen to be
in the wrong place at the wrong time:
$ ./perl -Ilib -le 'use constant NULL => 0; ($a,$b,$c) = split //, $foo, NULL; print NULL'
4
I considered checking the reference count on the SV, but since XS code
could create its own const ops with weak references to the same cons-
tants elsewhere, the safest way to avoid modifying someone else’s SV
is to mark the split op in ck_split so we know the SV belongs to that
split op alone.
Also, to be on the safe side, turn off the read-only flag before modi-
fying the SV, instead of relying on the special case for compile time
in sv_force_normal.
Father Chrysostomos [Sun, 23 Jun 2013 05:02:20 +0000 (22:02 -0700)]
Increase $DBM_Filter::utf8::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 05:01:46 +0000 (22:01 -0700)]
Increase perl5db.pl’s $VERSION to 1.41
Father Chrysostomos [Sun, 23 Jun 2013 05:01:03 +0000 (22:01 -0700)]
Increase $integer::VERSION to 1.01
Father Chrysostomos [Sun, 23 Jun 2013 05:00:43 +0000 (22:00 -0700)]
Increase $deprecate::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 05:00:26 +0000 (22:00 -0700)]
Increase $Tie::Scalar::VERSION to 1.03
Father Chrysostomos [Sun, 23 Jun 2013 05:00:03 +0000 (22:00 -0700)]
Increase $Tie::Hash::VERSION to 1.05
Father Chrysostomos [Sun, 23 Jun 2013 04:59:42 +0000 (21:59 -0700)]
Increase $Tie::Array::VERSION to 1.06
Father Chrysostomos [Sun, 23 Jun 2013 04:59:14 +0000 (21:59 -0700)]
Increase $Getopt::Std::VERSION to 1.09
Father Chrysostomos [Sun, 23 Jun 2013 04:58:27 +0000 (21:58 -0700)]
Increase $File::Basename::VERSION to 2.85
Father Chrysostomos [Sun, 23 Jun 2013 04:58:02 +0000 (21:58 -0700)]
Increase $ExtUtils::XSSymSet::VERSION to 1.3
Father Chrysostomos [Sun, 23 Jun 2013 04:56:51 +0000 (21:56 -0700)]
Increase $English::VERSION to 1.07
Father Chrysostomos [Sun, 23 Jun 2013 04:56:30 +0000 (21:56 -0700)]
Increase $DBM_Filter::null::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 04:56:08 +0000 (21:56 -0700)]
Increase $DBM_Filter::int32::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 04:55:49 +0000 (21:55 -0700)]
Increase $DBM_Filter::encode::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 04:55:32 +0000 (21:55 -0700)]
Increase $DBM_Filter::compress::VERSION to 0.03
Father Chrysostomos [Sun, 23 Jun 2013 04:54:52 +0000 (21:54 -0700)]
Increase $DBM_Filter::VERSION to 0.06
Father Chrysostomos [Sun, 23 Jun 2013 04:54:23 +0000 (21:54 -0700)]
Increase $DB::VERSION to 1.07
Father Chrysostomos [Sun, 23 Jun 2013 04:53:12 +0000 (21:53 -0700)]
Increase $Class::Struct::VERSION to 0.65
Father Chrysostomos [Sun, 23 Jun 2013 04:52:11 +0000 (21:52 -0700)]
Increase $Benchmark::VERSION to 1.17
Father Chrysostomos [Sun, 23 Jun 2013 04:51:42 +0000 (21:51 -0700)]
Increase $XS::APItest::VERSION to 0.54
Father Chrysostomos [Sun, 23 Jun 2013 04:51:07 +0000 (21:51 -0700)]
Increase $I18N::Langinfo::VERSION to 0.11
Father Chrysostomos [Sun, 23 Jun 2013 02:09:14 +0000 (19:09 -0700)]
Increase $Hash::Util::FieldHash::VERSION to 1.12
Father Chrysostomos [Sun, 23 Jun 2013 02:08:49 +0000 (19:08 -0700)]
Increase $Devel::Peek::VERSION to 1.12
Father Chrysostomos [Sun, 23 Jun 2013 02:08:23 +0000 (19:08 -0700)]
Increase $B::Concise::VERSION to 0.97
Father Chrysostomos [Sun, 23 Jun 2013 02:07:16 +0000 (19:07 -0700)]
Increase $Safe::VERSION to 2.37
Father Chrysostomos [Sun, 23 Jun 2013 02:06:56 +0000 (19:06 -0700)]
Increase $File::Spec::Win32::VERSION to 3.42
Father Chrysostomos [Sun, 23 Jun 2013 02:06:38 +0000 (19:06 -0700)]
Increase $File::Spec::VMS::VERSION to 3.42
Father Chrysostomos [Sun, 23 Jun 2013 02:05:53 +0000 (19:05 -0700)]
Increase $strict::VERSION to 1.08
Father Chrysostomos [Sun, 23 Jun 2013 02:04:26 +0000 (19:04 -0700)]
Increase $vmsish::VERSION to 1.04
Brian Gottreu [Sun, 16 Jun 2013 18:37:33 +0000 (13:37 -0500)]
Fixed verbatim lines in POD over 79 characters
James E Keenan [Sun, 23 Jun 2013 01:59:11 +0000 (03:59 +0200)]
Documentation corrections from Wallace Reis++.
For RT #118593, 118595, 118597, 118599.
Yves Orton [Sat, 22 Jun 2013 17:02:08 +0000 (19:02 +0200)]
add PL_reg_intflags_name to globvar.sym - used in debugging regex engine
Yves Orton [Sat, 22 Jun 2013 16:17:09 +0000 (18:17 +0200)]
Fix and add tests for *PRUNE/*THEN plus leading non-greedy +
"aaabc" should match /a+?(*THEN)bc/ with "abc".
Yves Orton [Sat, 22 Jun 2013 16:16:36 +0000 (18:16 +0200)]
Show intflags as well as extflags
Peter Martini [Sat, 22 Jun 2013 04:09:12 +0000 (00:09 -0400)]
Treat a consecutive semicolons in a prototype as 1
This also intentionally ignores spaces; they're ignored by
the toker, but if the prototype was set externally, they
may have leaked in. This is just for the method/not method
checks.
James E Keenan [Fri, 21 Jun 2013 22:54:59 +0000 (00:54 +0200)]
Correction to Perl version number.
As reported by niels@thykier.net++ in RT #118575.
Chris 'BinGOs' Williams [Fri, 21 Jun 2013 21:29:11 +0000 (22:29 +0100)]
Update Text-ParseWords to CPAN version 3.29
[DELTA]
3.29
Remove pod test from distribution
Chris 'BinGOs' Williams [Fri, 21 Jun 2013 21:18:38 +0000 (22:18 +0100)]
Update Params-Check to CPAN version 0.38
[DELTA]
Changes for 0.38 Thu Jun 20 10:43:37 2013
============================================
* Typo fixes by David Steinbrunner
Chris 'BinGOs' Williams [Fri, 21 Jun 2013 21:14:39 +0000 (22:14 +0100)]
Update HTTP-Tiny to CPAN version 0.033
[DELTA]
0.033 2013-06-21 06:26:51 America/New_York
[FIXED]
- Modifying the 'agent' attribute with the accessor will append the
default agent string, just like setting it during construction
0.032 2013-06-20 11:41:24 America/New_York
[ADDED]
- Added 'no_proxy' attribute, defaulting to $ENV{no_proxy}
Chris 'BinGOs' Williams [Fri, 21 Jun 2013 21:09:59 +0000 (22:09 +0100)]
Module-CoreList is 2.92 on CPAN
Karl Williamson [Fri, 21 Jun 2013 20:19:30 +0000 (14:19 -0600)]
perldata: More identifier definition fix
Commit
9c1129c7de15ff8044f606550980c47f8c1724e9 did not update the
(?(DEFINE). This does that.
Father Chrysostomos [Fri, 21 Jun 2013 19:38:27 +0000 (12:38 -0700)]
Increase $B::VERSION to 1.44
Father Chrysostomos [Fri, 21 Jun 2013 18:26:26 +0000 (11:26 -0700)]
Remove BmRARE and BmPREVIOUS
These were only used by the study code, which was disabled in 5.16.0
and removed shortly thereafter.
Johan Vromans [Fri, 21 Jun 2013 15:31:54 +0000 (17:31 +0200)]
Update perlsub.pod for lvalue subroutines.
Karl Williamson [Fri, 21 Jun 2013 18:04:32 +0000 (12:04 -0600)]
PATCH [perl #118563]: Fix perldata ident defn
The formal definition of identifiers was missing the fact that every
character in an identifier must match \w. This also adds some
explanation.
David Golden [Fri, 21 Jun 2013 14:02:07 +0000 (10:02 -0400)]
release_managers_guide.pod: amended based on v5.19.1 experience
Nicholas Clark [Sun, 26 May 2013 06:50:17 +0000 (08:50 +0200)]
Improved struct pmop alignment fix - avoid the slow path on 64 bit systems.
Commit
c2a50ddb1bed6576 works round an alignment bug in the slab allocator
for 32 bit systems built with 64 bit IVs. However, the C pre-processor logic
meant that the test path was enabled on true 64 bit systems. It's not needed
there, so improve the logic so that it isn't compiled for platforms where
pointers are 64 bit.
Father Chrysostomos [Thu, 20 Jun 2013 21:07:19 +0000 (14:07 -0700)]
[perl #118305] make dtrace sub-entry probe support lexsubs
No tests, because I don’t know how to write them.
See also <https://rt.perl.org/rt3/Ticket/Display.html?id=118305#txn-1221543>.
I have tested this manually, so I know it works and no longer crashes.
Hopefully someone else can follow this up with tests.
Father Chrysostomos [Thu, 20 Jun 2013 11:55:20 +0000 (04:55 -0700)]
optree_constants.t: Correct line number in comment
Why we need a reference like this is beyond me, but it is extremely
fragile, because even cosmetic changes to gv.t will throw it off.
That said, at least the next person looking at it won’t be as puzzled
as I was (until the next gv.t change).
Father Chrysostomos [Thu, 20 Jun 2013 05:50:35 +0000 (22:50 -0700)]
perldiag: Document ‘Can't call mro_method_changed_in()’
David Golden [Fri, 21 Jun 2013 09:37:19 +0000 (05:37 -0400)]
Revert "portport: remove DG/UX"
This reverts commit
28371e3dbee6234e13f1dfa4afb650ba7691ebfc.
David Golden [Fri, 21 Jun 2013 03:13:53 +0000 (23:13 -0400)]
Porting/epigraphs.pod: add link to release announcement
Brian Gottreu [Fri, 21 Jun 2013 00:28:23 +0000 (17:28 -0700)]
Benchmark.t: fix skip() argument order
David Golden [Fri, 21 Jun 2013 02:29:24 +0000 (22:29 -0400)]
stub Module::CoreList for v5.19.2
David Golden [Fri, 21 Jun 2013 02:14:02 +0000 (22:14 -0400)]
bump version to v5.19.2
David Golden [Fri, 21 Jun 2013 02:01:51 +0000 (22:01 -0400)]
new perldelta
David Golden [Fri, 21 Jun 2013 01:39:00 +0000 (21:39 -0400)]
Porting/epigraphs.pod: add v5.19.1 and v5.19.0 epigraphs
David Golden [Thu, 20 Jun 2013 22:54:32 +0000 (18:54 -0400)]
add cpan/autodie/t/truncate_me to makerel @writables list
David Golden [Thu, 20 Jun 2013 21:39:11 +0000 (17:39 -0400)]
finalize perldelta.pod for v5.19.1
David Golden [Thu, 20 Jun 2013 20:54:09 +0000 (16:54 -0400)]
update perlhist for v5.19.1
David Golden [Thu, 20 Jun 2013 20:40:42 +0000 (16:40 -0400)]
update Module::CoreList for v5.19.1 release
David Golden [Thu, 20 Jun 2013 20:24:05 +0000 (16:24 -0400)]
portport: remove DG/UX
David Golden [Thu, 20 Jun 2013 20:20:29 +0000 (16:20 -0400)]
Fix Perl version references in INSTALL
Also update the RMG to remind people to do this for the "late" bumps in
BLEAD-POINT and BLEAD-FINAL releases
Yves Orton [Thu, 20 Jun 2013 19:51:48 +0000 (21:51 +0200)]
add some tests for Perl #71922
Apparently this is fixed now. But add tests
David Golden [Thu, 20 Jun 2013 02:28:22 +0000 (22:28 -0400)]
Rough draft of perldelta for v5.19.1
Added some things that were missing; deleted lots of boilerplate and
unused sections.
Module updates are not done, as Module::CoreList needs updating first.
Acknowlegements are not done, either.
David Golden [Thu, 20 Jun 2013 01:17:42 +0000 (21:17 -0400)]
bump Time::Piece VERSION to 1.2002
David Golden [Thu, 20 Jun 2013 00:57:53 +0000 (20:57 -0400)]
t/porting/customized.t: consistent data file sorting
David Golden [Thu, 20 Jun 2013 00:41:00 +0000 (20:41 -0400)]
Update Maintainers.PL for divergence from cpan
I've noted some files customized in blead and marked
Devel::PPPort as 'undef' upstream as it appears unmaintained
and rjbs has asked the maintainer to switch it to blead.
With this change, core-cpan-diff on the 'cpan' upstream is clean.
David Golden [Wed, 19 Jun 2013 22:34:52 +0000 (18:34 -0400)]
fix core-cpan-diff treatment of 'undef'