This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
5 years agoConfigure: signbit scan assuming too much
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:33:16 +0000 (08:33 -0400)]
Configure: signbit scan assuming too much

It was assuming a negative zero, which is an IEEE-754 only concept.

There is no need to assume the negative zero for the correct
functioning of the signbit, however.

5 years agovax-netbsd: another negative zero assumption
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:29:27 +0000 (08:29 -0400)]
vax-netbsd: another negative zero assumption

Though this had been masked by NV_INF guard.

5 years agovax-netbsd: Negative zero is only a thing IEEE 754.
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:27:47 +0000 (08:27 -0400)]
vax-netbsd: Negative zero is only a thing IEEE 754.

So don't assume it universal in the signbit emulation.

For non-IEEE-754, negative zero is equal to the positive zero.

(Another matter is that signbit() should have been found
in the Configure scan; it does exist in the netbsd/vax.)

5 years agovax-netbsd: expand lround() and signbit testing
Jarkko Hietaniemi [Fri, 21 Oct 2016 11:59:20 +0000 (07:59 -0400)]
vax-netbsd: expand lround() and signbit testing

5 years agoThe 1994b214 made the test dependent on Tie::Hash::NamedCapture.
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:30:32 +0000 (09:30 -0400)]
The 1994b214 made the test dependent on Tie::Hash::NamedCapture.

Which is not available under miniperl.

To add to the fun, tie() is partly compile-time, so just simple
skipping is not enough.

5 years agot/uni/overload.t: Skip hanging test on FreeBSD
Dan Collins [Fri, 21 Oct 2016 14:13:33 +0000 (14:13 +0000)]
t/uni/overload.t: Skip hanging test on FreeBSD

This is a test that overflows the C stack though infinite
recursion. Unfortunately, FreeBSD doesn't seem to overflow the
stack as much as it overflows main memory. On my FreeBSD 12 VM,
it uses all available swap and hangs. This patch skips it only
for FreeBSD.

5 years agoAPItest/t/utf8.t: Fix a test on EBCDIC
Karl Williamson [Fri, 21 Oct 2016 19:27:55 +0000 (13:27 -0600)]
APItest/t/utf8.t: Fix a test on EBCDIC

I forgot to translate this to EBCDIC, so created massive failures there,
obscuring the real bugs.

5 years agoMove _pDEPTH and _aDEPTH after config.h.
Craig A. Berry [Fri, 21 Oct 2016 18:32:16 +0000 (13:32 -0500)]
Move _pDEPTH and _aDEPTH after config.h.

Otherwise DEBUGGING may not be defined yet (at least it isn't on
VMS).

5 years agoUpdate Module::Corelist with entries for 5.25.7
Aaron Crane [Fri, 21 Oct 2016 07:31:26 +0000 (08:31 +0100)]
Update Module::Corelist with entries for 5.25.7

5 years agot/op/blocks.t: tests for RT #113934
Dan Collins [Wed, 21 Sep 2016 14:08:26 +0000 (10:08 -0400)]
t/op/blocks.t: tests for RT #113934

5 years agot/op/goto.t: tests for RT #45091
Dan Collins [Sat, 16 Jul 2016 22:49:34 +0000 (18:49 -0400)]
t/op/goto.t: tests for RT #45091

5 years agot/lib/overload_fallback.t: tests for RT #43356
Dan Collins [Sat, 16 Jul 2016 03:34:21 +0000 (23:34 -0400)]
t/lib/overload_fallback.t: tests for RT #43356

5 years agot/op/threads.t: tests for RT #41121
Dan Collins [Thu, 14 Jul 2016 20:23:52 +0000 (16:23 -0400)]
t/op/threads.t: tests for RT #41121

5 years agot/op/threads.t: tests for RT #36664
Dan Collins [Fri, 8 Jul 2016 02:56:38 +0000 (22:56 -0400)]
t/op/threads.t: tests for RT #36664

5 years agot/re/subst.t: tests for RT #23624
Dan Collins [Tue, 5 Jul 2016 23:32:56 +0000 (19:32 -0400)]
t/re/subst.t: tests for RT #23624

5 years agot/re/pat.t: tests for RT #21491
Dan Collins [Tue, 5 Jul 2016 20:29:10 +0000 (16:29 -0400)]
t/re/pat.t: tests for RT #21491

5 years agot/lib/warnings/op: tests for RT #6870
Dan Collins [Mon, 4 Jul 2016 23:33:29 +0000 (19:33 -0400)]
t/lib/warnings/op: tests for RT #6870

5 years agot/op/local.t: tests for RT #7615
Dan Collins [Mon, 4 Jul 2016 17:45:37 +0000 (13:45 -0400)]
t/op/local.t: tests for RT #7615

5 years agot/io/socket.t: tests for RT #7614
Dan Collins [Mon, 4 Jul 2016 17:36:45 +0000 (13:36 -0400)]
t/io/socket.t: tests for RT #7614

5 years agot/op/local.t: tests for RT #7411
Dan Collins [Mon, 4 Jul 2016 17:18:21 +0000 (13:18 -0400)]
t/op/local.t: tests for RT #7411

5 years agot/op/caller.t: tests for RT #7165
Dan Collins [Mon, 4 Jul 2016 16:15:32 +0000 (12:15 -0400)]
t/op/caller.t: tests for RT #7165

5 years agot/op/die.t: tests for RT #4821
Dan Collins [Mon, 4 Jul 2016 02:43:49 +0000 (22:43 -0400)]
t/op/die.t: tests for RT #4821

5 years agot/lib/warnings/toke: tests for RT #4346
Dan Collins [Mon, 4 Jul 2016 01:51:58 +0000 (21:51 -0400)]
t/lib/warnings/toke: tests for RT #4346

5 years agot/op/attrs.t: tests for RT 3605
Dan Collins [Mon, 4 Jul 2016 00:18:12 +0000 (20:18 -0400)]
t/op/attrs.t: tests for RT 3605

Maybe this should be in a different file?

5 years agot/op/bless.t: tests for RT #3305 and RT #3306
Dan Collins [Sun, 3 Jul 2016 20:38:00 +0000 (16:38 -0400)]
t/op/bless.t: tests for RT #3305 and RT #3306

5 years agot/uni/overload.t: test for RT #3270
Dan Collins [Sun, 3 Jul 2016 23:09:04 +0000 (19:09 -0400)]
t/uni/overload.t: test for RT #3270

5 years agot/uni/overload.t: test for RT 3054: might segfault.
Dan Collins [Sun, 3 Jul 2016 22:53:27 +0000 (18:53 -0400)]
t/uni/overload.t: test for RT 3054: might segfault.

This one may be a bit dangerous. It is also one of many bugs
involving a segfault due to a C stack overflow.

5 years agot/op/blocks.t: add test for RT #2917
Dan Collins [Sun, 3 Jul 2016 22:13:45 +0000 (18:13 -0400)]
t/op/blocks.t: add test for RT #2917

5 years agot/op/blocks.t: add test for RT #2754
Dan Collins [Sun, 3 Jul 2016 22:00:23 +0000 (18:00 -0400)]
t/op/blocks.t: add test for RT #2754

5 years agot/op/for.t: RT #2166: Actually run the test so we know if behavior changes
Dan Collins [Sun, 3 Jul 2016 20:57:07 +0000 (16:57 -0400)]
t/op/for.t: RT #2166: Actually run the test so we know if behavior changes

5 years agot/op/local.t: Unknown RT#, but appears to be fixed. Blame says not edited since 2005.
Dan Collins [Sun, 3 Jul 2016 21:06:41 +0000 (17:06 -0400)]
t/op/local.t: Unknown RT#, but appears to be fixed. Blame says not edited since 2005.

5 years agot/op/for.t: RT #1085: ticket 'resolved' but test was still 'todo'
Dan Collins [Sun, 3 Jul 2016 21:01:04 +0000 (17:01 -0400)]
t/op/for.t: RT #1085: ticket 'resolved' but test was still 'todo'

5 years agot/op/attrs.t: Fixup for 7fe45fb9 - should be a semicolon
Dan Collins [Thu, 20 Oct 2016 16:37:15 +0000 (12:37 -0400)]
t/op/attrs.t: Fixup for 7fe45fb9 - should be a semicolon

5 years agopp_ctl.c: silence compiler warning about mixing (un)signed types
Lukas Mai [Thu, 20 Oct 2016 22:20:23 +0000 (00:20 +0200)]
pp_ctl.c: silence compiler warning about mixing (un)signed types

Commit d081a35540aca5fe changed PADOFFSET (the type of op_targ) to
SSize_t (a signed type). It used to be unsigned.

pp_ctl.c: In function ‘S_doeval_compile’:
pp_ctl.c:3350:31: warning: signed and unsigned type in conditional expression [-Wsign-compare]
        ? oldcurcop->cop_hints : saveop->op_targ;
                               ^

5 years agothe test for #129897 was missing the min-mod (?) on the dot star
Yves Orton [Thu, 20 Oct 2016 16:20:20 +0000 (18:20 +0200)]
the test for #129897 was missing the min-mod (?) on the dot star

A plain .* will make the pattern match skip the bug we
are testing for. We need .*? to see the difference

Fixed:
./perl -Ilib -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'
aa-a--riiaan

Broken:
perl -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'
aa-a-i-riiaan

Maybe the test could make this more explicit. Not sure if its
worth it.

Thanks to Aaron Crane for noticing the test didn't do what it was
meant to. Bad Yves.

5 years agoBump version numbers ready for 5.25.7
Aaron Crane [Thu, 20 Oct 2016 16:06:35 +0000 (17:06 +0100)]
Bump version numbers ready for 5.25.7

5 years agoNew perldelta for 5.25.7
Aaron Crane [Thu, 20 Oct 2016 15:59:30 +0000 (16:59 +0100)]
New perldelta for 5.25.7

5 years agoTick the 5.25.6 release
Aaron Crane [Thu, 20 Oct 2016 15:55:36 +0000 (16:55 +0100)]
Tick the 5.25.6 release

5 years agoAdd epigraph for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 15:54:59 +0000 (16:54 +0100)]
Add epigraph for 5.25.6

5 years agoMerge branch 'release-5.25.6' into blead
Aaron Crane [Thu, 20 Oct 2016 15:49:19 +0000 (16:49 +0100)]
Merge branch 'release-5.25.6' into blead

5 years agoAdd 5.25.6 release to perlhist v5.25.6
Aaron Crane [Thu, 20 Oct 2016 14:32:11 +0000 (15:32 +0100)]
Add 5.25.6 release to perlhist

5 years agoFinalise perldelta for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 14:24:41 +0000 (15:24 +0100)]
Finalise perldelta for 5.25.6

5 years agoUpdate Module::CoreList for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 13:40:50 +0000 (14:40 +0100)]
Update Module::CoreList for 5.25.6

5 years agoUpdate 5.25.6 release date in Module::CoreList
Aaron Crane [Thu, 20 Oct 2016 13:33:14 +0000 (14:33 +0100)]
Update 5.25.6 release date in Module::CoreList

5 years agoRevert "Include time.h when testing for clock_xxx functions and syscalls"
Dagfinn Ilmari Mannsåker [Thu, 20 Oct 2016 13:50:16 +0000 (14:50 +0100)]
Revert "Include time.h when testing for clock_xxx functions and syscalls"

This was meant to go on my smoke-me branch, not blead.

This reverts commit 1946ca1569f5d47e6ceffab716bce3a4169646fe.

5 years agoUpdate Archive-Tar to CPAN version 2.14
Chris 'BinGOs' Williams [Thu, 20 Oct 2016 12:39:53 +0000 (13:39 +0100)]
Update Archive-Tar to CPAN version 2.14

  [DELTA]

2.14  20/10/2016
- Fix roundtrip test when tar executable is absent

5 years agoperldelta: delete unneeded sections
Aaron Crane [Thu, 20 Oct 2016 12:33:35 +0000 (13:33 +0100)]
perldelta: delete unneeded sections

5 years agoperldelta: draft for commits up to 3cc6a05eed
Aaron Crane [Thu, 20 Oct 2016 12:33:00 +0000 (13:33 +0100)]
perldelta: draft for commits up to 3cc6a05eed

5 years agoInclude time.h when testing for clock_xxx functions and syscalls
Dagfinn Ilmari Mannsåker [Thu, 20 Oct 2016 12:29:50 +0000 (13:29 +0100)]
Include time.h when testing for clock_xxx functions and syscalls

5 years agoperly.y: remove redundant NULL casts
Lukas Mai [Thu, 20 Oct 2016 11:29:31 +0000 (13:29 +0200)]
perly.y: remove redundant NULL casts

5 years agolibperl.t: treat i686 arch the same as x86
Lukas Mai [Thu, 20 Oct 2016 10:57:39 +0000 (12:57 +0200)]
libperl.t: treat i686 arch the same as x86

5 years agotoke.c: remove redundant (OP *) casts
Lukas Mai [Sun, 16 Oct 2016 01:14:07 +0000 (03:14 +0200)]
toke.c: remove redundant (OP *) casts

5 years agotoke.c: get rid of "if (0)"
Lukas Mai [Sun, 16 Oct 2016 01:03:23 +0000 (03:03 +0200)]
toke.c: get rid of "if (0)"

5 years agoutf8n_to_uvchr(): Reduce chances of reading beyond buffer
Karl Williamson [Thu, 20 Oct 2016 03:20:48 +0000 (21:20 -0600)]
utf8n_to_uvchr(): Reduce chances of reading beyond buffer

utf8n_to_uvchr() can be called incorrectly, leading it to believe the
buffer is longer than it actually is.  But often, it will be called with
NUL terminated strings, so it can reduce it's chances of being fooled by
refusing to read beyond a NUL.  The NUL will terminate any UTF-8 byte
sequence, and the only reason to read beyond it would be to print all
the expected bytes in the sequence.

This commit is not the final word, but it is an easy fix for a common
case.

5 years agopodcheck.t: .core dump files don't contain pod
Karl Williamson [Thu, 20 Oct 2016 00:43:39 +0000 (18:43 -0600)]
podcheck.t: .core dump files don't contain pod

even if they have pod lines in them.

5 years agomake regen and args assert fix
Yves Orton [Wed, 19 Oct 2016 20:54:15 +0000 (22:54 +0200)]
make regen and args assert fix

5 years agoAdd a way to have functions with a trailing depth argument under debugging
Yves Orton [Wed, 19 Oct 2016 20:44:45 +0000 (22:44 +0200)]
Add a way to have functions with a trailing depth argument under debugging

In the regex engine it can be useful in debugging mode to
maintain a depth counter, but in normal mode this argument
would be unused. This allows us to define functions in embed.fnc
with a "W" flag which use _pDEPTH and _aDEPTH defines which
effectively define/pass through a U32 depth parameter to the
macro wrappers. These defines are similar to the existing
aTHX and pTHX parameters.

5 years agomark depth unused except under DEBUGGING
Yves Orton [Wed, 19 Oct 2016 19:33:00 +0000 (21:33 +0200)]
mark depth unused except under DEBUGGING

5 years agoPATCH: [perl #129322] S_invlist_clear(SV *): Assertion `invlist' failed
Karl Williamson [Mon, 17 Oct 2016 21:08:08 +0000 (15:08 -0600)]
PATCH: [perl #129322] S_invlist_clear(SV *): Assertion `invlist' failed

This was the result of an inconsistency in the inversion list union and
intersection routines, where under some conditions the function returned
a new inversion list, and under other conditions it just changed one of
the input ones.  The caller knew about one of those and compensated, but
that compensation was erroneous given other conditions.  This violated
encapsulation.  The fix is make the called functions always consistent.

5 years agoregcomp.c: Fix erroneous comment; clarify others
Karl Williamson [Sat, 15 Oct 2016 16:30:08 +0000 (10:30 -0600)]
regcomp.c: Fix erroneous comment; clarify others

5 years agoAdd a regex_sets debugging function
Karl Williamson [Wed, 31 Aug 2016 23:52:19 +0000 (17:52 -0600)]
Add a regex_sets debugging function

This is enabled by a C flag, as commented.  It is designed to be found
only by someone reading the code and wanting something temporary to help
in debugging.

5 years agoPerlIO_printf() does not take aTHX_ as an argument
Yves Orton [Wed, 19 Oct 2016 15:25:40 +0000 (17:25 +0200)]
PerlIO_printf() does not take aTHX_ as an argument

and if you use it, you can build fine on unthreaded perl, but
threaded will blow up. Sigh.

5 years agot/regop.t: improve test name
Yves Orton [Wed, 19 Oct 2016 15:15:44 +0000 (17:15 +0200)]
t/regop.t: improve test name

5 years agoregcomp.c: remove extra aTHX_ added in c2867e745ca
Lukas Mai [Wed, 19 Oct 2016 13:17:04 +0000 (15:17 +0200)]
regcomp.c: remove extra aTHX_ added in c2867e745ca

5 years agopp_(hot|ctl).c: switch croak() to Perl_croak() for win32
Yves Orton [Wed, 19 Oct 2016 12:35:16 +0000 (14:35 +0200)]
pp_(hot|ctl).c: switch croak() to Perl_croak() for win32

5 years agoregexec.c: fix #129903: forbid empty pattern in regex code block
Yves Orton [Tue, 18 Oct 2016 11:11:49 +0000 (13:11 +0200)]
regexec.c: fix #129903: forbid empty pattern in regex code block

PL_curpm provides access to the data needed to implement
the regex magic vars like $1 and $&. These vars are defined
to reference the last successfully matched pattern, or when
in regex code blocks (?{ ... }) and (??{ ... }), they
should refer to the currently executing pattern.

Unfortunately this collides with its use to implement the
empty pattern special behavior, which requires /just/
"the last successfully matched pattern" everwhere.

This meant that a pattern match like /(?{ s!!! })/ will
infinitely recurse. Fixing this would be difficult, on
the other hand detecting it is not, so we can convert
the infinite recursion/stack overflow into a normal
exception.

5 years agoregexec.c: add comment and add a test
Yves Orton [Mon, 17 Oct 2016 21:13:44 +0000 (23:13 +0200)]
regexec.c: add comment and add a test

The test is from the existing comment.

5 years agoregexec.c: fixup annoying unbalanced whitespace
Yves Orton [Mon, 17 Oct 2016 21:13:16 +0000 (23:13 +0200)]
regexec.c: fixup annoying unbalanced whitespace

5 years agoregexec.c: in debug fixup indents and TRIE/BUFFER debug output
Yves Orton [Mon, 17 Oct 2016 21:12:24 +0000 (23:12 +0200)]
regexec.c: in debug fixup indents and TRIE/BUFFER debug output

5 years agoregexec.c: in debug show whether TRIE nodes have a jump table
Yves Orton [Mon, 17 Oct 2016 21:10:10 +0000 (23:10 +0200)]
regexec.c: in debug show whether TRIE nodes have a jump table

5 years agoregexec.c: fix perl #129897: trie short circuit breaks capture buffers
Yves Orton [Mon, 17 Oct 2016 21:09:11 +0000 (23:09 +0200)]
regexec.c: fix perl #129897: trie short circuit breaks capture buffers

There is an optimisation when a trie matches only one thing
which causes it to fall through to the following code without
setting up a stack unwind frame. This breaks if we are using
a trie jump table where we might change state that will need
to be unwound on failure.

5 years agovxs.inc: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
vxs.inc: use new SvPVCLEAR and constant string friendly macros

5 years agovutil.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
vutil.c: use new SvPVCLEAR and constant string friendly macros

5 years agoutf8.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
utf8.c: use new SvPVCLEAR and constant string friendly macros

5 years agouniversal.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
universal.c: use new SvPVCLEAR and constant string friendly macros

5 years agotoke.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
toke.c: use new SvPVCLEAR and constant string friendly macros

5 years agosv.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
sv.c: use new SvPVCLEAR and constant string friendly macros

5 years agoregcomp.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
regcomp.c: use new SvPVCLEAR and constant string friendly macros

5 years agopp_sys.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_sys.c: use new SvPVCLEAR and constant string friendly macros

5 years agopp_pack.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_pack.c: use new SvPVCLEAR and constant string friendly macros

5 years agopp_hot.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_hot.c: use new SvPVCLEAR and constant string friendly macros

5 years agopp_ctl.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_ctl.c: use new SvPVCLEAR and constant string friendly macros

5 years agopp.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp.c: use new SvPVCLEAR and constant string friendly macros

5 years agoop.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
op.c: use new SvPVCLEAR and constant string friendly macros

5 years agonumeric.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
numeric.c: use new SvPVCLEAR and constant string friendly macros

5 years agomro_core.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
mro_core.c: use new SvPVCLEAR and constant string friendly macros

5 years agomg.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
mg.c: use new SvPVCLEAR and constant string friendly macros

5 years agolocale.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
locale.c: use new SvPVCLEAR and constant string friendly macros

5 years agohv.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
hv.c: use new SvPVCLEAR and constant string friendly macros

5 years agodump.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
dump.c: use new SvPVCLEAR and constant string friendly macros

5 years agodoop.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:25 +0000 (11:14 +0200)]
doop.c: use new SvPVCLEAR and constant string friendly macros

5 years agodoio.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:25 +0000 (11:14 +0200)]
doio.c: use new SvPVCLEAR and constant string friendly macros

5 years agogv.c: rework special var matching logic to be simpler
Yves Orton [Wed, 19 Oct 2016 09:09:00 +0000 (11:09 +0200)]
gv.c: rework special var matching logic to be simpler

The old code used a bunch of tricks that IMO are unlikely
to actually make any performance difference, and make
the code harder to read, search, and understand, and less
amenable to using string constant friendly macros.

So for instance instead of switching on the first char
and then comparing the second on for an exact match
instead just compare the full string. The extra char
is unlikely to make a difference to the underlying code
that gets called, and the end result is easier searching.

Another issue is that some of the code was inadverdantly
doing prefix matches, and not exact matchs for certain
magic var names. This is fixed as part of these changes.

5 years agogv.c: rework string separator parsing to use new string macros
Yves Orton [Wed, 19 Oct 2016 09:08:10 +0000 (11:08 +0200)]
gv.c: rework string separator parsing to use new string macros

5 years agogv.c: switch to using string constant friendly macros
Yves Orton [Wed, 19 Oct 2016 09:07:40 +0000 (11:07 +0200)]
gv.c: switch to using string constant friendly macros

5 years agogv.c: add a require_tie_mod_s() wrapper for constant string args
Yves Orton [Wed, 19 Oct 2016 09:06:26 +0000 (11:06 +0200)]
gv.c: add a require_tie_mod_s() wrapper for constant string args

5 years agoperl.[ch]: switch to using SvPVCLEAR() and string constant friendly macros
Yves Orton [Wed, 19 Oct 2016 09:01:08 +0000 (11:01 +0200)]
perl.[ch]: switch to using SvPVCLEAR() and string constant friendly macros

5 years agovms: use hv_fetchs() with constant string key
Yves Orton [Wed, 19 Oct 2016 08:59:06 +0000 (10:59 +0200)]
vms: use hv_fetchs() with constant string key

5 years agopod: mention SvPVCLEAR()
Yves Orton [Wed, 19 Oct 2016 08:58:30 +0000 (10:58 +0200)]
pod: mention SvPVCLEAR()

5 years agoamigaos4: use constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 08:56:44 +0000 (10:56 +0200)]
amigaos4: use constant string friendly macros