This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoRely on C89 <assert.h>
Aaron Crane [Sat, 14 Oct 2017 13:47:10 +0000 (15:47 +0200)]
Rely on C89 <assert.h>

6 years agoRely on C89 <math.h>
Aaron Crane [Sat, 14 Oct 2017 13:20:33 +0000 (15:20 +0200)]
Rely on C89 <math.h>

This requires a corresponding change in the metaconfig units.

6 years agoNever attempt to redeclare standard functions
Aaron Crane [Sat, 14 Oct 2017 13:11:22 +0000 (15:11 +0200)]
Never attempt to redeclare standard functions

6 years agoDon't attempt to define or use STANDARD_C
Aaron Crane [Sat, 14 Oct 2017 12:43:38 +0000 (14:43 +0200)]
Don't attempt to define or use STANDARD_C

We rely on a C89 implementation anyway.

6 years agoRely on C89 NULL
Aaron Crane [Sat, 14 Oct 2017 12:39:07 +0000 (14:39 +0200)]
Rely on C89 NULL

6 years agoDon't declare C89 realloc()
Aaron Crane [Sat, 14 Oct 2017 12:03:01 +0000 (14:03 +0200)]
Don't declare C89 realloc()

The declaration is actually for PerlMem_realloc(), which is a macro for
either realloc() or an indirection through the interpreter struct, depending
on configuration — see iperlsys.h. If it's the indrection, this declaration
will be a syntax error, so it must be in fact plain old realloc().

The declaration is guarded with HAS_REALLOC_PROTOTYPE, which isn't actually
defined or consulted anywhere else in the codebase.

Since we require C89, there's no need for this — we #include <stdlib.h>, and
therefore can assume realloc() exists.

6 years agoRely on C89 strerror()
Aaron Crane [Sat, 14 Oct 2017 09:57:51 +0000 (11:57 +0200)]
Rely on C89 strerror()

This requires a corresponding change to the metaconfig units.

6 years agoutil.h: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 09:15:04 +0000 (11:15 +0200)]
util.h: simplify cpp conditionals

6 years agoutil.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 09:09:26 +0000 (11:09 +0200)]
util.c: simplify cpp conditionals

6 years agothread.h: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 08:56:37 +0000 (10:56 +0200)]
thread.h: simplify cpp conditionals

6 years agosv.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 08:52:05 +0000 (10:52 +0200)]
sv.c: simplify cpp conditionals

6 years agoregen/reentr.pl: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 08:48:10 +0000 (10:48 +0200)]
regen/reentr.pl: simplify cpp conditionals

6 years agopp_sys.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 08:42:16 +0000 (10:42 +0200)]
pp_sys.c: simplify cpp conditionals

6 years agopp_pack.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 08:07:18 +0000 (10:07 +0200)]
pp_pack.c: simplify cpp conditionals

6 years agopp_hot.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 07:55:26 +0000 (09:55 +0200)]
pp_hot.c: simplify cpp conditionals

6 years agopp_ctl.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 07:53:41 +0000 (09:53 +0200)]
pp_ctl.c: simplify cpp conditionals

6 years agopp.c: simplify cpp conditionals
Aaron Crane [Sat, 14 Oct 2017 07:51:50 +0000 (09:51 +0200)]
pp.c: simplify cpp conditionals

6 years agoperlio.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 16:16:16 +0000 (18:16 +0200)]
perlio.c: simplify cpp conditionals

6 years agoperl.h: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 16:11:58 +0000 (18:11 +0200)]
perl.h: simplify cpp conditionals

6 years agoDrop support for the hp9000s500 cpp symbol
Aaron Crane [Fri, 13 Oct 2017 15:42:54 +0000 (17:42 +0200)]
Drop support for the hp9000s500 cpp symbol

This includes changed metaconfig units which drop support in the same way.

https://en.wikipedia.org/wiki/HP_9000 :

> The HP 9000 brand was introduced in 1984 to encompass several existing
> technical workstation models previously launched in the early 1980s. […]
> The Series 500s were based on the HP FOCUS microprocessor. […] The 520 was
> a complete workstation with built-in keyboard, display, 5.25-inch floppy
> disk, and optional thermal printer and 5 MB hard disk. […] The processors
> in the original Series 500s ran at 20 MHz, and could reach a benchmark
> speed of 1 MIPS.

https://en.wikipedia.org/wiki/HP_FOCUS :

> The Hewlett-Packard FOCUS microprocessor, launched in 1982, was the
> first commercial, single chip, fully 32-bit microprocessor available on
> the market. […] The FOCUS […] was a stack architecture, with over 220
> instructions (some 32 bits wide, some 16 bits wide), a segmented memory
> model, and no general purpose programmer-visible registers.

6 years agoDelete useless references to DG/UX
Aaron Crane [Fri, 13 Oct 2017 15:24:42 +0000 (17:24 +0200)]
Delete useless references to DG/UX

6 years agoperl.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 15:17:15 +0000 (17:17 +0200)]
perl.c: simplify cpp conditionals

6 years agoopcode.pl: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 15:07:13 +0000 (17:07 +0200)]
opcode.pl: simplify cpp conditionals

This affects the generated opcode.h.

6 years agonumeric.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 15:03:32 +0000 (17:03 +0200)]
numeric.c: simplify cpp conditionals

6 years agomg.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 15:02:25 +0000 (17:02 +0200)]
mg.c: simplify cpp conditionals

6 years agomalloc.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 14:55:55 +0000 (16:55 +0200)]
malloc.c: simplify cpp conditionals

6 years agomalloc.c: don't redefine START_EXTERN_C from perl.h
Aaron Crane [Fri, 13 Oct 2017 14:54:44 +0000 (16:54 +0200)]
malloc.c: don't redefine START_EXTERN_C from perl.h

6 years agohandy.h: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 14:44:08 +0000 (16:44 +0200)]
handy.h: simplify cpp conditionals

6 years agodosish.h: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 14:40:59 +0000 (16:40 +0200)]
dosish.h: simplify cpp conditionals

6 years agoEXTERN.h: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 14:34:23 +0000 (16:34 +0200)]
EXTERN.h: simplify cpp conditionals

6 years agodoio.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 14:30:05 +0000 (16:30 +0200)]
doio.c: simplify cpp conditionals

6 years agovms/vmsish.h: move a function declaration from doio.c
Aaron Crane [Fri, 13 Oct 2017 14:20:21 +0000 (16:20 +0200)]
vms/vmsish.h: move a function declaration from doio.c

6 years agocaretx.c: simplify cpp conditionals
Aaron Crane [Fri, 13 Oct 2017 13:59:59 +0000 (15:59 +0200)]
caretx.c: simplify cpp conditionals

6 years agoXSUB.h: simplify cpp conditions using C89 "#elif"
Aaron Crane [Fri, 13 Oct 2017 13:56:07 +0000 (15:56 +0200)]
XSUB.h: simplify cpp conditions using C89 "#elif"

6 years agoRely on contents of C89 <limits.h>
Aaron Crane [Sat, 14 Oct 2017 07:45:18 +0000 (09:45 +0200)]
Rely on contents of C89 <limits.h>

6 years agoSimplify perl.h floating-point limits defines
Aaron Crane [Fri, 13 Oct 2017 13:34:03 +0000 (15:34 +0200)]
Simplify perl.h floating-point limits defines

- Always include <float.h> and <limits.h>

- Assume that the DBL_* constants are always available in <float.h> (though
  we still check for each LDBL_* constant individually)

- Drop support for the undocumented OVR_DBL_DIG and OVR_LDBL_DIG
  preprocessor symbols

- Use cpp "#elif"

6 years agoDon't try to use <values.h>
Aaron Crane [Fri, 13 Oct 2017 13:14:20 +0000 (15:14 +0200)]
Don't try to use <values.h>

All the information it contains can be gleaned more readily from C89
<limits.h> and <float.h>.

6 years agoRely on C89 <float.h> defining DBL_DIG
Aaron Crane [Fri, 13 Oct 2017 11:54:42 +0000 (13:54 +0200)]
Rely on C89 <float.h> defining DBL_DIG

I would like to be able to assume that we have long doubles, and therefore
that LDBL_DIG and friends are all defined too. But it seems that we may
still support some platforms which are otherwise C89, but don't have even
trivial long-double support; in particular, HP/UX 10 apparently uses a
struct of four uint32_t values as long double, but doesn't support other
bits, and confuses the Configure probe that looks for quadmath.

6 years agoRely on C89 <float.h>
Aaron Crane [Fri, 13 Oct 2017 10:49:41 +0000 (12:49 +0200)]
Rely on C89 <float.h>

This requires newer metaconfig units that also rely on C89 <float.h>.

6 years agoRely on C89 <limits.h>
Aaron Crane [Fri, 13 Oct 2017 10:38:59 +0000 (12:38 +0200)]
Rely on C89 <limits.h>

This requires newer metaconfig units that also rely on C89 <limits.h>.

6 years agoRely on C89 <time.h>
Aaron Crane [Fri, 13 Oct 2017 09:18:10 +0000 (11:18 +0200)]
Rely on C89 <time.h>

The Configure script here was built from a metaconfig unit that also assumes
<time.h> exists.

6 years agoRely on C89 strchr() and strrchr()
Aaron Crane [Fri, 13 Oct 2017 08:35:44 +0000 (10:35 +0200)]
Rely on C89 strchr() and strrchr()

This needs a metaconfig change that defangs the standard unit for finding
strchr(), because that unit sees the uses of "index" and "rindex" (in files
like keywords.c and opcode.h) as indicators that it must be used instead.

6 years agoRely on C89 sprintf() return value semantics
Aaron Crane [Fri, 13 Oct 2017 08:03:59 +0000 (10:03 +0200)]
Rely on C89 sprintf() return value semantics

6 years agoUse snprintf() in favour of sprintf()
Aaron Crane [Tue, 17 Oct 2017 16:30:18 +0000 (17:30 +0100)]
Use snprintf() in favour of sprintf()

6 years agoRely on C89 <stddef.h>
Aaron Crane [Fri, 13 Oct 2017 07:25:14 +0000 (09:25 +0200)]
Rely on C89 <stddef.h>

6 years agoRely on C89 <stdlib.h>
Aaron Crane [Fri, 13 Oct 2017 07:16:17 +0000 (09:16 +0200)]
Rely on C89 <stdlib.h>

The Configure changes here were generated using a version of metaconfig
that copies U/modified/i_stdlib.U from dist/U/vaproto.U, and changes it to
unconditionally define the i_stdlib Configure variable. That variable is
used by a large number of other Configure units, so it's not actually
practical to try and remove the relevant unit entirely.

6 years agoRely on C89 <stdarg.h>
Aaron Crane [Thu, 12 Oct 2017 22:55:41 +0000 (00:55 +0200)]
Rely on C89 <stdarg.h>

6 years agoRely on C89 prototypes
Aaron Crane [Thu, 12 Oct 2017 16:50:15 +0000 (18:50 +0200)]
Rely on C89 prototypes

The Configure changes here were generated using a version of metaconfig
that modifies the prototype.U and Protochk.U units to assume that C89
prototypes work.

6 years agoDon't pretend to determine whether ansi2knr is needed
Aaron Crane [Sat, 14 Oct 2017 15:01:19 +0000 (17:01 +0200)]
Don't pretend to determine whether ansi2knr is needed

6 years agoRely on C89 variadic prototypes
Aaron Crane [Thu, 12 Oct 2017 16:17:02 +0000 (18:17 +0200)]
Rely on C89 variadic prototypes

The Configure changes here were generated using a version of metaconfig
that copies U/modified/vaproto.U from dist/U/vaproto.U, and changes it to
refrain from promising to define a _V symbol (which would otherwise cause
the relevant probe to included in Configure).

6 years agoConfigure: assume C89 headers in need_va_copy probe
Aaron Crane [Thu, 12 Oct 2017 16:05:57 +0000 (18:05 +0200)]
Configure: assume C89 headers in need_va_copy probe

This matches a recent change to metaconfig.

6 years agoRely on C89 vprintf()
Aaron Crane [Thu, 12 Oct 2017 15:56:12 +0000 (17:56 +0200)]
Rely on C89 vprintf()

6 years agoRely on C89 sprintf() return type
Aaron Crane [Thu, 12 Oct 2017 15:49:34 +0000 (17:49 +0200)]
Rely on C89 sprintf() return type

6 years agoConfigure: assume C89 headers in d_c99_variadic_macros probe
Aaron Crane [Thu, 12 Oct 2017 15:44:29 +0000 (17:44 +0200)]
Configure: assume C89 headers in d_c99_variadic_macros probe

This matches a recent change to metaconfig.

6 years agoRely on C89 snprintf()
Aaron Crane [Thu, 12 Oct 2017 15:35:52 +0000 (17:35 +0200)]
Rely on C89 snprintf()

6 years agoRely on C89 vsnprintf()
Aaron Crane [Thu, 12 Oct 2017 15:22:43 +0000 (17:22 +0200)]
Rely on C89 vsnprintf()

We assume it has the standard behaviour that, if the buffer is too short, it
returns the desired buffer length.

6 years agoDon't use VOL internally, because "volatile" works just fine
Aaron Crane [Thu, 12 Oct 2017 14:26:56 +0000 (16:26 +0200)]
Don't use VOL internally, because "volatile" works just fine

However, we do preserve it outside PERL_CORE for the use of XS authors.

6 years agoAssume C89 "volatile" keyword
Aaron Crane [Thu, 12 Oct 2017 13:46:20 +0000 (15:46 +0200)]
Assume C89 "volatile" keyword

The Configure changes here were generated using a version of metaconfig
that makes U/perl/perlxv.U assume that the keyword exists, and prevents
U/modified/d_volatile.U from promising to define a "volatile" keyword;
otherwise, those units would bring in the relevant Configure probe anyway.

6 years agoAssume we have C89 memchr()
Aaron Crane [Thu, 12 Oct 2017 13:18:42 +0000 (15:18 +0200)]
Assume we have C89 memchr()

6 years agoAssume we have sane C89 memcmp()
Aaron Crane [Thu, 12 Oct 2017 12:31:56 +0000 (14:31 +0200)]
Assume we have sane C89 memcmp()

"Sane" means that it works correctly on bytes with their high bit set, as
C89 also requires.

We therefore no longer need to probe for and/or use BSD bcmp().

6 years agoDrop support for PowerUX / Power MAX OS
Aaron Crane [Thu, 12 Oct 2017 13:04:00 +0000 (15:04 +0200)]
Drop support for PowerUX / Power MAX OS

It is almost impossible to find any information about this platform on the
internet, which strongly suggests that it's as dead as dead can be.

6 years agoAssume we have C89 memcpy() and memmove()
Aaron Crane [Thu, 12 Oct 2017 12:00:03 +0000 (14:00 +0200)]
Assume we have C89 memcpy() and memmove()

We can therefore also avoid probing for and/or using BSD bcopy().

6 years agoDon't look for a "safe" memcpy()
Aaron Crane [Thu, 12 Oct 2017 11:47:22 +0000 (13:47 +0200)]
Don't look for a "safe" memcpy()

C89 says that, if you want to copy overlapping memory blocks, you must use
memmove(), and that attempt to copy overlapping memory blocks using memcpy()
yields undefined behaviour. So we should never even attempt to probe for a
system memcpy() implementation that just happens to handle overlapping
memory blocks. In particular, the compiler might compile the probe program
in such a way that Configure thinks overlapping memcpy() works even when it
doesn't.

This has the additional advantage of removing a Configure probe that needs
to execute a target-platform program on the build host.

6 years agoAssume we have C89 memset()
Aaron Crane [Thu, 12 Oct 2017 09:02:27 +0000 (11:02 +0200)]
Assume we have C89 memset()

This means we also never need to consider using BSD bzero().

6 years agoRemove USE_STRUCT_COPY in favour of C89 struct assignment
Aaron Crane [Thu, 12 Oct 2017 08:33:33 +0000 (10:33 +0200)]
Remove USE_STRUCT_COPY in favour of C89 struct assignment

At least for now, we retain the StructCopy() macro, but its definition
always just uses struct assignment.

6 years agoConfigure: fix nl_langinfo_l() probe
Aaron Crane [Sat, 21 Oct 2017 15:42:51 +0000 (16:42 +0100)]
Configure: fix nl_langinfo_l() probe

This corresponds to metaconfig ad82f5bfbeafc125c0aed2b83391ed8d43bf31b2.

6 years agoAdd Configure changes to perldelta
H.Merijn Brand [Sat, 21 Oct 2017 15:41:04 +0000 (17:41 +0200)]
Add Configure changes to perldelta

6 years agoAdd new Configure probes
H.Merijn Brand [Sat, 21 Oct 2017 15:29:47 +0000 (17:29 +0200)]
Add new Configure probes

This is a merge off several new probes in metaconfig done in the new
shared developing environment by several authors

Thanks to all that contributed!

6 years agoToday's M::CL is up on CPAN already
Steve Hay [Fri, 20 Oct 2017 23:17:00 +0000 (00:17 +0100)]
Today's M::CL is up on CPAN already

6 years agoPrepare Module::CoreList for 5.27.6
Steve Hay [Fri, 20 Oct 2017 23:11:33 +0000 (00:11 +0100)]
Prepare Module::CoreList for 5.27.6

6 years agoBump version to 5.27.6
Steve Hay [Fri, 20 Oct 2017 22:54:15 +0000 (23:54 +0100)]
Bump version to 5.27.6

6 years agoperldelta - Fix version for the next run of Porting/acknowledgements.pl
Steve Hay [Fri, 20 Oct 2017 22:45:38 +0000 (23:45 +0100)]
perldelta - Fix version for the next run of Porting/acknowledgements.pl

And fix the template file so that the impending version bump will leave it
correct for next time too.

6 years agoNew perldelta for 5.27.6
Steve Hay [Fri, 20 Oct 2017 22:41:00 +0000 (23:41 +0100)]
New perldelta for 5.27.6

6 years agoTick off 5.27.5
Steve Hay [Fri, 20 Oct 2017 22:27:06 +0000 (23:27 +0100)]
Tick off 5.27.5

6 years agoAdd epigraph for 5.27.5
Steve Hay [Fri, 20 Oct 2017 22:26:13 +0000 (23:26 +0100)]
Add epigraph for 5.27.5

6 years agoPerl 5.27.5 today v5.27.5
Steve Hay [Fri, 20 Oct 2017 20:20:22 +0000 (21:20 +0100)]
Perl 5.27.5 today

6 years agoFinalize perldelta
Steve Hay [Fri, 20 Oct 2017 20:16:59 +0000 (21:16 +0100)]
Finalize perldelta

6 years agoUpdate Module::CoreList for 5.27.5
Steve Hay [Fri, 20 Oct 2017 20:09:37 +0000 (21:09 +0100)]
Update Module::CoreList for 5.27.5

6 years agoperldelta - Fix broken links
Steve Hay [Fri, 20 Oct 2017 20:06:10 +0000 (21:06 +0100)]
perldelta - Fix broken links

6 years agoperldelta - Remove boilerplate
Steve Hay [Fri, 20 Oct 2017 19:52:32 +0000 (20:52 +0100)]
perldelta - Remove boilerplate

6 years agoperldelta - Update selected bug fixes etc
Steve Hay [Fri, 20 Oct 2017 19:47:46 +0000 (20:47 +0100)]
perldelta - Update selected bug fixes etc

6 years agoperldelta - Update modules
Steve Hay [Fri, 20 Oct 2017 18:45:46 +0000 (19:45 +0100)]
perldelta - Update modules

6 years agoSuppress spurious corelist-perldelta.pl warning
Steve Hay [Fri, 20 Oct 2017 18:45:04 +0000 (19:45 +0100)]
Suppress spurious corelist-perldelta.pl warning

6 years agoTeach corelist-perldelta.pl about libnet, podlators and Sub::Util
Steve Hay [Fri, 20 Oct 2017 18:43:41 +0000 (19:43 +0100)]
Teach corelist-perldelta.pl about libnet, podlators and Sub::Util

6 years agoPorting/Maintainers.pl - version's vxs.inc is now CUSTOMIZED as well
Steve Hay [Fri, 20 Oct 2017 07:25:35 +0000 (08:25 +0100)]
Porting/Maintainers.pl - version's vxs.inc is now CUSTOMIZED as well

6 years agoPorting/Maintainers.pl - NEXT is CUSTOMIZED
Steve Hay [Fri, 20 Oct 2017 07:22:33 +0000 (08:22 +0100)]
Porting/Maintainers.pl - NEXT is CUSTOMIZED

6 years agoDeparse.t tweak
Father Chrysostomos [Fri, 20 Oct 2017 04:35:51 +0000 (21:35 -0700)]
Deparse.t tweak

The revert two commits ago causes B::Deparse to go through a different
code path when dumping the constant.  Ideally the output should be the
same either way (i.e., consistently with or without a semicolon, not
sometimes one way and sometimes the other).  But for now, just make
the test more lenient.

6 years agoperldelta for 14062320f
Father Chrysostomos [Fri, 20 Oct 2017 03:14:29 +0000 (20:14 -0700)]
perldelta for 14062320f

6 years agoTemporarily revert CV-in-stash optimisation
Father Chrysostomos [Fri, 20 Oct 2017 01:18:37 +0000 (18:18 -0700)]
Temporarily revert CV-in-stash optimisation

This reverts two hunks from 6881372e19 to allow CPAN modules some time
to conform to the optimisation.

6 years agoUpdate win32/config_H.[gv]c canned configuration files
Steve Hay [Thu, 19 Oct 2017 12:55:03 +0000 (13:55 +0100)]
Update win32/config_H.[gv]c canned configuration files

This is done using the regen_config_h targets in the Windows makefiles,
being careful to restore a couple of things otherwise lost from the
config_H.gc file (a couple of STRINGIFY #undefs, comments above the
HASATTRIBUTE_* #defines, and the #define of HAS_MKSTEMP).

The files are now in sync with the top-level master configuration file,
config_h.SH.

6 years agoUse SvLEN_set/SvCUR_set in a few extra locations
Nicolas R [Mon, 25 Sep 2017 18:37:06 +0000 (13:37 -0500)]
Use SvLEN_set/SvCUR_set in a few extra locations

SvLEN was set without using the generic macro SvLEN_set.
Use it in three extra locations, and also use SvCUR_set
instead of SvCUR.

6 years agoMerge branch 'smoke-me/ilmari/exec-empty-argv' into blead
Dagfinn Ilmari Mannsåker [Wed, 18 Oct 2017 16:04:57 +0000 (17:04 +0100)]
Merge branch 'smoke-me/ilmari/exec-empty-argv' into blead

6 years agoPerldelta for exec PROGRAM LIST with empty LIST
Dagfinn Ilmari Mannsåker [Wed, 18 Oct 2017 11:48:30 +0000 (12:48 +0100)]
Perldelta for exec PROGRAM LIST with empty LIST

6 years ago[perl #131730] Fix exec PROGRAM LIST with empty LIST on VMS
Dagfinn Ilmari Mannsåker [Fri, 1 Sep 2017 11:11:53 +0000 (12:11 +0100)]
[perl #131730] Fix exec PROGRAM LIST with empty LIST on VMS

Only when being Unixish, because I have no idea if
setup_argstr()/vms_do_exec() handle it.

6 years ago[perl #131730] Fix exec PROGRAM LIST with empty LIST
Dagfinn Ilmari Mannsåker [Sat, 22 Jul 2017 18:32:40 +0000 (19:32 +0100)]
[perl #131730] Fix exec PROGRAM LIST with empty LIST

This should call execvp() with an empty argv array (containing only the
terminating NULL pointer), but was instead just returning false (and not
setting $!).

Executing a program with an empty argv array is valid ISO C: it merely
requires argc to be nonnegative and argv[argc] to be NULL.  POSIX states
that that argv[0] "should point to a filename string that is associated
with the process being started", but "should" only applies to
applications claiming strict POSIX conformance.  Perl does not, and
certainly should not impose it on perl programs.

This also requires handling the case where both PROGRAM and LIST are
empty, to avoid calling execvp(NULL, …), which _is_ invalid.  I've made
it return ENOENT, which it the error POSIX specifies for execvp("", …).

6 years agoUpgrade Test-Simple from version 1.302101 to 1.302103
Steve Hay [Wed, 18 Oct 2017 07:29:16 +0000 (08:29 +0100)]
Upgrade Test-Simple from version 1.302101 to 1.302103

6 years agothe unopened test should use a file handle distinct from "OTHER"
Tony Cook [Tue, 17 Oct 2017 03:39:44 +0000 (14:39 +1100)]
the unopened test should use a file handle distinct from "OTHER"

used a name and added a comment so this isn't broken again

6 years ago[perl #127063] suppress warning on assigning 0 to $[
Tony Cook [Mon, 4 Jan 2016 00:13:19 +0000 (11:13 +1100)]
[perl #127063] suppress warning on assigning 0 to $[

6 years agoPERL5LIB documentation: '.' is no longer in @INC by default
Lukas Mai [Mon, 16 Oct 2017 20:39:45 +0000 (22:39 +0200)]
PERL5LIB documentation: '.' is no longer in @INC by default

6 years agocustomise Pod::Perldoc to fix output misbehaviour
Zefram [Sat, 7 Oct 2017 04:17:19 +0000 (05:17 +0100)]
customise Pod::Perldoc to fix output misbehaviour

Pod::Perldoc has, since version 3.20, exhibited various kinds of
misbehaviour relating to a bad default choice of formatter.  Output has
sometimes appeared mangled due to the newly-default formatter emitting
unportable escape sequences, and sometimes there has been a more
severe output failure due to perldoc making unportable changes to pager
configuration in an attempt to make the escape sequences work.  This is
discussed in [perl #131762].  In the upstream instance of the module
there have been tweaks to the unportable behaviour, but not an actual fix.

In order to make the core distro ship a reliably-working version of
perldoc, this patch customises Pod::Perldoc to implement the obvious
fix for the portability problems.  The fixed version defaults to the
ToText formatter, which produces properly plain text that will go through
any pager.  It never attempts any change to pager configuration.