This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Yves Orton [Sun, 4 Oct 2015 12:13:44 +0000 (14:13 +0200)]
fix perl-126222 - (?!) OPFAIL optimization does work in (?(?!)yes|no)
OPFAIL should trigger the no branch when used in this context
Thanks to Victor Adam for the report.
Yves Orton [Sun, 4 Oct 2015 12:04:51 +0000 (14:04 +0200)]
Add a todo test for perl-126222
Yves Orton [Sun, 4 Oct 2015 11:21:25 +0000 (13:21 +0200)]
regcomp.c: make an expression more legible
Chris 'BinGOs' Williams [Sat, 3 Oct 2015 17:58:57 +0000 (18:58 +0100)]
Update Devel-PPPort to CPAN version 3.32
[DELTA]
3.32 - 2015-09-30
* Lexical topic no longer works as of perl 5.23
Chris 'BinGOs' Williams [Sat, 3 Oct 2015 17:56:56 +0000 (18:56 +0100)]
Update Perl-OSType to CPAN version 1.009
[DELTA]
1.009 2015-09-21 10:09:35-04:00 America/New_York
[ADDED]
- Added 'sco' as a Unix-type OS
Chris 'BinGOs' Williams [Sat, 3 Oct 2015 17:56:02 +0000 (18:56 +0100)]
Update experimental to CPAN version 0.015
[DELTA]
0.015 2015-10-03 14:21:18+02:00 Europe/Amsterdam
Make lexical_topic a deprecated feature
Jarkko Hietaniemi [Fri, 2 Oct 2015 23:15:33 +0000 (19:15 -0400)]
Resort MANIFEST for
95318fb6
(somehow in smokes and Jenkins the porting/manifest.t passed?)
Jarkko Hietaniemi [Fri, 2 Oct 2015 22:35:58 +0000 (18:35 -0400)]
[MERGE] branch symbol-cleanup
Cleanup unused Configure symbols.
- d_modfl_pow32_bug
- filesystem stat
- sendmsg/recvmsg
Use I_SYS_POLL.
Add a script for doing this kind of symbol cross-referencing.
There are plenty of remaining unused symbols, but these were
just some of the easy ones.
Jarkko Hietaniemi [Mon, 17 Aug 2015 00:15:11 +0000 (20:15 -0400)]
Use <sys/poll.h> if available before going select().
Some BSD implementations might have <sys/poll.h> instead of <poll.h>.
Noticed while looking for unused symbols.
Jarkko Hietaniemi [Thu, 1 Oct 2015 22:59:18 +0000 (18:59 -0400)]
uconfig.h regen
Jarkko Hietaniemi [Mon, 17 Aug 2015 00:24:17 +0000 (20:24 -0400)]
Remove unused BSD sendmsg/recvmg symbols.
Unused in CPAN, too. There are uses of these symbols,
but under the Socket:: namespace.
Jarkko Hietaniemi [Sun, 16 Aug 2015 20:02:59 +0000 (16:02 -0400)]
Remove unused d_modfl_pow32_bug symbol.
Even if the bug might still be present in ancient versions of glibc,
there's no code in the current Perl core using that.
Jarkko Hietaniemi [Sat, 15 Aug 2015 16:54:08 +0000 (12:54 -0400)]
Remove unused filesystem stat symbols.
d_fs_data_s HAS_STRUCT_FS_DATA
d_fstatfs HAS_FSTATFS
d_fstatvfs HAS_FSTATVFS
d_getfsstat HAS_GETFSSTAT
d_getmnt HAS_GETMNT
d_getmntent HAS_GETMNTENT
d_hasmntopt HAS_HASMNTOPT
d_statfs_f_flags HAS_STRUCT_STATFS_F_FLAGS
d_statfs_s HAS_STRUCT_STATFS
d_ustat HAS_USTAT
i_mntent I_MNTENT
i_sysmount I_SYS_MOUNT
i_sysstatfs I_SYS_STATFS
i_sysstatvfs I_SYS_STATVFS
i_sysvfs I_SYS_VFS
i_ustat I_USTAT
Unused by the Perl core.
As far as I can remember I added these scans long ago, for some
purpose (df(1) kind of APIs?) but whatever it was, it obviously
hasn't exactly caught fire in the last 15 years.
Some rare uses of these APIs (not these defines, but e.g. statfs)
in CPAN (like the Quota module), but those seem to do their own
configuration.
Jarkko Hietaniemi [Sat, 15 Aug 2015 15:24:58 +0000 (11:24 -0400)]
Script for checking config symbol use.
Ricardo Signes [Fri, 2 Oct 2015 16:16:40 +0000 (12:16 -0400)]
remove documentation for the now-removed lexical topic
David Mitchell [Fri, 2 Oct 2015 16:19:22 +0000 (17:19 +0100)]
given(): remove support for lexical $_
There is dead code that used to allow
my $_;
...
given ($foo) {
# lexical $_ aliased to $foo here
}
Now that lexical $_ has been removed, remove the code. I've left the
signatures of the newFOO() functions unchanged; they just expect a target
of 0 to always be passed now.
Ricardo Signes [Fri, 2 Oct 2015 15:42:18 +0000 (11:42 -0400)]
add removal of lexical topic to perldelta
David Mitchell [Fri, 2 Oct 2015 10:43:41 +0000 (11:43 +0100)]
[MERGE] EXTEND(), XSRETURN() wrap issues
Doug Bell [Wed, 3 Jun 2015 03:39:09 +0000 (22:39 -0500)]
add tests for XSRETURN* macros
Doug Bell [Wed, 3 Jun 2015 03:34:42 +0000 (22:34 -0500)]
add assertion to prevent stack corruption in XSUB
We should not be able to return negative offsets from the stack in
XSUBs.
David Mitchell [Mon, 21 Sep 2015 13:49:22 +0000 (14:49 +0100)]
fix up EXTEND() callers
The previous commit made it clear that the N argument to EXTEND()
is supposed to be signed, in particular SSize_t, and now typically
triggers compiler warnings where this isn't the case.
This commit fixes the various places in core that passed the wrong sort of
N to EXTEND(). The fixes are in three broad categories.
First, where sensible, I've changed the relevant var to be SSize_t.
Second, where its expected that N could never be large enough to wrap,
I've just added an assert and a cast.
Finally, I've added extra code to detect whether the cast could
wrap/truncate, and if so set N to -1, which will trigger a panic in
stack_grow().
This also fixes
[perl #125937] 'x' operator on list causes segfault with possible
stack corruption
David Mitchell [Mon, 7 Sep 2015 14:00:32 +0000 (15:00 +0100)]
make EXTEND() and stack_grow() safe(r)
This commit fixes various issues around stack_grow() and its
two main wrappers, EXTEND() and MEXTEND(). In particular it behaves
very badly on systems with 32-bit pointers but 64-bit ints.
One noticeable effect of this is commit is that various usages of EXTEND()
etc will now start to give compiler warnings - usually because they're
passing an unsigned N arg when it should be signed. This may indicate
a logic error in the caller's code which needs fixing. This commit causes
several such warnings to appear in core code, which will be fixed in the
next commit.
Essentially there are several potential false negatives in this basic
code:
if (PL_stack_max - p < (SSize_t)(n))
stack_grow(sp,p,(SSize_t)(n));
where it incorrectly skips the call to stack_grow() and then the caller
tramples over the end of the stack because it assumes that it has in fact
been extended. The value of N passed to stack_grow() can also potentially
get truncated or wrapped.
Note that the N arg of stack_grow() is SSize_t and EXTEND()'s N arg is
documented as SSize_t. In earlier times, they were both ints.
Significantly, this means that they are both signed, and always have been.
In detail, the problems and their solutions are:
1) N is a signed value: if negative, it could be an indication of a
caller's invalid logic or wrapping in the caller's code. This should
trigger a panic. Make it so by adding an extra test to EXTEND() to
always call stack_grow if negative, then add a check and panic in
stack_grow() (and other places too). This extra test will be constant
folded when EXTEND() is called with a literal N.
2) If the caller passes an unsigned value of N, then the comparison is
between a signed and an unsigned value, leading to potential
wrap-around. Casting N to SSize_t merely hides any compiler warnings,
thus failing to alert the caller to a problem with their code. In
addition, where sizeof(N) > sizeof(SSize_t), the cast may truncate N,
again leading to false negatives. The solution is to remove the cast,
and let the caller deal with any compiler warnings that result.
3) Similarly, casting stack_grow()'s N arg can hide any warnings issued by
e.g. -Wconversion. So remove it. It still does the wrong thing if the
caller uses a non-signed type (usually a panic in stack_grow()), but
coders have slightly more chance of spotting issues at compile time
now.
4) If sizeof(N) > sizeof(SSize_t), then the N arg to stack_grow() may get
truncated or sign-swapped. Add a test for this (basically that N is too
big to fit in a SSize_t); for simplicity, in this case just set N to
-1 so that stack_grow() panics shortly afterwards. In platforms where
this can't happen, the test is constant folded away.
With all these changes, the macro now looks in essence like:
if ( n < 0 || PL_stack_max - p < n)
stack_grow(sp,p,
(sizeof(n) > sizeof(SSize_t) && ((SSize_t)(n) != n) ? -1 : n));
David Mitchell [Wed, 9 Sep 2015 12:02:40 +0000 (13:02 +0100)]
fix some 32/64-bit compiler warnings
Some bits of code don't do well on a 32-bit system with 64-bit ints
(-Duse64bitint)
In particular:
_MEM_WRAP_NEEDS_RUNTIME_CHECK:
if sizeof(MEM_SIZE) > sizeof(n), then the shift count could be
negative
S_regmatch:
ln and n were two different sizes and signesses, so comparing them
warned. Since they were being mis-used as two convenient temporary
booleans anyway, just use temporary booleans instead.
Perl_sv_vcatpvfn_flags:
the test/assertion (IV)elen < 0 was (I think) being used to test for
signed/unsigned conversion wrap-around. elen is of type STRLEN which
is a pointer-based type, so can be 32-bit while IV is 64-bit. Instead
compare it to half the maximum value of a STRLEN var to see if it may
have wrapped.
Karen Etheridge [Thu, 1 Oct 2015 04:30:20 +0000 (21:30 -0700)]
Upgrade Module-Metadata from 1.000027 to 1.000029-TRIAL
1.000029 2015-09-11 16:25:43Z (TRIAL RELEASE)
- fix missing "use" statement in refactored test helper (only affected older
perls, due to other module interactions)
1.000028 2015-09-11 04:24:39Z (TRIAL RELEASE)
- refactored and expanded test cases
- fixed a $VERSION extraction issue on perl 5.6.2 (RT#105978, PR#17)
- fix the detection of package Foo when $Foo::VERSION is set (RT#85961)
from
https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Metadata-1.000029-TRIAL.tar.gz
distribution files omitted:
CONTRIBUTING
Changes
INSTALL
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README
dist.ini
t/00-report-prereqs.dd
t/00-report-prereqs.t
weaver.ini
xt/author/00-compile.t
xt/author/compat_lc.t
xt/author/eol.t
xt/author/kwalitee.t
xt/author/mojibake.t
xt/author/no-tabs.t
xt/release/changes_has_content.t
xt/release/cpan-changes.t
xt/release/distmeta.t
xt/release/minimum-version.t
xt/release/pod-coverage.t
xt/release/pod-no404s.t
xt/release/pod-syntax.t
xt/release/portability.t
Karen Etheridge [Thu, 1 Oct 2015 01:44:35 +0000 (18:44 -0700)]
add licensing information to pod
Karl Williamson [Wed, 18 Jun 2014 00:49:53 +0000 (18:49 -0600)]
perlapi: Clarify process of using undocumented globals
One should send email to p5p first to get the go-ahead for documenting
and using an undocumented function or global variable.
Nicholas Clark [Wed, 30 Sep 2015 15:31:26 +0000 (17:31 +0200)]
Add a test for a goto regression from Aug 2010 fixed in Oct 2014.
An obscure bug involving goto within the same scope in the presence of
compile-time optimised away blocks was introduced in Aug 2010 by commit
ac56e7de46621c6f, "Peephole optimise adjacent pairs of nextstate ops."
The bug was fixed in Oct 2014 by commit
f5b5c2a37af87535, "Simplify
double-nextstate optimisation"
Add a test, to ensure that we don't regress.
Ricardo Signes [Wed, 30 Sep 2015 11:49:40 +0000 (07:49 -0400)]
document the specific value of $!{E...}
...and note that it is subject to change and not guaranteed
Karl Williamson [Tue, 29 Sep 2015 17:55:02 +0000 (11:55 -0600)]
perlfunc: Nit
Ricardo Signes [Tue, 29 Sep 2015 15:16:52 +0000 (11:16 -0400)]
Merge branch 'remove-lexical-topic' into blead
Father Chrysostomos [Wed, 19 Aug 2015 21:39:15 +0000 (14:39 -0700)]
Match ops no longer need OPpTARGET_MY
Actually, I don’t think they have needed it for a while.
Father Chrysostomos [Wed, 19 Aug 2015 21:30:40 +0000 (14:30 -0700)]
Remove OPpGREP_LEX
It is no longer used.
Father Chrysostomos [Wed, 19 Aug 2015 21:30:08 +0000 (14:30 -0700)]
Stop using OPpGREP_LEX at run time
It is no longer set.
Father Chrysostomos [Wed, 19 Aug 2015 21:23:56 +0000 (14:23 -0700)]
op.c: Stop searching for lexical $_
at compile time.
Father Chrysostomos [Wed, 19 Aug 2015 21:22:39 +0000 (14:22 -0700)]
pp.c:pp_reverse: Don’t use find_rundefsv
It just calls DEFSV now, so use DEFSV directly.
Father Chrysostomos [Wed, 19 Aug 2015 21:21:50 +0000 (14:21 -0700)]
Remove find_rundefsv2
It was never public, and was only written for the sake of pp_coreargs,
which no longer uses it.
Father Chrysostomos [Wed, 19 Aug 2015 21:20:36 +0000 (14:20 -0700)]
In pp.c:pp_coreargs, use DEFSV directly
rundefsv2 is only necessary for lexical $_. It’s slower than a simple
DEFSV, which is what it falls back to anyway.
Father Chrysostomos [Wed, 19 Aug 2015 21:17:43 +0000 (14:17 -0700)]
Gut public rundefsv functions
As long as the lexical $_ syntax is disabled anyway, this is what they
would return.
Father Chrysostomos [Wed, 19 Aug 2015 21:16:39 +0000 (14:16 -0700)]
Bump $warnings::VERSION to 1.34
Father Chrysostomos [Wed, 19 Aug 2015 21:14:42 +0000 (14:14 -0700)]
Remove arybase lexical $_ tests
Father Chrysostomos [Wed, 19 Aug 2015 20:12:11 +0000 (13:12 -0700)]
Remove experimental::lexical_topic warnings category
Father Chrysostomos [Wed, 19 Aug 2015 20:10:16 +0000 (13:10 -0700)]
Disable lexical $_
This just disables the syntax and modifes the tests. The underlying
infrastructure has not been removed yet.
I had to change a couple of tests in cpan/.
Craig A. Berry [Sat, 26 Sep 2015 22:24:57 +0000 (17:24 -0500)]
killpg for VMS.
Implement our own killpg by scanning for processes in the specified
process group, which may not mean exactly the same thing as a Unix
process group, but at least we can now send a signal to a parent (or
master) process and all of its sub-processes. In Perl-land, this
means we can now send a negative pid like so:
kill SIGKILL, -$pid;
to signal all processes in the same group as $pid.
Karl Williamson [Thu, 3 Sep 2015 00:00:55 +0000 (18:00 -0600)]
Make ext/XS-APItest/t/cophh.t work on EBCDIC
The new EBCDIC-only code will also work on ASCII platforms, but I left
the ASCII code as-is.
Karl Williamson [Wed, 23 Sep 2015 03:31:02 +0000 (21:31 -0600)]
t/re/pat.t: EBCDIC fix
Jarkko Hietaniemi [Fri, 25 Sep 2015 12:10:45 +0000 (08:10 -0400)]
Clarify FIRSTKEY and NEXTKEY usage.
Rafael Garcia-Suarez [Fri, 25 Sep 2015 07:29:28 +0000 (09:29 +0200)]
POD fix in the documentation for SvTHINKFIRST
Tony Cook [Tue, 22 Sep 2015 23:33:50 +0000 (09:33 +1000)]
[perl #126133] autodie touches its touch_me, make it writable
autodie's utime.t touches touch_me, in a git checkout that's fine
since the file is writable, but in a distribution, all files are
read-only by default, and on Win32 the utime() call the test expects
to succeed fails.
Per Sisyphus's note, also make win32/GNUmakefile writable to match the
other Win32 makefiles, since they're often modified to configure the
build.
Chris 'BinGOs' Williams [Tue, 22 Sep 2015 22:52:05 +0000 (23:52 +0100)]
Fix typo and Module-CoreList is 5.
20150920 on the CPAN now
Peter Martini [Mon, 21 Sep 2015 13:19:14 +0000 (09:19 -0400)]
Update Module::CoreList
Peter Martini [Mon, 21 Sep 2015 12:37:35 +0000 (08:37 -0400)]
Bump the perl version in various places for 5.23.4.
Peter Martini [Mon, 21 Sep 2015 11:28:16 +0000 (07:28 -0400)]
Update release_schedule
Tick off 5.23.3
Peter Martini [Mon, 21 Sep 2015 11:27:05 +0000 (07:27 -0400)]
Porting/new-perldelta.pl regenerations
Peter Martini [Mon, 21 Sep 2015 11:04:57 +0000 (07:04 -0400)]
Add epigraph for 5.23.3
Peter Martini [Mon, 21 Sep 2015 01:38:35 +0000 (21:38 -0400)]
Add 5.23.3 to perlhist
Peter Martini [Mon, 21 Sep 2015 01:28:13 +0000 (21:28 -0400)]
Finalize perldelta with Acknowledgments
Peter Martini [Mon, 21 Sep 2015 00:11:37 +0000 (20:11 -0400)]
Update Module::CoreList for 5.23.3
Peter Martini [Mon, 21 Sep 2015 01:19:58 +0000 (21:19 -0400)]
perldelta updates for 5.23.3
Peter Martini [Mon, 21 Sep 2015 01:46:53 +0000 (21:46 -0400)]
Remove unneeded ", from perldiag entry
Father Chrysostomos [Sun, 20 Sep 2015 22:07:36 +0000 (15:07 -0700)]
op.c: ck_match does not use its context
g++ told me so.
Father Chrysostomos [Sun, 20 Sep 2015 22:06:39 +0000 (15:06 -0700)]
[perl #126064] Apply scalar context to stat args
If we don’t apply scalar context to stat’s argument, then it doesn’t
get its context marked:
$ ./perl -Ilib -MO=Concise -le 'stat stat stat'
7 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
6 <1> stat vK/1 ->7
5 <1> stat K/1 ->6
4 <1> stat K/1 ->5
- <1> ex-rv2sv sK/1 ->4
3 <#> gvsv[*_] s ->4
-e syntax OK
and it might think that it is in void context at run time:
$ ./perl -Ilib -le 'print 1, 2, 3,(stat stat stat), 4, 5, 6'
1456
It ate my stack items!
If it reads past the beginning of the stack, it can crash.
Just apply scalar context, and Bob’s your uncle, of course.
Craig A. Berry [Sun, 20 Sep 2015 02:54:02 +0000 (21:54 -0500)]
Remove VMS-specific bits of OP_KILL.
The rationale for this change almost twenty years ago was that
the "CRTL's emulation of Unix-style signals and kill()" couldn't
send signals that got noticed by images running in supervisor
mode. This hasn't been true of the CRTL for some time, and we
haven't been using the CRTL's kill for a very long time either.
So remove this once-but-no-longer-necessary hack. Experiments
show that it is still possible to kill any process we want,
assuming the signalling process has the necessary privileges (or
owns the target process).
TODO: implement killpg() -- if Win32 can do it, surely it's
possible on VMS.
Karl Williamson [Thu, 27 Aug 2015 05:16:35 +0000 (23:16 -0600)]
Add API tests for utf8.h macros
Karl Williamson [Mon, 3 Aug 2015 03:20:44 +0000 (21:20 -0600)]
Change meaning of UNI_IS_INVARIANT on EBCDIC platforms
This should make more CPAN and other code work without change. Usually,
unwittingly, code that says UNI_IS_INVARIANT means to use the native
platform code values for code points below 256, so acquiesce to the
expected meaning and make the macro correspond. Since the native values
on ASCII machines are the same as Unicode, this change doesn't affect
code running on them.
A new macro, OFFUNI_IS_INVARIANT, is created for those few places that
really do want a Unicode value. There are just a few places in the Perl
core like that, which this commit changes.
Ricardo Signes [Fri, 18 Sep 2015 17:29:43 +0000 (13:29 -0400)]
Update Encode to CPAN version 2.77
[DELTA]
$Revision: 2.77 $ $Date: 2015/09/15 13:53:27 $
! Unicode/Unicode.xs Unicode/Unicode.pm
Address RT#107043: If no BOM is found, the routine dies.
When you decode from UTF-(16|32) without -BE or LE without BOM,
Encode now assumes BE accordingly to RFC2781 and the Unicode
Standard version 8.0
https://rt.cpan.org/Public/Bug/Display.html?id=107043
! Makefile.PL encoding.t
Mend pull/42
! Encode.xs Makefile.PL encoding.pm encoding.t
Pulled: precompile 1252 table as that is now the Pod::Simple default
https://github.com/dankogai/p5-encode/pull/42
Shlomi Fish [Fri, 4 Sep 2015 19:26:12 +0000 (22:26 +0300)]
Tentative fix for RT#125350 - AFL detected crash.
Craig A. Berry [Wed, 16 Sep 2015 23:52:32 +0000 (18:52 -0500)]
Make MM_VMS::oneline build continuation lines properly.
Tracking upstream commit
dd1e236abed699069 because without
it the build is broken.
Daniel Dragan [Sun, 13 Sep 2015 03:30:46 +0000 (23:30 -0400)]
Win32 misc parallel fixes in win32/makefile.mk
-reonly/Extensions_reonly target, which is never used, didn't work in
parallel because it was using left to right execution of an upstream dep
to create build products, that is incompatible with parallel building, fix
by trimming down the list of deps, $(UNIDATAFILES) and Extensions_reonly
know how to build themselves
-regnodes psuedotarget is redundant, it is just an alias for ..\regnodes.h
which isn't a build product, remove regnodes and just use ..\regnodes.h
instead, smaller build graph/less parsing for dmake tool
-I am not questioning relationship between reonly, ..\regnodes.h,
..\regcharclass.h, ..\regcomp.o, $(UNIDATAFILES), Extensions_reonly
since regnodes.h and regcharclass.h are git tracked files and not build
products, and things work well enough as is
-perlglob.exe is needed to build extensions, the natural race conditions
that exist in parallel building ment that it was usually getting built
early enough that it being missing wasn't noticed, and "rebasePE" target
made sure it existed eventually. Some Makefile.PLs indirectly warned that
perlglob was missing from the cmd.exe complaining about perlglob being
missing but didnt cause an non-zero to happen from the Makefile.PL
process. Also since perlglob.exe is installed into the final installed
perl, probably pointlessly since full perl is not built with
PERL_EXTERNAL_GLOB I think an installed perl's perlglob.exe was being
used when I developed commit
3bdc51af3f and related patches. Since re,
DynaLoader, and lib are a very limited fixed list of modules, and they
dont need perlglob.exe, they dont need to get it as a dep.
-reorder the deps in Extensions_static and Extensions_nonxs so permanent
files, rarely changed files are on the left side, and build products are
on the right. Maybe some kind of optimization happens inside dmake due to
the first couple deps being already built (because they are permanent).
-remove ..\lib\buildcustomize.pl dep, it is redundant. Its other name is
HAVEMINIPERL, and CONFIGPM can't exist without miniperl. Less nodes in
dmake's internal graph, since dmake's dep finding algorithm is very
inefficient and repetitive.
-gmake is supported since commit
342634f3c8 but GNUmakefile doesn't
support parallel (-j) building
Nicolas R [Fri, 11 Sep 2015 14:23:39 +0000 (09:23 -0500)]
Remove legacy/dead code from B
B was still using some PERL_VERSION checks
in multiple places whereas it's part of core.
This commit removes this dead code and bump B::VERSION.
For archeology we can still use git if we want to know
what it looks like in an older version.
Karl Williamson [Wed, 16 Sep 2015 21:58:27 +0000 (15:58 -0600)]
regexec.c: Use Perl_croak_nocontext()
Instead of doing a dTHX introduced in
22b433eff9a1ffa2454e18405a56650f07b385b5. I should have pointed out in
that commit message, that instead of doing a full-fledged UTF-8
well-formedness check, it does a quick sanity check sufficient to
prevent looping
Spotted by Vincent Pitt
Jarkko Hietaniemi [Wed, 16 Sep 2015 21:05:19 +0000 (17:05 -0400)]
Revert "amigaos4: flock unimplemented"
This reverts commit
24631c4f6929bc824e657b74b2edfada4c8d05b0.
The new flock emulation for amigaos now tested with parallel builds
and found to fare well.
Karl Williamson [Wed, 16 Sep 2015 20:34:31 +0000 (14:34 -0600)]
PATCH [perl #123562] Regexp-matching "hangs"
The regex engine got into an infinite loop because of the malformation.
It is trying to back-up over a sequence of UTF-8 continuation bytes.
But the character just before the sequence should be a start byte. If
not, there is a malformation. I added a test to croak if that isn't the
case so that it doesn't just infinitely loop. I did this also in the
similar areas of regexec.c.
Comments long ago added to the code suggested that we check for
malformations in the vicinity of the new tests. But that was never
done. These new tests should be good enough to prevent looping, anyway.
Karl Williamson [Wed, 16 Sep 2015 14:48:29 +0000 (08:48 -0600)]
regcomp.c: Safer handling of malformed UTF-8
This commit just changes a test to look for UTF-8 invariants instead of
legal UTF-8 start characters. The effective difference is that now all
non-invariants go to the general utf8 handling function, which is
equipped to find malformed UTF-8. Previously, this code would
improperly accept malformations that were illegal start characters or
continuation characters.
Zachary Storer [Wed, 16 Sep 2015 18:02:11 +0000 (12:02 -0600)]
Add 2 books to perlbook
Karl Williamson [Wed, 16 Sep 2015 18:00:52 +0000 (12:00 -0600)]
Add Zachary Storer to AUTHORS
Karl Williamson [Wed, 16 Sep 2015 17:56:44 +0000 (11:56 -0600)]
perlbook: Decrease indent of verbatim lines
so that fewer are likely to exceed 79 columns
Karl Williamson [Wed, 16 Sep 2015 17:45:42 +0000 (11:45 -0600)]
perlbook: Add some L<> links
Jarkko Hietaniemi [Tue, 15 Sep 2015 13:05:11 +0000 (09:05 -0400)]
amigaos4: whitespace only, in amigaos4/
Consistent formatting (and using "Andy Broad" style) for the amigaos4 code:
astyle --style=bsd --indent=tab=4 amigaos4/*.[hc]
(amigaos patch preparation script automates this)
Andy Broad [Sun, 13 Sep 2015 21:40:23 +0000 (17:40 -0400)]
amigaos4: whitespace only
For preprocessor code use 2-indent instead of 4-indent.
Andy Broad [Sun, 13 Sep 2015 18:53:59 +0000 (14:53 -0400)]
amigaos4: use #ifdef/ifndef __amigaos4__ when feasible
Andy Broad [Mon, 14 Sep 2015 14:28:14 +0000 (10:28 -0400)]
amigaos4: declare the amigaos protos in amigaos.h
Andy Broad [Tue, 15 Sep 2015 13:01:12 +0000 (09:01 -0400)]
amigaos4: better kill() implementation
(the underlying UNIX emulation has changed)
Andy Broad [Sun, 13 Sep 2015 23:55:41 +0000 (19:55 -0400)]
amigaos4: implement flock() emulation
Beware: not an exact implementation, the locks follow the OS level
filehandle not the process.
Andy Broad [Sun, 13 Sep 2015 18:37:43 +0000 (14:37 -0400)]
amigaos4: move the amigaos exec code under amigaos4
Largely reimplements
839a9f02,
54fa14d7,
e8432c63,
40262ff4.
The upside is that now doio.c and pp_sys.c have much less AmigaOS
specific ifdefs. As a downside, the exec code is now forked (pun
only partially accidental.)
The earlier story regarding fork+exec, that the AmigaOS creating
thread doesn't terminate but instead continues running is both true
and false. The more detailed story is that the user-observable
behaviour is as with POSIX/UNIX. The thread that created the new
"task" (to use the AmigaOS terms) does hang around -- but all it
does is to wait for the new task to terminate, and more importantly,
it holds on to the resources like filehandles. If the task were to
immediately terminate, the resources would be reclaimed by the kernel.
Andy Broad [Sun, 13 Sep 2015 23:49:34 +0000 (19:49 -0400)]
amigaos4: AmigaOS extensions need no ppport.h since in ext/
Andy Broad [Sun, 13 Sep 2015 23:47:35 +0000 (19:47 -0400)]
amigaos4: minimized config.sh
Andy Broad [Mon, 14 Sep 2015 14:37:45 +0000 (10:37 -0400)]
amigaos4: Configure: syslog extension not feasible
Karl Williamson [Wed, 16 Sep 2015 02:06:39 +0000 (20:06 -0600)]
Fix too-long verbatim lines in perlfunc
These were added by
29b04a70d1bf9a10be65363f3f8d6dae44cfa6fc
Karl Williamson [Fri, 27 Mar 2015 03:46:19 +0000 (21:46 -0600)]
if.pm: Better failure message for 'no if'
It previously always said 'use if', even if 'no if' was what was
specified
Karl Williamson [Mon, 9 Mar 2015 18:37:24 +0000 (12:37 -0600)]
PATCH [perl #120790] Unicode::UCD failure to warn on bad input
This ticket was originally because the requester did not realize the
function Unicode::UCD::charscript took a code point argument instead of
a chr one. It was rejected on that basis. But discussion here
suggested it would be better to warn on bad input instead of just
returning <undef>. It turns out that all other routines in Unicode::UCD
but charscript and charblock already do warn. This commit extends that
to the two outlier returns.
Tony Cook [Tue, 15 Sep 2015 00:12:04 +0000 (10:12 +1000)]
prevent op/time.t failures on NetBSD 5.1
- make the watchdog time exceed the maximum time for the "very basic times
test". This doesn't prevent the test from failing, but prevents the
entire test script from being killed by the watchdog if the times()
test does fail
- do more work inside the loop, with the previous "burn cycles" loop
system time was increasing but user time stayed at its starting value.
James E Keenan [Tue, 8 Sep 2015 12:59:49 +0000 (08:59 -0400)]
Add test for sprintf ordering by both explicit index and not.
Commit 638ca15 earlier in the 5.23 development cycle corrected a
long-standing bug in sprintf. Not surprisingly, code outside the
core built on this bug will now exhibit a different behavior.
CPAN library Text-sprintfn is one such case. One test in its
test suite began to fail; see
https://rt.cpan.org/Ticket/Display.html?id=105989.
This commit adds the test which failed in Text-sprintfn's t/01-basic.t to our
t/op/sprintf.t with the corrected test result. It also adds a 'printf'
version of that corrected expectation to pod/perlfunc.pod.
For: RT #125956
Ricardo Signes [Mon, 14 Sep 2015 15:50:23 +0000 (11:50 -0400)]
release managers for September and December 2015
Chris 'BinGOs' Williams [Mon, 14 Sep 2015 12:19:49 +0000 (13:19 +0100)]
Update ExtUtils-MakeMaker to CPAN version 7.10
[DELTA]
7.10 Thu Sep 10 19:38:55 BST 2015
Bug fixes:
- Fix an issue with quoting of dist_ci target on Win32
7.08 Tue Sep 8 20:24:15 BST 2015
This release reverts all the changes since v7.04 until such time
as the regressions we have found in the "wild" of CPAN can be
tamed
ExtUtils::Command has been included in this release as it was
reincorporated in v7.06
The following bug fixes have also been included:
- RT#100268 fix wrong variable being used
- Check exit status for commands in "make ci" target
- Fix distsignature dependencies for parallel make
- The bundled Encode::Locale has been updated to 1.04
Chris 'BinGOs' Williams [Mon, 14 Sep 2015 12:18:22 +0000 (13:18 +0100)]
Remove ExtUtils-Command, it is merged in EUMM now
Chris 'BinGOs' Williams [Mon, 14 Sep 2015 12:15:17 +0000 (13:15 +0100)]
Module-CoreList-5.
20150912 is on the CPAN
Chris 'BinGOs' Williams [Mon, 14 Sep 2015 12:13:37 +0000 (13:13 +0100)]
Update experimental to CPAN version 0.014
[DELTA]
0.014 2015-09-12 00:29:37+02:00 Europe/Amsterdam
Add bitwise to list of known features
David Mitchell [Mon, 14 Sep 2015 13:13:27 +0000 (14:13 +0100)]
Revert "#126039 regexec.c: Fix compiler warning"
This reverts commit
801fcc250783bc56ec8033a5940b3257bcd9a7db.
This commit fixed some compiler warnings in S_regmatch() by adding
a new function-scoped var. I have a better fix - to be applied shortly -
that instead uses tmp boolean vars declared in a small scope as and where
needed.
Dan Collins [Sun, 13 Sep 2015 15:24:14 +0000 (09:24 -0600)]
PATCH [perl #126039] regexec.c: Fix compiler warning
Karl Williamson [Sun, 13 Sep 2015 15:30:38 +0000 (09:30 -0600)]
Add Dan Collins to AUTHORS