This is a live mirror of the Perl 5 development currently hosted at
3 years agodescribe encoding status of DATA handle
Zefram [Sat, 23 Dec 2017 16:02:51 +0000 (16:02 +0000)]
describe encoding status of DATA handle

3 years agobetter document while condition magic
Zefram [Sat, 23 Dec 2017 11:50:52 +0000 (11:50 +0000)]
better document while condition magic

The operators affected by while-condition magic variously didn't mention
the implicit "defined" part of the magic or didn't mention it at all.
In perlsyn.pod there was a partial mention of the magic in the context
of the "for" loop, but none for the "while" loop.  Describe the magic
more fully on both ends.  [perl #132644]

3 years agobetter doc of hash/array iterators
Zefram [Sat, 23 Dec 2017 10:57:51 +0000 (10:57 +0000)]
better doc of hash/array iterators

Expand L<perlfunc/each> with slightly more explicit description of the
sharing of iterator state, and with caveats regarding the fragility of
while-each loops.  [perl #132644]

3 years agonarrow scope of argsv in sv_vcatpvfn_flags()
Zefram [Sat, 23 Dec 2017 09:07:50 +0000 (09:07 +0000)]
narrow scope of argsv in sv_vcatpvfn_flags()

argsv was being retained between format specifiers, causing incorrect
treatment of format specifiers following one that took an SV argument.
Fixes [perl #132645].

3 years agomake false whereso yield undef in scalar context
Zefram [Sat, 23 Dec 2017 05:47:55 +0000 (05:47 +0000)]
make false whereso yield undef in scalar context

Fixes [perl #132634].

3 years Clarify that UTF-8 is Perl's extended form
Karl Williamson [Fri, 22 Dec 2017 19:32:12 +0000 (12:32 -0700)] Clarify that UTF-8 is Perl's extended form

Spotted by Christian Hansen

3 years agomerge branch zefram/cloexec
Zefram [Fri, 22 Dec 2017 16:52:35 +0000 (16:52 +0000)]
merge branch zefram/cloexec

3 years agoperldelta for FD_CLOEXEC changes
Zefram [Fri, 22 Dec 2017 16:48:31 +0000 (16:48 +0000)]
perldelta for FD_CLOEXEC changes

3 years agotest that open()ed filehandles are close-on-exec
Zefram [Fri, 22 Dec 2017 15:45:45 +0000 (15:45 +0000)]
test that open()ed filehandles are close-on-exec

3 years agoset FD_CLOEXEC on debug-leaking-scalars sockets
Zefram [Fri, 22 Dec 2017 15:27:19 +0000 (15:27 +0000)]
set FD_CLOEXEC on debug-leaking-scalars sockets

3 years agomask off SOCK_CLOEXEC in socketpair() emulation
Zefram [Fri, 22 Dec 2017 15:23:11 +0000 (15:23 +0000)]
mask off SOCK_CLOEXEC in socketpair() emulation

In the unlikely situation that we have SOCK_CLOEXEC but are emulating
socketpair(), having the bit set could confuse the emulation.  It's not
worth actually implementing SOCK_CLOEXEC logic for this situation, so
just mask it off.  The higher-level logic of PerlSock_socketpair_cloexec()
will handle the bit being ineffective.

3 years agomake PerlIO handle FD_CLOEXEC
Zefram [Fri, 22 Dec 2017 15:20:26 +0000 (15:20 +0000)]
make PerlIO handle FD_CLOEXEC

Move handling of close-on-exec flag for PerlIO handles into PerlIO itself.
Where PerlIO opens new file descriptors, have them opened in O_CLOEXEC
mode where possible.

3 years agoset FD_CLOEXEC on PL_perlio_debug_fd
Zefram [Wed, 20 Dec 2017 04:29:29 +0000 (04:29 +0000)]
set FD_CLOEXEC on PL_perlio_debug_fd

There's clearly no intent for this to be inherited across exec.

3 years agouse O_CLOEXEC when making fake empty device
Zefram [Wed, 20 Dec 2017 04:05:23 +0000 (04:05 +0000)]
use O_CLOEXEC when making fake empty device

3 years agoPerl_my_mkstemp_cloexec() function
Zefram [Tue, 19 Dec 2017 19:00:07 +0000 (19:00 +0000)]
Perl_my_mkstemp_cloexec() function

Like the other "_cloexec" I/O functions, this guarantees to return a
file descriptor with FD_CLOEXEC set, and will set the flag atomically
if possible.

3 years agouse Perl_my_mkstemp() where appropriate
Zefram [Tue, 19 Dec 2017 18:50:32 +0000 (18:50 +0000)]
use Perl_my_mkstemp() where appropriate

Since commit e48855bdd2fc57fc51156f5e4b8dee6b544456c8 there has been
no need to be conditional about using mkstemp().  Perl_my_mkstemp()
is always available, one way or another.

3 years agoportable Perl_my_mkostemp()
Zefram [Tue, 19 Dec 2017 18:32:05 +0000 (18:32 +0000)]
portable Perl_my_mkostemp()

Akin to the existing Perl_my_mkstemp(), Perl_my_mkostemp() is defined
as a macro for mkostemp() where available, and otherwise as our own
implementation of it.  The guts of our own implementations of the two
functions are shared.  Perl_my_mkostemp() is not guaranteed to handle
O_CLOEXEC: that depends on open() handling it.

3 years agoconfigure probe for mkostemp()
Zefram [Tue, 19 Dec 2017 17:43:21 +0000 (17:43 +0000)]
configure probe for mkostemp()

This is another file descriptor creating function that's needed as an
O_CLOEXEC-handling variant of an existing function.

3 years agoremove broken PerlLIO_mkstemp() definition
Zefram [Tue, 19 Dec 2017 17:12:33 +0000 (17:12 +0000)]
remove broken PerlLIO_mkstemp() definition

This was only defined in non-PERL_IMPLICIT_SYS mode, and not used

3 years agofactor out remaining fcntl F_SETFD calls
Zefram [Tue, 19 Dec 2017 17:11:25 +0000 (17:11 +0000)]
factor out remaining fcntl F_SETFD calls

3 years agoset FD_CLOEXEC atomically in easy cases
Zefram [Tue, 19 Dec 2017 16:53:39 +0000 (16:53 +0000)]
set FD_CLOEXEC atomically in easy cases

In many places where a file descriptor is being opened, open it with
FD_CLOEXEC already set if possible.  This commit covers the easy cases,
where the file descriptor arises without the use of PerlIO, pp_open,
or my_popen.

3 years ago*_cloexec() I/O functions
Zefram [Tue, 19 Dec 2017 09:38:37 +0000 (09:38 +0000)]
*_cloexec() I/O functions

New functions PerlLIO_dup_cloexec(), PerlLIO_dup2_cloexec(),
PerlLIO_open_cloexec(), PerlLIO_open3_cloexec(), PerlProc_pipe_cloexec(),
PerlSock_socket_cloexec(), PerlSock_accept_cloexec(), and
PerlSock_socketpair_cloexec() each do the same thing as their
"_cloexec"-less counterpart, but return with the FD_CLOEXEC flag set on
each new file descriptor.  They set the flag atomically as part of the
file descriptor creation syscall where possible, but will fall back to
setting it separately from creation where necessary.

In all cases, setting the flag atomically depends not only on the correct
syscall interface being defined, but on it being actually implemented
in the runtime kernel.  Each function will experiment to see whether
the atomic flag setting actually works, and is prepared for the flag to
cause EINVAL or ENOSYS or to be ignored.

3 years agoconfigure probes for accept4(), dup3(), pipe2()
Zefram [Tue, 19 Dec 2017 10:35:58 +0000 (10:35 +0000)]
configure probes for accept4(), dup3(), pipe2()

These will shortly be used to implement I/O operations that create file
descriptors with the FD_CLOEXEC flag set atomically.

3 years agoset PERL_EXIT_DESTRUCT_END in all embeddings
Zefram [Fri, 22 Dec 2017 10:07:47 +0000 (10:07 +0000)]
set PERL_EXIT_DESTRUCT_END in all embeddings

The new tests in commit 503bc07b4b9e34ed04a725b2bc8faec1ae0f3be2
showed up platform differences in whether END blocks get run.
Set PERL_EXIT_DESTRUCT_END in all embeddings to make this consistent.

3 years agotest more about exit from special blocks
Zefram [Fri, 22 Dec 2017 07:54:38 +0000 (07:54 +0000)]
test more about exit from special blocks

Commit 0301e899536a22752f40481d8a1d141b7a7dda82 introduced some tests
about ways of exiting from special blocks.  Make those tests more
thorough, checking which kinds of special blocks execute after exiting
from a special block.  This tests, for example, that exiting from a BEGIN
block prevents INIT blocks from running, which when applied to exit(0)
is how that bugfix commit broke Module::Install [perl #132577].

3 years agopreserve numericness of system() args on Win32
Zefram [Fri, 22 Dec 2017 05:32:41 +0000 (05:32 +0000)]
preserve numericness of system() args on Win32

On Windows there's a nasty variation in the meaning of arguments
to Perl's system(), in which a numeric first argument isn't used as
part of the command to run, but instead selects between two different
operations to perform with the command (whether to wait for the command
to complete or not).  Therefore the reduction of argument scalars to
their operative values in the parent process, which was added in commit
64def2aeaeb63f92dadc6dfa33486c1d7b311963, needs to preserve numericness
of arguments on Windows.  Fixes [perl #132633].

3 years agoCogito ergo sum
Chris 'BinGOs' Williams [Thu, 21 Dec 2017 08:59:41 +0000 (08:59 +0000)]
Cogito ergo sum

3 years agofix up faulty perl embeddings
Zefram [Thu, 21 Dec 2017 05:40:49 +0000 (05:40 +0000)]
fix up faulty perl embeddings

Some platform-specific embeddings of perl were misusing the
return values from perl_parse() and perl_run(), in some cases
causing failure due to exit(0) combined with the recent changes
in commit 0301e899536a22752f40481d8a1d141b7a7dda82.  Commit
d4a50999a5525c2681d59cae5fcd94f94ff897fd partially fixed a Windows
embedding.  More fully fix that, along with NetWare and OS/2.  Even in
embeddings with correct logic, stop using a variable named "exitstatus"
to hold the result of perl_parse() or perl_run(), to avoid misleading
people who copy the code.

3 years agoUpdate Module-CoreList for v5.27.8
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 23:49:23 +0000 (23:49 +0000)]
Update Module-CoreList for v5.27.8

3 years agoBump the perl version in various places for v5.27.8
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 23:45:41 +0000 (23:45 +0000)]
Bump the perl version in various places for v5.27.8

3 years agoNew perldelta for v5.27.8
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 23:28:57 +0000 (23:28 +0000)]
New perldelta for v5.27.8

3 years agoInclude epigraph for v5.27.7
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 23:21:53 +0000 (23:21 +0000)]
Include epigraph for v5.27.7

3 years agoadd new release to perlhist v5.27.7
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 20:44:26 +0000 (20:44 +0000)]
add new release to perlhist

3 years agoFinalise perldelta
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 20:17:39 +0000 (20:17 +0000)]
Finalise perldelta

3 years agoUpdate Module::CoreList for v5.27.7
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 19:49:33 +0000 (19:49 +0000)]
Update Module::CoreList for v5.27.7

3 years agoStart finalisation of perldelta
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 19:32:45 +0000 (19:32 +0000)]
Start finalisation of perldelta

3 years agoResolve issue with Win32 caused by 0301e8995
Chris 'BinGOs' Williams [Wed, 20 Dec 2017 19:21:30 +0000 (19:21 +0000)]
Resolve issue with Win32 caused by 0301e8995

From #p5p
[18:12] < xenu> is it just me or is it impossible to build perl using visual c++?
[18:13] < xenu> it fails with 'NMAKE : fatal error U1077: '..\perl.exe' : return code '0x100'"
[18:14] < pink_mist> I'm pretty sure it ought to be possible
[18:14] < xenu> the funny part is that perl.exe built by msvc *always* exits with 255 exit code
[18:14] < xenu> even if you run it like this ..\perl.exe -e "print 1"
[18:14] < xenu> it will print '1' and terminate with exit code 255
[18:42] < xenu> Zefram: 0301e899536a22752f40481d8a1d141b7a7dda82 broke win32
[18:43] < xenu> basically the problem is than PerlRun in win32/perllib.c uses return value of perl_run() as a exit code
[19:08] < BinGOs> xenu: does 'exitstatus = perl_destruct(my_perl);' fix the issue?
[19:20] < xenu> BinGOs: yep
[19:20] < BinGOs> okay cool thanks for confirming.
[19:20] < BinGOs> I'll commit that now.

3 years agot/re/reg_mesg.t: White-space only
Karl Williamson [Fri, 9 Jun 2017 13:27:31 +0000 (07:27 -0600)]
t/re/reg_mesg.t: White-space only

Indent a newly-formed block

3 years agot/re/reg_mesg.t: Test that death actually happens.
Karl Williamson [Fri, 9 Jun 2017 04:05:15 +0000 (22:05 -0600)]
t/re/reg_mesg.t: Test that death actually happens.

Until now, patterns that are supposed to die weren't actually being
checked for that.  Instead the message that was raised was checked
against the expected value, and if they matched, it assumed that death
accompanied it.  But this isn't necessarily true.  Also, some entries
were given an empty expectation, which was wrong.  So this makes sure of
that.  Those empty patterns matched anything at all, so things went

To be sure of death, this commit appends a statement with a lingering
effect to the string eval of what's supposed to die.  If the effect
happens, it didn't die.

3 years agoreg_mesg.t: Move some tests to proper places
Karl Williamson [Tue, 19 Dec 2017 18:43:46 +0000 (11:43 -0700)]
reg_mesg.t: Move some tests to proper places

 This was detected in [perl #131522].  Some tests were in the death
 section, but don't die.  The next commit will add tests that actually
 work to detect death.

3 years ago[MERGE] s/// return value fixups
David Mitchell [Tue, 19 Dec 2017 15:40:41 +0000 (15:40 +0000)]
[MERGE] s/// return value fixups

3 years agos/// in boolean context: simplify return value
David Mitchell [Tue, 19 Dec 2017 15:28:06 +0000 (15:28 +0000)]
s/// in boolean context: simplify return value

Normally s/// returns a count of the number of iterations, but
as an optimisation, in boolean context it returns PL_sv_yes/PL_sv_zero
instead. But in the places where it decides which immortal var to return,
the number of iterations is always > 0, so PL_sv_zero never gets returned.
So skip testing whether iters > 0 and always just return PL_sv_yes.

(In non-boolean scalar context, it still returns the iteration count as

3 years agoavoid tainting boolean return value of s///
David Mitchell [Tue, 19 Dec 2017 14:52:49 +0000 (14:52 +0000)]
avoid tainting boolean return value of s///

RT #132385

s/// normally returns an integer count, but sometimes for efficiency it
will return a boolean instead (PL_sv_yes/PL_sv_zero).

In these cases, don't try to taint the return value, since it will die
with 'Modification of a read-only value'.

3 years agos///: return boolean in not-in-place branch
David Mitchell [Tue, 19 Dec 2017 12:09:15 +0000 (12:09 +0000)]
s///: return boolean in not-in-place branch

A while back, s/// (and other ops) were optimised to return
PL_sv_yes/PL_sv_zero rather than an iteration count in boolean context.

This optimisation was missed in one place in pp_subst(): the 'can modify
in place' branch was done, but the other branch was missed.

This commit fixes that.

3 years agominor punctuation improvement
Karen Etheridge [Tue, 19 Dec 2017 03:01:26 +0000 (19:01 -0800)]
minor punctuation improvement

3 years agoForbid literal \v in /[]/ under re strict, except under /x
Karl Williamson [Tue, 19 Dec 2017 02:04:56 +0000 (19:04 -0700)]
Forbid literal \v in /[]/ under re strict, except under /x

Vertical space in a bracketed character class is likely to be an error;
either a typo or omission of /x.  It will match literally, but be
displayed like /x is in effect.

For now, just add this check to re 'strict', which is experimental,
designed to catch things the current regex parser doesn't.

3 years agoperldiag: Fix obsolete text
Karl Williamson [Tue, 19 Dec 2017 02:03:26 +0000 (19:03 -0700)]
perldiag: Fix obsolete text

Since 5.26.0, code points must fit in a signed integer, not unsigned.

This commit should be considered for backporting to a future 5.26.x

3 years agoreg_mesg.t: Fix comment
Karl Williamson [Tue, 19 Dec 2017 02:02:37 +0000 (19:02 -0700)]
reg_mesg.t: Fix comment

3 years agoreg_mesg.t: Fix typo
Karl Williamson [Tue, 19 Dec 2017 02:01:37 +0000 (19:01 -0700)]
reg_mesg.t: Fix typo

3 years agoDemonstrate how File::Spec->catfile('.', @other_args) works.
James E Keenan [Mon, 18 Dec 2017 22:02:55 +0000 (17:02 -0500)]
Demonstrate how File::Spec->catfile('.', @other_args) works.

For:  RT # 131296

3 years agoEmulate C99 int_fast8_t, etc typedefs
Karl Williamson [Fri, 8 Dec 2017 05:10:52 +0000 (22:10 -0700)]
Emulate C99 int_fast8_t, etc typedefs

These are useful if you know you have a variable with a restricted range,
and so could fit in a byte or 16 bits, but speed is more important.
These C99 typedefs allows you to specify the minimal size you need, and
allows the compiler to substitute a wider type if it is faster.

This commit adds typedefs spelled the same as the C99 ones, but upper
cased.  On non-C99 compilers, it just uses 'int' behind the scenes,
which should be safe.

These are currently restricted to core to be sure these aren't a bad
idea before they are made public.

3 years agomktables: Use already set variable
Karl Williamson [Mon, 18 Dec 2017 19:49:55 +0000 (12:49 -0700)]
mktables: Use already set variable

The value for this variable is already known; use that instead of
rederiving it.

3 years agoChange number to mnemonic
Karl Williamson [Sat, 16 Dec 2017 06:41:51 +0000 (23:41 -0700)]
Change number to mnemonic

This is in preparation for future commits that will use it in multiple

3 years agoperlxs: Document bitwise calling conventions
Father Chrysostomos [Mon, 18 Dec 2017 17:37:08 +0000 (09:37 -0800)]
perlxs: Document bitwise calling conventions

3 years agoCustomisations for Digest-SHA tests
Chris 'BinGOs' Williams [Mon, 18 Dec 2017 13:31:43 +0000 (13:31 +0000)]
Customisations for Digest-SHA tests

3 years agoUpdate Digest-SHA to CPAN version 6.00
Chris 'BinGOs' Williams [Mon, 18 Dec 2017 13:15:34 +0000 (13:15 +0000)]
Update Digest-SHA to CPAN version 6.00


6.00  Fri Dec  8 22:44:44 MST 2017
  - added "tag" option (BSD-style checksums) to shasum
    -- consistent with GNU sha1sum, sha224sum, etc.
    -- thanks to Christopher Tubbs for suggestion
  - modified to use XSLoader
    -- falls back to DynaLoader if necessary
  - decoupled Digest::SHA and Digest::SHA::PurePerl
    -- scripts/tests in each module now fully independent
    -- Digest::SHA::PurePerl to be phased out eventually
      -- past versions will remain available

3 years agoenable PERL_OP_PARENT always
David Mitchell [Mon, 18 Dec 2017 11:50:03 +0000 (11:50 +0000)]
enable PERL_OP_PARENT always

Remove support for PERL_NO_OP_PARENT, which was a way of turning off the
(on by default) PERL_OP_PARENT define.


3 years agoalign version numbers in the PathTools distro
Zefram [Mon, 18 Dec 2017 03:21:05 +0000 (03:21 +0000)]
align version numbers in the PathTools distro

3 years agoremove support for running PathTools on MacOS
Zefram [Mon, 18 Dec 2017 03:18:39 +0000 (03:18 +0000)]
remove support for running PathTools on MacOS

MacOS Classic hasn't been a supported platform since 5.14.  Note that
the code for processing MacOS-style paths remains, and can be run on
supported platforms.  [perl #130818]

3 years agofix pod markup in
Zefram [Mon, 18 Dec 2017 03:12:04 +0000 (03:12 +0000)]
fix pod markup in

Commit c4583f59133164b3f392c31e9b9573276ec17e74 introduced a pod error.

3 years agoremove support for running PathTools on EPOC
Zefram [Mon, 18 Dec 2017 03:08:31 +0000 (03:08 +0000)]
remove support for running PathTools on EPOC

EPOC hasn't been a supported platform since 5.18.  Note that the code
for processing EPOC-style paths remains, and can be run on supported
platforms.  [perl #130818]

3 years agoperldelta: Avoid ‘deprecated’ for non-deprecated module
Father Chrysostomos [Mon, 18 Dec 2017 02:43:55 +0000 (18:43 -0800)]
perldelta: Avoid ‘deprecated’ for non-deprecated module

Saying the module is deprecated (in core) can easily be misunder-
stood.  The module itself is certainly not deprecated.

3 years agoperldelta for #132468 warnings functions
Father Chrysostomos [Mon, 18 Dec 2017 02:00:33 +0000 (18:00 -0800)]
perldelta for #132468 warnings functions

3 years agoperldelta: Alphabetise modules
Father Chrysostomos [Mon, 18 Dec 2017 01:59:33 +0000 (17:59 -0800)]
perldelta: Alphabetise modules

3 years ago[perl #132468] At _at_level warnings functions
Father Chrysostomos [Mon, 18 Dec 2017 01:56:52 +0000 (17:56 -0800)]
[perl #132468] At _at_level warnings functions

3 years agopp_ctl.c: Add -D output for inward goto
Father Chrysostomos [Mon, 11 Dec 2017 21:38:24 +0000 (13:38 -0800)]
pp_ctl.c: Add -D output for inward goto

3 years agomerge branch zefram/dumb_match
Zefram [Sun, 17 Dec 2017 11:02:23 +0000 (11:02 +0000)]
merge branch zefram/dumb_match

3 years agoUnicode::UCD: max code point is now IV_MAX
Karl Williamson [Fri, 10 Nov 2017 01:31:15 +0000 (18:31 -0700)]
Unicode::UCD: max code point is now IV_MAX

Return the correct value when asked.

3 years agoregcomp.sym: Clarify regnode comment
Karl Williamson [Sat, 16 Dec 2017 19:13:01 +0000 (12:13 -0700)]
regcomp.sym: Clarify regnode comment

3 years agoregen/ reformulate a branch and outdent
Karl Williamson [Sat, 16 Dec 2017 18:53:15 +0000 (11:53 -0700)]
regen/ reformulate a branch and outdent

This turns a test whose one branch dies into a postfix type, which means
there is no need for an else, and that code can be outdented.

3 years agoregen/ Outdent code
Karl Williamson [Sat, 16 Dec 2017 18:48:12 +0000 (11:48 -0700)]
regen/ Outdent code

This was unnecessarily indented.  This commit also removes an
unnecessary {...} block, and outdents the interior as well.
No other changes are made

3 years agoregen/ Fix typo
Karl Williamson [Sat, 16 Dec 2017 18:37:21 +0000 (11:37 -0700)]
regen/ Fix typo

3 years agoperlre: '#' is a metacharacter under /x
Karl Williamson [Sun, 17 Dec 2017 00:05:50 +0000 (17:05 -0700)]
perlre: '#' is a metacharacter under /x

3 years agomake dNOOP usable outside function in C++
Zefram [Sat, 16 Dec 2017 22:46:33 +0000 (22:46 +0000)]
make dNOOP usable outside function in C++

Commit 7db66e12883f0832ca80164b723768b848187bda changed dNOOP in C++ from
an external function declaration (which was running into inconsistent
linkage) to a no-op statement.  The no-op statement is only valid where
statements are valid, i.e., inside a function, so this doesn't actually
work everywhere that a declaration is expected.

Switch dNOOP to be an incomplete struct declaration, regardless of
language.  This can certainly be used both inside and outside functions,
is valid to repeat, and does not have the linkage problem of a function
declaration.  It should also be as unlikely to attract an "unused"
warning as an external function declaration.

3 years agotypo fix in doc
Zefram [Sat, 16 Dec 2017 09:30:16 +0000 (09:30 +0000)]
typo fix in doc

3 years agoshow modern usage for {XS,Dyna}Loader
Zefram [Sat, 16 Dec 2017 08:34:25 +0000 (08:34 +0000)]
show modern usage for {XS,Dyna}Loader

Fixes [perl #132247].

3 years agosemicolon-friendly diagnostic control
Zefram [Sat, 16 Dec 2017 07:12:48 +0000 (07:12 +0000)]
semicolon-friendly diagnostic control

New macros {GCC,CLANG}_DIAG_{IGNORE,RESTORE}_{DECL,STMT}, which take a
following semicolon.  It is necessary to use the _DECL or _STMT version
as appropriate to the context.  Fixes [perl #130726].

3 years agoperform system() arg processing before fork
Zefram [Sat, 16 Dec 2017 05:33:20 +0000 (05:33 +0000)]
perform system() arg processing before fork

A lot of things can happen when stringifying an argument list: side
effects, warnings, exceptions.  In the case of system(), these effects
should happen in the context of the parent process.  The stringification
can also depend on which process it happens in, as in the case of
$$, and in that case it should also happen in the parent process.
Therefore reduce the argument scalars to strings first thing in pp_system.
Fixes [perl #121105].

3 years agoupdate and clarify "die" and "warn" doc
Zefram [Sat, 16 Dec 2017 04:47:08 +0000 (04:47 +0000)]
update and clarify "die" and "warn" doc

They didn't fully describe the handling of reference operands, and
there were other errors in their description of the treatment of the
operand list.  Fixes [perl #121372].

3 years agoretry gdbm_open() upon block size error
Zefram [Sat, 16 Dec 2017 02:17:08 +0000 (02:17 +0000)]
retry gdbm_open() upon block size error

It is reported that gdbm_open() with default block size can fail on
filesystems with a non-power-of-two block size.  In that event, retry
opening, forcing a power-of-two block size.  Fixes [perl #119623].

3 years agoadd ticket number to perldelta entry
Zefram [Sat, 16 Dec 2017 01:48:22 +0000 (01:48 +0000)]
add ticket number to perldelta entry

3 years agowiden size-type variables in pack/unpack
Zefram [Sat, 16 Dec 2017 01:44:32 +0000 (01:44 +0000)]
widen size-type variables in pack/unpack

Most size-type variables in pp_pack.c were of type I32, with a
smattering of other types.  Use SSize_t in place of I32, and generally
use size_t-width variables as appropriate.  Fixes [perl #119367].

3 years agoperlfunc: remove stray plus from start of line
Marco Fontani [Fri, 15 Dec 2017 17:16:31 +0000 (10:16 -0700)]
perlfunc: remove stray plus from start of line

 Looks to be an artifact of applying my original patch, which was
 amended as part of e135ff695231a81e2a70a739e8d813525432fd4d, whereby
 the text was slightly amended.

3 years agodocument GDBM_File's delete vs each conflict
Zefram [Fri, 15 Dec 2017 09:51:33 +0000 (09:51 +0000)]
document GDBM_File's delete vs each conflict

Fixes [perl #117449].

3 years agorewrite "ref" documentation for clarity
Zefram [Fri, 15 Dec 2017 07:00:11 +0000 (07:00 +0000)]
rewrite "ref" documentation for clarity

3 years agoclean up directories of split pod files
Zefram [Fri, 15 Dec 2017 05:12:32 +0000 (05:12 +0000)]
clean up directories of split pod files

Fixes [perl #114316].

3 years agoperldelta 282fc0b3cc2439f69587d980b62bef7f5d5bdfef
Zefram [Fri, 15 Dec 2017 02:14:25 +0000 (02:14 +0000)]
perldelta 282fc0b3cc2439f69587d980b62bef7f5d5bdfef

3 years agoperldelta e135ff695231a81e2a70a739e8d813525432fd4d
Zefram [Fri, 15 Dec 2017 02:12:42 +0000 (02:12 +0000)]
perldelta e135ff695231a81e2a70a739e8d813525432fd4d

3 years agoperldelta 47836a13cc4c999c9b3589c6797d6769b52c37fd
Zefram [Fri, 15 Dec 2017 02:11:13 +0000 (02:11 +0000)]
perldelta 47836a13cc4c999c9b3589c6797d6769b52c37fd

3 years agoperldelta 3d033384b2016a58c3eed89524dc658660c759ce
Zefram [Fri, 15 Dec 2017 02:09:15 +0000 (02:09 +0000)]
perldelta 3d033384b2016a58c3eed89524dc658660c759ce

3 years agoperldelta 0bd1c35ee47dab181543ba366fe021122c591f65
Zefram [Fri, 15 Dec 2017 02:06:54 +0000 (02:06 +0000)]
perldelta 0bd1c35ee47dab181543ba366fe021122c591f65

3 years agoperldelta 38e30ca7507a601c2d84596bc51d88c0f3c516b4
Zefram [Fri, 15 Dec 2017 02:03:33 +0000 (02:03 +0000)]
perldelta 38e30ca7507a601c2d84596bc51d88c0f3c516b4

3 years agoperldelta addf67e13a08f45d3bb4c245c821b1ef2767c5a5
Zefram [Fri, 15 Dec 2017 02:00:05 +0000 (02:00 +0000)]
perldelta addf67e13a08f45d3bb4c245c821b1ef2767c5a5

3 years agoperldelta 27d3197f2b90b3534ea74a96fc7e37200baeb9b7
Zefram [Fri, 15 Dec 2017 01:58:26 +0000 (01:58 +0000)]
perldelta 27d3197f2b90b3534ea74a96fc7e37200baeb9b7

3 years agoperldelta d5407247046f2f01c1492998b32b3b148445febe
Zefram [Fri, 15 Dec 2017 01:55:17 +0000 (01:55 +0000)]
perldelta d5407247046f2f01c1492998b32b3b148445febe

3 years agoperldelta 16ada235c332e017667585e1a5a00ce43a31c529
Zefram [Fri, 15 Dec 2017 01:53:56 +0000 (01:53 +0000)]
perldelta 16ada235c332e017667585e1a5a00ce43a31c529

3 years agoperldelta 397baf232086e0a9ad6f881a9614d3dbaea853fc
Zefram [Fri, 15 Dec 2017 01:50:55 +0000 (01:50 +0000)]
perldelta 397baf232086e0a9ad6f881a9614d3dbaea853fc

3 years agoperldelta 0165f7b01e9c43629d0c6f4b5eb2e672abeda51a
Zefram [Fri, 15 Dec 2017 01:48:41 +0000 (01:48 +0000)]
perldelta 0165f7b01e9c43629d0c6f4b5eb2e672abeda51a

3 years agoperldelta dd9e86b4501b7c8aeba1f5ebda9f8907747c443f
Zefram [Fri, 15 Dec 2017 01:46:30 +0000 (01:46 +0000)]
perldelta dd9e86b4501b7c8aeba1f5ebda9f8907747c443f

3 years agoperldelta 9b91093d3e74d13a6e4f67269a587f4ab397998a
Zefram [Fri, 15 Dec 2017 01:44:39 +0000 (01:44 +0000)]
perldelta 9b91093d3e74d13a6e4f67269a587f4ab397998a