This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
9 years agoMaintainers.pl: Include all Deparse-*.t files in _PERLLIB
Father Chrysostomos [Wed, 1 Oct 2014 23:21:47 +0000 (16:21 -0700)]
Maintainers.pl: Include all Deparse-*.t files in _PERLLIB

9 years agoSort MANIFEST properly
Father Chrysostomos [Wed, 1 Oct 2014 23:19:42 +0000 (16:19 -0700)]
Sort MANIFEST properly

9 years agoCorrect and update sv.c’s string copy comments
Father Chrysostomos [Wed, 1 Oct 2014 23:17:52 +0000 (16:17 -0700)]
Correct and update sv.c’s string copy comments

Thanks to Dave Mitchell for pointing out my mistakes.

Whether the rhs is copy-on-write already does not change whether we
do the long-string-and-left-buffer-size check.  The comments (added in
2ac0bcb35) were wrong.

Also, update the comments for e8c6a474e, which added the
big-buffer-on-the-right skip logic.

9 years ago[perl #122870] Fix B::Deparse–DDS compatibility
Father Chrysostomos [Wed, 1 Oct 2014 23:07:46 +0000 (16:07 -0700)]
[perl #122870] Fix B::Deparse–DDS compatibility

9 years agoAdd tests for overriding <> versus rcatline
Rafael Garcia-Suarez [Wed, 1 Oct 2014 07:13:05 +0000 (09:13 +0200)]
Add tests for overriding <> versus rcatline

9 years agoNew <<>> tests
Rafael Garcia-Suarez [Wed, 1 Oct 2014 07:03:10 +0000 (09:03 +0200)]
New <<>> tests

- Modify test to test also that <<>> with empty (false) lines
- Add a test for <<>> used in a rcatline op

9 years agoUpstream a patch from pkgsrc for NetBSD hints
Chris 'BinGOs' Williams [Tue, 30 Sep 2014 18:15:05 +0000 (19:15 +0100)]
Upstream a patch from pkgsrc for NetBSD hints

9 years agoForgot to update SKIP count after last patch
Rafael Garcia-Suarez [Tue, 30 Sep 2014 13:44:44 +0000 (15:44 +0200)]
Forgot to update SKIP count after last patch

9 years agoAdd a test for <<>> failing on the second file
Rafael Garcia-Suarez [Tue, 30 Sep 2014 13:36:10 +0000 (15:36 +0200)]
Add a test for <<>> failing on the second file

9 years agoAdd tests for empty strings in @ARGV
Rafael Garcia-Suarez [Mon, 29 Sep 2014 23:19:55 +0000 (01:19 +0200)]
Add tests for empty strings in @ARGV

which should be refused, since no file name should be empty.
(Suggested by Richard Soderberg)

9 years agoClarify the documentation for <<>>
Rafael Garcia-Suarez [Mon, 29 Sep 2014 22:25:27 +0000 (00:25 +0200)]
Clarify the documentation for <<>>

9 years agoAdd tests for $ARGV
Rafael Garcia-Suarez [Mon, 29 Sep 2014 22:24:21 +0000 (00:24 +0200)]
Add tests for $ARGV

There weren't apparently any. This also tests that $ARGV behaves
correctly both with <> and <<>>.

9 years agoAdd tests for the <<>> operator
Rafael Garcia-Suarez [Mon, 29 Sep 2014 20:52:32 +0000 (22:52 +0200)]
Add tests for the <<>> operator

9 years agoAdded some documentation for while(<<>>)
Peter Martini [Mon, 11 Aug 2014 03:11:20 +0000 (23:11 -0400)]
Added some documentation for while(<<>>)

9 years agoIntroduce the double-diamond operator <<>>
Rafael Garcia-Suarez [Thu, 24 Jul 2014 15:43:29 +0000 (17:43 +0200)]
Introduce the double-diamond operator <<>>

This operator works like <> or <ARGV>, as it reads the list of file
names to open from the command-line arguments. However, it disables
the magic-open feature (that forks to execute piped commands) :

    $ bleadperl -e 'while(<>){print}' 'echo foo |'
    foo
    $ bleadperl -e 'while(<<>>){print}' 'echo foo |'
    Can't open echo foo |: No such file or directory at -e line 1.

9 years agoAdded -x option to makerel to produce .xz tarballs
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 19:09:32 +0000 (20:09 +0100)]
Added -x option to makerel to produce .xz tarballs

With the default of -6 produced much smaller tarball than
.gz (7z produced) and .bz2

  -rw-r--r--  1 bingos bingos 13601234 Sep 29 20:07 perl-5.21.5.tar.bz2
  -rw-r--r--  1 bingos bingos 15699515 Sep 29 20:07 perl-5.21.5.tar.gz
  -rw-r--r--  1 bingos bingos 10982580 Sep 29 20:08 perl-5.21.5.tar.xz

It's an option if we ever need it.

9 years agoTighten uses of regex synthetic start class
Karl Williamson [Mon, 22 Sep 2014 19:59:39 +0000 (13:59 -0600)]
Tighten uses of regex synthetic start class

A synthetic start class (SSC) is generated by the regular expression
pattern compiler to give a consolidation of all the possible things that
can match at the beginning of where a pattern can possibly match.
For example
    qr/a?bfoo/;
requires the match to begin with either an 'a' or a 'b'.  There are no
other possibilities.  We can set things up to quickly scan for either of
these in the target string, and only when one of these is found do we
need to look for 'foo'.

There is an overhead associated with using SSCs.  If the number of
possibilities that the SSC excludes is relatively small, it can be
counter-productive to use them.

This patch creates a crude sieve to decide whether to use an SSC or not.
If the SSC doesn't exclude at least half the "likely" possiblities, it
is discarded.  This patch is a starting point, and can be refined if
necessary as we gain experience.

See thread beginning with
http://nntp.perl.org/group/perl.perl5.porters/212644

In many patterns, no SSC is generated; and with the advent of tries,
SSC's have become less important, so whatever we do is not terribly
critical.

9 years agoregcomp.c: Move macro definition earlier in file
Karl Williamson [Tue, 23 Sep 2014 22:54:34 +0000 (16:54 -0600)]
regcomp.c: Move macro definition earlier in file

This is to prepare it to be used in earlier places than it is now.

9 years agoregcomp.c: Use strnEQ instead of series of tests
Karl Williamson [Sat, 20 Sep 2014 16:20:11 +0000 (10:20 -0600)]
regcomp.c: Use strnEQ instead of series of tests

At some point it is more efficient and certainly clearer to call a
library function to do a strcmp than to test each individual byte.
Based on irc discussion with the original coder of this, I changed this
sequence of 6 comparisions to a strnEQ.  At the same time, this adds an
buffer overlflow check.  I was unable to cause the previous code to
overflow, but I believe it was possible.  And this changes the magic
number 6 in the code to a mnemonic giving its meaning.

9 years agoTick that v5.21.4 got a release in the schedule
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 18:45:44 +0000 (19:45 +0100)]
Tick that v5.21.4 got a release in the schedule

9 years agoop_reg_common.h: Get blead to build in Jenkins
Karl Williamson [Mon, 29 Sep 2014 18:16:42 +0000 (12:16 -0600)]
op_reg_common.h: Get blead to build in Jenkins

I don't understand why this compile error check is failing Jenkins, but
am removing it for now to get things to work.

9 years agoEliminate unused BACK regnode
Aaron Crane [Wed, 24 Sep 2014 17:29:36 +0000 (18:29 +0100)]
Eliminate unused BACK regnode

9 years agoregcomp.c: Properly dereference a ptr
Karl Williamson [Sat, 27 Sep 2014 23:13:42 +0000 (17:13 -0600)]
regcomp.c: Properly dereference a ptr

UTF8_IS_INVARIANT takes a byte as its argument, not a ptr.  This bug was
introduced by 62a59291 in 5.21.4.  It doesn't probably cause bugs
because the ptr is always too big to be an invariant, but it slows
things down somewhat by not taking a shortcut it could.

It turns out that there is a discrepency between the APIs of the
UTF8-foo macros.  Some take a byte, and some a string ptr.

9 years agoSuppress some Solaris warnings
Karl Williamson [Mon, 22 Sep 2014 04:07:58 +0000 (22:07 -0600)]
Suppress some Solaris warnings

We get an integer overflow message when we left shift a 1 into the
highest bit of a word.  This changes the 1's into 1U's to indicate
unsigned.  This is done for all the flag bits in the affected word, as
they could get reorderd by someone in the future, unintentionally
reintroducing this problem again.

9 years agoop_reg_common.h: Update comment
Karl Williamson [Wed, 24 Sep 2014 18:51:46 +0000 (12:51 -0600)]
op_reg_common.h: Update comment

The PL file previously referred to has been deleted, and replaced by a
different one.

9 years agoB/Makefile.PL: Allow constants to be long/unsigned
Karl Williamson [Wed, 24 Sep 2014 18:49:13 +0000 (12:49 -0600)]
B/Makefile.PL: Allow constants to be long/unsigned

This looks for numerical constants, but failed to see long and/or
unsigned ones, which have suffixes U and/or L, or lowercase u and/or l.

9 years agoDeprecate multiple "x" in "/xx"
Karl Williamson [Mon, 22 Sep 2014 17:56:48 +0000 (11:56 -0600)]
Deprecate multiple "x" in "/xx"

 It is planned for a future Perl release to have /xx mean something
 different from just /x.  To prepare for this, this commit raises a
 deprecation warning if someone currently has this usage.  A grep of CPAN
 did not turn up any instances of this, but this is to be safe anyway.

 The added code is more general than actually needed, in case we want to
 do this for another flag.

9 years agotoke.c: Clarify comment
Karl Williamson [Mon, 22 Sep 2014 17:54:37 +0000 (11:54 -0600)]
toke.c: Clarify comment

9 years agoop_reg_common.h: White-space only
Karl Williamson [Wed, 17 Sep 2014 23:59:39 +0000 (17:59 -0600)]
op_reg_common.h: White-space only

Align columns vertically

9 years agoMake space for /xx flag
Karl Williamson [Wed, 17 Sep 2014 23:55:16 +0000 (17:55 -0600)]
Make space for /xx flag

This doesn't actually use the flag yet.
We no longer have to make version-dependent changes to
ext/Devel-Peek/t/Peek.t, (it being in /ext) so this doesn't

9 years agoop_reg_common.h: #define in terms of more basic one
Karl Williamson [Wed, 17 Sep 2014 23:57:17 +0000 (17:57 -0600)]
op_reg_common.h: #define in terms of more basic one

The mask to copy bits should always include at least the compile-time
bits.  By defining it in terms of the compile-time bits, we make it
easier to change and understand.

9 years agoUp regex flags limit for (??{})
Karl Williamson [Wed, 17 Sep 2014 18:16:12 +0000 (12:16 -0600)]
Up regex flags limit for (??{})

Previously the regex pattern compilation flags needed for this construct
would fit into an 8-bit byte.  This conveniently fits into the flags
structure element of a regnode.  There are changes coming that require
more than 8 bits, so in preparation, this commit adds an argument to the
node that implements (??{}) (31-bits usable for flags), and moves the
storage to that.

9 years agoregcomp.c: Add assertions
Karl Williamson [Tue, 16 Sep 2014 23:19:52 +0000 (17:19 -0600)]
regcomp.c: Add assertions

This changes from assuming that certain things are constant to using a
variable instead, and then asserting that the variable matches the
constant.

9 years agoregcomp.c: Add a function and use it
Karl Williamson [Tue, 16 Sep 2014 23:16:47 +0000 (17:16 -0600)]
regcomp.c: Add a function and use it

This adds a function to allocate a regnode with 2 32-bit arguments, and
uses it, rather than the ad-hoc code that did the same thing previously.
This is in preparation for this code being used in a 2nd place in a
future commit.

9 years agoregcomp.sym: ANYOF nodes have an argument
Karl Williamson [Tue, 16 Sep 2014 22:26:36 +0000 (16:26 -0600)]
regcomp.sym: ANYOF nodes have an argument

Plus a bitmap, but they always have an argument besides, contrary to
what was specified here.  Future commits rely on this, whereas
heretofore this error was harmless.

9 years agoregcomp.h: Add comment
Karl Williamson [Tue, 16 Sep 2014 16:00:32 +0000 (10:00 -0600)]
regcomp.h: Add comment

9 years agoregcomp.c: Outdent line to align with neighbors
Karl Williamson [Mon, 15 Sep 2014 18:14:17 +0000 (12:14 -0600)]
regcomp.c: Outdent line to align with neighbors

9 years agoregcomp.h: Remove obsolete #defines
Karl Williamson [Mon, 15 Sep 2014 17:30:25 +0000 (11:30 -0600)]
regcomp.h: Remove obsolete #defines

These internal definitions are no longer used.

9 years agoregcomp.h: Use existing macro instead of reinventing
Karl Williamson [Mon, 15 Sep 2014 17:29:43 +0000 (11:29 -0600)]
regcomp.h: Use existing macro instead of reinventing

9 years agoregcomp.c: Extract duplicated code to fcn
Karl Williamson [Mon, 15 Sep 2014 14:46:35 +0000 (08:46 -0600)]
regcomp.c: Extract duplicated code to fcn

This causes the nearly-duplicate code of S_reg_node and S_reganode to be
placed into a single function, S_regnode_guts.

There is one place where it might not be obvious that this doesn't
change things.  And that is under DEBUGGING, reg_node() called

    Set_Node_Offset(RExC_emit, RExC_parse + (op == END));

and reganode called

    Set_Cur_Node_Offset;

However Set_Cur_Node_Offset is defined to be

    Set_Node_Offset(RExC_emit, RExC_parse)

and since op will never be END for reganode, the two statements are
equivalent.

9 years agoregcomp.c: Move some statements
Karl Williamson [Mon, 15 Sep 2014 04:25:47 +0000 (22:25 -0600)]
regcomp.c: Move some statements

These statements are moved to after the debugging code so that the two
functions are essentially identical before them.  This will allow the
two to be combined in a future commit.  I verified by testing that the
debugging info was not affected.

9 years agoop.h: Move flag bits; comment shared-bit scheme
Karl Williamson [Wed, 17 Sep 2014 18:11:21 +0000 (12:11 -0600)]
op.h: Move flag bits; comment shared-bit scheme

This changes op.h to correspond with regexp.h.  It moves all the used
bits up in the word so that if a new shared bit is added, the #error
will be triggered, alerting the person doing it that things need
adjusting so binary compatibility is preserved.

9 years agoregexp.h: Comment shared-pool free bits scheme
Karl Williamson [Wed, 17 Sep 2014 18:08:41 +0000 (12:08 -0600)]
regexp.h: Comment shared-pool free bits scheme

9 years agoregexp.h: Make tentative division of free-bit space
Karl Williamson [Fri, 12 Sep 2014 20:04:12 +0000 (14:04 -0600)]
regexp.h: Make tentative division of free-bit space

This sets a #define to point in the middle of the free-space, so that
bits at either end can be added without having to adjust many other
defines.

9 years agoregexp.h: Define flag bit directly, not indirectly
Karl Williamson [Fri, 12 Sep 2014 19:59:13 +0000 (13:59 -0600)]
regexp.h: Define flag bit directly, not indirectly

This #defined a symbol then did a compile time check that it was the
same as another symbol.  This commit simply defines it as the other
symbol directly, and moves it to above the other definitions, which it
no longer is part of.  This prepares for the next commit.

9 years agoregexp.h Remove unused bit placeholders
Karl Williamson [Fri, 12 Sep 2014 20:40:03 +0000 (14:40 -0600)]
regexp.h Remove unused bit placeholders

We do not need a placeholder for unused flag bits.  And removing them
makes the generated regnodes.h more accurate as to what bits are
available.

9 years agoregexp.h: Move regex flag bit positions.
Karl Williamson [Fri, 12 Sep 2014 04:45:06 +0000 (22:45 -0600)]
regexp.h: Move regex flag bit positions.

This moves three bits to create a block of unused bits at the beginning.
The first bit had to be moved to make space for other uses that are
coming in future commits.  This breaks binary compatibility, so might as
well move the other two bits so that all the unused bits are
consolidated at the beginning.

This pool of unused bits is the boundary between the bits that are
common to op.h and regexp.h (and in op_reg_common.h) and those that are
separate.  It's best to have all the unused bits there, so when we need
to use one, it can be taken from either side, as needed, without us
being trapped into having an available bit, but of the wrong kind.

9 years agoForward port of the backport of mentioning -fstack-protector-strong.
Jarkko Hietaniemi [Mon, 29 Sep 2014 15:16:20 +0000 (17:16 +0200)]
Forward port of the backport of mentioning -fstack-protector-strong.

9 years agoRetroactive mention of -fstack-protector-strong.
Jarkko Hietaniemi [Mon, 29 Sep 2014 15:13:35 +0000 (17:13 +0200)]
Retroactive mention of -fstack-protector-strong.

9 years agoRegen Makefile.SH for CPAN-Meta update
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 12:14:11 +0000 (13:14 +0100)]
Regen Makefile.SH for CPAN-Meta update

9 years agoRegen META files following update of CPAN-Meta
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 11:18:01 +0000 (12:18 +0100)]
Regen META files following update of CPAN-Meta

For future reference:

  Update cpan/CPAN-Meta
  Build perl
  ./perl -Ilib Porting/makemeta

9 years agoUpdate CPAN-Meta to CPAN version 2.142690
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 11:12:47 +0000 (12:12 +0100)]
Update CPAN-Meta to CPAN version 2.142690

  [DELTA]

2.142690  2014-09-26 11:06:34-04:00 America/New_York

  [DOCUMENTED]

  - Clarified that no_index is a list of exclusions, and that indexers
    should generally exclude 'inc', 'xt' and 't' as well.

9 years agoUpdate HTTP-Tiny to CPAN version 0.050
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 11:10:58 +0000 (12:10 +0100)]
Update HTTP-Tiny to CPAN version 0.050

  [DELTA]

0.050     2014-09-23 15:30:18-04:00 America/New_York

    [FIXED]

    - Fixed CONNECT requests for some proxies

9 years agoUpdate experimental to CPAN version 0.011
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 11:09:38 +0000 (12:09 +0100)]
Update experimental to CPAN version 0.011

  [DELTA]

0.011     2014-09-27 14:08:47+02:00 Europe/Amsterdam
          Clarified which order to apply pragmas [Grant McLean]

9 years agoSync version for ExtUtils-CBuilder
Chris 'BinGOs' Williams [Mon, 29 Sep 2014 11:08:37 +0000 (12:08 +0100)]
Sync version for ExtUtils-CBuilder

9 years agoRemarks specialness of [A-Z] and [a-z].
Abigail [Mon, 29 Sep 2014 09:09:10 +0000 (11:09 +0200)]
Remarks specialness of [A-Z] and [a-z].

Make mention that [A-Z] and [a-z] always match 26 characters exactly,
even if in the underlaying character set (EBCDIC) the characters aren't
contiguous.

See also [#122853].

9 years agoMention that freeware gdbm might be obsolete.
Jarkko Hietaniemi [Thu, 25 Sep 2014 02:07:20 +0000 (22:07 -0400)]
Mention that freeware gdbm might be obsolete.

9 years agoIrix: the explicit <fcntl.h> is needed
Jarkko Hietaniemi [Tue, 23 Sep 2014 13:21:55 +0000 (09:21 -0400)]
Irix: the explicit <fcntl.h> is needed

9 years agoIRIX 6.5 (cc 7.4) needs -c99 to compile without whining.
Jarkko Hietaniemi [Tue, 16 Sep 2014 20:58:44 +0000 (16:58 -0400)]
IRIX 6.5 (cc 7.4) needs -c99 to compile without whining.

Without -c99 including C99 header files like <stdint.h> is an error.

For gcc (used "freeware" 3.3), there just doesn't seem to be a way,
so claim there's no <stdint.h>.

9 years agoFix start-of-string error in tovmsspec.
Craig A. Berry [Mon, 29 Sep 2014 02:04:54 +0000 (21:04 -0500)]
Fix start-of-string error in tovmsspec.

When translating a filespec starting with an extended character,
say C<+foo>, from Unix to VMS format, we were inadvertently
skipping over the first character and thus not translating it to
C<^+foo> with the caret escape prepended to the plus sign as we
should have been.

This fixes a fairly new test failure in ExtUtils::Manifest where
a filename starts with a single quote.

9 years agoperldelta: Move an entry to the right section
Father Chrysostomos [Sun, 28 Sep 2014 19:42:19 +0000 (12:42 -0700)]
perldelta: Move an entry to the right section

5b306eef3 added it to the wrong section because the patch did not
apply cleanly with git-am and the ‘patch’ program seemed to have
no trouble with it, and I applied it without double-checking what
patch had done.  Trouble with pod documents is that so many parts
of them look the same that things always apply, if wrongly. :-)

9 years agosv.c: Suppress compiler warning
Father Chrysostomos [Sun, 28 Sep 2014 19:39:28 +0000 (12:39 -0700)]
sv.c: Suppress compiler warning

Cast to U32 explicitly now that arena_size is U32.  See
<https://rt.perl.org/Ticket/Display.html?id=122861#txn-1310985>.

9 years agofor storage of NVs, use "IV in sv_u in head no-body trick" where possible
Daniel Dragan [Sun, 28 Sep 2014 15:46:13 +0000 (11:46 -0400)]
for storage of NVs, use "IV in sv_u in head no-body trick" where possible

This completes the goal of commit 7b2c381cf3 from 5.9.2/2005. 8 bytes are
saved on arena and 8 byte double is NV builds, and usually 32 bytes
on PURIFY/malloced bodies builds. (2 void *s/16 bytes for header+16 bytes
minimum malloc size on typical malloc schemes). long doubles can't use this
optimization. Also a hypothetical NV is 32 bit float on 32 bit pointer OS
Perl build would use this optimization. 64 bit IVs on 32 bit pointer OS
use this optimization.

Also fixed was a bad solution from ML post
"[PATCH] Free old_body in sv_upgrade, also with -DPURIFY" commit bc78644842
which made the old body freeing code in sv_upgrade not obey the
body_details table. By checking allocation size instead whether there is an
arena better determins if there there is a body to free, PURIFY or not.
Note the upper SV types that are malloced/no arena are not upgradable so
this code wont be reached due to earlier croak, so there is no danger of
an arena ptr getting a free() done on it. This author doesnt have access
to PURIFY.

Also remove padding from body_details struct. On Win64, this struct
was 16 bytes, in format of U8 U8 U8 PAD1BYTE U32 U64. On Win32 it was
12 bytes long, in format of U8 U8 U8 PAD1BYTE U32 U32. Now on compilers
(such as VC) that allow 1 byte C bitfields (non-standard extension to C),
the struct is always 8 bytes long. I can't imagine an arena being >4GB on
64 bit perl.

9 years agosv.c: Remove redundant assignments
Father Chrysostomos [Sun, 28 Sep 2014 17:20:36 +0000 (10:20 -0700)]
sv.c: Remove redundant assignments

After ‘goto floating_point’ c immediately gets clobbered.

9 years agoAdds a missing 'use Config' on android.pm file.
Alberto Simões [Sat, 27 Sep 2014 21:36:25 +0000 (17:36 -0400)]
Adds a missing 'use Config' on android.pm file.

Update $VERSION in each platform-specific module.

For: RT #122860

9 years agoAdd tests for a51d618a fix of RT #122283
Yves Orton [Sun, 28 Sep 2014 10:17:37 +0000 (12:17 +0200)]
Add tests for a51d618a fix of RT #122283

Add a new re debug mode for outputing stuff useful for testing.

In this case we count the number of times that we go through
study_chunk. With a51d618a we should do 5 times (or less) when
we traverse the test pattern. Without a51d618a we recurse 11
times. In the case of RT #122283 we would do gazilions of
recursions, so many I never let it run to finish.

    /
        (?(DEFINE)(?<foo>foo))
        (?(DEFINE)(?<bar>(?&foo)bar))
        (?(DEFINE)(?<baz>(?&bar)baz))
        (?(DEFINE)(?<bop>(?&baz)bop))
    /x

I say "or less" because you could argue that since these defines are
never called, we should not actually recurse at all, and should maybe
just compile this as a simple empty pattern.

9 years agoProperly set the phase for END blocks run at the end of a pseudo-fork
Vincent Pit [Sat, 27 Sep 2014 17:00:46 +0000 (19:00 +0200)]
Properly set the phase for END blocks run at the end of a pseudo-fork

9 years agoFix FETCH count for sprintf "...", $tied
Father Chrysostomos [Sat, 27 Sep 2014 23:36:52 +0000 (16:36 -0700)]
Fix FETCH count for sprintf "...", $tied

Commit 540a63d62 was the first culprit.  354b74ae6f made things worse.

9 years agoFix double FETCH with pack "w"
Father Chrysostomos [Sat, 27 Sep 2014 21:36:45 +0000 (14:36 -0700)]
Fix double FETCH with pack "w"

9 years agoperlexperiment: add signatures to experimental features
Ricardo Signes [Sat, 27 Sep 2014 19:22:20 +0000 (15:22 -0400)]
perlexperiment: add signatures to experimental features

9 years agopp_pack.c: Actually fix threaded builds
Father Chrysostomos [Sat, 27 Sep 2014 18:11:17 +0000 (11:11 -0700)]
pp_pack.c: Actually fix threaded builds

9 years agopp_pack.c: S_sv_check_inf =~ /$/nan/
Father Chrysostomos [Sat, 27 Sep 2014 16:25:29 +0000 (09:25 -0700)]
pp_pack.c: S_sv_check_inf =~ /$/nan/

At Jarkko Hietaniemi’s suggestion.

9 years agoOops. Fix threaded builds.
Father Chrysostomos [Sat, 27 Sep 2014 16:20:20 +0000 (09:20 -0700)]
Oops.  Fix threaded builds.

9 years ago[perl #12285] Fix str vs num inf/nan treatment
Father Chrysostomos [Sat, 27 Sep 2014 13:48:04 +0000 (06:48 -0700)]
[perl #12285] Fix str vs num inf/nan treatment

sprintf, pack and chr were treating 0+"Inf" and "Inf" differently,
even though they have the same string and numeric values.

pack was also croaking for 0+"Inf" passed to a string format.

9 years agoUpdate IO-Compress to CPAN version 2.066
Chris 'BinGOs' Williams [Sat, 27 Sep 2014 12:04:58 +0000 (13:04 +0100)]
Update IO-Compress to CPAN version 2.066

  [DELTA]

  2.066 21 Sept 2014

      * IO::Uncompress::Gzip
        Documentation of ExtraFlags stated the XFL values for BEST_COMPRESSION
        and BEST_SPEED use the values 2 & 4 respectively. They should
        be 4 & 2. Code for setting XFL was correct.

      * RT #95494: IO::Uncompress::Gunzip: Can no longer gunzip to in-memory
        file handle

9 years agoUpdate Compress-Raw-Zlib to CPAN version 2.066
Chris 'BinGOs' Williams [Sat, 27 Sep 2014 12:03:48 +0000 (13:03 +0100)]
Update Compress-Raw-Zlib to CPAN version 2.066

  [DELTA]

  2.066 21 Sept 2014

      * Another COW violation
        [#98069]

      * misleading nesting/indentation (found by Coverity)
        [#95405]

9 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.066
Chris 'BinGOs' Williams [Sat, 27 Sep 2014 12:01:06 +0000 (13:01 +0100)]
Update Compress-Raw-Bzip2 to CPAN version 2.066

  [DELTA]

2.066 21 Sept 2014

      * No Changes

9 years agocpan/IO-Socket-IP: Skip a test that almost always fails on Win32.
George Greer [Sat, 27 Sep 2014 03:49:55 +0000 (23:49 -0400)]
cpan/IO-Socket-IP: Skip a test that almost always fails on Win32.

CPAN RT#98976 https://rt.cpan.org/Public/Bug/Display.html?id=98976

9 years agoMake DB_File compile under clang++.
Craig A. Berry [Sat, 27 Sep 2014 02:09:12 +0000 (21:09 -0500)]
Make DB_File compile under clang++.

Follow-up to 7f15aad6d6ce55cb.  Also noted upstream at

https://rt.cpan.org/Ticket/Display.html?id=96126

the necessity of, when rolling one's own dNOOP, to do everything
the core dNOOP does.

9 years agoA little help for clang++ in toke.c
Craig A. Berry [Fri, 26 Sep 2014 22:31:58 +0000 (17:31 -0500)]
A little help for clang++ in toke.c

This was failing to compile with Apple LLVM version 6.0 like so:

toke.c:6558:13: error: no member named 'Perl_rv2cv_op_cv' in 'gv';
                       did you mean simply 'Perl_rv2cv_op_cv'?
                                : (CV *)gv
                                        ^~

9 years agoSome NV_TO_FV fixes following fdb7e3a630fea81.
Craig A. Berry [Fri, 26 Sep 2014 21:34:51 +0000 (16:34 -0500)]
Some NV_TO_FV fixes following fdb7e3a630fea81.

I had missed the case where we pull an argument off the stack with
va_arg, and in order to avoid calling va_arg twice we now have to
save the double value in a local variable.  Moved SvNV out of this
macro so it's dealing exclusively with C types.

t/op/infnan.t is now passing all tests on VMS for the ordinary
double case (not -Duselongdouble).

9 years agoperldiag typo
Father Chrysostomos [Fri, 26 Sep 2014 20:58:39 +0000 (13:58 -0700)]
perldiag typo

9 years agoAlphabetise perldiag
Father Chrysostomos [Fri, 26 Sep 2014 20:57:58 +0000 (13:57 -0700)]
Alphabetise perldiag

9 years agoConsistent spaces after dots in perldiag
Father Chrysostomos [Fri, 26 Sep 2014 20:57:32 +0000 (13:57 -0700)]
Consistent spaces after dots in perldiag

9 years agoTru64: introduce PERL_SYS_FPU_INIT, use it.
Jarkko Hietaniemi [Wed, 24 Sep 2014 20:23:11 +0000 (16:23 -0400)]
Tru64: introduce PERL_SYS_FPU_INIT, use it.

In Tru64 the cc -ieee enables the IEEE math but disables traps.
We need to reenable the "invalid" trap because otherwise generation
of NaN values leaves the IEEE fp flags in bad state, leaving any further
fp ops behaving strangely (Inf + 1 resulting in zero, for example).

9 years agoTru64: Floating-point rounding control.
Jarkko Hietaniemi [Mon, 22 Sep 2014 11:49:46 +0000 (07:49 -0400)]
Tru64: Floating-point rounding control.

9 years agoTru64: Do not undef c99_isunordered.
Jarkko Hietaniemi [Mon, 22 Sep 2014 12:29:22 +0000 (08:29 -0400)]
Tru64: Do not undef c99_isunordered.

9 years agoTru64 nan() function broken.
Jarkko Hietaniemi [Mon, 22 Sep 2014 14:49:58 +0000 (10:49 -0400)]
Tru64 nan() function broken.

Exists in libm, but no proto or man page, probably for a reason.
Return values seem to be garbage, or at least not NaN.

Also add a todo for the nan() payload.

9 years agoTru64: NaN comparison quite broken.
Jarkko Hietaniemi [Mon, 22 Sep 2014 00:21:15 +0000 (20:21 -0400)]
Tru64: NaN comparison quite broken.

Too much Microsoft compatibility?

9 years agoTru64: Skip tests that for some reason grind Tru64 to a halt.
Jarkko Hietaniemi [Sun, 21 Sep 2014 22:36:14 +0000 (18:36 -0400)]
Tru64: Skip tests that for some reason grind Tru64 to a halt.

fold_grind and pat_psycho finishe but take several minutes as opposed
to other re tests which take seconds; uniprops grinds for even longer
but eventually runs out of memory (ulimit mem ~0.5GB) (failing)

There probably should be a more centralized/general way of doing
this with the core tests: either 'on this $^O, skip these tests'
(to avoid crowding the BEGIN of each test with $^O testing),
or a more generalized watchdog system (if this test takes more
than N sec, bail out -- probably should not be a hard failure as
such by default, given slow systems), or some combination thereof.

9 years agoMention Future in perl5220delta
Father Chrysostomos [Fri, 26 Sep 2014 20:43:52 +0000 (13:43 -0700)]
Mention Future in perl5220delta

9 years agoAdd Data::Alias to known_pod_issues.dat
Father Chrysostomos [Fri, 26 Sep 2014 20:40:04 +0000 (13:40 -0700)]
Add Data::Alias to known_pod_issues.dat

9 years agoMention Data::Alias in perl5220delta
Father Chrysostomos [Fri, 26 Sep 2014 20:13:39 +0000 (13:13 -0700)]
Mention Data::Alias in perl5220delta

9 years ago[perl #122845] Crash in recursion with ‘our’ vars
Father Chrysostomos [Fri, 26 Sep 2014 19:51:06 +0000 (12:51 -0700)]
[perl #122845] Crash in recursion with ‘our’ vars

‘our’ vars don’t use their pad slots, so when a sub is cloned the
value ends up being null.  We can’t do a SvPADTMP check on null, so
the check that 14d91147 added needs to be qualified.

9 years ago9d491117 missed one spot.
Jarkko Hietaniemi [Fri, 26 Sep 2014 14:47:18 +0000 (10:47 -0400)]
9d491117 missed one spot.

9 years agoPOSIX math: FP_ROUND, not FE_ROUND.
Jarkko Hietaniemi [Fri, 26 Sep 2014 02:11:16 +0000 (22:11 -0400)]
POSIX math: FP_ROUND, not FE_ROUND.

9 years agoPOSIX math: Match FE_ and FLT_ROUNDS with the GNU defaults.
Jarkko Hietaniemi [Fri, 26 Sep 2014 01:55:02 +0000 (21:55 -0400)]
POSIX math: Match FE_ and FLT_ROUNDS with the GNU defaults.

(The C99 defines no preferred values.)

9 years agoPOSIX math: map FLT_ROUNDS to C99 values.
Jarkko Hietaniemi [Thu, 25 Sep 2014 22:32:16 +0000 (18:32 -0400)]
POSIX math: map FLT_ROUNDS to C99 values.

(And try FLT_ROUNDS last.)

9 years agoPOSIX math: default to fail, no default.
Jarkko Hietaniemi [Thu, 25 Sep 2014 22:30:43 +0000 (18:30 -0400)]
POSIX math: default to fail, no default.

9 years agoMicro-optimise some hot code
Rafael Garcia-Suarez [Fri, 26 Sep 2014 13:44:44 +0000 (15:44 +0200)]
Micro-optimise some hot code

that was pointed to me by a profile generated with Devel::NYTProf