This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agomg.c: White-space only
Karl Williamson [Wed, 19 Nov 2014 00:23:54 +0000 (17:23 -0700)]
mg.c: White-space only

Indent due to new blocks from previous commit

6 years agoMake encoding pragma lexical in scope
Karl Williamson [Wed, 19 Nov 2014 00:03:03 +0000 (17:03 -0700)]
Make encoding pragma lexical in scope

The encoding pragma is deprecated, but in the meantime it causes spooky
action at a distance with other modules that it may be combined with.
In these modules, operations such as chr(), ord(), and utf8::upgrade()
will suddenly start doing the wrong thing.

The documentation for 'encoding' has said to call it after loading other
modules, but this may be impractical.  This is especially bad with
anything that auto-loads at first use, like \N{} does now for charnames.

There is an issue with combining this with setting the variable
${^ENCODING} directly.  The potential for conflicts has always been
there, and remains.  This commit introduces a shadow hidden variable,
subservient to ${^ENCODING} (to preserve backwards compatibility) that
has lexical scope validity.

The pod for 'encoding' has been revamped to be more concise, clear, use
more idiomatic English, and to speak from a modern perspective.

6 years agoMake a function to get PL_encoding's value
Karl Williamson [Fri, 14 Nov 2014 18:18:57 +0000 (11:18 -0700)]
Make a function to get PL_encoding's value

This is in preparation for making the retrieval more complex in future
commits than it is now.  This is going into mg.c because the value is
magical.

6 years agoMake testing for PL_encoding into a macro
Karl Williamson [Wed, 12 Nov 2014 05:25:37 +0000 (22:25 -0700)]
Make testing for PL_encoding into a macro

This is in preparation for making the test more complicated.

6 years agolex_assign.t: Make store count test stricter
Father Chrysostomos [Mon, 17 Nov 2014 02:49:29 +0000 (18:49 -0800)]
lex_assign.t: Make store count test stricter

If ‘$foo = some op’ croaks and $foo has not been made read-only, then
it must be becasue ‘some op’ croaked, in which case the assignment
must not have happened.

We can make this test stricter and make sure the assignment doesn’t
happen, to avoid the possibility of buggy ops that write to their
targets before croaking.

6 years agoconcise.t: correct test description to match actual test
Jim Cromie [Tue, 18 Jun 2013 21:46:32 +0000 (15:46 -0600)]
concise.t: correct test description to match actual test

Commit c6036734 changed the subject of an optimized constant function
rendering test to one from the Storable API (ie stable), but missed
the function name repeated in the test description.  Fix that now.

6 years agoMake B use B::COP for nulled COPs
Father Chrysostomos [Fri, 21 Nov 2014 01:57:44 +0000 (17:57 -0800)]
Make B use B::COP for nulled COPs

Former COPs still carry information with them, and to get to it I had
to have B::Deparse rebless the op object into B::COP.

This commit makes B use the right class to begin with.  This happens
to make B::Concise output the extra information that nulled COPs carry
around with them, which was on my to-do list anyway, so I’m happy
about that.

6 years agoRemove extraneous semicolons from Deparse output
Father Chrysostomos [Thu, 20 Nov 2014 22:30:55 +0000 (14:30 -0800)]
Remove extraneous semicolons from Deparse output

Prior to the previous commit, it was emitting extra semicolons for
statements optimised away outside of any subroutine, and extra semi-
colons after sub declarations and the end of the enclosing scope.  The
previous commit made it also emit an extra semicolon at the end of the
main program, if the last thing was a sub declaration.  So I decided
to fix all three at once.

6 years ago[perl #77452] Deparse { ...; BEGIN{} } correctly
Father Chrysostomos [Thu, 20 Nov 2014 17:23:35 +0000 (09:23 -0800)]
[perl #77452] Deparse { ...; BEGIN{} } correctly

8635e3c2 (5.21.6) changed the COP sequence numbers for nested blocks,
such that most BEGIN blocks (incl. ‘use’ statements) and sub declara-
tions end up in the right place.  However, it had the side effect of
causing declarations at the end of the enclosing scope to fall out of
it and appear below.

This commit fixes that by adding an extra nulled COP to the end of the
enclosing scope if that scope ends with a sub, so the final declara-
tion gets deparsed before it.

The frequency of sub declarations at the end of the enclosing scope is
sufficiently low (I’m guessing a bit here) that this slight increase
in run-time memory usage is probably acceptable.

I had to change B::Deparse to deparse nulled COPs the same way it does
live COPs, which means we get more extraneous semicolons than before.
I hope to fix that in a forthcoming commit.  I also ran into a B bug,
in that null ops are not presented to Perl code with the right op
class (see the blessing in the patch).  I plan to fix that in a separ-
ate commit, too.

6 years agoop.h: Note unstack use of OPf_SPECIAL
Father Chrysostomos [Thu, 20 Nov 2014 05:58:08 +0000 (21:58 -0800)]
op.h: Note unstack use of OPf_SPECIAL

6 years agotest.pl:runperl: Allow multiline prog
Father Chrysostomos [Tue, 18 Nov 2014 02:59:40 +0000 (18:59 -0800)]
test.pl:runperl: Allow multiline prog

Split it into multiple -e options for portability.

6 years agoUse test.pl in Deparse.t
Father Chrysostomos [Tue, 18 Nov 2014 02:54:04 +0000 (18:54 -0800)]
Use test.pl in Deparse.t

I like runperl.  I want runperl.

6 years agoSince HP cc is strict c89, use -std=c89 with gcc.
Jarkko Hietaniemi [Fri, 21 Nov 2014 01:19:27 +0000 (20:19 -0500)]
Since HP cc is strict c89, use -std=c89 with gcc.

Mitigates the downside of 0d55a45a a bit.

6 years agoDrop -std=c89.
Jarkko Hietaniemi [Fri, 21 Nov 2014 01:13:34 +0000 (20:13 -0500)]
Drop -std=c89.

(1) It doesn't mean "strict C89" on its own, -pedantic would also be needed.
(2) Using C99 features like long long or inline becomes harder.

The downside of this change is that C99-isms can more easily
creep into the core code, breaking it for non-gcc C89 compilers.

6 years agotgamma infinity limit for IEEE quad prec.
Jarkko Hietaniemi [Thu, 20 Nov 2014 02:40:55 +0000 (21:40 -0500)]
tgamma infinity limit for IEEE quad prec.

6 years agoUpdate perlhist for v5.21.6
Chris 'BinGOs' Williams [Fri, 21 Nov 2014 00:56:30 +0000 (00:56 +0000)]
Update perlhist for v5.21.6

6 years agoBump the perl version in various places for 5.21.7
Chris 'BinGOs' Williams [Fri, 21 Nov 2014 00:53:47 +0000 (00:53 +0000)]
Bump the perl version in various places for 5.21.7

6 years agoNew perldelta for v5.21.7
Chris 'BinGOs' Williams [Fri, 21 Nov 2014 00:16:56 +0000 (00:16 +0000)]
New perldelta for v5.21.7

6 years agoAdd epigraph for v5.21.6
Chris 'BinGOs' Williams [Fri, 21 Nov 2014 00:08:28 +0000 (00:08 +0000)]
Add epigraph for v5.21.6

6 years agoFinalise perldelta v5.21.6
Chris 'BinGOs' Williams [Thu, 20 Nov 2014 19:36:36 +0000 (19:36 +0000)]
Finalise perldelta

6 years agoUpdate Module::CoreList for v5.21.6
Chris 'BinGOs' Williams [Thu, 20 Nov 2014 19:10:04 +0000 (19:10 +0000)]
Update Module::CoreList for v5.21.6

6 years agoUpdate CPAN-Meta to CPAN version 2.143240
Chris 'BinGOs' Williams [Thu, 20 Nov 2014 15:55:11 +0000 (15:55 +0000)]
Update CPAN-Meta to CPAN version 2.143240

  [DELTA]

2.143240  2014-11-20 10:26:30-05:00 America/New_York

  [FIXED]

  - Give correct path in nested merges such as resources

  - Removed strings test that should have been removed when
    CPAN::Meta::Requirements was removed to a separate dist

6 years agoUpdate CPAN-Meta-Requirements to CPAN version 2.130
Chris 'BinGOs' Williams [Thu, 20 Nov 2014 15:54:02 +0000 (15:54 +0000)]
Update CPAN-Meta-Requirements to CPAN version 2.130

  [DELTA]

2.130     2014-11-19 23:25:46-05:00 America/New_York

    [ADDED]

    - from_string_hash can take optional constructor arguments

    [CHANGED]

    - bad_version_hook callback gets module name as well as version string

    - undefined/empty versions given to from_string_hash or
      add_string_requirement now carp and are coerced to "0" instead of
      being fatal.  This is more consistent with how the other requirement
      functions work.

6 years agolocale.c: Account for setlocale using static storage
Karl Williamson [Wed, 19 Nov 2014 04:45:46 +0000 (21:45 -0700)]
locale.c: Account for setlocale using static storage

Some systems setlocale()s use static storage for the locale name
returned by it, so that a subsequent setlocale overwrites it.
Therefore, you must make a copy of the name if you want it to work after
the next setlocale.

Thanks to Craig Berry for finding and diagnosing this problem.

6 years agoperldelta: fix inconsistent variable names
Ricardo Signes [Wed, 19 Nov 2014 02:48:05 +0000 (21:48 -0500)]
perldelta: fix inconsistent variable names

6 years agoEscape EFS for directory portion in tovmsspec.
Craig A. Berry [Wed, 19 Nov 2014 01:03:51 +0000 (19:03 -0600)]
Escape EFS for directory portion in tovmsspec.

For some reason extended characters were only being escaped in
the final component of the path, but not in the directory portion,
the one exception being dots.  We need to give the entire path
the same treatment.  There is probably considerable opportunity
for further consolidation and refactoring in what we escape, but
at least now ../foo  bar/ correctly becomes [-.foo^_^_bar].

The reverse case has similar problems and is a TODO.

6 years agoTry making gcc happy about casting U32 to void*.
Jarkko Hietaniemi [Wed, 19 Nov 2014 01:20:54 +0000 (20:20 -0500)]
Try making gcc happy about casting U32 to void*.

util.c: In function ‘I32 Perl_xs_handshake(U32, void*, const char*, ...)’:
util.c:5389:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

6 years agoWhile the nan() todo remains, at least warn not.
Jarkko Hietaniemi [Wed, 19 Nov 2014 00:28:32 +0000 (19:28 -0500)]
While the nan() todo remains, at least warn not.

6 years agoComment reformatting.
Jarkko Hietaniemi [Wed, 19 Nov 2014 00:25:48 +0000 (19:25 -0500)]
Comment reformatting.

6 years agoUse my_tgamma/my_lgamma only ifndef HAS_TGAMMA/HAS_LGAMMA.
Jarkko Hietaniemi [Wed, 19 Nov 2014 00:24:22 +0000 (19:24 -0500)]
Use my_tgamma/my_lgamma only ifndef HAS_TGAMMA/HAS_LGAMMA.

6 years agoperldelta for 754cffb02255
Tony Cook [Tue, 18 Nov 2014 21:51:59 +0000 (08:51 +1100)]
perldelta for 754cffb02255

6 years agofix PERL_OP_PARENT builds
Tony Cook [Tue, 18 Nov 2014 06:11:58 +0000 (17:11 +1100)]
fix PERL_OP_PARENT builds

This was broken in two commits:

b46e009d9 - introduced newMETHOP(), which didn't add the parent link
 as newUNOP() was doing

2872f9187 - updated ck_sort() to handle lexical subs named as a
  bareword parameter to sort, but didn't update the parent link in the
  new PADCV op created.

6 years ago[CPAN RT#100275] Add spaces if needed to CCFLAGS
Chris 'BinGOs' Williams [Tue, 18 Nov 2014 19:17:21 +0000 (19:17 +0000)]
[CPAN RT#100275] Add spaces if needed to CCFLAGS

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

Patch already upstreamed

6 years agoPATCH: [perl #123198] Memory leak in regex in 5.20.1
Karl Williamson [Tue, 18 Nov 2014 04:49:08 +0000 (21:49 -0700)]
PATCH: [perl #123198] Memory leak in regex in 5.20.1

The SV was declared temporary but the pointer to it was getting changed
to another SV under some circumstances and the reference to that wasn't
getting decremented.  The temporary stemmed from earlier code and was no
longer needed.  Now, an explicit reference decrement is always done.

6 years agoFix parse_abstract so it doesn't explode when Encode isn't available
Chris 'BinGOs' Williams [Tue, 18 Nov 2014 10:34:51 +0000 (10:34 +0000)]
Fix parse_abstract so it doesn't explode when Encode isn't available

Upstreamed to EUMM repository

6 years agoUpdate HTTP-Tiny to CPAN version 0.051
Chris 'BinGOs' Williams [Tue, 18 Nov 2014 09:47:48 +0000 (09:47 +0000)]
Update HTTP-Tiny to CPAN version 0.051

  [DELTA]

0.051     2014-11-17 22:58:44-05:00 America/New_York

    [FIXED]

    - Checks for threads without loading threads.pm

6 years agoRemove redundant EBCDIC lines from Deparse.t
Father Chrysostomos [Mon, 17 Nov 2014 07:15:20 +0000 (23:15 -0800)]
Remove redundant EBCDIC lines from Deparse.t

When these were added to b.t in bd145f00387, the Deparse output still
contained \s, so it made sense to replace something else with \s in
order for the test to match.

In fcd95d642 and fee7e83848 it changed, such that the output no longer
contained \s, so, at least here, the EBCDIC code is doing nothing.

6 years agosvleak.t: Add test for #123198
Father Chrysostomos [Tue, 18 Nov 2014 05:45:20 +0000 (21:45 -0800)]
svleak.t: Add test for #123198

6 years agoPlatform may have only one of lgamma/tgamma.
Jarkko Hietaniemi [Tue, 18 Nov 2014 01:36:22 +0000 (20:36 -0500)]
Platform may have only one of lgamma/tgamma.

6 years agofma() emulation.
Jarkko Hietaniemi [Mon, 17 Nov 2014 23:59:45 +0000 (18:59 -0500)]
fma() emulation.

6 years agoNo C++ comments, please, we are C89ish.
Jarkko Hietaniemi [Mon, 17 Nov 2014 23:50:32 +0000 (18:50 -0500)]
No C++ comments, please, we are C89ish.

6 years agoUpdate Test-Simple to alpha 075
Chad Granum [Mon, 17 Nov 2014 23:36:30 +0000 (15:36 -0800)]
Update Test-Simple to alpha 075

For: RT #123235

6 years agoAdd word missing from docs for 'wait' function.
James E Keenan [Mon, 17 Nov 2014 23:58:09 +0000 (18:58 -0500)]
Add word missing from docs for 'wait' function.

Minor POD-formatting changes.

Add Johann 'Myrkraverk' Oskarsson to Perl AUTHORS.

For: RT #123230

6 years agoUpdate CPAN-Meta-Requirements to CPAN version 2.129
Chris 'BinGOs' Williams [Mon, 17 Nov 2014 16:24:17 +0000 (16:24 +0000)]
Update CPAN-Meta-Requirements to CPAN version 2.129

  [DELTA]

2.129     2014-11-13 16:28:45-05:00 America/New_York

    [FIXED]

    - from_string_hash can now accept v-strings as hash values

6 years agoManually revert ‘Remove SvREADONLY_on from op.c:op_const_sv’
Father Chrysostomos [Mon, 17 Nov 2014 02:31:09 +0000 (18:31 -0800)]
Manually revert ‘Remove SvREADONLY_on from op.c:op_const_sv’

This effectively reverts d0a32af375ac806258a97cce0091ce4b3636f8dc.

It was wrong.  And I should know that, too.

I was the one who implemented padtmp swiping and went around turning
on the read-only flag to make it work correctly.

This fails, because the second call to &$sub returns undef, its value
having been stolen by the $y assignment.

use Test::More tests=>1;
my $sub = sub {
    my $x = "x"x2000; sub () {$x};
}->();
$y = &$sub;
$z = &$sub;
is $z, $y;

6 years agoFix assert fail with my $x; sub() {$x}
Father Chrysostomos [Mon, 17 Nov 2014 02:23:34 +0000 (18:23 -0800)]
Fix assert fail with my $x; sub() {$x}

If $x is not referenced or used in lvalue context elsewhere, then the
constant sub can actually share the same scalar as the enclosing sub’s
pad.  It doesn’t need to copy.  And we don’t in that case, as of
v5.21.5-421-g04472a8.  But we need to make sure the PADTMP flag is
turned off at scope exit if the pad has the only reference to the sub.
(The PADTMP flag has been turned on as of v5.21.5-391-g5543332.)

6 years agoperldelta for fd2709db56
Father Chrysostomos [Mon, 17 Nov 2014 00:36:46 +0000 (16:36 -0800)]
perldelta for fd2709db56

6 years agoperldelta for d88d1fe0d
Father Chrysostomos [Mon, 17 Nov 2014 00:34:36 +0000 (16:34 -0800)]
perldelta for d88d1fe0d

6 years agoperldelta for ddc3d23f07
Father Chrysostomos [Mon, 17 Nov 2014 00:32:41 +0000 (16:32 -0800)]
perldelta for ddc3d23f07

6 years agoperldelta for 659fbb76ee
Father Chrysostomos [Mon, 17 Nov 2014 00:31:03 +0000 (16:31 -0800)]
perldelta for 659fbb76ee

6 years agoperldelta for fbc76eb33c6
Father Chrysostomos [Mon, 17 Nov 2014 00:30:27 +0000 (16:30 -0800)]
perldelta for fbc76eb33c6

6 years agoperldelta for c74d82e0fe
Father Chrysostomos [Mon, 17 Nov 2014 00:28:52 +0000 (16:28 -0800)]
perldelta for c74d82e0fe

6 years agoperldelta: missing paren
Father Chrysostomos [Mon, 17 Nov 2014 00:06:16 +0000 (16:06 -0800)]
perldelta: missing paren

6 years agoperldelta for 8915ba3d0
Father Chrysostomos [Sun, 16 Nov 2014 22:53:35 +0000 (14:53 -0800)]
perldelta for 8915ba3d0

6 years agoperldelta for dc1230de
Father Chrysostomos [Sun, 16 Nov 2014 22:52:06 +0000 (14:52 -0800)]
perldelta for dc1230de

6 years agoperldelta for referencing outer stale vars
Father Chrysostomos [Sun, 16 Nov 2014 22:50:25 +0000 (14:50 -0800)]
perldelta for referencing outer stale vars

e52eb89 Avoid reifying GVs in rv2cv
c5e6a3c Test reference to unavailable lexical variable

6 years agoperldelta for 5a8cd187c67
Father Chrysostomos [Sun, 16 Nov 2014 22:46:06 +0000 (14:46 -0800)]
perldelta for 5a8cd187c67

6 years agoperldelta for bae8cfc69
Father Chrysostomos [Sun, 16 Nov 2014 22:43:01 +0000 (14:43 -0800)]
perldelta for bae8cfc69

6 years agoperldelta for 6a8b6cf09
Father Chrysostomos [Sun, 16 Nov 2014 22:41:19 +0000 (14:41 -0800)]
perldelta for 6a8b6cf09

6 years agoperldelta for OA_DANGEROUS additions
Father Chrysostomos [Sun, 16 Nov 2014 22:37:25 +0000 (14:37 -0800)]
perldelta for OA_DANGEROUS additions

6575cde tied is OA_DANGEROUS
d86b312 values and each are OA_DANGEROUS

6 years agoperldelta for OPpTARGET_MY bugs
Father Chrysostomos [Sun, 16 Nov 2014 22:34:44 +0000 (14:34 -0800)]
perldelta for OPpTARGET_MY bugs

b454703 Fix $lex = $ref++ under use integer
f595e19 Fix $lex = chomp $lex regression from 5.12
f9e9590 Call STORE on lexical $tied = vec/chr
8ec0525 Don’t call STORE twice on setpgrp target

6 years agoperldelta for 710b427f0
Father Chrysostomos [Sun, 16 Nov 2014 22:13:06 +0000 (14:13 -0800)]
perldelta for 710b427f0

6 years agoperldelta for #119815 / 12cea2fa65
Father Chrysostomos [Sun, 16 Nov 2014 22:11:47 +0000 (14:11 -0800)]
perldelta for #119815 / 12cea2fa65

6 years agoperldelta for OPpTARGET_MY optimisations
Father Chrysostomos [Sun, 16 Nov 2014 22:01:41 +0000 (14:01 -0800)]
perldelta for OPpTARGET_MY optimisations

db09808 Allow OPpTARGET_MY optimisation for vec
6abbd37 Allow OPpTARGET_MY optimisation for x
d8cdf57 Allow OPpTARGET_MY optimisation for split
a1b22ab Extend OPpTARGET_MY optimisation to state var init

6 years agoperldelta for #77452 / 8635e3c23
Father Chrysostomos [Sun, 16 Nov 2014 21:46:57 +0000 (13:46 -0800)]
perldelta for #77452 / 8635e3c23

6 years agoperldelta for 6a9665b0cf
Father Chrysostomos [Sun, 16 Nov 2014 21:16:32 +0000 (13:16 -0800)]
perldelta for 6a9665b0cf

6 years agoExtUtils-Manifest update to Maintainers.pl
Chris 'BinGOs' Williams [Sun, 16 Nov 2014 22:13:23 +0000 (22:13 +0000)]
ExtUtils-Manifest update to Maintainers.pl

6 years agoperldelta: fix pod syntax
Father Chrysostomos [Sun, 16 Nov 2014 20:57:22 +0000 (12:57 -0800)]
perldelta: fix pod syntax

6 years agoperldelta for #121827 / 3a100dabd
Father Chrysostomos [Sun, 16 Nov 2014 20:55:51 +0000 (12:55 -0800)]
perldelta for #121827 / 3a100dabd

6 years agoperldelta for 6b6b21da8
Father Chrysostomos [Sun, 16 Nov 2014 20:50:36 +0000 (12:50 -0800)]
perldelta for 6b6b21da8

6 years agoperldelta: Sort updated modules
Father Chrysostomos [Sun, 16 Nov 2014 20:46:29 +0000 (12:46 -0800)]
perldelta: Sort updated modules

6 years agoperldelta for ff781254a3
Father Chrysostomos [Sun, 16 Nov 2014 20:45:24 +0000 (12:45 -0800)]
perldelta for ff781254a3

6 years agoUpdate ExtUtils-Manifest to CPAN version 1.69
Karen Etheridge [Sun, 16 Nov 2014 18:40:05 +0000 (10:40 -0800)]
Update ExtUtils-Manifest to CPAN version 1.69

    [DELTA]

    1.69  2014-11-16
      - also skip _build_params, generated by Module::Build::Tiny

6 years agoperldelta for #123103 / 1d5686ec7b
Father Chrysostomos [Sun, 16 Nov 2014 19:30:16 +0000 (11:30 -0800)]
perldelta for #123103 / 1d5686ec7b

6 years agoperldelta for 96d7c888
Father Chrysostomos [Sun, 16 Nov 2014 19:27:52 +0000 (11:27 -0800)]
perldelta for 96d7c888

6 years agoperldelta for f4725fad1a
Father Chrysostomos [Sun, 16 Nov 2014 19:25:55 +0000 (11:25 -0800)]
perldelta for f4725fad1a

6 years agoperldelta for #122782 / e660c409
Father Chrysostomos [Sun, 16 Nov 2014 19:22:25 +0000 (11:22 -0800)]
perldelta for #122782 / e660c409

6 years agoperldelta for #122829 / 00e40766a
Father Chrysostomos [Sun, 16 Nov 2014 19:17:34 +0000 (11:17 -0800)]
perldelta for #122829 / 00e40766a

6 years agoperldelta for #121374 / a2b5b206
Father Chrysostomos [Sun, 16 Nov 2014 19:15:18 +0000 (11:15 -0800)]
perldelta for #121374 / a2b5b206

6 years agoperldelta for #123057 / e4e95921
Father Chrysostomos [Sun, 16 Nov 2014 19:13:11 +0000 (11:13 -0800)]
perldelta for #123057 / e4e95921

6 years agoperldelta for 03d05f6e34e
Father Chrysostomos [Sun, 16 Nov 2014 19:09:24 +0000 (11:09 -0800)]
perldelta for 03d05f6e34e

6 years agoperldelta for c57eecc5
Father Chrysostomos [Sun, 16 Nov 2014 19:07:29 +0000 (11:07 -0800)]
perldelta for c57eecc5

6 years agoperldelta for 82209a5
Father Chrysostomos [Sun, 16 Nov 2014 19:03:54 +0000 (11:03 -0800)]
perldelta for 82209a5

6 years agoperldelta for 25f5d5405
Father Chrysostomos [Sun, 16 Nov 2014 19:01:22 +0000 (11:01 -0800)]
perldelta for 25f5d5405

6 years agoperldelta for ce409cc88
Father Chrysostomos [Sun, 16 Nov 2014 19:00:32 +0000 (11:00 -0800)]
perldelta for ce409cc88

6 years agoperldelta for #122695 / 51a82aa9fb
Father Chrysostomos [Sun, 16 Nov 2014 18:59:17 +0000 (10:59 -0800)]
perldelta for #122695 / 51a82aa9fb

6 years agoperldelta for #122680 / e1729dc6ad
Father Chrysostomos [Sun, 16 Nov 2014 18:57:15 +0000 (10:57 -0800)]
perldelta for #122680 / e1729dc6ad

6 years agoperldelta for #123029
Father Chrysostomos [Sun, 16 Nov 2014 18:53:41 +0000 (10:53 -0800)]
perldelta for #123029

Inadvertently fixed by c0683843e92.

Follow-up commits specific to this bug:

c4a33ec [perl #123029]: add regression test
a4f1ca6 state.t: Improve test for #123029
9f53080 sv.c: Always #define COW threshold constants

6 years agoperldelta for fa367bcbf7
Father Chrysostomos [Sun, 16 Nov 2014 18:43:41 +0000 (10:43 -0800)]
perldelta for fa367bcbf7

6 years agoIncrease $I18N::Langinfo::VERSION to 0.12
Father Chrysostomos [Sun, 16 Nov 2014 18:34:32 +0000 (10:34 -0800)]
Increase $I18N::Langinfo::VERSION to 0.12

6 years ago$@ check in I18N::Langinfo documentation is reversed
Slaven Rezic [Tue, 19 May 2009 20:50:45 +0000 (22:50 +0200)]
$@ check in I18N::Langinfo documentation is reversed

6 years agomisc optimizing in DynaLoader
Daniel Dragan [Sun, 16 Nov 2014 04:45:19 +0000 (23:45 -0500)]
misc optimizing in DynaLoader

dl_last_error is "#define dl_last_error (SvPVX(MY_CXT.x_dl_last_error))"
since the data is already in a SV *, use newSVsv instead of turning it into
a strlen-ed (eventually) char *.

-win32 dl_load_file never uses flags, so don't do a SvIV in void context
- dl_load_file cant use "flags=NULL" because of test
"calling DynaLoader::dl_load_file() with no argument" in DynaLoader.t
-OS_Error_String stop repeatedly computing address into MY_CXT and
 derefing after PerlProc_GetOSError

function sizes in machine code bytes on VC 2003
b4 0x69 OS_Error_String af 0x67
b4 0x9D _XS_DynaLoader_dl_error af 0x6B
b4 0x108 _XS_DynaLoader_dl_load_file af 0xD6

6 years agoreadd noreturn and silence "noreturn that returns" warning on MSVC
Daniel Dragan [Sun, 16 Nov 2014 02:00:16 +0000 (21:00 -0500)]
readd noreturn and silence "noreturn that returns" warning on MSVC

Based on commit 73758d77 (by me), in commit 117af67d629 more things got
noreturn removed on MSVC. See also ML post
"(Hugmeir) Re: [perl.git] branch blead, updated. v5.21.0-377-gdc3bf40"
This caused a measurable increase in machine code size in 117af67d629 .
In commit 73758d77 , the reason there was no increase is
Perl_magic_regdatum_set is called only through a magic vtable. Optimizing
this to noreturn is forbidden unless the struct member type specifies it
(and it obviously doesn't, since this is the magic vtable).

The other not-noreturn on MSVC function, Perl_screaminstr, has no core
usage (its only reference is in the export table) or CPAN grep usage so
therefore it is being removed. It was made fatal in commit 9e3f0d16db .

before .text section of perl521.dll on VC 2003 32b, 0xc66a3 bytes, after
0xc6453

6 years agoperldiag: Correct ‘Can't use %s for loop variable’
Father Chrysostomos [Sun, 16 Nov 2014 01:39:08 +0000 (17:39 -0800)]
perldiag: Correct ‘Can't use %s for loop variable’

It is no longer true that the variable can only be a simple scalar.
More to the point, this message should never be reached.  If you try
to use something prohibited as your loop variable, you get a syntax
error or ‘Missing $’.

6 years agoop.c: cmmoent typo
Father Chrysostomos [Sun, 16 Nov 2014 01:26:42 +0000 (17:26 -0800)]
op.c: cmmoent typo

6 years agoop.c: Correct comment added by c427f4d2d
Father Chrysostomos [Sun, 16 Nov 2014 01:09:18 +0000 (17:09 -0800)]
op.c: Correct comment added by c427f4d2d

6 years agoFix double free with unterminated /(?{ <<END })/
Father Chrysostomos [Sat, 15 Nov 2014 21:31:40 +0000 (13:31 -0800)]
Fix double free with unterminated /(?{ <<END })/

If we are parsing from a stream (file), and we are inside a quote-like
operator, and we find a here-doc marker that tries to extract the
here-doc body from the stream (this is the last line of the quote-like
operator, or it only has one line), and the the here-doc terminator
cannot be found, then we end up trying to free a scalar twice:

$ ./miniperl -e '"${ print <<END"'
Can't find string terminator "END" anywhere before EOF at -e line 1.
Attempt to free temp prematurely: SV 0x7fcafb82fd98, Perl interpreter: 0x7fcafb803200 at -e line 1.
Attempt to free unreferenced scalar: SV 0x7fcafb82fd98, Perl interpreter: 0x7fcafb803200 at -e line 1.

I caused that in v5.17.3-187-g3328ab5.

The current line of code in the parser is usually stored in
PL_parser->linestr (aka PL_linestr) and gets freed when the parser
itself is freed.

The heredoc parser, when extracting the body from a stream, tempor-
arily sets aside PL_linestr, replacing it with another SV.  If it
doesn’t find the terminator, it frees the PL_linestr value that has
been set aside, under the assumption that parser_free will take care
of freeing the new value.

Inside quote-like operators that does not work, because PL_linestr has
been localised and set to a new value, already prospectively freed via
SAVEFREESV, in sublex_push.  So we can’t free that value again.

6 years agoUpdate Test-Simple to alpha 074
Chad Granum [Sat, 15 Nov 2014 14:39:19 +0000 (06:39 -0800)]
Update Test-Simple to alpha 074

6 years agoDon’t always skip in-memory tests is t/base/rs.t
Father Chrysostomos [Sat, 15 Nov 2014 18:31:06 +0000 (10:31 -0800)]
Don’t always skip in-memory tests is t/base/rs.t

There is no PerlIO::via::scalar, as far as I can tell.  In-memory han-
dles just use PerlIO::scalar.

The code was added by cd1a9f552.  I’m not sure it was ever cor-
rect.  It was intended to skip tests under -Uuseperlio (see <20080614182005.yxuyk1mntwkog0o0@horde.wizbit.be>), but
skipped them on all builds.  I’m not sure that we even support
-Uuseperlio any more.

In the mean time, 1ab48e3a screwed up the test count.

6 years agot/base/rs.t: Suppress warning
Father Chrysostomos [Sat, 15 Nov 2014 18:19:47 +0000 (10:19 -0800)]
t/base/rs.t: Suppress warning