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'
Father Chrysostomos [Wed, 19 Jun 2013 12:57:34 +0000 (05:57 -0700)]
perldelta for #118047
Father Chrysostomos [Wed, 19 Jun 2013 12:55:28 +0000 (05:55 -0700)]
[perl #118047] Don’t warn for tr//a/c
Since /c means to invert the search list (the empty string), making
it match all characters, it doesn’t make sense to warning about the
replacement list (a) being longer than the search list.
Chris 'BinGOs' Williams [Wed, 19 Jun 2013 07:14:10 +0000 (08:14 +0100)]
Update Archive-Tar to CPAN version 1.92
[DELTA]
* important changes in version 1.92 18/09/2013 (David Steinbrunner)
- typo fixes
Nicholas Clark [Tue, 18 Jun 2013 14:24:20 +0000 (16:24 +0200)]
If miniperl fails the simple Exporter test, print a message and bail out.
Previously the Makefile rule for miniperl would attempt to automatically run
minitest if the simple Exporter test failed. It did this by recursively
calling make in the same directory, which is not a totally safe thing to do
even at the best of times.
However commit
cb251201d6951395, necessary to simplify other parts of the
toolchain bootstrapping, has made it easy to trigger an infinite loop of
Makefile recursion if miniperl is unable to run the simple Exporter test.
So, for now, defuse the trap by avoiding the recursive make call. A better
long term solution will be to set up and run minitest by something other than
a Makefile target, such as a shell script. As it's not immediately obvious how
to best integrate this with ./runtests, commit this simpler fix for now.
Nicholas Clark [Mon, 17 Jun 2013 12:02:13 +0000 (14:02 +0200)]
For *nix, only delete the ppport.h files that we created.
Given that we have the list of places to create ppport.h files easily
accessible, it's easy to delete only the files that we created, and avoid a
find recursing into all of ext/, dist/ and cpan/. This also means that if
anyone drops a module from CPAN into ext/ to build it as part of the core,
any ppport.h it has won't be wiped out by the core. This is one of the few
things that goes wrong, as the rest of the distclean target is very careful
to only delete files that it knows that the build process built.
Ricardo Signes [Tue, 18 Jun 2013 23:13:59 +0000 (19:13 -0400)]
perldelta: note the change to "goto" in perlfunc
Ricardo Signes [Tue, 18 Jun 2013 23:12:03 +0000 (19:12 -0400)]
replace weird C<goto-TYPE> with C<goto TYPE>
the hyphenated form dates to a0d0e21, the Perl 5.000 commit
nothing else looks this way, and the difference seems to win
us nothing
Ricardo Signes [Mon, 17 Jun 2013 22:21:51 +0000 (18:21 -0400)]
document that goto-EXPR will treat a subref differently
This has been the case since Perl 5.8 at least, and possibly longer.
This resolves [perl #118523].
Karl Williamson [Tue, 18 Jun 2013 22:00:43 +0000 (16:00 -0600)]
lib/locale.t: Remove workaround for now fixed #108378
Father Chrysostomos [Tue, 18 Jun 2013 20:40:18 +0000 (13:40 -0700)]
UTF8f
This new format string allows char*s to be interpolated with the
utf8ness and length specified as well:
Perl_croak(aTHX_ "Couldn't twiggle the twoggle in \"%"UTF8f"\"",
is_utf8, len, s);
This commit changes one function call in gv.c to use UTF8f (it should
go faster now) as an example of its use.
This was brought up in ticket #113824. This commit does not fix
#113824, but provides groundwork that makes it easier to fix.
Karl Williamson [Tue, 18 Jun 2013 20:23:57 +0000 (14:23 -0600)]
perlfunc: Add caveat about string eval containing NV scalar
Karl Williamson [Tue, 18 Jun 2013 20:08:32 +0000 (14:08 -0600)]
perlapi: Add note to isASCII
Karl Williamson [Tue, 18 Jun 2013 19:40:35 +0000 (13:40 -0600)]
perlrecharclass: Nits
Karl Williamson [Tue, 18 Jun 2013 19:24:14 +0000 (13:24 -0600)]
pp.c: Use correct size for two arrays.
The number of bytes the result of changing the case of a single UTF-8
character is given by UTF8_MAXBYTES_CASE. In one of these arrays, space
is saved by using the proper #define; in the other there is no change
except on EBCDIC platforms.
Karl Williamson [Tue, 18 Jun 2013 19:08:32 +0000 (13:08 -0600)]
Nicholas Clark [Tue, 18 Jun 2013 09:26:50 +0000 (11:26 +0200)]
In FindExt, use File::Find instead of shelling out to a dir command.
The FindExt code is tested on *nix, and at least some systems have a dir
executable, which generates warnings to stderr when invoked with parameters
intended for the Win32 dir command.
File::Find is portable, and avoids starting a new process.
Chris 'BinGOs' Williams [Tue, 18 Jun 2013 17:39:44 +0000 (18:39 +0100)]
Add Module::CoreList::Utils to perldelta as a new module.
Chris 'BinGOs' Williams [Tue, 18 Jun 2013 17:34:09 +0000 (18:34 +0100)]
Add documentation for Module::CoreList::Utils
Chris 'BinGOs' Williams [Tue, 18 Jun 2013 17:09:30 +0000 (18:09 +0100)]
Correct module links in perldelta
Father Chrysostomos [Tue, 18 Jun 2013 15:26:12 +0000 (08:26 -0700)]
perldelta for #118297
copied from
f4612955aa389 on the maint-5.18 branch
Chris 'BinGOs' Williams [Tue, 18 Jun 2013 12:44:59 +0000 (13:44 +0100)]
Update release managers guide to note to bump Module::CoreList::Utils version too
Chris 'BinGOs' Williams [Tue, 18 Jun 2013 12:40:52 +0000 (13:40 +0100)]
Manually add Utils delta for v5.19.1
I haven't fixed the adjustments to Porting/corelist.pl yet
for generating a utils delta.