This is a live mirror of the Perl 5 development currently hosted at
8 years ago-Wendif-labels is actually the default.
Jarkko Hietaniemi [Wed, 18 Jun 2014 13:06:26 +0000 (09:06 -0400)]
-Wendif-labels is actually the default.

Has been AFAICT for years / always, the documentation just
had it wrong in pre-4.0 gccs.

8 years agoEnable -Werror=declaration-after-statement.
Jarkko Hietaniemi [Wed, 18 Jun 2014 13:04:24 +0000 (09:04 -0400)]
Enable -Werror=declaration-after-statement.

For C89 compliancy, this is the most common thinko people make.
While waiting for -pedantic -std=c89, which will catch the same.

8 years agoComment tweaking.
Jarkko Hietaniemi [Wed, 18 Jun 2014 12:44:52 +0000 (08:44 -0400)]
Comment tweaking.

8 years agoMake also cflags.SH clean with g++ -Wunused-*
Jarkko Hietaniemi [Wed, 18 Jun 2014 12:43:37 +0000 (08:43 -0400)]
Make also cflags.SH clean with g++ -Wunused-*

"clean" as in "not needed anymore".

8 years agoWith this we are g++ -Wunused-* clean.
Jarkko Hietaniemi [Wed, 18 Jun 2014 12:52:17 +0000 (08:52 -0400)]
With this we are g++ -Wunused-* clean.

8 years agoLooks like the core is now -Wunused-value clean with clang.
Jarkko Hietaniemi [Wed, 18 Jun 2014 12:27:54 +0000 (08:27 -0400)]
Looks like the core is now -Wunused-value clean with clang.

Another possibility is that clang has become smarter,
and that needs to be made dependent on clang version.
But for now, let's opt for simplicity and less logic.

8 years agoAvoid missing return warning in pp_die.
Craig A. Berry [Wed, 18 Jun 2014 16:40:28 +0000 (11:40 -0500)]
Avoid missing return warning in pp_die.

Even though it can't be reached, the absence of a return statement
makes the VMS C compiler warn that it's missing.

8 years agocflags.SH: Whitespace only.
Jarkko Hietaniemi [Wed, 18 Jun 2014 12:04:22 +0000 (08:04 -0400)]
cflags.SH: Whitespace only.

8 years agoMove ccflags edits to extraction time.
Jarkko Hietaniemi [Mon, 16 Jun 2014 12:49:13 +0000 (08:49 -0400)]
Move ccflags edits to extraction time.

(Except for the possible toke_cflags customizations.)

Do the -Wno-unused-... edits only if -Wall.

Echo the edits done during extraction time, to make the magic more visible.

8 years agoAllow cflags.SH edits to ccflags to stick.
Jarkko Hietaniemi [Mon, 16 Jun 2014 12:32:48 +0000 (08:32 -0400)]
Allow cflags.SH edits to ccflags to stick.

8 years agolib/locale.t: White space only
Karl Williamson [Tue, 17 Jun 2014 19:11:46 +0000 (13:11 -0600)]
lib/locale.t: White space only

Indent inside a newly-formed block

8 years agolib/locale.t: Skip testing $! unless LC_MESSAGES exists
Karl Williamson [Tue, 17 Jun 2014 19:10:04 +0000 (13:10 -0600)]
lib/locale.t: Skip testing $! unless LC_MESSAGES exists

Some platforms don't have LC_MESSAGES for some or all locales, so skip
these tests on them.

8 years agoPATCH:[perl #12202] locale fails on OS X
Karl Williamson [Tue, 17 Jun 2014 18:26:05 +0000 (12:26 -0600)]
PATCH:[perl #12202] locale fails on OS X

It turns out that the bug is in OS X for this Chinese Big5 locale.  So
this patch just makes the failing test one that we don't fail the whole
.t for unless too many locales fail.

8 years agolib/locale.t: Don't test strftime without LC_TIME
Karl Williamson [Tue, 17 Jun 2014 18:20:39 +0000 (12:20 -0600)]
lib/locale.t: Don't test strftime without LC_TIME

On netbsd, not all locales have an LC_TIME, and so they are all failing
the tests for that.  This is true even though they have LC_ALL.  I don't
know if that is legal or not, but Perl can't do anything about it, so
this skips the LC_TIME tests for locales that don't have it.

8 years agolib/locale.t: Add %p to strftime test
Karl Williamson [Tue, 17 Jun 2014 18:19:23 +0000 (12:19 -0600)]
lib/locale.t: Add %p to strftime test

This can also output alpha text, so should be included in the alpha
tests for strftime.

8 years agolib/locale.t: Add debugging statement
Karl Williamson [Tue, 17 Jun 2014 18:10:40 +0000 (12:10 -0600)]
lib/locale.t: Add debugging statement

This will aid in debugging on platforms where strftime has problems

8 years agolib/locale.t: Add debugging subroutine
Karl Williamson [Tue, 17 Jun 2014 18:07:51 +0000 (12:07 -0600)]
lib/locale.t: Add debugging subroutine

This prints out a string unambiguously, both well and ill-formed UTF-8.
The next commit will use it.

8 years agolib/locale.t: Modify debug statements
Karl Williamson [Tue, 17 Jun 2014 17:52:59 +0000 (11:52 -0600)]
lib/locale.t: Modify debug statements

The debugging statements should begin with a '#' so TAP ignores them.
It's easier to do this in the subroutine that prints them, rather than
remember to do so in each call to it.  This doesn't change the few
debugf() calls, because one doesn't want a # (it just outputs an empty

8 years agolib/locale.t: Don't test locales without LC_NUMERIC
Karl Williamson [Tue, 17 Jun 2014 17:50:48 +0000 (11:50 -0600)]
lib/locale.t: Don't test locales without LC_NUMERIC

There are quite a few tests that depend on LC_NUMERIC.  Some platforms
will say they have LC_ALL, but that doesn't include all the official
categories, so check that does include LC_NUMERIC

8 years agolib/locale.t: Refactor some tests common to 2 branches
Karl Williamson [Mon, 16 Jun 2014 15:55:42 +0000 (09:55 -0600)]
lib/locale.t: Refactor some tests common to 2 branches

These tests can go in the same straight-line code as they are the same
in both branches they were previously in.

8 years agolib/locale.t: Add debugging statement
Karl Williamson [Mon, 16 Jun 2014 03:57:19 +0000 (21:57 -0600)]
lib/locale.t: Add debugging statement

This prints only during debugging the percentage of locales that fail
tests that exceed the permissible failure rate..

8 years agoperldelta for fatalizing defined(@), hash as ref
Karl Williamson [Wed, 18 Jun 2014 01:54:42 +0000 (19:54 -0600)]
perldelta for fatalizing defined(@), hash as ref

I forgot to include these in the initial commits

8 years agoperldelta: Move MAD notice to "Config" section
Karl Williamson [Wed, 18 Jun 2014 01:53:59 +0000 (19:53 -0600)]
perldelta: Move MAD notice to "Config" section

8 years agot/re/pat_advanced.t: Remove a 'use encoding'
Karl Williamson [Wed, 18 Jun 2014 01:02:05 +0000 (19:02 -0600)]
t/re/pat_advanced.t: Remove a 'use encoding'

'use encoding "latin1"' has the effect of causing \x80 - \xFF to be
treated as Unicode characters in a regular expression, which is the same
thing as the /u modifier does.  The pragma may eventually be removed, so
replace it by the more modern way to get the same effect

8 years agoOptimize regen/
Tony Cook [Wed, 18 Jun 2014 00:48:04 +0000 (10:48 +1000)]
Optimize regen/

This became noticably slower recently, these changes don't return us
to the previous runtimes, but they do improve things.

8 years agoavoid copying the while ebcidic mapping to the stack calling get_a2n()
Tony Cook [Tue, 10 Jun 2014 06:18:34 +0000 (16:18 +1000)]
avoid copying the while ebcidic mapping to the stack calling get_a2n()

from 41.6sec to 34.1sec

get_a2n() is called 181540 times by __uni_latin1() which in most cases
doesn't use the whole table.  Other callers tend to use the whole
table, so make a copy.

8 years agoavoid copying the whole map to the stack on each call to get_I8_2_utf()
Tony Cook [Tue, 10 Jun 2014 06:07:12 +0000 (16:07 +1000)]
avoid copying the whole map to the stack on each call to get_I8_2_utf()

took run time from 51.6 sec to 41.6 sec

get_I8_2_utf() is called 147000 times by cp_2_utfbytes() which
typically doesn't use the whole table, so return a reference instead to.

8 years agoRevert the removal of 'use encoding'
Karl Williamson [Wed, 18 Jun 2014 00:00:13 +0000 (18:00 -0600)]
Revert the removal of 'use encoding'

We've decided to not remove 'use encoding' in v5.20.

This reverts commits b017fe877ad78f04afaa3c1327fc46391f572bfb,
7053d92917f7cb46452de86dc4c6d8644cae849c, and

8 years agoperl.h: White-space only
Karl Williamson [Thu, 12 Jun 2014 21:11:43 +0000 (15:11 -0600)]
perl.h: White-space only

8 years agoUpdate INSTALL
Matthew Horsfall (alh) [Tue, 17 Jun 2014 23:42:33 +0000 (19:42 -0400)]

8 years agoUpdate perldelta for new/changed diagnostics
Matthew Horsfall (alh) [Tue, 17 Jun 2014 23:29:30 +0000 (19:29 -0400)]
Update perldelta for new/changed diagnostics

8 years agoperldelta for d0a29c3
Matthew Horsfall (alh) [Tue, 17 Jun 2014 22:48:28 +0000 (18:48 -0400)]
perldelta for d0a29c3

8 years agoperldelta for f31006c
Matthew Horsfall (alh) [Tue, 17 Jun 2014 22:38:49 +0000 (18:38 -0400)]
perldelta for f31006c

8 years agoCorrect two subtle typos.
Michael Bunk [Tue, 17 Jun 2014 22:35:33 +0000 (18:35 -0400)]
Correct two subtle typos.

Add Michael Bunk to Perl AUTHORS.


8 years agoepigraphs: add the v5.20.0-RC1 epigraph
Ricardo Signes [Tue, 17 Jun 2014 21:11:29 +0000 (17:11 -0400)]
epigraphs: add the v5.20.0-RC1 epigraph

8 years agoPATCH: [perl #121816] Add warning for repetition x < 0
Karl Williamson [Tue, 17 Jun 2014 15:39:51 +0000 (09:39 -0600)]
PATCH: [perl #121816] Add warning for repetition x < 0

I consider this experimental, so that if code breaks as a result, we
will remove it.

I chose the numeric warnings category.  But misc or a new subcategory of
numeric might be better choices.

There is also the issue if someone is calculating the repeat count in
floating point and gets something that would be 0 if there were infinite
precision, but ends up being a very small negative number.  The current
implementation will warn on that, but probably shouldn't.  I suspect that
this would be extremely rare in practice.

8 years agoClosing comments is hard.
Jarkko Hietaniemi [Tue, 17 Jun 2014 12:27:50 +0000 (08:27 -0400)]
Closing comments is hard.

8 years agoDo not declare victory over d632a2c.
Jarkko Hietaniemi [Tue, 17 Jun 2014 12:23:04 +0000 (08:23 -0400)]
Do not declare victory over d632a2c.

The same warning seems to pop in Android.  Needs more study.

8 years agoBump B::Deparse version
Matthew Horsfall (alh) [Thu, 12 Jun 2014 23:13:53 +0000 (19:13 -0400)]
Bump B::Deparse version

8 years agoPreserve explicit 'm' when deparsing m?PATTERN?
Dagfinn Ilmari Mannsåker [Thu, 2 Jan 2014 13:18:18 +0000 (14:18 +0100)]
Preserve explicit 'm' when deparsing m?PATTERN?

Bare ?PATTERN? is no longer allowed

8 years agoRemove "ternary operator parsed as search pattern" warning
Dagfinn Ilmari Mannsåker [Thu, 2 Jan 2014 13:06:51 +0000 (14:06 +0100)]
Remove "ternary operator parsed as search pattern" warning

Since ?PATTERN? without 'm' is no longer supported, there is no
ambiguity any more.

8 years agoRemove support for ?PATTERN? without explicit 'm' operator
Dagfinn Ilmari Mannsåker [Wed, 1 Jan 2014 02:41:25 +0000 (03:41 +0100)]
Remove support for ?PATTERN? without explicit 'm' operator

This has issued a deprecation warning since v5.14 (commit 725a61d70),
and precludes using ? as an operator after a unary operator that
defaults to $_, such as:

   ref ? $_ : [$_]

8 years agoperldiag: Add details about variable length lookbehind
Karl Williamson [Tue, 17 Jun 2014 02:00:39 +0000 (20:00 -0600)]
perldiag: Add details about variable length lookbehind


8 years agoperldiag: Remove obsolete entries.
Karl Williamson [Tue, 17 Jun 2014 01:58:04 +0000 (19:58 -0600)]
perldiag: Remove obsolete entries.

These entries about \b{} are obsolete, as it no longer is deprecated,
but forbidden.

8 years agoUse Unicode 7.0
Karl Williamson [Fri, 21 Feb 2014 04:59:00 +0000 (21:59 -0700)]
Use Unicode 7.0

8 years agoFatalize defined(@) and defined{%)
Karl Williamson [Tue, 17 Jun 2014 00:56:44 +0000 (18:56 -0600)]
Fatalize defined(@) and defined{%)

Calling defined on an array or hash has been deprecated and scheduled
for removal in v5.22.  This commit does that, removing the tests that
assumed they were defined.

In order to get the line numbers of the errors to display, I combined
the first and second lines of the message, omitting the \n

8 years agobe explicit that SvSetSV() doesn't do set magic
Tony Cook [Tue, 17 Jun 2014 00:49:06 +0000 (10:49 +1000)]
be explicit that SvSetSV() doesn't do set magic

8 years agoDisable and document xop_name gcc warning seen in HP-UX.
Jarkko Hietaniemi [Mon, 16 Jun 2014 18:52:37 +0000 (14:52 -0400)]
Disable and document xop_name gcc warning seen in HP-UX.

8 years agoUse of the Uid_t_sign and casting instead of Uid_t_f.
Jarkko Hietaniemi [Mon, 16 Jun 2014 16:27:35 +0000 (12:27 -0400)]
Use of the Uid_t_sign and casting instead of Uid_t_f.

HP-UX B.11.31/64 gcc 4.7.2 with -DDEBUGGING:
taint.c:38:2: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'uid_t' [-Wformat]

This removes the sole use of Uid_t_f (and there are none of Gid_t_f)
from the core.

8 years agod_namlen can be signed.
Jarkko Hietaniemi [Mon, 16 Jun 2014 16:19:22 +0000 (12:19 -0400)]
d_namlen can be signed.

In HP-UX, it is either short or char (which can be either signed or unsigned),
depending on the compiler flags.

8 years agoDo not printf U32 and I32 (both) as %i.
Jarkko Hietaniemi [Mon, 16 Jun 2014 16:09:56 +0000 (12:09 -0400)]
Do not printf U32 and I32 (both) as %i.

(Detected in HP-UX.)

8 years agoFor HP-UX, do not potentially deref NULL CopFILESV.
Jarkko Hietaniemi [Mon, 16 Jun 2014 16:06:48 +0000 (12:06 -0400)]
For HP-UX, do not potentially deref NULL CopFILESV.

(HP-UX and other ARG_ZERO_IS_SCRIPT platforms)

8 years agoFatalize using hash|array as reference
Karl Williamson [Mon, 16 Jun 2014 19:08:29 +0000 (13:08 -0600)]
Fatalize using hash|array as reference

This has been deprecated, scheduled to come out in 5.22

8 years agoop.c: Fix typo in comment
Karl Williamson [Mon, 16 Jun 2014 19:04:14 +0000 (13:04 -0600)]
op.c: Fix typo in comment

8 years agoregcomp.c: White-space only
Karl Williamson [Mon, 16 Jun 2014 18:38:58 +0000 (12:38 -0600)]
regcomp.c: White-space only

Indent because of newly-formed block

8 years agoPATCH: [perl #122029] BBC KAWASAKI/Encode-JP-Emoji
Karl Williamson [Mon, 16 Jun 2014 18:28:52 +0000 (12:28 -0600)]
PATCH: [perl #122029] BBC KAWASAKI/Encode-JP-Emoji

This turns out to be that the code was only getting the compile-time
package name, and it needs to be expanded to get the correct run-time

8 years agot/re/pat_advanced.t: Add comment
Karl Williamson [Mon, 16 Jun 2014 18:27:56 +0000 (12:27 -0600)]
t/re/pat_advanced.t: Add comment

8 years agoPATCH: [perl #122084] BBC KARMAN/Search-Tools
Karl Williamson [Mon, 16 Jun 2014 18:16:40 +0000 (12:16 -0600)]
PATCH: [perl #122084] BBC KARMAN/Search-Tools

The problem was that a function was defined only in PERL_CORE, and
embed.fnc just needed to change to grant access outside that.

8 years agoExtUtils::ParseXS: doc typo fix
Steffen Mueller [Mon, 16 Jun 2014 13:17:16 +0000 (15:17 +0200)]
ExtUtils::ParseXS: doc typo fix

Includes version bump.

8 years ago[perl #122110] [PATCH] Remove left-over mad cruft
Dagfinn Ilmari Mannsåker [Mon, 16 Jun 2014 11:53:35 +0000 (07:53 -0400)]
[perl #122110] [PATCH] Remove left-over mad cruft

The great MADectomy left some cruft behind:

    - no_index in META.{yml,json}
    - $Config{mad} checks in tests
    - Porting/
    - symbian/
    - PERL_XMLDUMP error in perldiag
    - madly{h,obj,src} in win32/config.{gc,vc}

8 years agotweak type for picky compilers
Yves Orton [Mon, 16 Jun 2014 11:38:50 +0000 (13:38 +0200)]
tweak type for picky compilers

8 years agoMore (void*) for %p.
Jarkko Hietaniemi [Mon, 16 Jun 2014 10:52:37 +0000 (06:52 -0400)]
More (void*) for %p.

(Note: looks like char* "decay" into void* without casting needed?)

8 years agoFollow-up to b84edbf2; (IV) the IVdf.
Jarkko Hietaniemi [Mon, 16 Jun 2014 10:48:24 +0000 (06:48 -0400)]
Follow-up to b84edbf2; (IV) the IVdf.

Since there could be platforms where sizeof(SSize_t) < sizeof(IV).
(E.g. IRIX n32 model: 64-bit integers but 32-bit pointers.)

(Note: in addition to %zd being a C99 thing,
 googling says %zd is not well supported in VC).

8 years agoMake hash_value() accept an optional seed
Yves Orton [Fri, 13 Jun 2014 13:51:00 +0000 (15:51 +0200)]
Make hash_value() accept an optional seed

8 years ago%p really wants void*.
Jarkko Hietaniemi [Mon, 16 Jun 2014 01:51:21 +0000 (21:51 -0400)]
%p really wants void*.

8 years agoUse %"IVdf" instead of %zd.
Jarkko Hietaniemi [Mon, 16 Jun 2014 01:46:57 +0000 (21:46 -0400)]
Use %"IVdf" instead of %zd.

8 years agoSome low-hanging -Wunreachable-code fruits.
Jarkko Hietaniemi [Sun, 15 Jun 2014 13:41:30 +0000 (09:41 -0400)]
Some low-hanging -Wunreachable-code fruits.

- after return/croak/die/exit, return/break are pointless
  (break is not a terminator/separator, it's a goto)
- after goto, another goto (!) is pointless
- in some cases (usually function ends) introduce explicit NOT_REACHED
  to make the noreturn nature clearer (do not do this everywhere, though,
  since that would mean adding NOT_REACHED after every croak)
- for the added NOT_REACHED also add /* NOTREACHED */ since
  NOT_REACHED is for gcc (and VC), while the comment is for linters
- declaring variables in switch blocks is just too fragile:
  it kind of works for narrowing the scope (which is nice),
  but breaks the moment there are initializations for the variables
  (the initializations will be skipped since the flow will bypass
  the start of the block); in some easy cases simply hoist the declarations
  out of the block and move them earlier

Note 1: Since after this patch the core is not yet -Wunreachable-code
clean, not enabling that via cflags.SH, one needs to -Accflags=... it.

Note 2: At least with the older gcc 4.4.7 there are far too many
"unreachable code" warnings, which seem to go away with gcc 4.8,
maybe better flow control analysis.  Therefore, the warning should
eventually be enabled only for modernish gccs (what about clang and
Intel cc?)

8 years agoThe clang frontend says "unknown" for -Wunknown.
Jarkko Hietaniemi [Sun, 15 Jun 2014 19:19:42 +0000 (15:19 -0400)]
The clang frontend says "unknown" for -Wunknown.

"unknown warning option" (for -W...) or "unknown argument" (for -...).

8 years agoUpdate Archive-Tar to CPAN version 2.00
Chris 'BinGOs' Williams [Sun, 15 Jun 2014 15:00:59 +0000 (16:00 +0100)]
Update Archive-Tar to CPAN version 2.00


2.00  15/06/2014 (TINITA)
- Fix ptargrep for problems on MSWin32

8 years agoRun porting/podcheck.t --regen to undo manual changes.
James E Keenan [Sun, 15 Jun 2014 02:32:56 +0000 (22:32 -0400)]
Run porting/podcheck.t --regen to undo manual changes.

Files like dist/Math-BigInt/lib/Math/ are probably going to remain in
known_pod_issues.dat for eternity, given that in POD the cumulative effect of
'=over' markings will always result in linelengths > recommended 79 or 80.

8 years agoRebreak lines to achieve <80 recommended line length.
James E Keenan [Sun, 15 Jun 2014 02:04:01 +0000 (22:04 -0400)]
Rebreak lines to achieve <80 recommended line length.

Inspired by Nicolas Herry's patches in RT #121872.

Bump Tie::File version number in two locations.

8 years agoRebreak lines to achieve <80 recommended line length.
James E Keenan [Sun, 15 Jun 2014 01:43:04 +0000 (21:43 -0400)]
Rebreak lines to achieve <80 recommended line length.

Inspired by Nicolas Herry's patches in RT #121820.

8 years agoRebreak lines to achieve <80 recommended line length.
James E Keenan [Sun, 15 Jun 2014 01:34:10 +0000 (21:34 -0400)]
Rebreak lines to achieve <80 recommended line length.

Inspired Nicolas Herry's patches in RT #121820.

8 years agormv duplicate SvUV call in Perl__swash_inversion_hash
Darin McBride [Fri, 13 Jun 2014 20:59:02 +0000 (13:59 -0700)]
rmv duplicate SvUV call in Perl__swash_inversion_hash

8 years agoUpdate Archive-Tar to CPAN version 1.98
Chris 'BinGOs' Williams [Sat, 14 Jun 2014 17:40:48 +0000 (18:40 +0100)]
Update Archive-Tar to CPAN version 1.98


1.98  14/06/2014 (TINITA)
- ptardiff and ptargrep should use prefix if defined

8 years agoRevert "Some low-hanging -Wunreachable-code fruits."
Jarkko Hietaniemi [Sat, 14 Jun 2014 01:48:53 +0000 (21:48 -0400)]
Revert "Some low-hanging -Wunreachable-code fruits."

This reverts commit 8c2b19724d117cecfa186d044abdbf766372c679.

I don't understand - smoke-me came back happy with three
separate reports... oh well, some other time.

8 years agoSome low-hanging -Wunreachable-code fruits.
Jarkko Hietaniemi [Fri, 13 Jun 2014 01:23:14 +0000 (21:23 -0400)]
Some low-hanging -Wunreachable-code fruits.

- after croak/die/exit (or return), break (or return!) are pointless
  (break is not a terminator/separator, it's a promise of a jump)
- after goto, another goto (!) is pointless
- in some cases (usually function ends) introduce explicit NOT_REACHED
  to make the noreturn nature clearer (do not do this everywhere, though,
  since that would mean adding NOT_REACHED after every croak)
- for the added NOT_REACHED also add /* NOTREACHED */ since
  NOT_REACHED is for gcc (and VC), while the comment is for linters
- declaring variables in switch blocks is just too fragile:
  it kind of works for narrowing the scope (which is nice),
  but breaks the moment there are initializations for the variables
  (they will be skipped!); in some easy cases simply hoist the declarations
  out of the block and move them earlier

There are still a few places left.

8 years agoAnother 'use encoding' issue
Karl Williamson [Fri, 13 Jun 2014 22:38:34 +0000 (16:38 -0600)]
Another 'use encoding' issue

Missed in b06e47f717f77453fbdaef628efc2b9c83898a8b.  Spotted by Jarkko
Hietaneimi.  I don't know why this didn't fail in my tests or by
Jenkins.  "use encoding 'latin1'" should be a no-op anyway.

8 years agoperldelta for b5bbe64.
Jarkko Hietaniemi [Fri, 13 Jun 2014 20:40:36 +0000 (16:40 -0400)]
perldelta for b5bbe64.

8 years agoPut back an #if-0-ed chunk 7053d92 removed.
Jarkko Hietaniemi [Fri, 13 Jun 2014 19:58:09 +0000 (15:58 -0400)]
Put back an #if-0-ed chunk 7053d92 removed.

The chunk is not MAD-related but instead locale stuff.  I have no idea
why that chunk got removed (I used a combination of unifdef(1) and editor).
It's #if-0-ed, so no change of behavior either way, but let's keep
the code for now, since it seems to have "historical significance".

8 years agoRemove MAD.
Jarkko Hietaniemi [Fri, 13 Jun 2014 19:21:25 +0000 (15:21 -0400)]
Remove MAD.

MAD = Misc Attribute Decoration; unmaintained attempt at preserving
the Perl parse tree more faithfully so that automatic conversion to
Perl 6 would have been easier.

8 years agoAdd note to 'encoding' pod that it's removed
Karl Williamson [Fri, 13 Jun 2014 19:00:48 +0000 (13:00 -0600)]
Add note to 'encoding' pod that it's removed

In commit  b06e47f717f77453fbdaef628efc2b9c83898a8b, I forgot to
note in the pragma's pod that it now is unusable.

8 years agoExperimentally cause 'use encoding' to fail.
Karl Williamson [Fri, 13 Jun 2014 17:18:01 +0000 (11:18 -0600)]
Experimentally cause 'use encoding' to fail.

This actually doesn't remove it, but causes any program that does use it
to die.  Its use has raised a (default-on) deprecation warning since
5.18, but its demise was omitted from the perldelta for v5.20.

This commit does the minimum necessary to flush out what might break by
its actual removal, while being easily revertable should that become

8 years agopp.c: Add comment
Karl Williamson [Fri, 13 Jun 2014 17:08:28 +0000 (11:08 -0600)]
pp.c: Add comment

8 years agoperldelta: Add entry for new XS macro isUTF8_CHAR
Karl Williamson [Fri, 13 Jun 2014 16:19:00 +0000 (10:19 -0600)]
perldelta: Add entry for new XS macro isUTF8_CHAR

8 years agoSuppress the pm_to_blib spammage during make
Chris 'BinGOs' Williams [Fri, 13 Jun 2014 13:14:18 +0000 (14:14 +0100)]
Suppress the pm_to_blib spammage during make

8 years ago[perl #121126] - Allow deparse tests to skip/ignore expected failures.
Matthew Horsfall (alh) [Fri, 13 Jun 2014 13:10:19 +0000 (09:10 -0400)]
[perl #121126] - Allow deparse tests to skip/ignore expected failures.

This will allow us to set up a deparse smoker to keep track of B::Deparse's

With this, the test run:

 TEST_ARGS=-deparse make test

will "pass" currently.

If deparsing capabilities get worse, new failures will show up and should
be fixed or added to Porting/deparse-skips.txt.

If things get fixed, the test will fail noting that something has passed
when it shouldn't have, and the test in question should be removed from

Use the KEEP_DEPARSE_FILES=1 environment setting to have the deparse
test files left around after a test run for examination/re-running.

8 years agoDeprecate unescaped literal "{" in regex patterns
Karl Williamson [Fri, 13 Jun 2014 03:50:29 +0000 (21:50 -0600)]
Deprecate unescaped literal "{" in regex patterns

This commit also causes escaped (by a backslash) "(", "[", and "{" to be
considered literally.  In the previous 2 Perl versions, the escaping was
ignored, and a (default-on) deprecation warning was raised.  Now that we
have warned for 2 release cycles, we can change the meaning.of escaping
to actually do something

Warning when a literal left brace is not escaped by a backslash, will
allow us to eventually use this character in more contexts as being
meta, allowing us to extend the language.  For example, the lower limit
of a quantifier could be omited, and better error checking instituted,
or things like \w could be followed by a {...} indicating some special
word character, like \w{Greek} to restrict to just Greek word

We tried to do this in v5.16, and many CPAN modules changed to backslash
their left braces at that time.  However we had to back out that change
before 5.16 shipped because it turned out that escaping a left brace in
some contexts didn't work, namely when the brace would normally be a
metacharacter (for example surrounding a quantifier), and the pattern
delimiters were { }.  Instead we raised the useless backslash warning
mentioned above, which has now been there for the requisite 2 cycles.

This patch partially reverts 2 patches.  The first,
e62d0b1335a7959680be5f7e56910067d6f33c1f, partially reverted
the deprecation of unescaped literal left brace.  The other,
4d68ffa0f7f345bc1ae6751744518ba4bc3859bd, instituted the deprecation of
the useless left-characters.

Note that, as in the original attempt to deprecate,  we don't raise a
warning if the left brace is the first character in the pattern.  This
is because in that position it can't be a metacharacter, so we don't
require any disambiguation, and we found that if we did raise an error,
there were quite a few places where this occurred.

8 years agotoke.c: Change S_scan_str parameter meaning
Karl Williamson [Thu, 12 Jun 2014 19:37:30 +0000 (13:37 -0600)]
toke.c: Change S_scan_str parameter meaning

The 'keep_bracketed' parameter is used to tell this static function to
not delete the escaping backslash if the string's delimiter character is
also found within the interior of the string.

This parameter is always currently false, except when compiled with
PERL_MAD.  However it has been Okayed to remove this compilation option,
so the parameter can be changed to whatever is desired.

A future commit will change this parameter to be true sometimes.  In
doing so, it sets up a conflict with the fairly new 're_reparse'
parameter (this conflict also exists with PERL_MAD, but clearly nobody
has tried to compile it that way for a while)

However the new conflict only happens when the opening delimiter of the
string is the same as the closing one, and happily the new commits only
need to have this parameter be true when the opening and closing are
different, so things can be set up so that there is actually no
conflict, given that MAD is being removed.

At the time that scan_str is called, what the delimiters are is not
necessarily known, so this commit refactors the meaning of the parameter
to be TRUE iff the delimiters that scan_str finds actually differ.  It
renames the parameter to indicate this.

8 years agoperldelta for 0b0a072
Brian Fraser [Thu, 12 Jun 2014 22:57:44 +0000 (00:57 +0200)]
perldelta for 0b0a072

8 years agoperldelta for 9be9e8a
Matthew Horsfall (alh) [Thu, 12 Jun 2014 22:48:34 +0000 (18:48 -0400)]
perldelta for 9be9e8a

8 years agoperldelta for 94d4006
Matthew Horsfall (alh) [Thu, 12 Jun 2014 22:35:37 +0000 (18:35 -0400)]
perldelta for 94d4006

8 years agoSilence several -Wunused-parameter warnings about my_perl
Brian Fraser [Sat, 31 May 2014 14:54:22 +0000 (16:54 +0200)]
Silence several -Wunused-parameter warnings about my_perl

This meant sprinkling some PERL_UNUSED_CONTEXT invocations,
as well as stopping some functions from getting my_perl in
the first place; all of the functions in the latter category
are internal (S_ prefix and s or i in embed.fnc), so
this should be both safe and economical.

8 years agoAdded several missing PERL_UNUSED_RESULT()
Brian Fraser [Fri, 30 May 2014 23:28:18 +0000 (01:28 +0200)]
Added several missing PERL_UNUSED_RESULT()

8 years agoRemoved set_emergency_buffer from malloc.c
Brian Fraser [Fri, 30 May 2014 23:24:52 +0000 (01:24 +0200)]
Removed set_emergency_buffer from malloc.c

This was added in 2003, but never used.

8 years agoMark several functions with __attribute__noreturn__
Brian Fraser [Fri, 30 May 2014 23:19:27 +0000 (01:19 +0200)]
Mark several functions with __attribute__noreturn__

Namely, die_nocontext, die, die_sv, and screaminstr. They
all croak and never return, so let's mark them as non-returning.

8 years agoCast %p arguments to (void*)
Brian Fraser [Fri, 30 May 2014 23:16:46 +0000 (01:16 +0200)]
Cast %p arguments to (void*)

These were all part of debugging statements; the commit silences
a chunk of warnings under -Wformat

8 years agoAdding missing SVfARG() invocations
Brian Fraser [Fri, 30 May 2014 23:15:42 +0000 (01:15 +0200)]
Adding missing SVfARG() invocations

This silences a chunk of warnings under -Wformat

8 years agoAdding missing HEKfARG() invocations
Brian Fraser [Fri, 30 May 2014 23:13:26 +0000 (01:13 +0200)]
Adding missing HEKfARG() invocations

This silences a chunk of warnings under -Wformat

8 years agoProtect against ptrdiff_t not being available.
Brian Fraser [Fri, 30 May 2014 23:10:20 +0000 (01:10 +0200)]
Protect against ptrdiff_t not being available.

This is primarily for pedantic builds; ptrdiff_t is now standard,
and had already been in use in the core without guards.