This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Aaron Crane [Sat, 14 Oct 2017 07:45:18 +0000 (09:45 +0200)]
Rely on contents of C89 <limits.h>
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"
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>.
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.
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>.
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>.
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.
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.
Aaron Crane [Fri, 13 Oct 2017 08:03:59 +0000 (10:03 +0200)]
Rely on C89 sprintf() return value semantics
Aaron Crane [Tue, 17 Oct 2017 16:30:18 +0000 (17:30 +0100)]
Use snprintf() in favour of sprintf()
Aaron Crane [Fri, 13 Oct 2017 07:25:14 +0000 (09:25 +0200)]
Rely on C89 <stddef.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.
Aaron Crane [Thu, 12 Oct 2017 22:55:41 +0000 (00:55 +0200)]
Rely on C89 <stdarg.h>
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.
Aaron Crane [Sat, 14 Oct 2017 15:01:19 +0000 (17:01 +0200)]
Don't pretend to determine whether ansi2knr is needed
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).
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.
Aaron Crane [Thu, 12 Oct 2017 15:56:12 +0000 (17:56 +0200)]
Rely on C89 vprintf()
Aaron Crane [Thu, 12 Oct 2017 15:49:34 +0000 (17:49 +0200)]
Rely on C89 sprintf() return type
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.
Aaron Crane [Thu, 12 Oct 2017 15:35:52 +0000 (17:35 +0200)]
Rely on C89 snprintf()
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.
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.
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.
Aaron Crane [Thu, 12 Oct 2017 13:18:42 +0000 (15:18 +0200)]
Assume we have C89 memchr()
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().
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.
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().
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.
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().
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.
Aaron Crane [Sat, 21 Oct 2017 15:42:51 +0000 (16:42 +0100)]
Configure: fix nl_langinfo_l() probe
This corresponds to metaconfig
ad82f5bfbeafc125c0aed2b83391ed8d43bf31b2.
H.Merijn Brand [Sat, 21 Oct 2017 15:41:04 +0000 (17:41 +0200)]
Add Configure changes to perldelta
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!
Steve Hay [Fri, 20 Oct 2017 23:17:00 +0000 (00:17 +0100)]
Today's M::CL is up on CPAN already
Steve Hay [Fri, 20 Oct 2017 23:11:33 +0000 (00:11 +0100)]
Prepare Module::CoreList for 5.27.6
Steve Hay [Fri, 20 Oct 2017 22:54:15 +0000 (23:54 +0100)]
Bump version to 5.27.6
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.
Steve Hay [Fri, 20 Oct 2017 22:41:00 +0000 (23:41 +0100)]
New perldelta for 5.27.6
Steve Hay [Fri, 20 Oct 2017 22:27:06 +0000 (23:27 +0100)]
Tick off 5.27.5
Steve Hay [Fri, 20 Oct 2017 22:26:13 +0000 (23:26 +0100)]
Add epigraph for 5.27.5
Steve Hay [Fri, 20 Oct 2017 20:20:22 +0000 (21:20 +0100)]
Perl 5.27.5 today
Steve Hay [Fri, 20 Oct 2017 20:16:59 +0000 (21:16 +0100)]
Finalize perldelta
Steve Hay [Fri, 20 Oct 2017 20:09:37 +0000 (21:09 +0100)]
Update Module::CoreList for 5.27.5
Steve Hay [Fri, 20 Oct 2017 20:06:10 +0000 (21:06 +0100)]
perldelta - Fix broken links
Steve Hay [Fri, 20 Oct 2017 19:52:32 +0000 (20:52 +0100)]
perldelta - Remove boilerplate
Steve Hay [Fri, 20 Oct 2017 19:47:46 +0000 (20:47 +0100)]
perldelta - Update selected bug fixes etc
Steve Hay [Fri, 20 Oct 2017 18:45:46 +0000 (19:45 +0100)]
perldelta - Update modules
Steve Hay [Fri, 20 Oct 2017 18:45:04 +0000 (19:45 +0100)]
Suppress spurious corelist-perldelta.pl warning
Steve Hay [Fri, 20 Oct 2017 18:43:41 +0000 (19:43 +0100)]
Teach corelist-perldelta.pl about libnet, podlators and Sub::Util
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
Steve Hay [Fri, 20 Oct 2017 07:22:33 +0000 (08:22 +0100)]
Porting/Maintainers.pl - NEXT is CUSTOMIZED
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.
Father Chrysostomos [Fri, 20 Oct 2017 03:14:29 +0000 (20:14 -0700)]
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.
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.
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.
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
Dagfinn Ilmari Mannsåker [Wed, 18 Oct 2017 11:48:30 +0000 (12:48 +0100)]
Perldelta for exec PROGRAM LIST with empty LIST
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.
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("", …).
Steve Hay [Wed, 18 Oct 2017 07:29:16 +0000 (08:29 +0100)]
Upgrade Test-Simple from version 1.302101 to 1.302103
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
Tony Cook [Mon, 4 Jan 2016 00:13:19 +0000 (11:13 +1100)]
[perl #127063] suppress warning on assigning 0 to $[
Lukas Mai [Mon, 16 Oct 2017 20:39:45 +0000 (22:39 +0200)]
PERL5LIB documentation: '.' is no longer in @INC by default
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.
Tony Cook [Tue, 17 Nov 2015 00:56:12 +0000 (11:56 +1100)]
[perl #124349] deprecation warning on hostname() with arguments
Nicolas R [Mon, 25 Sep 2017 17:18:28 +0000 (12:18 -0500)]
Use preprocessor check for some DEBUG_X_TEST
Most of the DEBUG_?_TEST calls are already protected
by one '#idef DEBUGGING' check, but noticed a few of them
which were not protected in sv.c and toke.c
We should avoid these extra 'if' statements if perl
is not compiled with debug option: -DDEBUGGING.
Tony Cook [Wed, 27 Sep 2017 05:27:14 +0000 (15:27 +1000)]
(perl #131982) update the set/getpriority documentation too
Tony Cook [Wed, 27 Sep 2017 05:18:17 +0000 (15:18 +1000)]
(perl #131982) provide constants for get/setpriority in POSIX.pm
<sys/time.h> isn't necessarily needed, but apparently increases
portability, since the rusage structure defined in <sys/resource.h>
has struct timeval members.
James E Keenan [Thu, 28 Sep 2017 00:34:09 +0000 (20:34 -0400)]
Document that POSIX::abs, ::alarm, ::atan2, ::chdir, ::chmod need explicit argument.
Reformat code in one foreach block for readability. Make podcheck happy.
For: RT #132145
Aaron Crane [Sun, 15 Oct 2017 10:01:08 +0000 (12:01 +0200)]
pp.c: delete dead cpp-conditional declaration
This was added in commit
dfe9444ca7881e716e9e8feaf20b55da491363ca (February
1998, for Perl 5.004_60) by Andy Dougherty, and its comment says that, even
then, he thought it was unneeded. But the perl5 repo has ever defined the
NEED_GETPID_PROTO cpp symbol that guards this declaration, so this ability
has clearly never been used.
Smylers [Thu, 12 Oct 2017 13:18:40 +0000 (14:18 +0100)]
Remove out-of-date mention of USA president
Avoid having to continue to update this every time the president changes
by replacing Barack Obama with Ada Lovelace.
Aaron Crane [Thu, 16 Mar 2017 12:33:59 +0000 (12:33 +0000)]
RT#131000: splice doesn't honour read-only flag
The push and unshift builtins were correctly throwing a "Modification of a
read-only value attempted" exception when modifying a read-only array, but
splice was silently modifying the array. This commit adds tests that all
three builtins throw such an exception.
One discrepancy between the three remains: push has long silently accepted
a push of no elements onto an array, whereas unshift throws an exception in
that situation. This seems to have been originally a coincidence. The
pp_unshift implementation first makes space for the elements it unshifts
(which croaks for a read-only array), then copies the new values into the
space thus created. The pp_push implementation, on the other hand, calls
av_push() individually on each element; that implicitly croaks, but only one
there's at least one element being pushed.
The pp_push implementation has subsequently been changed: read-only checking
is now done first, but that was done to fix a memory leak. (If the av_push()
itself failed, then the new SV that had been allocated for pushing onto the
array would get leaked.) That leak fix specifically grandfathered in the
acceptance of empty-push-to-readonly-array, to avoid changing behaviour.
I'm not fond of the inconsistency betwen push on the one hand and unshift &
splice on the other, but I'm disinclined to make empty-push-to-readonly
suddenly start throwing an exception after all these years, and it seems
best not to extend that exemption-from-exception to the other builtins.
Dmitry Ulanov [Fri, 13 Oct 2017 15:14:49 +0000 (17:14 +0200)]
Use library functions instead of manual TAP in t/io/tell.t.
Committer: minor corrections to descriptions.
Dmitry Ulanov is now a Perl author.
For: RT #132276
Lukas Mai [Sat, 14 Oct 2017 16:03:17 +0000 (18:03 +0200)]
hints/aix.sh: remove trailing spaces
H.Merijn Brand [Sat, 14 Oct 2017 15:01:40 +0000 (17:01 +0200)]
miniperl also needs -Ilib for perl.exp on AIX etc
Dominic Hargreaves [Sat, 14 Oct 2017 14:19:51 +0000 (16:19 +0200)]
Document that -I. is now needed with -MTestInit
H.Merijn Brand [Sat, 14 Oct 2017 13:55:08 +0000 (15:55 +0200)]
g++ is like gcc on AIX too
note that we cannot use g*, as AIX/vac ships gxlc as xlc with gcc-like
option handling
Lukas Mai [Sat, 14 Oct 2017 12:45:41 +0000 (14:45 +0200)]
delete unused file from SDBM_File
Lukas Mai [Sat, 14 Oct 2017 12:42:20 +0000 (14:42 +0200)]
get rid of "implicit fallthrough" warnings in SDBM_File
Lukas Mai [Sat, 14 Oct 2017 12:39:36 +0000 (14:39 +0200)]
SDBM_File: tabs -> spaces
Aaron Crane [Sat, 14 Oct 2017 12:56:23 +0000 (14:56 +0200)]
Delete dead mktemp() call
Commit
9c12f1e5a87cce227357eea4b0780c0323f952f0 provided support for Cray
XT4 Catamount/Qk. It added some code with a call to (insecure) mktemp(),
guarded with "#ifdef HAS_MKTEMP". But nothing has ever attempted to define
that preprocessor symbol (including the hints file that was added in that
commit), so this is clearly unused.
Lukas Mai [Sat, 14 Oct 2017 12:24:02 +0000 (14:24 +0200)]
fix comment on GCC_DIAG_IGNORE/GCC_DIAG_RESTORE
Lukas Mai [Sat, 14 Oct 2017 12:21:25 +0000 (14:21 +0200)]
actually fix "implicit fallthrough" warnings in gcc 7
Yves Orton [Sat, 14 Oct 2017 12:06:20 +0000 (14:06 +0200)]
remove the GCC_DIAG_RESTORE pragma as well
Yves Orton [Sat, 14 Oct 2017 11:55:53 +0000 (13:55 +0200)]
remove GCC_DIAG_IGNORE from sbox32_hash.h
Yves Orton [Sat, 14 Oct 2017 11:42:47 +0000 (13:42 +0200)]
fixups for portability
a) some platforms want #define to start at col 0
b) some compilers want to know whether fallthrough is expected or not.
Aaron Crane [Sat, 14 Oct 2017 10:42:20 +0000 (12:42 +0200)]
Delete unused files from ext/SDBM_File
Lukas Mai [Fri, 13 Oct 2017 21:22:11 +0000 (23:22 +0200)]
skip bench.t if valgrind is installed but broken
Lukas Mai [Fri, 13 Oct 2017 20:58:40 +0000 (22:58 +0200)]
use standard STMT_START/STMT_END macros in STATIC_ASSERT_STMT
Lukas Mai [Fri, 13 Oct 2017 20:34:25 +0000 (22:34 +0200)]
avoid gcc 7 warning about * in boolean context
Lukas Mai [Fri, 13 Oct 2017 20:16:30 +0000 (22:16 +0200)]
get rid of "implicit fallthrough" warnings in ext/re/re_exec.c
Lukas Mai [Fri, 13 Oct 2017 17:50:24 +0000 (19:50 +0200)]
get rid of "implicit fallthrough" warnings with gcc 7
Dominic Hargreaves [Fri, 13 Oct 2017 14:31:03 +0000 (16:31 +0200)]
Fix typo in comment about Configure modification
Dominic Hargreaves [Fri, 13 Oct 2017 14:16:51 +0000 (16:16 +0200)]
Clarify policy on updates to Configure
Dominic Hargreaves [Fri, 13 Oct 2017 13:01:32 +0000 (15:01 +0200)]
Further metaconfig updates to Porting/pumpkin.pod
Dominic Hargreaves [Fri, 13 Oct 2017 12:49:03 +0000 (14:49 +0200)]
Add Porting/mksample
This script was previously in the metaconfig repository, and also dealt
with updating Porting/Glossary, but it wasn't being regularly used.
It does not use any data from that repository, so is better placed
here.
There are some outstanding ambiguities to resolve in when this script
should be run in the documentation, since the generated files
Porting/config.sh and Porting/config_H are also updated by other
means.
H.Merijn Brand [Fri, 13 Oct 2017 13:01:56 +0000 (15:01 +0200)]
Actually test for memrchr in VMS
Chris 'BinGOs' Williams [Fri, 13 Oct 2017 12:25:29 +0000 (13:25 +0100)]
Update Config-Perl-V to CPAN version 0.29
[DELTA]
0.29 - 12 Oct 2017, H.Merijn Brand
* It's 2017
* Add test for 5.26.1-RC1
* Fix signature with argument
* Ignore ccache and compiler path in signature