This is a live mirror of the Perl 5 development currently hosted at
3 years agoFix edge case test failure in ext/POSIX/t/mb.t
Dominic Hargreaves [Fri, 7 Jun 2019 09:04:26 +0000 (10:04 +0100)]
Fix edge case test failure in ext/POSIX/t/mb.t

This new test fails in an environment where LANG is set to one thing and
LC_ALL is set to another, and where LANG is set to a locale which is
not installed in the environment in question.

Such a test environment is arguably broken, but appears in common
chroot setups such as Debian's sbuild tool where LANG is inherited from
the parent environment, and LC_ALL is used to override it.

Committer: removed one non-printing character from patch

For: RT # 134182

3 years agoperldelta for 0f4fe36327e6, 1768639d6db2
Tony Cook [Wed, 5 Jun 2019 04:37:32 +0000 (14:37 +1000)]
perldelta for 0f4fe36327e61768639d6db2

3 years ago(perl #134175) tests for eval_pv rethrowing objects
Tony Cook [Wed, 5 Jun 2019 01:59:17 +0000 (11:59 +1000)]
(perl #134175) tests for eval_pv rethrowing objects

3 years agoIn Perl_eval_pv rethrow error via croak_sv()
Pali [Tue, 4 Jun 2019 10:28:09 +0000 (12:28 +0200)]
In Perl_eval_pv rethrow error via croak_sv()

This would allow to rethrow object exceptions.

3 years agoPrevent hostname() from accepting arguments
James E Keenan [Sat, 25 May 2019 02:37:40 +0000 (22:37 -0400)]
Prevent hostname() from accepting arguments

Previously deprecated; now fatal.

Incorporate feedback from Tony Cook and Richard Leach as to wording of
exception and how it is invoked.

For: RT 134137

3 years agoBump Devel-PPPort for next release
Nicolas R [Tue, 4 Jun 2019 19:28:50 +0000 (13:28 -0600)]
Bump Devel-PPPort for next release

3 years agoFix compilation issues with version older than 5.010
Nicolas R [Wed, 15 May 2019 14:53:26 +0000 (08:53 -0600)]
Fix compilation issues with version older than 5.010

By adding more Perl versions to the Travis CI configuration
file we discovered that versions earlier 5.010 are broken.

Note that the uv.t does not raise the overflow warning
as expected by the test and we probably want to fix this in
a short future.

The test uv.t is simply not passing with 5.006 versions and
has several failures. I've currently disabled it.

Patch provided by Pali

(cherry picked from commit a09f79fbc2455b7ea72a49f6627a639101ba35a2)
Signed-off-by: Nicolas R <>
3 years agoRename PPPort_xs.PL to RealPPPort_xs.PL
Nicolas R [Tue, 14 May 2019 19:53:45 +0000 (13:53 -0600)]
Rename PPPort_xs.PL to RealPPPort_xs.PL

Fixes Devel-PPPort GH #21

To avoid confusion rename the template for RealPPPort.xs
file as RealPPPort_xs.PL so it's now clear what file
it generates.

(cherry picked from commit 0f14f67985491207f4a0e3936307f4c565717fd6)
Signed-off-by: Nicolas R <>
3 years agoFix builds after EUMM update
Chris 'BinGOs' Williams [Tue, 4 Jun 2019 12:52:58 +0000 (13:52 +0100)]
Fix builds after EUMM update

3 years agoClarify documentation for bisect runner.
James E Keenan [Sun, 2 Jun 2019 01:29:22 +0000 (21:29 -0400)]
Clarify documentation for bisect runner.

The -D, -A and -U switches should be spelled as if you were normally
giving them to ./Configure.

For: RT # 134164

3 years agoAndroid can pass eintr_print.t
Richard Leach [Mon, 3 Jun 2019 17:03:17 +0000 (17:03 +0000)]
Android can pass eintr_print.t

3 years agopodcheck.t: Don't output warnings when extracting pod
Karl Williamson [Mon, 3 Jun 2019 19:10:51 +0000 (13:10 -0600)]
podcheck.t: Don't output warnings when extracting pod

This turns off warnings while we are extracting pod.  If we are
reporting problems, these will be output at the end.

3 years agoUpdate DB_File to CPAN version 1.852
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 17:57:27 +0000 (18:57 +0100)]
Update DB_File to CPAN version 1.852


1.852 21 April Feb 2019

   * ParseOpenInfo() leaks if it croaks
     DB_File_type memory not freed when ParseOpenInfo croaks.

   * Fix whitespace in DB_File.xs

1.851 4 April Feb 2019

   * Fix typo in MANIFEST with .travis.yml file

1.850 10 Feb 2019

   * Added soure to github

   * Added .travis.yml

   * Added t/meta-json.t & t/meta-yaml.t

3 years agoUpdate Test-Simple to CPAN version 1.302164
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 14:11:38 +0000 (15:11 +0100)]
Update Test-Simple to CPAN version 1.302164


1.302164  2019-04-27 01:43:44-07:00 America/Los_Angeles

1.302163  2019-04-25 05:45:47-07:00 America/Los_Angeles (TRIAL RELEASE)

    - Do not use threads::Shared in Test::Tester::Capture (#826)
    - Add missing version info to Info/Table
    - Fix event in global destruction bug (#827)
    - Proper fix for todo = '' (#812, #829)

3 years agoUpdate CPAN to CPAN version 2.26
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 12:38:43 +0000 (13:38 +0100)]
Update CPAN to CPAN version 2.26


2019-03-19  k  <>

  * release 2.26

  * testfix release, no functional change

  * 97-run.t is now skipped when test is run by root user because
  perldoc often fails for root user (thanks to Binarus for

  * small additions to distroprefs and to the Makefile.PL

2019-03-03  k  <>

  * release 2.25

  * two weeks after the TRIAL release cpantesters have produced 298
  pass and 2 fail reports on 108 different configurations; the two
  fails are outliers I don't understand

  * no functional change over 2.25-TRIAL; only a couple in the
  distroprefs directory which is not used per default

2019-02-16  k  <>

  * release 2.25-TRIAL

  * fix: Avoid a warning when prompting install_help intro (Nicolas

  * testfix: load the tested module early, before juggling with @INC

  * testfix: replace an exec with system and exit (greetings to Windows)

  * two more distroprefs lines

2019-02-14  k  <>

  * release 2.24-TRIAL

  * fix: set internal error state on writemakefile=NO in a rare case
  without any output

  * test fix: avoid a so far unreflected dependency on perldoc

  * a few more distroprefs

2019-02-10  k  <>

  * release 2.23-TRIAL

  * fix: when option cleanup_after_install is active, prevent
  rerunning make install after a cleanup; allow it only with the
  help of force; also prevent that it is triggered too early

  * fix: address #121162: support distroprefs for install.env

  * fix: the option h on cpan script now really ignores all other
  options and arguments

  * fix: Local::Null::Logger on cpan script did not honour

  * address #122520: exit 1 on unknown options on cpan script

  * address #94941: refuse to generate reports with CPAN::Reporter
  lower than 1.2011

  * fix: distropref method "goto" now inherits CALLED_FOR and other
  attributes from caller

  * fix: correct a buggy version comparison when testing version of

  * portability fix: ensure that Compress::Zlib supports gzopen()

  * internal fix: never overwrite internal attribute CALLED_FOR (no
  known user-relevant implications)

  * tiny test fixed uncovered by cpantesters, various tiny typo

  * a couple of new and updated distroprefs files

3 years agoUpdate IO-Compress to CPAN version 2.086
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 12:07:59 +0000 (13:07 +0100)]
Update IO-Compress to CPAN version 2.086


  2.086 31 March 2019

      * IO::Compress::Zip & IO::Uncompress::Unzip
        Added support for Language Encoding Flag via the EFS option.
        Starting point was pull request

      * zipdetails - some support for MVS (Z390) zip files

      * IO::Uncompress::Base
        Issue with trailing data after zip archive
        #128626 for IO-Compress: mainframe zip archive

      * t/cz-14gzopen.t
        cperl error found in
        Perl has this: "Not enough arguments for Compress::Zlib::gzopen"
        cperl uses this: "Not enough arguments for subroutine entry Compress::Zlib::gzopen"

      * Handlers being called when optional modules are not installed
        #128538:  $SIG{__DIE__}

      *  #128194: Beef up diag when system returns error

      * Moved source to github

      * Add META_MERGE to Makefile.PL

      * Added meta-json.t & meta-yaml.t

3 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.086
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 12:05:30 +0000 (13:05 +0100)]
Update Compress-Raw-Bzip2 to CPAN version 2.086


  2.086 31 March 2019

      * Moved source to github

      * Add META_MERGE to Makefile.PL

      * Added meta-json.t & meta-yaml.t

3 years agoUpdate Compress-Raw-Zlib to CPAN version 2.086
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 12:03:49 +0000 (13:03 +0100)]
Update Compress-Raw-Zlib to CPAN version 2.086


2.086 31 March 2019

      * Moved source to github

      * Add META_MERGE to Makefile.PL

      * Added meta-json.t & meta-yaml.t

3 years agoUpdate podlators to CPAN version 4.12
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 11:15:03 +0000 (12:15 +0100)]
Update podlators to CPAN version 4.12


podlators 4.12 (2019-05-31)

    Skip the man/no-encode.t test if Encode is already loaded while
    running the test suite, which seems to happen sometimes with CPAN
    Testers tests.

3 years agoUpdate Pod-Simple to CPAN version 3.38
Chris 'BinGOs' Williams [Mon, 3 Jun 2019 11:12:07 +0000 (12:12 +0100)]
Update Pod-Simple to CPAN version 3.38


  * Release 3.38
2019-05-30 Karl Williamson <>
  Removed some alien files that somehow got in the tar, including a copy
  of Pod::Escapes.  Spotted by Petr Pisar++

  * Release 3.37
2019-05-30 Karl Williamson <>
  Suppressed some expected diagnostics under harness
  Pod::Simple now depends on the 'if' module

3 years agoperldelta for 027471cf1095
Tony Cook [Mon, 3 Jun 2019 06:16:49 +0000 (16:16 +1000)]
perldelta for 027471cf1095

3 years ago(perl #133913) limit numeric format results to INT_MAX
Tony Cook [Wed, 20 Mar 2019 05:47:49 +0000 (16:47 +1100)]
(perl #133913) limit numeric format results to INT_MAX

The return value of v?snprintf() is int, and we pay attention to that
return value, so limit the expected size of numeric formats to

3 years agoperldelta for 94a2f6a3c87a
Tony Cook [Mon, 3 Jun 2019 05:33:07 +0000 (15:33 +1000)]
perldelta for 94a2f6a3c87a

3 years ago(perl #134048) prevent an erroneous assertion on OP_SCALAR
Tony Cook [Wed, 24 Apr 2019 01:05:21 +0000 (11:05 +1000)]
(perl #134048) prevent an erroneous assertion on OP_SCALAR

3 years agoperldelta for 9dfe0a3438ae, b0f5b1daacb2
Tony Cook [Mon, 3 Jun 2019 05:09:13 +0000 (15:09 +1000)]
perldelta for 9dfe0a3438aeb0f5b1daacb2

3 years ago(perl #134008) an alternative test
Tony Cook [Mon, 3 Jun 2019 04:34:17 +0000 (14:34 +1000)]
(perl #134008) an alternative test

3 years ago[#134008] More carefully ignore negative precision in sprintf
Hugo van der Sanden [Tue, 9 Apr 2019 13:27:41 +0000 (14:27 +0100)]
[#134008] More carefully ignore negative precision in sprintf

Check has_precis more consistently; ensure precis is left as 0 if provided
as a negative number.

3 years agoPorting/ Add doc clarification
Karl Williamson [Mon, 3 Jun 2019 01:05:55 +0000 (19:05 -0600)]
Porting/ Add doc clarification

3 years ago/\p{InFoo} should only match blocks, or be user-defined
Karl Williamson [Mon, 3 Jun 2019 00:51:21 +0000 (18:51 -0600)]
/\p{InFoo} should only match blocks, or be user-defined

For a property \p{Block=Foo}, we allow the synonym  \p{InFoo} as
documented variously, including perluniprops, even though this usage is
discouraged, as a new Unicode release used in a new version of Perl
could cause the synonym to no longer work.

Prior to this commit, we erroneously allowed the synonym for other
properties, such as \p{InKana} or \p{InS}.

3 years agoUpdate ExtUtils-MakeMaker to CPAN version 7.36
Chris 'BinGOs' Williams [Sun, 2 Jun 2019 08:41:35 +0000 (09:41 +0100)]
Update ExtUtils-MakeMaker to CPAN version 7.36


7.36  Sun Apr 28 16:28:20 BST 2019

    No changes since v7.35_14

    This release was made possible by the kind
    sponsors of the 2019 Perl Toolchain Summit
    held in Marlow, UK:, cPanel, MaxMind, FastMail, ZipRecruiter,
    Cogendo, Elastic, OpenCage Data, Bluehost, Perl Services,
    Zoopla, Archer Education, OpusVL, Oetiker+Partner, YEF

7.35_14 Sun Apr 28 14:12:22 BST 2019

    Win32 fixes:
    - Add ExtUtils::PL2Bat path to pl2bat when PERL_CORE

7.35_13 Sun Apr 28 11:57:57 BST 2019

    Bug fixes:
    - Suppress warnings from EUMM::Locale code page workaround

7.35_12 Sat Apr 27 22:37:26 BST 2019

    - add AppVeyor CI configuration
      see <> for more information

    Bug fixes:
    - Resolve RTs 127028 && 127316 on Mojave system perl
    - Honour man page disablement under INSTALL_BASE
    - fix `dmake` warning by removing dmake-superfluous ".NOTPARALLEL" target
    - suppress inherited AUTOLOAD warning for 'Win32::ConsoleCP()'
    - fix perl image (aka, executable) quoting for `dmake` builds
    - skip broken test for Win32 strawberry perl v5.10 (and some earlier versions)
    - add workaround to ExtUtils::MakeMaker::Locale for code pages 'cp65000' and 'cp65001'

7.35_11 Thu Apr 25 11:53:59 BST 2019

    Bug fixes:
    - Fix RT#128004 gcc AIX builds broken

7.35_10 Wed Feb 20 10:03:50 GMT 2019

    Test fixes:
    - Skip "merged /usr" tests on MSWin32

7.35_09 Mon Feb 18 10:05:42 GMT 2019

    Bug fixes:
    - stringify version before comparing

    Test fixes:
    - Changed wording of skip message for xsstatic

    QA fixes:
    - travis is deprecating container-based environments

7.35_08 Thu Dec  6 10:22:02 GMT 2018

    - propagate all variables used by Buildroot to subdirs

7.35_07 Fri Nov 23 11:34:27 GMT 2018

    Bug fixes:
    - Avoid mangling /bin non-perl shebangs on merged-/usr systems

    VMS fixes:
    - Handle PERL_ARCHLIBDEP and DESTINSTALL... macros on VMS.
    - Remove trailing space from multi-in.PL in PL_FILES.t
    - Skip "merged /usr" tests on VMS.

7.35_06 Thu Jul 19 20:30:55 BST 2018

    - Override shebang with PERL_MM_SHEBANG=relocatable env var

    Bug fixes:
    - Refactored Liblist::Kid tests, enabling UNIX testing

7.35_05 Tue Jul 10 09:44:25 BST 2018

    Win32 fixes:
    -  add Visual C parallel building support

7.35_04 Mon Jul  9 10:21:59 BST 2018

    Bug fixes:
    - Fix manification on MSWin32

    Doc fixes:
    - Mention manifypods target in FAQ for
      man creation on non-un*x OS

7.35_03 Fri Apr 27 14:28:21 BST 2018

    - Allow specifying extra inputs for PL_FILES scripts

7.35_02 Tue Apr 24 11:38:39 BST 2018

    Core fixes:
    - Win32 fixes for gmake 4.2.1 in quoting literals

7.35_01 Thu Apr 19 13:17:35 BST 2018

    Core fixes:
    - use tr instead of eval on $VERSION
    - Fix PUREPERL_ONLY warnings

3 years agoUse of code points over 0xFF in string bitwise operators
James E Keenan [Mon, 27 May 2019 17:18:10 +0000 (13:18 -0400)]
Use of code points over 0xFF in string bitwise operators

Implement complete fatalization.  Some instances of these were fatalized
in 5.28.  However, in cases where the wide characters did not affect the
end result, no deprecation notice was raised.  So they remained legal,
though deprecated.  Now, all occurrences are fatal (as of 5.32).

Modify source code in doop.c.  Adapt test file.  Update perldiag and

For:  RT 134140

(Commiter changed a verb to past tense in the pod)

3 years agorefer Time::HiRes RT queue to perl core
Graham Knop [Fri, 20 Apr 2018 13:17:58 +0000 (15:17 +0200)]
refer Time::HiRes RT queue to perl core

3 years agoAdd unit test for compiled once RegExp
Nicolas R [Fri, 31 May 2019 15:42:32 +0000 (09:42 -0600)]
Add unit test for compiled once RegExp

Make sure that when using a Regexp with /o
the RegExp is frozen as expected.

Using a BEGIN block to freeze the RegExp
is also providing extra code coverage for the
perl compiler.

3 years agoregcomp.c: White-space only
Karl Williamson [Fri, 31 May 2019 14:13:05 +0000 (08:13 -0600)]
regcomp.c: White-space only

Outdent since previous commit removed an enclosing block

3 years agoSplit ANYOFH regnode into two types
Karl Williamson [Sun, 31 Mar 2019 00:45:20 +0000 (18:45 -0600)]
Split ANYOFH regnode into two types

ANYOFHb will be for nodes where all the matching code points share the
frst UTF-8 byte.  ANYOFH will be for all others.  Neither of these has a

I noticed that we can omit some execution conditionals by splitting the

3 years ago[PATCH] Remove vestiges of mpeix support (removed in 5.17.x)
Richard Leach [Fri, 31 May 2019 01:06:19 +0000 (21:06 -0400)]
[PATCH] Remove vestiges of mpeix support (removed in 5.17.x)

3 years agoMerge branch 'autodoc' into blead
Karl Williamson [Fri, 31 May 2019 00:14:00 +0000 (18:14 -0600)]
Merge branch 'autodoc' into blead

This branch cleans up a bunch of the autodoc handling.

It had its genesis in an obscure warning from Devel::PPPort:

    mysterious name

It turns out that the pod entry for the macros the warnings are for are
improper.  My guess is that it was a kludge by someone looking for a
quick way to get their usage point across, when the underlying
infrastructure was deficient in allowing it.  But it looked to be fairly
easy to enhance that infrastructure.

But then I noticed that some of the flags in the embed.fnc entries have
different meanings than the equivalent =for apidoc entries in the

Here are most of the conflicts:
Flag embed.fnc =for apidoc
n no pTHX don't output empty parens for no arguments
s S_ static fcn output a semi-colon at the end of the usage entry
x Don't export experimental

I imagine that they started out the same, and diverged over the years,
as there was no unified place where they were documented.  Devel::PPPort
was unaware of this divergence, and so got some things wrong, and had
some code expecting one flag, and other code expecting the other.

This branch changes the flags in embed.fnc to correspond with what
autdoc wants, and brings everything else that uses them into
conformance.  embed.fnc is a more contained place to change, and I
couldn't find anything in CPAN that would be bothered by this.  And
also, if D:P were to be regenerated on an older perl, it still would use
the new embed.fnc shipped with it, but would be using the flags from the
older perl source code, so it had to be embed.fnc that changed.

The O flag in embed.fnc can then be used instead of having another flag
in the =for apidoc entries for the situation of having deprecated
'perl_' prefixes, removing the need for autodoc to have to try to figure
it out, and there were places where it had been getting it wrong.

Once that was done, the flags in embed.fnc could override the ones in
the =for api entries, as every flag has the same meaning in both places.
Doing so showed a bunch of errors, mostly missing 'const's in the
parameters, but, besides the 'perl_' prefix errors, some functions were
not listed as needing to be called with the 'Perl_' prefix.  The flags
in embed.fnc have to be pretty accurate, or perl won't compile.

I then removed about 150 redundant =for apidoc entries.  It is a waste
having them in the code twice, and they do get out of sync.  Note that
there does need to be an entry like

    =for apidoc FOO

for the autodoc facility to know where the actual pod for a given
function is.  And the entry needs to have the flags, return value, and
argument list detailed if and only if FOO isn't in embed.fnc.  I myself
didn't know that if omitted, the values in embed.fnc were used, so I
wasted time in the past duplicating these.  Now, if there's duplication
autodoc will warn.

autodoc did check for a couple of discrepancies if there were two
entries, but that code is now unnecessary and has been ripped out.

I added a flag so that something that isn't a straight name can be
documented, and will rip out the code in D:P that special-cased the few
existing entries that were like this.  Now there is a warning from
autodoc, unless the flag is present, when this happens, so that
'mysterious name' won't show up again.

I added another flag to make it easier to deal with functions that have
become wrappers for others, and there is a macro that bypasses the
original one, but for back compat, we still have the original.

autodoc did not realize that you could have things like
Perl_sprintf_nocontext() without a pTHX.  That flag already is in
embed.fnc, and now autodoc uses it.

Finally, I added extensive comments to embed.fnc to document all the
flags, and removed other outdated comments elsewhere in favor of a
pointer to the comments in embed.fnc

3 years agoperlguts: Remove documentation about embed.fnc flags
Karl Williamson [Thu, 30 May 2019 01:11:04 +0000 (19:11 -0600)]
perlguts: Remove documentation about embed.fnc flags

embed.fnc now has sufficient comments within it.  Anyone changing that
file will see those comments first.  Having them redundantly explained
here adds little value, and is out-of-date.  So just remove them, with a
ptr to embed.fnc

3 years agoembed.fnc: Add more extensive comments
Karl Williamson [Thu, 30 May 2019 01:10:19 +0000 (19:10 -0600)]
embed.fnc: Add more extensive comments

This revises the comments significantly to better inform the reader.

3 years agoRemove redundant info on =for apidoc lines
Karl Williamson [Thu, 30 May 2019 00:33:25 +0000 (18:33 -0600)]
Remove redundant info on =for apidoc lines

This information is already in embed.fnc, and we know it compiles.  Some
of this information is now out-of-date.  Get rid of it.

There was one bit of information that was (apparently) wrong in
embed.fnc.  The apidoc line asked that there be no usage example
generated for newXS.  I added that flag to the embed.fnc entry.

3 years Use embed.fnc entry when available
Karl Williamson [Wed, 29 May 2019 22:06:51 +0000 (16:06 -0600)] Use embed.fnc entry when available

Having two different pod definitions for the same function leads to
things being out of sync.  This commit ignores the one in the '=for
apidoc' line if there is one in embed.fnc.

Doing so led to a bunch of changes in perlapi, showing that the apidoc
lines were inaccurate.  The ones in embed.fnc must be accurate enough to
get perl to compile.

I added a warning for when there's a redundant entry, and in the next
commit I will remove the many such.

3 years Add N flag
Karl Williamson [Wed, 29 May 2019 22:01:34 +0000 (16:01 -0600)] Add N flag

This adds a check that the macro or function name for the pod entry is a
legitimate name, as almost all are.  If this had been in effect, the bug
fixed by the previous commit would not have been necessary.

But there are a very few things that are documented that aren't strict
names.  This adds a flag so that autodoc can be notified to not warn on
them.  This will allow Devel::PPPort to not have to special case
situations like this, which it now does.

3 years Check for misuse of the 'n' flag
Karl Williamson [Wed, 29 May 2019 21:58:20 +0000 (15:58 -0600)] Check for misuse of the 'n' flag

This flag indicates that the macro has no arguments.  It makes no sense
to use in some situations, which are now checked for.

This commit also documents the long existing 'n' flag.

3 years Make 's' flag independent of 'n'
Karl Williamson [Wed, 29 May 2019 21:50:45 +0000 (15:50 -0600)] Make 's' flag independent of 'n'

The 's' flag is used by to add a semi-colon to the end of a
usage example.  This commit allows that to happen even if the macro has

This allows two macros in scope.c to be properly documented.  Previously
they weren't, and caused warnings in Devel::PPPort as a result.

This commit adds documentation to embed.fnc for the 's' flag, which has
long existed, undocumented.

3 years Notice the no-thread context flag
Karl Williamson [Wed, 29 May 2019 21:41:23 +0000 (15:41 -0600)] Notice the no-thread context flag

I realized reading the code that it would be possible for a function
definition to be wrongly output if it isn't called with a thread context
variable.  The information for that is already in embed.fnc, and so we
just have to use it to avoid printing the variable if not present

3 years agoembed.fnc: Add flag for bypass macro existence
Karl Williamson [Wed, 29 May 2019 21:28:44 +0000 (15:28 -0600)]
embed.fnc: Add flag for bypass macro existence

Sometimes a function is reduced to be a wrapper, and we want for code to
directly call the underlying one, but we retain the old 'Perl_foo'
function to avoid breaking code that used that form.  I've tried various
kludges around that, but this seems more promising.

3 years Use O flag from embed.fnc for warning
Karl Williamson [Wed, 29 May 2019 21:05:05 +0000 (15:05 -0600)] Use O flag from embed.fnc for warning

This is for ancient 'perl_' forms of function calls, which is
deprecated.  It turns out that there were a couple of entries that were
getting this warning when that form doesn't even exist.

3 years agoLet embed.fnc define the my_str_foo() fcns
Karl Williamson [Wed, 29 May 2019 20:49:57 +0000 (14:49 -0600)]
Let embed.fnc define the my_str_foo() fcns

We don't always define a Perl_ form for these, expecting all calls to be
made through the macro, which will use the native form on the systems
that have one.

Removing these extra #defines helps future commits

3 years agoembed.fnc: Change M flag to x
Karl Williamson [Wed, 29 May 2019 16:14:55 +0000 (10:14 -0600)]
embed.fnc: Change M flag to x

The M flag in embed.fnc and the x flag in the '=for apidoc' lines both
mean the same, thing, the entity may change, it is experimental.
Devel::PPPort in places uses the M flag, and in other places, the x.
That will be fixed in a separate commit.

This commit changes the 'M' in embed.fnc to be 'x'.  Changing embed.fnc
and keeps the changes more contained, and lessens the chance
that some module will be adversely affected (I didn't see anything
likely in grepping cpan).

3 years agoembed.fnc: Change x flag to e
Karl Williamson [Wed, 29 May 2019 04:02:57 +0000 (22:02 -0600)]
embed.fnc: Change x flag to e has the x flag in the '=for apidoc' lines mean something
completely different, but Devel::PPPort combines both these lines and
the contents of embed.fnc into one file, expecting the flags to be

This commit changes the 'x' in embed.fnc to be 'e', which means to not
export this function.  Changing embed.fnc and keeps the
changes more contained, and lessens the chance that some module will be
adversely affected (I didn't see anything likely in grepping cpan).

3 years agoembed.fnc: Change s flag to S
Karl Williamson [Wed, 29 May 2019 02:28:07 +0000 (20:28 -0600)]
embed.fnc: Change s flag to S has the s flag in the '=for apidoc' lines mean something
completely different, but Devel::PPPort combines both these lines and
the contents of embed.fnc into one file, expecting the flags to be

This commit changes the 's' in embed.fnc to be 'S', which means the
function is static and has an 'S_' prefix.  Changing embed.fnc keeps the
changes more contained, and lessens the chance that some module will be
adversely affected (I didn't see anything likely in grepping cpan).

3 years agocroak_memory_wrap is an inline function.
Karl Williamson [Wed, 29 May 2019 02:52:07 +0000 (20:52 -0600)]
croak_memory_wrap is an inline function.

Update embed.fnc to correspond

3 years agoembed.fnc: Change n flag to T
Karl Williamson [Wed, 29 May 2019 02:03:58 +0000 (20:03 -0600)]
embed.fnc: Change n flag to T has the n flag in the '=for apidoc' lines mean something
completely different, but Devel::PPPort combines both these lines and
the contents of embed.fnc into one file, expecting the flags to be

This commit changes the 'n' in embed.fnc to be 'T', which means no
thread context passed.  Changing embed.fnc keeps the changes more
contained, and lessens the chance that some module will be adversely
affected (I didn't see anything likely in grepping cpan).

3 years agoAdd 'n' flag to various =for apidoc lines
Karl Williamson [Tue, 28 May 2019 18:55:19 +0000 (12:55 -0600)]
Add 'n' flag to various =for apidoc lines

This indicates to not output the macro with parentheses for parameters.
Currently that doesn't happen anyway, but a future commit will change
things so this is required (so that a bug can be fixed)

3 years Strip, lead/trail space from =for apidoc
Karl Williamson [Tue, 28 May 2019 17:02:42 +0000 (11:02 -0600)] Strip, lead/trail space from =for apidoc

The components of a =for apidoc entry can have spaces between the '|'
separators.  Ignore them.

3 years White-space only
Karl Williamson [Tue, 28 May 2019 16:42:21 +0000 (10:42 -0600)] White-space only

This indents to correspond with the new block formed by the previous

3 years Refactor slightly
Karl Williamson [Tue, 28 May 2019 16:35:57 +0000 (10:35 -0600)] Refactor slightly

This breaks a chain of 'elsif' lines so that they are all now part of an
'else' from the first 'if'.  This is in preparation for a later commit.

3 years Change name of variable
Karl Williamson [Tue, 28 May 2019 16:21:56 +0000 (10:21 -0600)] Change name of variable

This makes it clear that the source for the lines being processed is

3 years agoUse of strings with code points over 0xFF as arguments to "vec"
James E Keenan [Mon, 27 May 2019 02:30:40 +0000 (22:30 -0400)]
Use of strings with code points over 0xFF as arguments to "vec"

Implement scheduled fatalization.  Adapt existing tests in t/op/vec.t.
Eliminate t/lib/warnings/doop and move one test to t/op/vec.t.

Document this fatalization in perldiag and perlfunc.

Documentation improvement recommended by Karl Williamson.

For: RT # 134139

3 years agoPATCH: [perl #119439] Remove Pod::Parser from core
Karl Williamson [Thu, 30 May 2019 18:42:19 +0000 (12:42 -0600)]
PATCH: [perl #119439] Remove Pod::Parser from core

Pod::Simple now has the needed capabilities to completely replace

3 years agopod/perlpod: Add advice about Z<> uses
Karl Williamson [Fri, 1 Jun 2018 17:31:12 +0000 (11:31 -0600)]
pod/perlpod: Add advice about Z<> uses

3 years agopodcheck.t: Stop using Pod::Parser
Karl Williamson [Sat, 19 May 2018 20:58:37 +0000 (14:58 -0600)]
podcheck.t: Stop using Pod::Parser

There now exists a replacement for the one remaining use of Pod::Parser
in this file, Pod::Simple::JustPod.

3 years agopodcheck.t: Sort some output for consistency
Karl Williamson [Thu, 10 May 2018 01:29:09 +0000 (19:29 -0600)]
podcheck.t: Sort some output for consistency

3 years agopodcheck.t: Typos, white-space, comment
Karl Williamson [Thu, 10 May 2018 01:28:24 +0000 (19:28 -0600)]
podcheck.t: Typos, white-space, comment

3 years agoperldelta for fb5e77103dd4, 35608a1658fe
Tony Cook [Thu, 30 May 2019 00:33:40 +0000 (10:33 +1000)]
perldelta for fb5e77103dd435608a1658fe

3 years ago(perl #122112) a simpler fix for pclose() aborted by a signal
Tony Cook [Wed, 8 May 2019 23:52:30 +0000 (09:52 +1000)]
(perl #122112) a simpler fix for pclose() aborted by a signal

This change results in a zombie child process for the lifetime of
the process, but I think that's the responsibility of the signal
handler that aborted pclose().

We could add some magic to retry (and retry and retry) waiting on
child process as we rewind (since there's no other way to remove
the zombie), but the program has chosen implicitly to abort the
wait() done by pclose() and it's best to honor that.

If we do choose to retry the wait() we might be blocking an attempt
by the process to terminate, whether by exit() or die().

If a program does need more flexible handling there's always
pipe()/fork()/exec() and/or the various event-driven frameworks on

3 years ago(perl #122112) test for signal handler death in pclose
Tony Cook [Wed, 30 May 2018 04:03:04 +0000 (14:03 +1000)]
(perl #122112) test for signal handler death in pclose

3 years agoMake sv_mortalcopy_flags() public
Pali [Thu, 7 Feb 2019 13:22:55 +0000 (14:22 +0100)]
Make sv_mortalcopy_flags() public

3 years agoRemove remaining assignments to SvCUR and SvLEN in core
Dagfinn Ilmari Mannsåker [Thu, 19 Oct 2017 09:48:49 +0000 (10:48 +0100)]
Remove remaining assignments to SvCUR and SvLEN in core

Also make the macros non-lvalues under PERL_CORE

3 years agoUpdate Pod-Simple to CPAN version 3.36
Karl Williamson [Sat, 25 May 2019 04:12:56 +0000 (22:12 -0600)]
Update Pod-Simple to CPAN version 3.36


    Added Pod::Simple::JustPod to extract the pod lines from a file
    Improved detection of input encoding CP1252 vs UTF-8
    Fixed github issue #79, =cut event out of order
    Fixed github issue #85, verbatim_indent doesn't work on HTML
    Fixed github issue #89, css files refer to themselves
    Fixed github issue #92, broken RTF with Unicode inputs
    Extended RTF to handle Unicode code points above 0xFFFF
    Nested L<> is now flagged as an error
    Turned off negative repeat count does nothing warnings
    Fixed/improved some docs about this distribution

3 years agoMake sure 'if' compiled before Pod::Simple
Karl Williamson [Mon, 27 May 2019 18:07:25 +0000 (12:07 -0600)]
Make sure 'if' compiled before Pod::Simple

3.36 of Pod::Simple requires 'if', and this makes sure it works.

3 years Add some general comments
Karl Williamson [Mon, 27 May 2019 18:04:58 +0000 (12:04 -0600)] Add some general comments

I found myself recently not knowing how to deal with the build system.
Having these would have helped.

3 years agoBetter document build dependency ordering
Karl Williamson [Mon, 27 May 2019 17:51:23 +0000 (11:51 -0600)]
Better document build dependency ordering

3 years agoperlsource: Better document Configure
Karl Williamson [Mon, 27 May 2019 17:49:23 +0000 (11:49 -0600)]
perlsource: Better document Configure

3 years agoDon't use PL_check[op_type] to check for filetets ops to stack
Dagfinn Ilmari Mannsåker [Tue, 21 May 2019 16:34:49 +0000 (17:34 +0100)]
Don't use PL_check[op_type] to check for filetets ops to stack

This breaks hooking the filetest ops' check function by modules like
bareword::filehandles.  Instead use the OP_IS_FILETEST() macro to decide
check for filetest ops.  Also add an OP_IS_STAT() macro for when we want
to check for (l)stat as well as the filetest ops.


3 years agoModule-CoreList: Add some L<> to pod
Karl Williamson [Mon, 13 May 2019 20:40:15 +0000 (14:40 -0600)]
Module-CoreList: Add some L<> to pod

3 years agoperlpodspec: Pod in heredocs is still pod
Karl Williamson [Sat, 11 May 2019 19:46:21 +0000 (13:46 -0600)]
perlpodspec: Pod in heredocs is still pod

A pod parser should not be expected to parse perl to make sure that what
looks like pod isn't part of a quoted string.

3 years agoutils/h2xs.PL: Use L</Foo Bar>, not L<Foo Bar> in pod
Karl Williamson [Fri, 1 Jun 2018 16:53:00 +0000 (10:53 -0600)]
utils/h2xs.PL: Use L</Foo Bar>, not L<Foo Bar> in pod

3 years agoperltie: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:52:00 +0000 (10:52 -0600)]
perltie: Use L</Foo Bar>, not L<Foo Bar>

3 years agolib/ Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:50:42 +0000 (10:50 -0600)]
lib/ Use L</Foo Bar>, not L<Foo Bar>

3 years agolib/ Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:50:15 +0000 (10:50 -0600)]
lib/ Use L</Foo Bar>, not L<Foo Bar>

3 years agoUnicode::UCD: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:49:29 +0000 (10:49 -0600)]
Unicode::UCD: Use L</Foo Bar>, not L<Foo Bar>

3 years agolib/Class/ Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:48:39 +0000 (10:48 -0600)]
lib/Class/ Use L</Foo Bar>, not L<Foo Bar>

3 years agoTie::File: Use L</Foo>, not L<"Foo"> in pod
Karl Williamson [Fri, 1 Jun 2018 16:47:28 +0000 (10:47 -0600)]
Tie::File: Use L</Foo>, not L<"Foo"> in pod

3 years agoperlxstut: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:46:14 +0000 (10:46 -0600)]
perlxstut: Use L</Foo Bar>, not L<Foo Bar>

3 years agoconfigpm: Remove extraneous =cut lines
Karl Williamson [Fri, 1 Jun 2018 16:44:45 +0000 (10:44 -0600)]
configpm: Remove extraneous =cut lines

These were creating improper pod, though it hasn't been caught.

3 years agoREADME.os2: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:43:55 +0000 (10:43 -0600)]
README.os2: Use L</Foo Bar>, not L<Foo Bar>

3 years agoPorting/release_managers_guide.pod: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:43:05 +0000 (10:43 -0600)]
Porting/release_managers_guide.pod: Use L</Foo Bar>, not L<Foo Bar>

3 years agoINTALL: Use L</Foo Bar>, not L<Foo Bar>
Karl Williamson [Fri, 1 Jun 2018 16:41:52 +0000 (10:41 -0600)]
INTALL: Use L</Foo Bar>, not L<Foo Bar>

3 years agoTime::HiRes: Remove trailing blanks
Karl Williamson [Wed, 16 May 2018 01:29:41 +0000 (19:29 -0600)]
Time::HiRes: Remove trailing blanks

3 years agoTime::HiRes: Add L<> to pod links
Karl Williamson [Wed, 16 May 2018 01:29:12 +0000 (19:29 -0600)]
Time::HiRes: Add L<> to pod links

3 years agoINSTALL: Add L<> and F<> pod directives
Karl Williamson [Thu, 10 May 2018 01:03:49 +0000 (19:03 -0600)]
INSTALL: Add L<> and F<> pod directives

3 years Add L<> around link in pod
Karl Williamson [Thu, 10 May 2018 00:57:24 +0000 (18:57 -0600)] Add L<> around link in pod

3 years agoSelfLoader: Add L<> around link in pod
Karl Williamson [Thu, 10 May 2018 00:56:38 +0000 (18:56 -0600)]
SelfLoader: Add L<> around link in pod

3 years agoLocale::Maketext: Add L<> around links in pod
Karl Williamson [Thu, 10 May 2018 00:53:04 +0000 (18:53 -0600)]
Locale::Maketext: Add L<> around links in pod

3 years agoI18N::LangTags: Add L<> around links in pod
Karl Williamson [Thu, 10 May 2018 00:52:09 +0000 (18:52 -0600)]
I18N::LangTags: Add L<> around links in pod

3 years agoTie::File: Add L<> around link in pod
Karl Williamson [Thu, 10 May 2018 00:50:47 +0000 (18:50 -0600)]
Tie::File: Add L<> around link in pod

3 years agolib/Unicode/UCD.t: Use standard Perl environment variable
Karl Williamson [Thu, 10 May 2018 00:37:53 +0000 (18:37 -0600)]
lib/Unicode/UCD.t: Use standard Perl environment variable

This test file invented its own environment variable, whereas everyone
else uses a different one.  Make this one comply.

3 years agoperlrun: Add L<> to links
Karl Williamson [Thu, 10 May 2018 00:32:13 +0000 (18:32 -0600)]
perlrun: Add L<> to links

3 years agoIO: Add L<> around link in pod
Karl Williamson [Wed, 9 May 2018 23:31:45 +0000 (17:31 -0600)]
IO: Add L<> around link in pod