This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoregcomp.c: Refactor func so caller handles anomalies
Karl Williamson [Thu, 4 Sep 2014 01:52:05 +0000 (19:52 -0600)]
regcomp.c: Refactor func so caller handles anomalies

S_grok_bslash_N() is refactored to not know about the strictness level
required by the caller, and to return things instead so that the caller
can decide what action to take.

This is in preparation for some changes in the caller's behavior in
future commits.

This has the effect of changing the parsing position or where a problem
occurs shown in a warning message.

6 years agoregcomp.c: Comment clarifications, nits
Karl Williamson [Thu, 4 Sep 2014 00:28:25 +0000 (18:28 -0600)]
regcomp.c: Comment clarifications, nits

6 years agoregcomp.c: Refactor one area to use common subroutine
Karl Williamson [Wed, 3 Sep 2014 23:31:39 +0000 (17:31 -0600)]
regcomp.c: Refactor one area to use common subroutine

By using the inline function append_utf8_from_native_byte(), the details
of this conversion are hidden from here.  Since that routine advances
the parsing pointer with each byte, this has to be slightly refactored.

6 years agoPATCH: [perl #122671] Many warnings in regcomp.c can occur twice
Karl Williamson [Tue, 2 Sep 2014 02:00:01 +0000 (20:00 -0600)]
PATCH: [perl #122671] Many warnings in regcomp.c can occur twice

This solves the problem by moving the warnings to be output only in
pass2 of compilation.  The problem arises because almost all of pass1
can be repeated under certain circumstances described in the ticket and
the added comments of this patch.

6 years agorecomp.c: output given warning in only one pass
Karl Williamson [Tue, 2 Sep 2014 00:54:03 +0000 (18:54 -0600)]
recomp.c: output given warning in only one pass

Otherwise, it will be output multiple times.  This warning was untested
for as well.

6 years agoregcomp.c: Vertically stack ternary
Karl Williamson [Mon, 1 Sep 2014 22:44:38 +0000 (16:44 -0600)]
regcomp.c: Vertically stack ternary

for legibility

6 years agoregcomp.c: Don't prematurely skip error checking
Karl Williamson [Mon, 1 Sep 2014 20:57:49 +0000 (14:57 -0600)]
regcomp.c: Don't prematurely skip error checking

The assertion in the comment changed by this commit was true only for
pass1 of the regex compilation; not pass2.  This makes it true in both
passes by moving it, and the code it was about past some error checking.
This error checking was executed in pass1, but not pass2.  It also
changes the warning to only be done in the second pass, part of
[perl #122671].  A future commit will fix the others

6 years agoregcomp.c: Move comment closer to code it applies to
Karl Williamson [Mon, 1 Sep 2014 20:48:02 +0000 (14:48 -0600)]
regcomp.c: Move comment closer to code it applies to

6 years agoregcomp.c: Remove unnecessary cast
Karl Williamson [Fri, 29 Aug 2014 03:12:39 +0000 (21:12 -0600)]
regcomp.c: Remove unnecessary cast

The macro does the appropriate cast, and this is slightly more legible.

6 years agoregcomp.c: Make macro a lookup
Karl Williamson [Tue, 26 Aug 2014 21:34:25 +0000 (15:34 -0600)]
regcomp.c: Make macro a lookup

The recently introduced macro isMNEMONIC_CNTRL has a look-up and several
tests in it, which occupy time and space.  Since it was only used for
debugging, that did not matter much, but future commits will use it in
more mainline code.  This commit changes it to be a single look-up,
using up one of the spare bits available for that purpose in
PL_charclass.  There are enough available bits that we aren't likely to
run out, really ever.  (We can always add a 2nd word of bits if
necessary.)

6 years agoregcomp.c: Extract functionality into a static function
Karl Williamson [Tue, 26 Aug 2014 23:29:31 +0000 (17:29 -0600)]
regcomp.c: Extract functionality into a static function

This is in preparation for it being used in more than one place in a
future commit.

6 years agomake_ext.pl: Typo in error message
Father Chrysostomos [Sat, 6 Sep 2014 17:21:00 +0000 (10:21 -0700)]
make_ext.pl: Typo in error message

6 years agot/uni/parser.t: Make a test more robust
Father Chrysostomos [Sat, 6 Sep 2014 04:58:31 +0000 (21:58 -0700)]
t/uni/parser.t: Make a test more robust

It was checking that *tèst returns a true value, which is somewhat
redundant.  I think ‘is’ was meant, rather than ‘ok’, considering what
was the test name (*main::tèst).

6 years agoop.h: Correct PERL_LOADMOD_IMPORT_OPS comment
Father Chrysostomos [Sat, 6 Sep 2014 03:30:01 +0000 (20:30 -0700)]
op.h: Correct PERL_LOADMOD_IMPORT_OPS comment

This description, added in ec6d81aba, is misleading.

6 years agonumeric.c: Comment tweak
Karl Williamson [Fri, 5 Sep 2014 15:34:26 +0000 (09:34 -0600)]
numeric.c: Comment tweak

6 years agoSync up with meta after backports
H.Merijn Brand [Sat, 6 Sep 2014 19:58:22 +0000 (21:58 +0200)]
Sync up with meta after backports

This includes the inevitable reordering and some typo fixes

Note to committers that change Configure: when you add scans, thos will
only be included if used/referenced. You can force those in by adding a
reference in metaconfig.h

6 years agoLong double might have INFINITYL or NANL.
Jarkko Hietaniemi [Sat, 6 Sep 2014 18:12:05 +0000 (14:12 -0400)]
Long double might have INFINITYL or NANL.

6 years agoThe .i target should depend at least on perl.h and config.h.
Jarkko Hietaniemi [Sat, 6 Sep 2014 18:08:20 +0000 (14:08 -0400)]
The .i target should depend at least on perl.h and config.h.

While at it, do the same for the .s target.

6 years agoNV_INF/NV_NAN fallback where int32 is coerced to IEEE754 float.
Jarkko Hietaniemi [Sat, 6 Sep 2014 18:05:33 +0000 (14:05 -0400)]
NV_INF/NV_NAN fallback where int32 is coerced to IEEE754 float.

This is the second-to-last fallback.  The last one uses explicit
1/0.0 and 0/0.0 which may cause consternation with some compilers.

6 years agoPOSIX math: Add the opengroup URL for math.h
Jarkko Hietaniemi [Sat, 6 Sep 2014 11:49:03 +0000 (07:49 -0400)]
POSIX math: Add the opengroup URL for math.h

6 years agolex_utf8.t can run under miniperl
Father Chrysostomos [Fri, 5 Sep 2014 20:53:56 +0000 (13:53 -0700)]
lex_utf8.t can run under miniperl

but needs the Unicode tables built

6 years agoFix my constant $var utf8 confusion
Father Chrysostomos [Fri, 5 Sep 2014 20:53:00 +0000 (13:53 -0700)]
Fix my constant $var utf8 confusion

‘my some_constant $var’ tries to resolve some_constant to a package
name and then look that up, but, when using the value of the constant
to do a stash lookup, it was applying the utf8 flag if ‘use utf8’ was
in scope, even if the constant wasn’t utf8:

$ ./perl -Ilib -e 'use constant foo=>qq|\xc4\xb5|; BEGIN{${"\xc4\xb5::foo"}}; my foo $dog; print "ok\n"'
ok
$ ./perl -Ilib -e 'use constant foo=>qq|\xc4\xb5|; BEGIN{${"\xc4\xb5::foo"}}; use utf8; my foo $dog; print "ok\n"'
No such class foo at -e line 1, near "; my foo"
Execution of -e aborted due to compilation errors.

6 years agofpclass snan detection errors (cut-n-paste).
Jarkko Hietaniemi [Fri, 5 Sep 2014 13:11:05 +0000 (09:11 -0400)]
fpclass snan detection errors (cut-n-paste).

6 years agoperl.c: fix small bug on Android from commit 9054c81
Alexandre (Midnite) Jousset [Fri, 5 Sep 2014 01:58:20 +0000 (03:58 +0200)]
perl.c: fix small bug on Android from commit 9054c81

Commit b33b7ab made PERL_LIB absolute when cross-compiling
on Android. Commit 9054c81 added incompatibility with
this. Now, only add "./" to run buildcustomize.pl when
miniperl is running with -T.

6 years agoRemove -foo ambiguity warning
Father Chrysostomos [Fri, 5 Sep 2014 03:09:29 +0000 (20:09 -0700)]
Remove -foo ambiguity warning

$ ./perl -e 'sub foo{} -foo'
Ambiguous use of -foo resolved as -&foo() at -e line 1.

There is no ambiguity there, since unary minus does not force
its argument to be a bareword; it simply exempts barewords from
strictures.

This warning also makes it harder to use constantly recently added
to POSIX.  To avoid that warning, for negative infinity you have to
write ‘- Inf’ or ‘-+Inf’, because the most natural way of writing it,
‘-Inf’, warns.

See <20140901014232.20757.qmail@lists-nntp.develooper.com> and
related messages.

6 years agoListUtil.xs: Temporary fix removing declaration after statement.
George Greer [Fri, 5 Sep 2014 01:15:23 +0000 (21:15 -0400)]
ListUtil.xs: Temporary fix removing declaration after statement.

https://rt.cpan.org/Public/Bug/Display.html?id=98624

6 years agoIncrease $bigint::VERSION to 0.37
Father Chrysostomos [Fri, 5 Sep 2014 00:54:04 +0000 (17:54 -0700)]
Increase $bigint::VERSION to 0.37

6 years agoIncrease $bignum::VERSION to 0.38
Father Chrysostomos [Fri, 5 Sep 2014 00:53:30 +0000 (17:53 -0700)]
Increase $bignum::VERSION to 0.38

6 years agoIncrease $bigrat::VERSION to 0.37
Father Chrysostomos [Fri, 5 Sep 2014 00:53:12 +0000 (17:53 -0700)]
Increase $bigrat::VERSION to 0.37

6 years agobignum tests: use eval-block instead of eval-string
Olivier Mengué [Thu, 4 Sep 2014 22:34:04 +0000 (00:34 +0200)]
bignum tests: use eval-block instead of eval-string

6 years agobignum tests: use eval block to load Math::BigInt::Lite
Olivier Mengué [Thu, 4 Sep 2014 22:27:15 +0000 (00:27 +0200)]
bignum tests: use eval block to load Math::BigInt::Lite

6 years agobig{num,rat,int}: use eval block to load Math::BigInt::Lite
Olivier Mengué [Thu, 4 Sep 2014 22:17:23 +0000 (00:17 +0200)]
big{num,rat,int}: use eval block to load Math::BigInt::Lite

6 years agoPOSIX math: Use the Perl_ math APIs (C89) consistently.
Jarkko Hietaniemi [Thu, 4 Sep 2014 23:51:54 +0000 (19:51 -0400)]
POSIX math: Use the Perl_ math APIs (C89) consistently.

6 years agoVersion multibump.
Jarkko Hietaniemi [Thu, 4 Sep 2014 23:00:24 +0000 (19:00 -0400)]
Version multibump.

6 years agotoke.c: Avoid extra sv_setpv for foo <newline> =>
Father Chrysostomos [Thu, 4 Sep 2014 19:52:39 +0000 (12:52 -0700)]
toke.c: Avoid extra sv_setpv for foo <newline> =>

When parsing something like

    time
       =>

if there is a global override, the parser transforms ‘time’ into
‘CORE::GLOBAL::time’ before it looks at the next line to see if there
is a fat arrow.

If it finds a fat arrow, it has to set the name back to ‘time’.

After finding a fat arrow on the line following a bareword, it was
setting the name to what appears in the program source, even when
there was no global override.  We can skip that most of the time.

All that I said about global overrides applies to ‘our’ subs, too.
‘foo’ gets transformed into ‘ThatPackage::foo’ and needs to be changed
back.  I added a test, to make sure that is not accidentally broken.

I took the liberty of changing ((SVOP*)pl_yylval.opval)->op_sv to sv
at the same time, to make the code more readable.

6 years ago%ld expected long int, but got ssize_t.
Jarkko Hietaniemi [Thu, 4 Sep 2014 16:47:27 +0000 (12:47 -0400)]
%ld expected long int, but got ssize_t.

6 years agoCorrect usage of memEQs in attributes.xs [perl #122701]
Andy Dougherty [Thu, 4 Sep 2014 16:24:42 +0000 (12:24 -0400)]
Correct usage of memEQs in attributes.xs [perl #122701]

Reported and diagnosed by Reini Urban <rurban@cpanel.net>.  The call to
memEQs(name, 6, "shared") could fail if name were shorter than 6 bytes,
or if name were longer than 6, but started with "shared".

6 years agoPOSIX math: Use rounding macros, instead of the c99_ functions.
Jarkko Hietaniemi [Thu, 4 Sep 2014 15:48:30 +0000 (11:48 -0400)]
POSIX math: Use rounding macros, instead of the c99_ functions.

This avoids the need for forward declarations.  Also rename
the functions with UPPERCASE so people are more careful.

6 years agoPOSIX math: let's not override the real lrint().
Jarkko Hietaniemi [Thu, 4 Sep 2014 15:40:33 +0000 (11:40 -0400)]
POSIX math: let's not override the real lrint().

6 years agoPOSIX math: Cygwin lacks at least nexttoward.
Jarkko Hietaniemi [Thu, 4 Sep 2014 15:37:34 +0000 (11:37 -0400)]
POSIX math: Cygwin lacks at least nexttoward.

6 years agoPOSIX math: There's no #elifdef, unfortunately.
Jarkko Hietaniemi [Thu, 4 Sep 2014 15:34:45 +0000 (11:34 -0400)]
POSIX math: There's no #elifdef, unfortunately.

6 years agoAvoid gcc warning.
Jarkko Hietaniemi [Thu, 4 Sep 2014 14:33:07 +0000 (10:33 -0400)]
Avoid gcc warning.

Cwd.xs:200:50: warning: size argument in 'strlcat' call appears to be size of the source; expected the size of the destination [-Wstrlcpy-strlcat-size]

No effective difference since both the source and destination
are buf[MAXPATHLEN].  They are now.

6 years agoFix our-sub method confusion
Father Chrysostomos [Thu, 4 Sep 2014 06:33:48 +0000 (23:33 -0700)]
Fix our-sub method confusion

‘our $foo’ creates a lexical alias to a global symbol.  That lexi-
cal alias is resolved during parsing.  For instance, if you have
‘our $foo; package bar; $foo’, the last $foo is translated by the
parser into a ‘main::foo’ constant, which is then used for sym-
bol lookup.

A similar thing happens with ‘our subs’.  In
‘our sub foo; package bar; foo()’, the foo() call is first translated
into main::foo, and then there are various checks to determine how to
handle this bareword.

Sometimes it is determined to be a method call, and that’s where
things go awry.  For this name transformation should only happen when
we are going to call this sub.  If the parser concludes that it is not
actually a sub call, then the original bareword as it appeared in the
source should be used.  But that is not what was happening.  As a con-
sequence, this code compiles down to F->main::f, rather than F->f.

use experimental "lexical_subs";
our sub f;
{package F}
f F;
__END__
Undefined subroutine &main::f called at - line 4.

And that it is actually doing a method call, not just f(F) can be dem-
onstrated by the fact that extra arguments can come after F without an
intervening comma:

use experimental "lexical_subs";
our sub f { warn "@_" };
{package F}
f F "g";
__END__
F g at - line 2.

And that inheritance works:

use experimental "lexical_subs";
@ISA = "Bar";
our sub f;
undef *f;
sub Bar'f { print "bark\n" }
{package F}
f F;
__END__
bark

This commit corrects the behaviour by discarding the translated
symbol and restoring the original bareword if it turns out it is a
method name.

6 years agotoke.c: Combine two identical chunks via goto
Father Chrysostomos [Thu, 4 Sep 2014 06:27:36 +0000 (23:27 -0700)]
toke.c: Combine two identical chunks via goto

6 years agoUse sizeof() in UNUSED_ARG and UNUSED_VAR to avoid accessing the values.
Jarkko Hietaniemi [Thu, 4 Sep 2014 13:08:33 +0000 (09:08 -0400)]
Use sizeof() in UNUSED_ARG and UNUSED_VAR to avoid accessing the values.

The values might even be uninitialized in the case of PERL_UNUSED_VAR.

6 years agoGrab the warnflags and stdflags from cflags [perl #122694].
Jarkko Hietaniemi [Thu, 4 Sep 2014 12:22:34 +0000 (08:22 -0400)]
Grab the warnflags and stdflags from cflags [perl #122694].

They become $Config{ccwarnflags} and $Config{ccstdflags}.

6 years agoSome <termios.h> #define WRAP, undef it.
Jarkko Hietaniemi [Thu, 4 Sep 2014 12:21:57 +0000 (08:21 -0400)]
Some <termios.h> #define WRAP, undef it.

6 years agoAvoid duplicate GV lookup for barewords
Father Chrysostomos [Thu, 4 Sep 2014 02:03:20 +0000 (19:03 -0700)]
Avoid duplicate GV lookup for barewords

Since commit f74617600 (5.12), the GV lookup that this commit removes
from yylex has only been used to see whether the bareword could be a
filehandle.  The result is used by intuit_method to decide whether we
have a method call for ‘foo bar’ or ‘foo $bar’.

Doing this lookup for every bareword we encounter even when we are not
going to call intuit_method is wasteful.

The previous commit ensured that intuit_method is called only once
for each bareword, so we can put that gv lookup directly inside
intuit_method.

6 years agoDon’t call intuit_method twice for the same barewords
Father Chrysostomos [Thu, 4 Sep 2014 01:21:18 +0000 (18:21 -0700)]
Don’t call intuit_method twice for the same barewords

This calls intuit_method once:

    sub fooo; print foo bar

This calls it twice:

    sub foo; print foo bar

because seeing whether we are dealing with a bareword after ‘print’,
‘say’ etc. must happen *before* we look past the space after ‘foo’ to
see whether ‘foo bar’ could be a method call.  That’s because skipping
a space could reset the internal variables that track whether we have
just seen ‘print’.

Hence, we end up with a call to intuit_method (i.e., is this a
method?) inside the block that deals with print FOO.

But then we have another call to intuit_method later that deals with
the non-print cases.

But the former can fall through to the latter if we don’t have a
method call here.  And then intuit_method is called again with exactly
the same arguments.  So we just repeat the check needlessly.

Avoiding the call the second time (if we have already called it above)
will allow the next commit to put a GV lookup that occurs only for the
sake of intuit_method directly inside intuit_method, avoiding the need
for that lookup for most barewords.

6 years agoMAD leftovers in toke.c
Father Chrysostomos [Thu, 4 Sep 2014 01:02:48 +0000 (18:02 -0700)]
MAD leftovers in toke.c

6 years agotoke.c: Stop using len to indicate trailing ::
Father Chrysostomos [Wed, 3 Sep 2014 19:59:15 +0000 (12:59 -0700)]
toke.c: Stop using len to indicate trailing ::

This variable stores the length of the word we are parsing.  But at
one point it starts being used as a boolean to indicate that we have a
bareword ending in two colons.  So if are looking up are bareword that
does not end in ::, we have to call strlen() to scan the string and
determine the length.

6 years agoPOSIX math: if no fesetround, try fpsetround.
Jarkko Hietaniemi [Thu, 4 Sep 2014 00:36:53 +0000 (20:36 -0400)]
POSIX math: if no fesetround, try fpsetround.

6 years agoPOSIX math: have the Perl_func wrappers for the C89 math, too.
Jarkko Hietaniemi [Wed, 3 Sep 2014 22:45:29 +0000 (18:45 -0400)]
POSIX math: have the Perl_func wrappers for the C89 math, too.

(Until now the non-long-double versions have been called on long doubles.)

6 years agoPOSIX math: c99_erfc, not plain erfc.
Jarkko Hietaniemi [Wed, 3 Sep 2014 22:32:34 +0000 (18:32 -0400)]
POSIX math: c99_erfc, not plain erfc.

6 years agoUpdate Scalar-List-Utils to CPAN version 1.40
Chris 'BinGOs' Williams [Wed, 3 Sep 2014 18:13:06 +0000 (19:13 +0100)]
Update Scalar-List-Utils to CPAN version 1.40

  [DELTA]

1.40 -- 2014/08/30 11:36:36
  [CHANGES]
   * Added entire new module, Sub::Util to contain functions related
     to CODE refs
   * Added subname inspired by Sub::Identify
   * Added set_subname copied and renamed from Sub::Name
   * Also moved set_prototype into Sub::Name, with back-compat wrapper
     in Scalar::Util
   * Added prototype wrapper of CODE::prototype, for completeness
   * Nicer module documentation format, allows neater use of L</...>

  [THANKS]
   * This change was written at the YAPC::EU 2014 Hackathon hosted by
     Liz Mattijsen and Wendy van Dijk; much thanks to them for being its
     catalyst.

6 years agoregcomp.h: Comment nits
Karl Williamson [Wed, 3 Sep 2014 18:42:07 +0000 (12:42 -0600)]
regcomp.h: Comment nits

6 years agoAllow for changing size of bracketed regex char class
Karl Williamson [Thu, 28 Aug 2014 20:22:14 +0000 (14:22 -0600)]
Allow for changing size of bracketed regex char class

This commit allows Perl to be compiled with a bitmap size that is larger
than 256.  This bitmap is used to directly look up whether a character
matches or not, without having to do a binary search or hash lookup.  It
might improve the performance for some installations that have a lot of
use of scripts that are above the Latin1 range.

6 years agoFix -Dr output to work for larger ANYOF node size
Karl Williamson [Fri, 29 Aug 2014 02:07:30 +0000 (20:07 -0600)]
Fix -Dr output to work for larger ANYOF node size

This generalizes the code for -Dr output to work to dump the contents of
ANYOF nodes (bracketed character classes) which have bitmaps for more
than code points 0-255.

6 years agoregcomp.c: Swap if/else clauses
Karl Williamson [Tue, 26 Aug 2014 14:36:31 +0000 (08:36 -0600)]
regcomp.c: Swap if/else clauses

This makes it slightly easier to understand as there is no explicit
complement, but is mostly for a future commit.

6 years agoRename some internal regex #defines
Karl Williamson [Thu, 28 Aug 2014 20:05:40 +0000 (14:05 -0600)]
Rename some internal regex #defines

These are renamed to be more clear as to their actual meanings.  I know
other people have been confused by their former names.

Some of the name changes will become more important as future commits
will allow the bitmap in a bracketed character class to be a different
size.

6 years agoregcomp.h: Remove some no-longer used #defines
Karl Williamson [Fri, 29 Aug 2014 00:19:56 +0000 (18:19 -0600)]
regcomp.h: Remove some no-longer used #defines

This is an internal header, so can change names within it.

6 years agoregcomp.h: Use unsigned 1 in left shift
Karl Williamson [Thu, 28 Aug 2014 20:36:15 +0000 (14:36 -0600)]
regcomp.h: Use unsigned 1 in left shift

This prevents a signed result if this macro ever gets used in a U8.
The ANYOF_BITMAP_TEST macro must now be cast or it would generate warnings
when compiled with -DPERL_BOOL_AS_CHAR

6 years agoregcomp.h: Fix comment that said the opposite of the truth
Karl Williamson [Fri, 29 Aug 2014 00:50:22 +0000 (18:50 -0600)]
regcomp.h: Fix comment that said the opposite of the truth

Too many negations led to this.

6 years agoregcomp.c: Remove unnecessary test
Karl Williamson [Fri, 29 Aug 2014 00:13:47 +0000 (18:13 -0600)]
regcomp.c: Remove unnecessary test

The 'while' makes the 'if' unnecessary here.

6 years agoregexec.c: Simplify a short code section
Karl Williamson [Thu, 28 Aug 2014 04:12:02 +0000 (22:12 -0600)]
regexec.c: Simplify a short code section

Two "if"s can be combined, leading to one fewer (unoptimized) tests

6 years agoUpdate Test-Simple to CPAN version 1.001006
Chris 'BinGOs' Williams [Wed, 3 Sep 2014 13:10:20 +0000 (14:10 +0100)]
Update Test-Simple to CPAN version 1.001006

  [DELTA]

1.001005     Tue Sep  2 19:47:19:00 JST 2014
    * Changed install path for perl 5.12 or higher.

1.001004_003 Sat May  17 13:43:00 PST 2014
    * Another Minor doc fix to solve test bug
    * Fix #399, conflict with strawberry-portable

1.001004_002 Sat May  17 13:43:00 PST 2014
    * Minor doc fix to solve test bug

1.001004_001 Sat May  10 08:39:00 PST 2014
    * Doc updates
    * Subtests accept args
    * Outdent subtest diag

6 years agoUpdate Locale-Codes to CPAN version 3.32
Sullivan Beck [Wed, 3 Sep 2014 13:08:07 +0000 (14:08 +0100)]
Update Locale-Codes to CPAN version 3.32

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
6 years agoUpdate HTTP-Tiny to CPAN version 0.049
Chris 'BinGOs' Williams [Wed, 3 Sep 2014 12:58:03 +0000 (13:58 +0100)]
Update HTTP-Tiny to CPAN version 0.049

  [DELTA]

0.049     2014-09-02 11:20:07-04:00 America/New_York

    [FIXED]

    - 'keep_alive' is now fork-safe and thread-safe

6 years agoUpdate Time-Piece to CPAN version 1.29
Chris 'BinGOs' Williams [Wed, 3 Sep 2014 12:56:59 +0000 (13:56 +0100)]
Update Time-Piece to CPAN version 1.29

  [DELTA]

1.29      2014-09-01
        - when pretty printing negative Time::Seconds, do not lose the "minus"

6 years agoPOSIX math: Win32 does not have erf and erfc.
Jarkko Hietaniemi [Wed, 3 Sep 2014 12:52:39 +0000 (08:52 -0400)]
POSIX math: Win32 does not have erf and erfc.

6 years agoPOSIX math: simplify the fpclassify emulation.
Jarkko Hietaniemi [Wed, 3 Sep 2014 12:11:48 +0000 (08:11 -0400)]
POSIX math: simplify the fpclassify emulation.

6 years agoPOSIX math: s = "0" is not happy with -Wwrite-strings.
Jarkko Hietaniemi [Wed, 3 Sep 2014 12:06:26 +0000 (08:06 -0400)]
POSIX math: s = "0" is not happy with -Wwrite-strings.

Also, an empty string is probably better than "0".

6 years agoPOSIX math: make erf emulation C89 compliant.
Jarkko Hietaniemi [Wed, 3 Sep 2014 11:21:37 +0000 (07:21 -0400)]
POSIX math: make erf emulation C89 compliant.

(We really should have our -Warn options on at least for ext-code.)

6 years agoPOSIX math: isunordered emulation was all broken.
Jarkko Hietaniemi [Wed, 3 Sep 2014 11:00:31 +0000 (07:00 -0400)]
POSIX math: isunordered emulation was all broken.

6 years agostat Makefile.PL to get values for utime.
Anthony Heading [Thu, 28 Aug 2014 23:10:06 +0000 (19:10 -0400)]
stat Makefile.PL to get values for utime.

On certain machines, the file system timestamps are in local time, so
assigning a timestamp based on a time() call is prone to jump timezones to
UTC.

Anthony Heading is now a Perl 5 author.

For: RT #122609

6 years agoFix t/op/taint.t on Windows
Father Chrysostomos [Tue, 2 Sep 2014 05:17:08 +0000 (22:17 -0700)]
Fix t/op/taint.t on Windows

$ENV{PATH} seems to be the problem.  If we clear it, then we can’t
spawn another process.  I am basing this solely on this comment ear-
lier in the file:

    # On Windows we can't spawn a fresh Perl interpreter unless at
    # least the Windows system directory (usually C:\Windows\System32)
    # is still on the PATH.  There is however no way to determine the
    # actual path on the current system without loading the Win32
    # module, so we just restore the original $ENV{PATH} here.

6 years agoFix refcounting in rv2gv when it calls newGVgen
Father Chrysostomos [Wed, 3 Sep 2014 05:11:08 +0000 (22:11 -0700)]
Fix refcounting in rv2gv when it calls newGVgen

When the compiler (op.c) can’t figure out the name of a vivified file-
handle based on the variable name, then pp.c:S_rv2gv (which vivifies
the handle at run time) calls newGVgen, which generates something
named _GEN_0 or suchlike.

When it does that, the reference counting is wrong, because the stash
gets a *_GEN_0 typeglob and the reference stored in open’s argument
points to it, too; but the reference count is nevertheless 1.  So
if both sources shed their pointers to the GV, then you get a
double free.

Because usually the typeglob sits in the stash until program exit,
this bug has gone unnoticed for a long time.

This bug appears to have been present ever since rv2gv started call-
ing newGVgen, in 2c8ac474a0.

6 years ago[Merge] minitest fixes
Father Chrysostomos [Wed, 3 Sep 2014 03:12:31 +0000 (20:12 -0700)]
[Merge] minitest fixes

If miniperl is sufficiently broken that make_ext.pl can’t run, it’s
useful to run minitest and debug the individual tests to find out what
is broken.

I was doing just that and ran into one false positive after another,
which greatly reduces the usefulness of minitest.

This branch fixes up the tests to make sure miniperl can find the nec-
essary modules, skipping tests where that is not possible.

test.pl has two new functions:

- set_up_inc, which clobbers @INC under real perl, but unshifts
  under miniperl

- skip_all_without_unicode_tables, which skips the whole test script
  if Unicode tables have not been built yet, but only under miniperl;
  real perl is not allowed to skip the tests because of that, since
  the absence of Unicode tables indicates a broken perl.

6 years agoSkip t/uni/variables.t in absence of Unicode tables
Father Chrysostomos [Tue, 2 Sep 2014 18:41:38 +0000 (11:41 -0700)]
Skip t/uni/variables.t in absence of Unicode tables

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before the Unicode tables are built.

As of 2db3e09128, attempts to load Unicode tables under miniperl croak
instead of failing silently.

6 years agoGet t/uni/universal.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 18:41:00 +0000 (11:41 -0700)]
Get t/uni/universal.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before base.pm is copied into lib/.

6 years agoGet t/uni/stash.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 18:40:19 +0000 (11:40 -0700)]
Get t/uni/stash.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before everything is built.  Hence, we need
to make sure the directories that buildcustomize.pl puts in @INC are
not clobbered by the test script.

6 years agoGet t/uni/readline.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 18:39:39 +0000 (11:39 -0700)]
Get t/uni/readline.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before everything is built.  Hence, we need
to make sure the directories that buildcustomize.pl puts in @INC are
not clobbered by the test script.

6 years agoSkip t/uni/parser.t in absence of Unicode tables
Father Chrysostomos [Tue, 2 Sep 2014 18:38:54 +0000 (11:38 -0700)]
Skip t/uni/parser.t in absence of Unicode tables

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before the Unicode tables are built.

As of 2db3e09128, attempts to load Unicode tables under miniperl croak
instead of failing silently.

6 years agoGet t/uni/opcroak.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 18:34:46 +0000 (11:34 -0700)]
Get t/uni/opcroak.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before fields.pm is copied into lib/.

6 years agot/uni/opcroak.t: Die if eval fails
Father Chrysostomos [Tue, 2 Sep 2014 18:32:49 +0000 (11:32 -0700)]
t/uni/opcroak.t: Die if eval fails

This will give better diagnostics instead of failing silently if
fields.pm cannot load for whatever reason.

6 years agoGet t/uni/method.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 18:30:15 +0000 (11:30 -0700)]
Get t/uni/method.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before parent.pm is copied into lib/.

6 years agoReally get t/uni/ case tests working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 18:28:24 +0000 (11:28 -0700)]
Really get t/uni/ case tests working under miniperl

The earlier commits on this branch to fix up lower.t, upper.t and
title.t script under minitest were written before 2db3e09128 made its
way into blead.  Now, attempts to load Unicode tables under miniperl
croak instead of failing silently.

So skip the tests if tables have not been built yet.

6 years agoMove @INC setup to t/uni/case.pl
Father Chrysostomos [Tue, 2 Sep 2014 18:26:02 +0000 (11:26 -0700)]
Move @INC setup to t/uni/case.pl

6 years agoskip_all_without_unicode_tables
Father Chrysostomos [Tue, 2 Sep 2014 16:33:54 +0000 (09:33 -0700)]
skip_all_without_unicode_tables

6 years agoPut miniperl @INC logic in test.pl
Father Chrysostomos [Tue, 2 Sep 2014 15:36:04 +0000 (08:36 -0700)]
Put miniperl @INC logic in test.pl

6 years agoReally get t/uni/labels.t working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 09:04:12 +0000 (02:04 -0700)]
Really get t/uni/labels.t working under miniperl

The earlier commit on this branch to fix up this script under mini-
test was written before 2db3e09128 made its way into blead.  Now,
attempts to load Unicode tables under miniperl croak instead of fail-
ing silently.

6 years agoReally get t/uni/gv.t working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 09:03:17 +0000 (02:03 -0700)]
Really get t/uni/gv.t working under miniperl

The earlier commit on this branch to fix up this script under mini-
test was written before 2db3e09128 made its way into blead.  Now,
attempts to load Unicode tables under miniperl croak instead of fail-
ing silently.

6 years agoReally get t/uni/fold.t working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 09:02:29 +0000 (02:02 -0700)]
Really get t/uni/fold.t working under miniperl

The earlier commit on this branch to fix up this script under mini-
test was written before 2db3e09128 made its way into blead.  Now,
attempts to load Unicode tables under miniperl croak instead of fail-
ing silently.

6 years agoReally get t/uni/class.t working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 09:01:46 +0000 (02:01 -0700)]
Really get t/uni/class.t working under miniperl

The earlier commit on this branch to fix up this script under mini-
test was written before 2db3e09128 made its way into blead.  Now,
attempts to load Unicode tables under miniperl croak instead of fail-
ing silently.

6 years agoReally get t/uni/cache.t working under miniperl
Father Chrysostomos [Tue, 2 Sep 2014 09:01:08 +0000 (02:01 -0700)]
Really get t/uni/cache.t working under miniperl

The earlier commit on this branch to fix up this script under mini-
test was written before 2db3e09128 made its way into blead.  Now,
attempts to load Unicode tables under miniperl croak instead of fail-
ing silently.

6 years agoGet t/run/switches.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 08:54:25 +0000 (01:54 -0700)]
Get t/run/switches.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before Errno.pm is generated and copied
into lib/.

Only one test was depending on Errno, and it is already skipped under
miniperl, so load Errno at run time just before that test, instead of
compile time.

6 years agoGet t/run/fresh_perl.t working under minitest
Father Chrysostomos [Tue, 2 Sep 2014 08:51:52 +0000 (01:51 -0700)]
Get t/run/fresh_perl.t working under minitest

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before Unicode tables are built are built.
So skip the test that depends on them.

6 years agoSkip uniprops.t under miniperl; add error checking
Father Chrysostomos [Tue, 2 Sep 2014 08:48:01 +0000 (01:48 -0700)]
Skip uniprops.t under miniperl; add error checking

If things are broken enough that make_ext.pl cannot run, then mini-
test may run this script before the Unicode tables are built.  This
script was outputting absolutely nothing in that case, so I changed it
to do some error checking and conditionally skip.

6 years agoSkip t/re/regexp.t under miniperl unless uni tables exist
Father Chrysostomos [Tue, 2 Sep 2014 08:40:43 +0000 (01:40 -0700)]
Skip t/re/regexp.t under miniperl unless uni tables exist

As of 2db3e09128, attempts to load Unicode tables under miniperl croak
instead of failing silently.

6 years agoSkip t/re/regex_sets.t under miniperl unless uni tables exist
Father Chrysostomos [Tue, 2 Sep 2014 08:40:28 +0000 (01:40 -0700)]
Skip t/re/regex_sets.t under miniperl unless uni tables exist

As of 2db3e09128, attempts to load Unicode tables under miniperl croak
instead of failing silently.