Nicholas Clark [Mon, 6 Jun 2011 17:48:03 +0000 (19:48 +0200)]
In IPC::Open3::_open(), switch from 'r' and 'w' to '<' and '>'.
IO::Handle accepts either, but open only accepts the latter.
In spawn_with_handles(), hoist the C<require Fcntl> into the only block that
needs it - this avoids loading Fcntl on Win32.
Nicholas Clark [Mon, 6 Jun 2011 17:19:29 +0000 (19:19 +0200)]
Use $handles[2]{dup_of_out} for the special case code for shared STD{OUT,ERR}.
As C<dup_of_out> is never set on the other two members of @handles, this will
allow code simplification.
Nicholas Clark [Mon, 6 Jun 2011 16:26:35 +0000 (18:26 +0200)]
In IPC::Open3::_open3(), move $kid_{rdr,wtr,err} to @handles.
Switch to 3-arg open where code is changing.
Nicholas Clark [Mon, 6 Jun 2011 16:02:33 +0000 (18:02 +0200)]
In IPC::Open3::_open3(), move $dup_{wtr,rdr,err} to @handles.
Nicholas Clark [Mon, 6 Jun 2011 15:11:35 +0000 (17:11 +0200)]
In IPC::Open3::_open3(), move $dad_{wtr,rdr,err} to @handles.
Switch to 3-arg open where code is changing. Additionally, @_ can now be used
in place of @cmd.
Nicholas Clark [Mon, 6 Jun 2011 13:02:22 +0000 (15:02 +0200)]
Move the table describing file handles near to the top of IPC::Open::open3().
Also convert fileno BAREWORD to fileno \*BAREWORD. These will aid future
refactoring.
Nicholas Clark [Mon, 6 Jun 2011 12:43:56 +0000 (14:43 +0200)]
Move the autovivification emulation code to the top of IPC::Open3::_open3().
This avoids having to re-assign to the scalars $dad_wtr and $dad_rdr.
Nicholas Clark [Mon, 6 Jun 2011 12:29:19 +0000 (14:29 +0200)]
Refactor IPC::Open3::_open3() to find the caller's package itself.
Previously it was passed in as a parameter by IPC::Open2::open2() and
IPC::Open3::open3(), each of which used C<calller> to find it. Move the use of
caller to one place.
It would also be possible to use C<caller> to eliminate the first parameter to
_open3(), but this would add more code than it removes, so doesn't seem wise.
Nicholas Clark [Sun, 5 Jun 2011 17:47:32 +0000 (19:47 +0200)]
IPC::Open3::open3() couldn't duplicate numeric file descriptors on Windows.
Nicholas Clark [Sun, 5 Jun 2011 14:31:02 +0000 (16:31 +0200)]
Avoid an uninitialized hash key in IPC::Open::spawn_with_handles().
Nicholas Clark [Sun, 5 Jun 2011 13:58:39 +0000 (15:58 +0200)]
IPC::Open3::open3() shouldn't fail if any of *STD{IN,OUT,ERR} are localized.
Previously it would fail on Win32, because spawn_with_handles() would attempt
to duplicate all three, ignoring failures at this point, but then report
failure to close any as a fatal error, even if this was because the earlier
dup-ing had failed.
Also avoid a warning in the *nix code path in open3() if STDERR is localized
(and hence fileno STDERR is undefined).
Nicholas Clark [Sun, 5 Jun 2011 13:01:13 +0000 (15:01 +0200)]
Add debug code to test IPC::Open3::spawn_with_handles() on *nix.
This allows testing of the (normally) Win32 and OS/2 specific code paths in
IPC::Open3::open3().
Nicholas Clark [Mon, 6 Jun 2011 20:45:46 +0000 (22:45 +0200)]
In IPC::Open3::_open(), use 3 argument open to avoid a special case for STDERR.
The code for STDIN and STDOUT never ends up needing to duplicate a reference.
The code for STDERR can, because of the earlier special case code to save
STDOUT. It was special-cased to use fileno in commit
8b3e92c60014b4e7, in 1998.
This was before 3 argument open. With 3 argument open the special case can be
avoided.
Nicholas Clark [Mon, 6 Jun 2011 14:16:37 +0000 (16:16 +0200)]
Generalise IPC::Open3::xopen() to $n-argument open.
Previously it could only perform 2 argument open.
Nicholas Clark [Sun, 5 Jun 2011 15:06:14 +0000 (17:06 +0200)]
Simplify the test for IPC::Open bug RT #72016.
The original bug was a request that errors be reported in the parent process,
with a TODO test, and then a patch that added the feature for the !DO_SPAWN
case, and removed the TODO. The *implication* of the bug report and the way the
original test was only TODO for the !DO_SPAWN case was that errors were
reported inconsistently between the two code paths of open3().
However, this is not the case - the DO_SPAWN path through open3() return a
(pseudo) PID (and no error) when asked to run a non-existent program. Hence
there is now a feature discrepancy between the alternative implementations,
which feels like a bug that should (ultimately) be addressed.
The original test could have expressed that more directly with one code path
and a TODO. The refactoring of
bd29e8c290c68f4f failed to spot this, and
introduced new logic errors in the DO_SPAWN path - waitpid() should not be
called if $@ is set.
Set $pid outside the eval {} - this makes sure it is (re)set to undef if the
eval fails, instead of holding its previous (now bogus) value.
Father Chrysostomos [Fri, 10 Jun 2011 20:31:43 +0000 (13:31 -0700)]
Revert "Regenerate known_pod_issues.dat"
This reverts commit
a15bfc9e2304470503968445191dc51fa75f3b82.
I was two hours too late. Commit
2592f3b8 solved this before I
pushed that change.
Leon Brocard [Fri, 10 Jun 2011 20:28:21 +0000 (21:28 +0100)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Leon Brocard [Fri, 10 Jun 2011 20:28:08 +0000 (21:28 +0100)]
Update the list of CPAN mirrors in pod/perlmodlib.PL
Father Chrysostomos [Fri, 10 Jun 2011 20:27:21 +0000 (13:27 -0700)]
Correct example commit in release_managers_guide.pod; add example
The
8891dd8d commit mentioned in the perlNNNdelta section is actually
an example of a perl version bump. So I’ve copied it to that section
and replaced the commit id in the perlNNNdelta section with dd885b5,
which *is* a perlNNNdelta TOC update.
Father Chrysostomos [Fri, 10 Jun 2011 20:20:23 +0000 (13:20 -0700)]
Regenerate known_pod_issues.dat
I think there’s a bug in podchecker, as it seems to be counting octets
instead of characters in README.tw.
Leon Brocard [Fri, 10 Jun 2011 20:27:29 +0000 (21:27 +0100)]
Add program which generates the list of registered CPAN sites in perlmodlib.PL
Robin Barker [Fri, 10 Jun 2011 05:47:54 +0000 (06:47 +0100)]
unused variable tmpgv
gcc reports an unused variable 'tmpgv', this was left
behind by commit
0e21945565eb4664d843bb819fb032cedee4d5a6.
Deleting the declaration has no consequences.
Signed-off-by: David Golden <dagolden@cpan.org>
David Golden [Fri, 10 Jun 2011 15:55:56 +0000 (11:55 -0400)]
Show diagnostic link format in perldelta template
David Golden [Fri, 10 Jun 2011 17:54:35 +0000 (13:54 -0400)]
podcheck.t: decode verbatim paragraphs before checking length
David Golden [Fri, 10 Jun 2011 16:59:26 +0000 (12:59 -0400)]
Partial perldelta update through 9603df1
Additional documentation related entries have not yet been added
David Golden [Fri, 10 Jun 2011 15:53:16 +0000 (11:53 -0400)]
git-deltatool: show progress only for interactive modes
Father Chrysostomos [Fri, 10 Jun 2011 17:54:20 +0000 (10:54 -0700)]
Suppress proto warning from attrs.t
attributes::get was being called before attributes.pm was loaded.
Why this did not warn before I know not. Maybe that’s another bug....
Father Chrysostomos [Fri, 10 Jun 2011 16:48:06 +0000 (09:48 -0700)]
perldata: Link directly to $;
Father Chrysostomos [Fri, 10 Jun 2011 16:46:37 +0000 (09:46 -0700)]
Add another address for Ian Goodacre
Ian Goodacre [Fri, 10 Jun 2011 09:47:38 +0000 (21:47 +1200)]
Document multi-dimensional array emulation.
Jesse Vincent [Fri, 10 Jun 2011 14:36:41 +0000 (10:36 -0400)]
We'll no longer add RCs to perlhist.pod
Chia-liang Kao [Fri, 10 Jun 2011 11:36:38 +0000 (19:36 +0800)]
Update irc and tw mongers links.
Chia-liang Kao [Fri, 10 Jun 2011 11:31:21 +0000 (19:31 +0800)]
convert README.tw to utf-8
David Mitchell [Fri, 10 Jun 2011 13:07:28 +0000 (14:07 +0100)]
Benchmart.t: improved diagnostics
use diag() to show absolutely all variables on failing the
notorious test 15. Maybe this will help nail it one day...
Leon Brocard [Fri, 10 Jun 2011 09:34:41 +0000 (10:34 +0100)]
Update Porting/core-cpan-diff to use HTTP::Tiny
Father Chrysostomos [Fri, 10 Jun 2011 04:24:01 +0000 (21:24 -0700)]
Scalar keys assignment through lvalue subs
This used not to work:
sub foo :lvalue { keys %wallet }
foo = 37;
Now it does. It was just a matter of following the right code path in
op_lvalue when the parent op is a leavesublv instead of a sassign.
Father Chrysostomos [Fri, 10 Jun 2011 01:12:54 +0000 (18:12 -0700)]
In B::Concise and op.h list all ops that use LVSUB
keys doesn’t actually use it yet, but it will soon.
Pau Amma [Thu, 9 Jun 2011 21:45:01 +0000 (14:45 -0700)]
[perl #92542] perl5134delta.pod has a repeated word word
David Mitchell [Thu, 9 Jun 2011 15:50:50 +0000 (16:50 +0100)]
t/op/sselect.t: reduce random failures (hopefully)
Use Time::HiRes if available to get more accurate times,
and extend the 'select(,,,N) may sleep for less than N' fudge to all
platforms, not just Windows, on the grounds that reportedly other OSes
suffer from this problem too. However, if HiRes is available, make the
'under' margin only 0.1s rather than 1s.
David Mitchell [Thu, 9 Jun 2011 15:15:36 +0000 (16:15 +0100)]
t/op/sselect.t: add descriptions to ok() tests
David Mitchell [Thu, 9 Jun 2011 14:51:54 +0000 (15:51 +0100)]
t/op/alarm.t: reduce intermittent failures
Fix a race condition where the alarm is reset *after* the handler
and an eval have been removed.
Also, make the points at which time is measured closer to the things
they need to measure, to reduce timing noise on a heavily-loaded system.
Hopefully these measures will reduce the number of random smoke failures,
although I couldn't reproduce the failures, even on a heavily-loaded
machine.
Chris 'BinGOs' Williams [Thu, 9 Jun 2011 11:16:14 +0000 (12:16 +0100)]
Updates to perldelta for all the updated CPAN modules.
Chris 'BinGOs' Williams [Sun, 22 May 2011 07:55:45 +0000 (08:55 +0100)]
Updated JSON-PP to CPAN version 2.27200
[DELTA]
2.27200 Sun May 22 12:17:51 2011
- fixed incr_parse docodeing string more correctly (rt#68032 by LCONS)
Chris 'BinGOs' Williams [Sat, 21 May 2011 23:33:51 +0000 (00:33 +0100)]
Updated Encode to CPAN version 2.43
[DELTA]
$Revision: 2.43 $ $Date: 2011/05/21 23:14:43 $
! lib/Encode/Alias.pm
Addressed RT#68361: Encode::Bytes x-mac-... aliases missing
https://rt.cpan.org/Ticket/Display.html?id=68361
! Encode.pm
Applied the 0001-Fix-typo-in-pod.patch
https://rt.cpan.org/Ticket/Update.html?id=64381
Addressed RT#65796 Deep recursion error finding invalid charset
https://rt.cpan.org/Ticket/Update.html?id=65796
Applied a jumbo doc patch by Tom Christiansen
Message-Id: <14795.
1304618434@chthon>
Chris 'BinGOs' Williams [Wed, 18 May 2011 23:41:54 +0000 (00:41 +0100)]
Updated Unicode-Collate to CPAN version 0.76
[DELTA]
0.76 Sun May 15 10:06:59 2011
- updated CJK/Pinyin.pm and CJK/Stroke.pm according to CLDR 1.9.1 using
type='pinyin' alt='short' and type='stroke' alt='short' respectively.
0.75 Sat May 7 21:07:38 2011
- supported ignore_level2 and rewrite.
- Added iglevel2.t and rewrite.t in t.
0.74 Mon Mar 21 19:07:38 2011
- removed sw (Swahili) collation according to CLDR 1.9.
(removed files: Collate/Locale/sw.pl and data/sw.txt)
- shifted primary weights of letters > Z for some languages.
(affected locales: da, fi, fo, kl, nb, nn, sv)
Chris 'BinGOs' Williams [Wed, 18 May 2011 23:34:57 +0000 (00:34 +0100)]
Updated Unicode-Normalize to CPAN version 1.12
[DELTA]
1.12 Mon May 16 23:36:07 2011
- removed Normalize/CompExcl.pl and Composition Exclusions are coded;
how to load CompExcl.pl seems not good, but I'm not sure...
1.11 Sun May 15 20:31:09 2011
- As perl 5.14.0 has removed unicore/CompositionExclusions.txt
in the installation, Normalize/CompExcl.pl in this distribution
is used instead. (see [rt.cpan.org #68106])
Chris 'BinGOs' Williams [Wed, 18 May 2011 23:31:23 +0000 (00:31 +0100)]
Updated Sys-Syslog to CPAN version 0.29
[DELTA]
0.29 -- 2011.04.18 -- Sebastien Aperghis-Tramoni (SAPER) #PerlQA2011
[BUGFIX] CPAN-RT#55215: Sys::Syslog might call exit which triggers
DESTROY (Alexander Berger).
[BUGFIX] CPAN-RT#55151: Allow temporary facility with native mechanism
(Tim Jenkins).
[BUGFIX] CPAN-RT#50928: Convert Win32 files to Unix EOLs (Steve Hay).
[BUGFIX] CPAN-RT#50534: Unwanted space at the end of syslog message
(Eugene V. Lyubimkin).
[BUGFIX] CPAN-RT#49877: Options not reset after closelog() (Herbert Brezina).
[BUGFIX] CPAN-RT#48386: Add Win32::EventLog as a prerequisite (kmx and
Laurent Dami).
[FEATURE] CPAN-RT#50534: Added options noeol and nonul.
[DIST] Set INSTALLDIRS to "site" when installed on Perl 5.11+
0.28 -- 2011.04.16 -- Sebastien Aperghis-Tramoni (SAPER) #PerlQA2011
[BUGFIX] CPAN-RT#56084: Reset connection tracking vars (Vladimir Marek).
[BUGFIX] CPAN-RT#56826: Avoid memory corruption when closelog() is
called twice (Andreas Jaekel).
[BUGFIX] CPAN-RT#64287: Make strftime() Windows-compatible (Dave Stafford).
[FEATURE] New API for setlogsock(), in order to allow the setting
of new options. Thanks to Jake Scott for the idea.
[CODE] Modify can_load() so it can print the warnings if desired.
[CODE] CPAN-RT#44410: Provide fallback macros in Syslog.xs in
order to compile on Novell Netware.
[TESTS] In blead, the distribution was moved from ext/Sys/Syslog
to ext/Sys-Syslog. t/constants.t had to be fixed (Vincent Pit).
[TESTS] CPAN-RT#53317: In core, Sys-Syslog was moved to cpan/, thus
making t/constants.t unable to find macros.all (David Mitchell).
[TESTS] CPAN-RT#64716: Skip t/data-validation.t if the available
version of POE::Component::Server::Syslog is too old.
[DIST] Bleadperl no longer require an empty MAN3PODS (Nicholas Clark).
[DIST] Removed unneeded modules in Makefile.PL (Nicholas Clark).
[DOC] Recreated Sys::Syslog history from the unified git repository.
[DOC] Added a section to list the matching Perl and Sys::Syslog version.
[DOC] CPAN-RT#49859: Removed a dead link (Leon Brocard).
Chris 'BinGOs' Williams [Wed, 18 May 2011 20:50:14 +0000 (21:50 +0100)]
Updated Filter-Util-Call to CPAN version 1.39
[DELTA]
1.39 30 April 2011
----
* Fix decrypt to work with Perl 5.14
[RT #67656]
1.38 24 April 2011
----
* Versions being seperate from Module versions results in dependency confusion
Bumped all versions to match the distribution version number.
[RT #67655]
* Fix decrypt to work with Perl 5.14
[RT #67656]
* Update the Filter-Simple URL
[RT #49778]
Chris 'BinGOs' Williams [Wed, 18 May 2011 20:35:23 +0000 (21:35 +0100)]
Update DB_File to CPAN version 1.822
[DELTA]
1.822 12 March 2011
* Keep DB_File's warnings in sync with perl's
[rt.cpan.org #66339]
Chris 'BinGOs' Williams [Wed, 18 May 2011 19:52:36 +0000 (20:52 +0100)]
Updated CGI to CPAN version 3.54
[DELTA]
Version 3.54, Apr 28, 2011
No code changes
[INTERNALS]
- Address test failures in t/tmpdir.t, thanks to Niko Tyni.
Some tests here are failing on some platforms and have been marked as TODO.
Version 3.53, Apr 25, 2011
[NEW FEATURES]
- The DELETE HTTP verb is now supported.
(RT#52614, James Robson, Eduardo Ari�o de la Rubia)
[INTERNALS]
- Correct t/tmpdir.t MANIFEST entry. (RT#64949)
- Update minimum required Perl version to be Perl 5.8.1, which
has been out since 2003. This allows us to drop some hacks
and exceptions (Mark Stosberg)
Chris 'BinGOs' Williams [Wed, 18 May 2011 19:23:39 +0000 (20:23 +0100)]
Updated IO-Compress to CPAN version 2.035
[DELTA]
2.035 6 May 2011
* RT #67931: Test failure on Windows
2.034 2 May 2011
* Compress::Zlib
- Silence pod warnings.
[RT# 64876]
- Removed duplicate words in pod.
* IO::Compress::Base
- RT #56942: Testsuite fails when being run in parallel
- Reduce symbol import - patch from J. Nick Koston
- If the output buffer parameter passed to read has a value of
undef, and Append mode was specified when the file was opened,
and eof is reached, then the buffer paramer was left as undef.
This is different from when Append isn't specified - the buffer
parameter is set to an empty string.
- There area couple of issues with reading a file that contains an
empty file that is compressed.
Create with -- touch /tmp/empty; gzip /tmp/empty.
Issue 1 - eof is not true immediately. Have to read from the file
to trigger eof.
Issue 2 - readline incorrectly returns an empty string the first
time it is called, and (correctly) undef thereafter.
[RT #67554]
Chris 'BinGOs' Williams [Wed, 18 May 2011 19:16:42 +0000 (20:16 +0100)]
Updated Compress-Raw-Zlib to CPAN version 2.035
[DELTA]
2.035 6 May 2011
* No Changes
Chris 'BinGOs' Williams [Wed, 18 May 2011 19:12:06 +0000 (20:12 +0100)]
Updated Compress-Raw-Bzip2 to CPAN version 2.035
[DELTA]
2.035 6 May 2011
* No Changes
Chris 'BinGOs' Williams [Wed, 18 May 2011 17:53:16 +0000 (18:53 +0100)]
Updated XSLoader to CPAN version 0.15
[DELTA]
0.15 - 2011.04.17 - SAPER #PerlQA2011
- [DIST] CPAN-RT#54456: Set INSTALLDIRS to "site" when installed on
Perl 5.11+ (thanks to Todd Rinaldo).
- [DOC] Document a known bug under Perl 5.8.4 and 5.8.5.
- [TESTS] Fixed tests to pass under Perl 5.8.4 and 5.8.5.
0.14 - 2011.04.16 - SAPER #PerlQA2011
- [CODE] Updated from bleadperl:
- XSLoader::load() with no arguments can use caller to find
a default package (Nicholas Clark).
- Avoid defining a full XSLoader::bootstrap_inherit post 5.6,
as it's not needed (Nicholas Clark).
- Small optimisation: for the generated XSLoader.pm, avoid a
runtime lexical which is constant (Nicholas Clark).
- [TESTS] Updated from bleadperl, solving RT-CPAN #54132, #61332.
- [TESTS] Fixed tests for old Perls.
- [TESTS] Added t/00-load.t and t/01-api.t, to provide basic tests
when the main ones are skipped.
Chris 'BinGOs' Williams [Wed, 18 May 2011 17:42:08 +0000 (18:42 +0100)]
Updated Digest-SHA to CPAN version 5.62
[DELTA]
5.62 Sat May 14 04:00:34 MST 2011
- removed unnecessary loading of MIME::Base64 module
-- thanks to dolmen for pointing this out
Chris 'BinGOs' Williams [Wed, 18 May 2011 11:27:08 +0000 (12:27 +0100)]
Update CPAN-Meta to CPAN version 2.110930
[DELTA]
2.110930 2011-04-02 23:31:24 America/New_York
[BUGFIX]
- Fixed a bug in the 'as_string' method that checked the module version
instead of the meta-spec version when conversion was requested
(RT #67188)
2.110910 2011-04-01 08:55:30 America/New_York
[ENHANCEMENTS]
- The 1.x spec "gpl" and "lgpl" and "mozilla" license values now up-convert
to "open_source" because they indicate too non-specific a license.
2.110580 2011-02-27 07:58:06 EST5EDT
[OTHER]
- Add explicit dependencies on JSON::PP and CPAN::Meta::YAML instead
of relying on Parse::CPAN::Meta to provide them (as some CPAN Testers
have had P::C::M installed without them somehow)
- Removed dependency on Storable as it was not a core module
until Perl 5.8
2.110550 2011-02-24 07:17:57 EST5EDT
[OTHER]
- Added required field 'release_status' to the synopsis of
CPAN::Meta::Spec (RT#66118) [Oliver Mengué]
2.110540 2011-02-23 15:21:16 EST5EDT
[BUGFIX]
- Had two different Parse::CPAN::Meta requirements, one in 'requires' and
the other in 'build_requires'. This confused some installers, so we
only inlude the 'requires' now.
Chris 'BinGOs' Williams [Wed, 18 May 2011 10:12:21 +0000 (11:12 +0100)]
Update CPANPLUS to CPAN version 0.9105
[DELTA]
Changes for 0.9105 Thu May 5 21:47:45 2011
================================================
* remove any pointers to the sourceforge mailing list
* point to the github repo instead
* Only enable custom sources in the tests where it is actually
required for testing
* Added support to parse_module() for 'Module/Type.pm' parsing
Changes for 0.9104 Tue Apr 19 15:13:57 2011
================================================
* Force Parse::CPAN::Meta to use a sane default for JSON backend
* Make sure that test failures aren't reported twice to the terminal
Chris 'BinGOs' Williams [Wed, 18 May 2011 09:36:36 +0000 (10:36 +0100)]
Update CPANPLUS-Dist-Build to CPAN version 0.56
[DELTA]
0.56 Tue Apr 19 14:51:07 BST 2011
- Display failing tests only once to terminal.
Chris 'BinGOs' Williams [Tue, 17 May 2011 23:34:56 +0000 (00:34 +0100)]
Update Archive-Extract to CPAN version 0.52
[DELTA]
Changes for 0.52 Thu Apr 28 20:56:27 2011
============================================
* Only use unzip from /usr/local/bin when on
FreeBSD which will be the Info-ZIP version
Changes for 0.50 Tue Apr 12 19:17:23 2011
============================================
* Resolve RT #56208 reported by Apocalypse
Chris 'BinGOs' Williams [Tue, 17 May 2011 21:40:34 +0000 (22:40 +0100)]
Update Object-Accessor to CPAN version 0.42
[DELTA]
Changes for 0.42 Fri May 13 12:21:50 BST 2011
=================================================
* Missed a test using exists, Ikegami RT #68154
Changes for 0.40 Thu May 12 20:41:36 BST 2011
=================================================
* Apply patch from Ikegami RT #68154, which
avoids use of deprecated exists on array elements.
David Mitchell [Mon, 6 Jun 2011 11:30:01 +0000 (12:30 +0100)]
eintr.t: skip based on capability rather than OS
The t/io/eintr.t tests require read/write system to calls to be
interruptible (to see if anything nasty can be done by the signal
handler).
Many platforms aren't interruptible, which means the tests would hang.
We currently work round this by skipping based on a hard-coded list of
OSes (such as win32, VMS etc).
Change this so that we instead do an initial test as to whether they are
interruptible, and if not, skip the whole test file.
Father Chrysostomos [Thu, 9 Jun 2011 06:14:37 +0000 (23:14 -0700)]
Fix my + attrs + list assignment
This script works in 5.6.x:
#!perl -l
sub MODIFY_SCALAR_ATTRIBUTES { return } # need these
sub MODIFY_ARRAY_ATTRIBUTES { return } # for it to
sub MODIFY_HASH_ATTRIBUTES { return } # compile
my ($x,@y,%z) : Bent = 72; # based on example from attributes.pm’s pod
print $x;
print "ok";
$ pbpaste|perl5.6.2
72
ok
(pbpaste is a Mac command that outputs the clipboard contents.)
In 5.8.0 to 5.8.8:
$ pbpaste|perl5.8.1
ok
So the assignment never happens. And with warnings:
$ pbpaste|perl5.8.1 -w
Bizarre copy of ARRAY in aassign at - line 5.
In 5.8.9 it gets slightly worse:
$ pbpaste|perl5.8.9
Bizarre copy of ARRAY in aassign at - line 5.
So warnings are not required to trigger the error. If my ($x,@y,%z)
is changed to my($x,$y), there is no error, but the assignment
doesn’t happen.
This was broken in 5.8.0 by this change:
commit
95f0a2f1ffc68ef908768ec5d39e4102afd28c1e
Author: Spider Boardman <spider@orb.nashua.nh.us>
Date: Sat Dec 8 19:09:23 2001 -0500
Re: attributes are broken
Message-Id: <
200112090509.
AAA02053@Orb.Nashua.NH.US>
p4raw-id: //depot/perl@13543
(Is there a ‘hereby’ missing from that subject? :-)
Oddly enough, that was the commit that put the attribute and list
assignment example in attribute.pm’s pod.
This change caused the bizarre assignment error to occur more often in
5.8.9 and 5.10.0, but I don’t think it’s actually relevant (just try-
ng to see how long I can get this commit message):
commit
f17e6c41cacfbc6fe88a5ea5e01ba690dfdc7f2e
Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Date: Wed Jul 5 20:00:10 2006 +0000
Fix a bug on setting OPpASSIGN_COMMON on a AASSIGN op when the left
side is made out a list declared with our(). In this case OPpLVAL_INTRO
isn't set on the left op, so we just remove that check. Add new tests.
p4raw-id: //depot/perl@28488
What’s happening is that there is an extra pushmark in the list when
attributes are present:
$ perl5.14.0 -MO=Concise -e 'my ($a,@b):foo'
o <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 39 -e:1) v:{ ->3
n <@> list vKPM/128 ->o
3 <0> pushmark vM/128 ->4
4 <0> padsv[$a:39,40] vM/LVINTRO ->5
5 <0> padav[@b:39,40] vM/LVINTRO ->6
6 <0> pushmark v ->7 <------- right here
e <1> entersub[t3] vKS*/NOMOD,TARG ->f
7 <0> pushmark s ->8
8 <$> const[PV "attributes"] sM ->9
9 <$> const[PV "main"] sM ->a
b <1> srefgen sKM/1 ->c
- <1> ex-list lKRM ->b
a <0> padsv[$a:39,40] sRM ->b
c <$> const[PV "foo"] sM ->d
d <$> method_named[PV "import"] ->e
m <1> entersub[t4] vKS*/NOMOD,TARG ->n
f <0> pushmark s ->g
g <$> const[PV "attributes"] sM ->h
h <$> const[PV "main"] sM ->i
j <1> srefgen sKM/1 ->k
- <1> ex-list lKRM ->j
i <0> padsv[@b:39,40] sRM ->j
k <$> const[PV "foo"] sM ->l
l <$> method_named[PV "import"] ->m
-e syntax OK
That leaves an extra mark that confuses pp_aassign, which doesn’t know
what it’s supposed to be reading and what it’s supposed to be assign-
ing to (hence the bizarre copy).
The pushmark is the result of the concatenation of two lists, the sec-
ond one beginning with a pushmark (as listops do by default). The con-
catenation occurs in Perl_my_attrs, at this spot (in the ‘else’):
if (rops) {
if (maybe_scalar && o->op_type == OP_PADSV) {
o = scalar(op_append_list(OP_LIST, rops, o));
o->op_private |= OPpLVAL_INTRO;
}
else
o = op_append_list(OP_LIST, o, rops);
}
So this commit make that ‘else’ clause check for a pushmark and oblit-
erate it if present, before concatenating the lists.
Jesse Vincent [Wed, 8 Jun 2011 19:08:27 +0000 (15:08 -0400)]
Update notes on why we actually want to disable thread stress tests.
Leon Brocard [Wed, 8 Jun 2011 17:34:29 +0000 (18:34 +0100)]
Add the v5.12.4-RC1 epigraph to Porting/epigraphs.pod
Leon Brocard [Wed, 8 Jun 2011 14:47:12 +0000 (15:47 +0100)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Karl Williamson [Wed, 8 Jun 2011 14:38:08 +0000 (08:38 -0600)]
perlfork, perlfunc: Fix English grammatical errors
Leon Brocard [Wed, 8 Jun 2011 14:42:18 +0000 (15:42 +0100)]
Add 5.12.4-RC1 to perlhist
David Mitchell [Wed, 8 Jun 2011 13:18:22 +0000 (14:18 +0100)]
stop waithires.t randomly failing under high load
Under conditions of high load (e.g. parallel testing),
some of the tests in threads-shared/t/waithires.t can fail.
My previous attempt at fixing this,
bb09c94c3bb1638714998511ecf5d337a708535a
was mostly wrong. In particular, the new sub cond_timedwaitN()
didn't actually do what it advertised, since it didn't increment
the timeout, which was an absolute clock time. Instead, it's main
affect was to mostly guarantee (within a 10 second window) that
a wait succeeded (and thus that the whole test file didn't hang),
although as it happens, after the first fail it was no longer actively
testing a timed wait.
Formalise this, by renaming cond_timedwaitN() to do_cond_timedwait(), and
just doing an untimed cond_wait() if the initial cond_timedwait() times
out.
In addition, the changes to avoid false positives are:
Increase the wait periods from 0.1s and 0.05s to 0.4s, to give a bigger
window.
Add a new lock, $ready, that ensures that the child is fully started and
ready before the parent starts the cond_timedwait(), which reduces the
window of time where the wait might time out.
Make the scope of the lock as small as possible, so that that the parent
cond_timedwait() isn't still trying to re-acquire the lock while the child
prints out 'ok' messages etc.
And most importantly, don't automatically treat a cond_timedwait() timeout
as a failure. Instead, measure the time the parent spends in
cond_timedwait(), and the time the child spends between locking and
signalling; and if both of these are greater than the timeout, then we
know we timed out because we were loaded, rather than because something
was wrong with cond_timedwait.
Chris 'BinGOs' Williams [Wed, 8 Jun 2011 12:22:33 +0000 (13:22 +0100)]
Synchronise Maintainers.pl with what is in dist/ currently.
Craig A. Berry [Sun, 5 Jun 2011 22:01:10 +0000 (17:01 -0500)]
Tweak APC instructions.
The --shared option wasn't necessary and the daemon could not
update without full access to the entire directory tree.
Jesse Vincent [Wed, 8 Jun 2011 03:50:37 +0000 (23:50 -0400)]
Disable some threads tests on m68k for now due to missing TLS.
A backport from downstream at Debian:
perl (5.14.0-1) debian/m68k_thread_stress.diff
Subject: Disable some threads tests on m68k for now due to missing TLS.
Closes: #495826, #517938
Father Chrysostomos [Wed, 8 Jun 2011 03:44:28 +0000 (20:44 -0700)]
perldelta entries for lvalue and COW fixes
Father Chrysostomos [Wed, 8 Jun 2011 03:36:39 +0000 (20:36 -0700)]
Regenerate known_pod_issues.dat
Father Chrysostomos [Wed, 8 Jun 2011 03:30:24 +0000 (20:30 -0700)]
Update perldelta with entries copied from 5.14.1
Since I just updated 5.14.1’s perldelta, it made sense to go ahead and
do this. For a list of the commits that are dealt with here, log into
cherrymaint and look for anything recent marked ‘Cherry-picked’.
I did not bother including the Ubuntu library path and Darwin test
fixes. I don’t think they are worth mentioning, but others may disa-
gree... (‘may’ in both senses).
Father Chrysostomos [Wed, 8 Jun 2011 00:56:06 +0000 (17:56 -0700)]
Remove unnecessary TAINT_NOT
(Ignore this for perldelta.)
*++newsp = *MARK obviously does no tainting. The TAINT_NOT following
it was unnecessarily copied to S_return_lvalues from pp_return when
the former came into existence. (pp_return does need TAINT_NOT, as it
uses sv_mortalcopy, which calls sv_setsv_flags, which does tainting.)
Father Chrysostomos [Wed, 8 Jun 2011 00:05:06 +0000 (17:05 -0700)]
[perl #92290, #92406] Returning a pad var from lv sub
This fixes a recent (post-5.14.0) regression.
Commit bf8fb5e (the fix for #62498) introduced it for lvalue subs with
no return statement [perl #92406].
Commit fa1e92c (the fix for #72724) introduced it for lvalue subs that
do have an explicit return [perl #92290].
Simply returning a scalar itself from an lvalue sub does not work if
it is a pad variable with a reference count of 1. In that circum-
stance, the sub-popping code sees that the SV can be re-used the next
time the sub is called, so it undefines it and hangs on to it. So
the scalar returned gets emptied before the calling code can see it.
The reference count has to be increased temporarily, which sv_2mortal
and SvREFCNT_inc combined accomplish.
Father Chrysostomos [Tue, 7 Jun 2011 23:09:17 +0000 (16:09 -0700)]
Correct test names in sub_lval.t
Leon Brocard [Tue, 7 Jun 2011 20:29:26 +0000 (21:29 +0100)]
Expand a little on what to do with Module::CoreList and maint
Leon Brocard [Tue, 7 Jun 2011 20:28:57 +0000 (21:28 +0100)]
Update Module::CoreList for 5.12.4
Father Chrysostomos [Tue, 7 Jun 2011 15:42:58 +0000 (08:42 -0700)]
Fix broken link in perlfunc
Father Chrysostomos [Tue, 7 Jun 2011 15:31:11 +0000 (08:31 -0700)]
Add Bo Johansson to AUTHORS
I think the e-mail address is misspelt, but that is what was
provided in the patch
bojilund [Tue, 7 Jun 2011 08:24:43 +0000 (10:24 +0200)]
Add information about portability caveats related to using kill on forked process.
The outcome of kill on a pseudo-process in Windows is unpredictable
and it should not be used except under dire circumstances.
The process which implements the pseudo-processes can be blocked
and the Perl interpreter hangs.
bojilund [Tue, 7 Jun 2011 07:32:31 +0000 (09:32 +0200)]
Improve documentation to support portability
If something has a portability issue, we should mention it in the main
place people will read about the thing with the issue. For Perl
built-ins, that's perlfunc. We don't have to explain the issue, but we
should at the very least tell people where to find an explanation of
the issue.
David Golden [Tue, 7 Jun 2011 10:35:22 +0000 (06:35 -0400)]
perldelta.pod: added summary of formline changes
Summary paragraph received by email from Dave Mitchell.
Karl Williamson [Tue, 7 Jun 2011 03:29:18 +0000 (21:29 -0600)]
perldelta: Add potential entries
I looked through all my commits, and came up with this text for all the
ones I think could possibly be desired to put into the perldelta. All
other commits I've made for 5.15 so far, can be ignored IMO as far as
the delta is concerned. I'm not so sure about even the ones I've
done here. Feel free to omit them. The wording for the edge case is
convoluted; but it's hard for me to describe the complicated
circumstances when the bug appeared.
David Golden [Mon, 6 Jun 2011 22:39:39 +0000 (18:39 -0400)]
git-deltatool: added a progress counter
Now shows "Commit N of M" so there is a sense of progress while
reviewing commit history
Pau Amma [Mon, 6 Jun 2011 20:39:19 +0000 (13:39 -0700)]
pod punctuation nit in vmsish
Nicholas Clark [Mon, 6 Jun 2011 11:40:40 +0000 (13:40 +0200)]
Test that IPC::Open{2,3} correctly fault read-only file-handle parameters.
Nicholas Clark [Mon, 6 Jun 2011 11:30:51 +0000 (13:30 +0200)]
Test that IPC::Open{2,3} correctly qualify file handles to their package.
Nicholas Clark [Mon, 6 Jun 2011 11:12:54 +0000 (13:12 +0200)]
In IPC-Open2.t, use functions other than ok(), to generate better diagnostics.
Nicholas Clark [Mon, 6 Jun 2011 10:42:58 +0000 (12:42 +0200)]
In IPC-Open3.t, merge two similar tests using a loop.
David Mitchell [Mon, 6 Jun 2011 18:09:31 +0000 (19:09 +0100)]
[perl #90006] out of memory during thread clone
If you run out of memory during thread cloning, exit() may be called which
will unwind the context stacks, and be very unhappy if there aren't any.
Which there might not be if we haven't allocated any yet during cloning.
We can't just fix this by creating them earlier during the cloning
sequence, because creating them requires calling malloc(), which
may fail and exit...
So just check for this condition during stack unwind.
David Mitchell [Mon, 6 Jun 2011 16:15:09 +0000 (17:15 +0100)]
[perl #90006] cloning crashes during Out of Memory
Perl's malloc has a $^M facility to create an emergency memory
allocation during an Out Of Memory crisis. This requires accessing
PL_defstash. In perl_clone_using(), in debugging builds, the Idefstash
field was intially poisoned, and before it had a chance to be properly
initialised, malloc() may have been called.
Fix this by initialising PL_defstash to NULL early on.
David Mitchell [Mon, 6 Jun 2011 15:01:12 +0000 (16:01 +0100)]
perl_clone_using: do simple assign/copying first
For all the elements of the interpreter that can be cloned by
a simple initialisation (e.g. assign NULL/0/-1), or by a direct
copy from proto, do these first. This means that anything more complex,
that might for example require a malloc, gets done after as much of the
interpreter structure has already been initialised as possible.
This is the beginnings of a fix for [perl #90006].
This commit should have no change in functionality; it's simply moving a
bunch of assign statements to earlier within perl_clone_using().
David Mitchell [Mon, 6 Jun 2011 13:02:24 +0000 (14:02 +0100)]
[perl #88776] Signedness warning in toke.c
fix a warning introduced by
6d51015587940c2032a6533d886163f69ca028f9
David Mitchell [Mon, 6 Jun 2011 11:39:08 +0000 (12:39 +0100)]
perlfunc: fix error in open("-|") description
both 'to child' and 'from child' were listed as "|-"
David Mitchell [Mon, 6 Jun 2011 10:19:37 +0000 (11:19 +0100)]
clarify eval $string scope in docs
[perl #88014] demonstrated that the docs for string eval misleadingly
implied that the code wasn't executed within new new block scope,
leading to false expectations that $1 etc would retain their values
outside the eval.
Father Chrysostomos [Mon, 6 Jun 2011 05:37:54 +0000 (22:37 -0700)]
[perl #92258] <$fh> hangs on a glob copy
Opening a file handle to \$glob causes assertion failures
(under debugging) or hangs or other erratic behaviour without
debugging. This might even crash in some cases.
It never really worked properly, but it didn’t start hanging
apparently until 5.12.2 and 5.14.0.
Father Chrysostomos [Mon, 6 Jun 2011 03:09:13 +0000 (20:09 -0700)]
Remove two pointless uses of sv_2mortal
boolSV returns an immortal. When sv_2mortal is called on
an immortal, it simply returns. So eliminate the call.
Father Chrysostomos [Sun, 5 Jun 2011 21:01:57 +0000 (14:01 -0700)]
Add Samuel Thibault to AUTHORS