This is a live mirror of the Perl 5 development currently hosted at
6 years agomove OPpTARGET_MY comments from
David Mitchell [Fri, 19 Sep 2014 17:14:01 +0000 (18:14 +0100)]
move OPpTARGET_MY comments from

There is a section in regen/ explaining when its okay to
use the T flag / OPpTARGET_MY define.

Move that text to regen/op_private, at the spot where it defines
OPpTARGET_MY. It's more likely to be seen there.

6 years agoregen/op_private: update TARGLEX comments.
David Mitchell [Fri, 19 Sep 2014 17:10:27 +0000 (18:10 +0100)]
regen/op_private: update TARGLEX comments.

Explain a bit more about how OPpTARGET_MY is used, and remove a temporary
comment I make about inconsistencies in which ops can use the flag as
defined by the old and regen/opcodes T flags.

6 years agopp.h: remove spurious comment about OPpTARGET_MY
David Mitchell [Fri, 19 Sep 2014 16:52:59 +0000 (17:52 +0100)]
pp.h: remove spurious comment about OPpTARGET_MY

OPpTARGET_MY is unrelated to MAXARG as far as I can tell.

6 years agoregen/op_private: fix assorted typos
David Mitchell [Fri, 19 Sep 2014 16:49:05 +0000 (17:49 +0100)]
regen/op_private: fix assorted typos

6 years agocomment pp_foo aliases in pp*.c
David Mitchell [Fri, 19 Sep 2014 16:40:25 +0000 (17:40 +0100)]
comment pp_foo aliases in pp*.c

Where pp_foo() also handles OP_BAR, add a comment above the function
mentioning that it also does pp_bar.

This means that "grep pp_bar pp*.c" quickly locates the file/function that
handles OP_BAR.

6 years agoremove vestigal threadsv/threadsv_named
David Mitchell [Fri, 19 Sep 2014 16:12:02 +0000 (17:12 +0100)]
remove vestigal threadsv/threadsv_named

the threadsv op and the PL_threadsv_names var were part of the 5.005
threads model, long since removed. Remove some remaining references to

6 years agoB.xs: add class names to method branch comments
David Mitchell [Fri, 19 Sep 2014 15:44:34 +0000 (16:44 +0100)]
B.xs: add class names to method branch comments

A single function in B.xs handles the method calls for a whole bunch of
methods from a whole bunch of subclasses (e.g. B::OP, B::COP etc).

Extend the comment next to each switch case to include the full method
name: e.g. "B::COP::stash" rather than just "stash".

This makes things slightly less confusing.

6 years agofix B::PADOP->sv and ->gv
David Mitchell [Fri, 19 Sep 2014 15:07:08 +0000 (16:07 +0100)]
fix B::PADOP->sv and ->gv

PADOP structs, which are only used on threaded builds, have an op_padix
field rather than an op_sv or op_gv.

The B::PADOP sv and gv methods would do PL_curpad[o->op_padix] to
look up the value, That is completely wrong. PL_curpad is the pad of the
caller of B::PADOP::sv/gv, not the pad of the sub containing the PADOP op.

This fault appears to to go back to 1999, when PADOP was first added.
It's probably never been spotted because:

a) PADOP only ever used for creating GV ops on threaded builds (so
->sv is probably never called),

b) it has a check where if the thing it retrieved from the pad isn't a GV,
it returns NULL instead.

Fix this by always returning NULL. This is comparable with B::SVOP_>sv,
which always returns op_sv, which on threaded builds always happens to be
NULL. Note that B::SVOP->sv expects the caller to retrieve op_targ and do
the pad lookup.

NB just to avoid confusion (I was certainly confused), these ops are
implemented with the types shown:


        const: B::SVOP
        gvsv:  B::SVOP


        const: B::SVOP
        gvsv:  B::PADOP

6 years agoDocument customisation introduced by 991b13da7
Chris 'BinGOs' Williams [Fri, 19 Sep 2014 14:52:00 +0000 (15:52 +0100)]
Document customisation introduced by 991b13da7

6 years agodarwin can have libfoo.0.dylib, as opposed to libfoo.dylib.0
Jarkko Hietaniemi [Wed, 10 Sep 2014 21:42:04 +0000 (17:42 -0400)]
darwin can have libfoo.0.dylib, as opposed to libfoo.dylib.0

Configure was changed similarly in d98292cc

cpan module; patch submitted upstream:
and has been applied.

6 years agoquadmath NVs cannot be cast to double etc.
Jarkko Hietaniemi [Thu, 11 Sep 2014 02:21:39 +0000 (22:21 -0400)]
quadmath NVs cannot be cast to double etc.

6 years agoquadmath strtoflt128 accepts false infinities.
Jarkko Hietaniemi [Sun, 14 Sep 2014 01:16:55 +0000 (21:16 -0400)]
quadmath strtoflt128 accepts false infinities.

6 years agoquadmath doesn't do locale radixes.
Jarkko Hietaniemi [Wed, 10 Sep 2014 22:40:11 +0000 (18:40 -0400)]
quadmath doesn't do locale radixes.

6 years agoquadmath and gconvert do not mix.
Jarkko Hietaniemi [Wed, 10 Sep 2014 18:30:44 +0000 (14:30 -0400)]
quadmath and gconvert do not mix.

6 years agoquadmath has expq instead of expl.
Jarkko Hietaniemi [Wed, 10 Sep 2014 18:03:37 +0000 (14:03 -0400)]
quadmath has expq instead of expl.

6 years agoquadmath helpers export list.
Jarkko Hietaniemi [Sun, 14 Sep 2014 22:44:27 +0000 (18:44 -0400)]
quadmath helpers export list.

6 years agoquadmath Q format specifier and gcc -Wformat do not mix.
Jarkko Hietaniemi [Sun, 14 Sep 2014 21:39:15 +0000 (17:39 -0400)]
quadmath Q format specifier and gcc -Wformat do not mix.

6 years agoquadmath NV formatted I/O.
Jarkko Hietaniemi [Sun, 14 Sep 2014 19:43:55 +0000 (15:43 -0400)]
quadmath NV formatted I/O.

6 years agoquadmath INSTALL.
Jarkko Hietaniemi [Wed, 27 Aug 2014 00:49:09 +0000 (20:49 -0400)]
quadmath INSTALL.

6 years agoquadmath_snprintf formats.
Jarkko Hietaniemi [Tue, 2 Sep 2014 10:50:38 +0000 (06:50 -0400)]
quadmath_snprintf formats.

6 years agoquadmath interfaces and constants
Jarkko Hietaniemi [Sun, 14 Sep 2014 19:41:45 +0000 (15:41 -0400)]
quadmath interfaces and constants

6 years agoquadmath needs gcc, at least 4.6.
Jarkko Hietaniemi [Sat, 23 Aug 2014 01:02:23 +0000 (21:02 -0400)]
quadmath needs gcc, at least 4.6.

6 years agoquadmath __float128 as NVTYPE.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:55:33 +0000 (11:55 -0400)]
quadmath __float128 as NVTYPE.

6 years agoquadmath __float128 for longdblkind.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:35:34 +0000 (11:35 -0400)]
quadmath __float128 for longdblkind.

6 years agoConfigure -Dusequadmath.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:05:52 +0000 (11:05 -0400)]
Configure -Dusequadmath.

6 years agoConfigure for <quadmath.h>
Jarkko Hietaniemi [Fri, 22 Aug 2014 14:51:18 +0000 (10:51 -0400)]
Configure for <quadmath.h>

6 years agoMention more C99 math interfaces.
Jarkko Hietaniemi [Fri, 19 Sep 2014 12:37:11 +0000 (08:37 -0400)]
Mention more C99 math interfaces.

6 years agoperldelta: mention the op_private work
David Mitchell [Fri, 19 Sep 2014 12:12:23 +0000 (13:12 +0100)]
perldelta: mention the op_private work

6 years agoadd $VERSION to B::Op_private
David Mitchell [Fri, 19 Sep 2014 09:51:15 +0000 (10:51 +0100)]
add $VERSION to B::Op_private

Since this is an auto-generated .pm file, set $VERSION to the perl
version (i.e. 5.mmmnnn), the same trick that does.

Since regen scripts are usually executed by a different perl, and the
current perl may not be built yet, don't rely on $]; instead get the
info from patchlevel.h. Add a new sub for this purpose, perl_version(),
to regen/ (I feel that such a routine should already exist
somewhere, but I couldn't find such a beastie.)

6 years agoperldelta for 1645b83c5c
Steve Hay [Fri, 19 Sep 2014 08:24:13 +0000 (09:24 +0100)]
perldelta for 1645b83c5c

6 years agoperldelta - Add links for bugs
Steve Hay [Fri, 19 Sep 2014 08:11:12 +0000 (09:11 +0100)]
perldelta - Add links for bugs

6 years agoperldelta - Data::Dumper has been upgraded
Steve Hay [Fri, 19 Sep 2014 08:08:37 +0000 (09:08 +0100)]
perldelta - Data::Dumper has been upgraded

6 years agoBump all Math::BigInt $VERSIONs as per 945313f0ae following a0732aaa4b
Steve Hay [Fri, 19 Sep 2014 08:08:11 +0000 (09:08 +0100)]
Bump all Math::BigInt $VERSIONs as per 945313f0ae following a0732aaa4b

And add a perldelta note.

6 years agoTeach diag.t about Perl_mess
Father Chrysostomos [Fri, 19 Sep 2014 06:14:04 +0000 (23:14 -0700)]
Teach diag.t about Perl_mess

Every instance of Perl_mess(aTHX_ "..." ...) is used for an error

6 years agogv.c: For ‘Global symbol’ msg, don’t check utf8ness twice
Father Chrysostomos [Fri, 19 Sep 2014 06:02:52 +0000 (23:02 -0700)]
gv.c: For ‘Global symbol’ msg, don’t check utf8ness twice

We already take care of possible utf8ness in the format string.  There
is no need to turn on the flag afterwards.  This double utf8 check has
been present since ecad31f018.

6 years agoperldelta for d8c6310a4f0/#121638
Father Chrysostomos [Fri, 19 Sep 2014 05:12:39 +0000 (22:12 -0700)]
perldelta for d8c6310a4f0/#121638

6 years agoperldelta for 343573e55 (the 25-year-old bug)
Father Chrysostomos [Fri, 19 Sep 2014 05:04:04 +0000 (22:04 -0700)]
perldelta for 343573e55 (the 25-year-old bug)

6 years agoperldelta for ff2a62e0/#15667
Father Chrysostomos [Fri, 19 Sep 2014 05:00:43 +0000 (22:00 -0700)]
perldelta for ff2a62e0/#15667

6 years agoUpdate perldiag to reflect ‘Global symbol’ change
Father Chrysostomos [Fri, 19 Sep 2014 05:10:14 +0000 (22:10 -0700)]
Update perldiag to reflect ‘Global symbol’ change

Why didn’t t/porting/diag.t catch this?

6 years agoremove duplicate SvNV calls in pp_enteriter
Daniel Dragan [Fri, 19 Sep 2014 03:24:18 +0000 (23:24 -0400)]
remove duplicate SvNV calls in pp_enteriter

commit a2309040b8 added duplicate SvNV calls, remove them. Reorder the
"SvUV_nomg(sv) > (UV)IV_MAX || SvNV_nomg(sv) > (NV)UV_MAX" so the var
will be stored in a FP CPU reg for all comparisons, and not saved/fetched
to/from mem across the SvUV func call. Due to complexity, I am not
unrolling and fusing SvNV_nomg and SvOK.

VC 2003 32b size of func in machine code bytes before 0x4d3 after 0x4a2

6 years ago[perl #121638] Make ‘Global symbol’ message more newbie-friendly
Father Chrysostomos [Fri, 19 Sep 2014 03:34:43 +0000 (20:34 -0700)]
[perl #121638] Make ‘Global symbol’ message more newbie-friendly

by suggesting the declaration of a lexical variable, but without
removing the ‘Global symbol’ part, since much code no doubt depends
on its presence.

6 years agoConsistent indentation in AUTHORS
Father Chrysostomos [Fri, 19 Sep 2014 03:15:29 +0000 (20:15 -0700)]
Consistent indentation in AUTHORS

6 years agoRename S_adjust_stack_on_leave
Father Chrysostomos [Fri, 19 Sep 2014 01:08:06 +0000 (18:08 -0700)]
Rename S_adjust_stack_on_leave

It now does more than that, so use a name that describes when it is
called, rather than what it does.

6 years agofactor out TAINT_NOT into S_adjust_stack_on_leave
Daniel Dragan [Mon, 16 Jun 2014 09:53:08 +0000 (05:53 -0400)]
factor out TAINT_NOT into S_adjust_stack_on_leave

All callers of S_adjust_stack_on_leave had TAINT_NOT before the call to
S_adjust_stack_on_leave. Factor it into the func to make the callers
smallers machine code wise. More things can be factored out into
adjust_stack_on_leave from its callers, but this particular change is very

6 years agoParenthesize & and | a bit.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:25:42 +0000 (21:25 -0400)]
Parenthesize & and | a bit.

6 years agoinfnan: more tests.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:10:41 +0000 (21:10 -0400)]
infnan: more tests.

++, math, compare.

6 years agoDo not fall into Gconvert or F0convert on inf/nan.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:45:06 +0000 (21:45 -0400)]
Do not fall into Gconvert or F0convert on inf/nan.

Though make F0convert to do the right thing, S_infnan_2pv, on infnan.

(found by bulk88)

6 years agoinfnan: ++ or -- on infnan doesn't lose precision.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:15:03 +0000 (21:15 -0400)]
infnan: ++ or -- on infnan doesn't lose precision.

(found by bulk88)

6 years agoIncrement $VERSION in Math::BigInt.
James E Keenan [Fri, 19 Sep 2014 01:56:01 +0000 (21:56 -0400)]
Increment $VERSION in Math::BigInt.

6 years agoreplace uses of in dist/ distributions (IO, Math-BigInt)
Karen Etheridge [Wed, 17 Sep 2014 19:44:52 +0000 (12:44 -0700)]
replace uses of in dist/ distributions (IO, Math-BigInt)

6 years agotoke.c: Fix bad read in S_scan_heredoc
Father Chrysostomos [Thu, 18 Sep 2014 08:16:36 +0000 (01:16 -0700)]
toke.c: Fix bad read in S_scan_heredoc

If the first character of a source line matched the first character
of the here-doc terminator, then we did a memEQ with the length of
the terminator, without regard to the length of the line, which
could be shorter.

This bug goes all the way back to perl 3.000, which introduced here-
docs.  Line 1802 of toke.c in perl 3.000 is:

    if (*s == term && bcmp(s,tokenbuf,len) == 0) {

and contains the same bug.

So this bug is twenty-five years old.

6 years agoDump GPFLAGS
Father Chrysostomos [Thu, 18 Sep 2014 23:12:24 +0000 (16:12 -0700)]

6 years agoSkip no-common-vars optimisation for aliases
Father Chrysostomos [Thu, 18 Sep 2014 23:10:01 +0000 (16:10 -0700)]
Skip no-common-vars optimisation for aliases

The ‘no common vars’ optimisation allows perl to copy the values
straight from the rhs to the lhs in a list assignment.

In ($a,$b) = ($c,$d), that means $c gets assigned to $a,
then $d to $b.

If the same variable occurs on both sides of the expression
(($a,$b)=($b,$a)), then it is necessary to make temporary copies of
the variables on the rhs, before assigning them to the left.

If some variables have been aliased to others, then the common vars
detection can be fooled:

    *x = *y;
    $x = 3;
    ($x, $z) = (1, $y);

That assigns 1 to $x, and then goes to assign $y to $z, but $y is
the same as $x, which has just been clobbered.  So 1 gets assigned
instead of 3.

This commit solves this by recording in each typeglob whether the sca-
lar is an alias of a scalar from elsewhere.

If such a glob is encountered, then the entire expression is ‘tainted’
such that list assignments will assume there might be common vars.

6 years agogv.h: Add a gp_flags field
Father Chrysostomos [Thu, 18 Sep 2014 07:24:25 +0000 (00:24 -0700)]
gv.h: Add a gp_flags field

This is for flags that have to be shared with all GVs that have the
same GP pointer.

6 years agoperlsyn: Remove reference to potential Unicode op
Karl Williamson [Fri, 19 Sep 2014 00:20:57 +0000 (18:20 -0600)]
perlsyn: Remove reference to potential Unicode op

See thread beginning at

6 years agoPOSIX math: AIX 7 has nexttoward
Jarkko Hietaniemi [Thu, 18 Sep 2014 21:33:36 +0000 (17:33 -0400)]
POSIX math: AIX 7 has nexttoward

6 years agoPOSIX math: the pa-risc gcc missing tgamma and nexttoward
Jarkko Hietaniemi [Thu, 18 Sep 2014 21:30:01 +0000 (17:30 -0400)]
POSIX math: the pa-risc gcc missing tgamma and nexttoward

6 years agoPOSIX math: Tru64 has rint()
Jarkko Hietaniemi [Thu, 18 Sep 2014 21:26:02 +0000 (17:26 -0400)]
POSIX math: Tru64 has rint()

6 years agoin Perl_sv_copypv_flags move mg_get call to callee
Daniel Dragan [Thu, 18 Sep 2014 16:44:15 +0000 (12:44 -0400)]
in Perl_sv_copypv_flags move mg_get call to callee

Perl_sv_2pv_flags already has logic to check for and call mg_get, which
can't be removed due to API, so dont do it in the caller. This makes
Perl_sv_copypv_flags smaller/faster by removing the branch.

6 years agoUnused return value.
Jarkko Hietaniemi [Thu, 18 Sep 2014 18:46:24 +0000 (14:46 -0400)]
Unused return value.

6 years agoConditionally unused variable.
Jarkko Hietaniemi [Thu, 18 Sep 2014 18:45:38 +0000 (14:45 -0400)]
Conditionally unused variable.

6 years agoComment detypo.
Jarkko Hietaniemi [Thu, 18 Sep 2014 18:38:59 +0000 (14:38 -0400)]
Comment detypo.

6 years agoAdd dVAR:s for -DPERL_GLOBAL_STRUCT.
Jarkko Hietaniemi [Thu, 18 Sep 2014 18:38:07 +0000 (14:38 -0400)]

6 years agoMake certain we have the top-level "lib" in @INC.
Jarkko Hietaniemi [Thu, 18 Sep 2014 17:51:34 +0000 (13:51 -0400)]
Make certain we have the top-level "lib" in @INC.

6 years agohexfp: use the bytewise extraction also for plain doubles.
Jarkko Hietaniemi [Thu, 18 Sep 2014 14:53:35 +0000 (10:53 -0400)]
hexfp: use the bytewise extraction also for plain doubles.

Instead of the frexp+ldexp way which doesn't work when NVSIZE > UVSIZE.

6 years agoAdd comment about the double-double extraction.
Jarkko Hietaniemi [Thu, 18 Sep 2014 11:31:59 +0000 (07:31 -0400)]
Add comment about the double-double extraction.

6 years agoDocument the double-double format a little.
Jarkko Hietaniemi [Thu, 18 Sep 2014 11:26:20 +0000 (07:26 -0400)]
Document the double-double format a little.

6 years agomore NAN FP fixs for VC6/NAN_COMPARE_BROKEN compilers
Daniel Dragan [Thu, 18 Sep 2014 17:16:17 +0000 (13:16 -0400)]
more NAN FP fixs for VC6/NAN_COMPARE_BROKEN compilers

op/infnan.t now passes all tests on VC6

6 years agoData::Dumper version bump for CPAN release
Steffen Mueller [Thu, 18 Sep 2014 15:45:39 +0000 (17:45 +0200)]
Data::Dumper version bump for CPAN release

6 years agodon't recurse infinitely in Data::Dumper
Tony Cook [Mon, 30 Jun 2014 02:16:03 +0000 (12:16 +1000)]
don't recurse infinitely in Data::Dumper

Add a configuration variable/option to limit recursion when dumping
deep data structures.

Defaults the limit to 1000, which can be reduced or increase, or
eliminated by setting it to 0.

This patch addresses CVE-2014-4330.  This bug was found and
reported by: LSE Leading Security Experts GmbH employee Markus

6 years agoRevert a231c375cc and fix 61cd60c6c5 differently instead
Steve Hay [Thu, 18 Sep 2014 12:25:36 +0000 (13:25 +0100)]
Revert a231c375cc and fix 61cd60c6c5 differently instead

Change a231c375cc fixed the GCC build, broken by 61cd60c6c5, but
unfortunately also caused a test failure in the very same GCC build:
ext/XS-APItest/t/print.t test 11. There is no way to print long doubles
with formatting functions in msvcrt.dll (which is what MinGW/MinGW-w64
use by default) because that doesn't support long doubles at all, other
than as a synonym for doubles. Defining PERL_PRIfldbl gave APItest.xs the
false expectation that printing a long double with it would work, but it
does not. Hence, revert a231c375cc for now. (Future commits will add
optional GCC-only support for using long doubles by using some MinGW-
specific formatting functions instead.)

We now fix the GCC build breakage in sv.c by simply testing for whether
PERL_PRIgldbl is defined (just like APItest.xs already tests for whether
PERL_PRIfldbl is defined). Now that it once again isn't defined, we fall
through to the #else case, which is what VC uses anyway since its

6 years agogv.h: Comment typo
Father Chrysostomos [Thu, 18 Sep 2014 07:15:21 +0000 (00:15 -0700)]
gv.h: Comment typo

6 years agoTeach dump.c:debop about CV refs in stashes
Father Chrysostomos [Thu, 18 Sep 2014 06:50:58 +0000 (23:50 -0700)]
Teach dump.c:debop about CV refs in stashes

This is what -Dt was giving:

$ ./miniperl -Dt -e 'sub foo{} &foo'


(-e:1)gvAssertion failed: (isGV_with_GP(_gvstash)), function Perl_gv_fullname4, file gv.c, line 2341.
Abort trap: 6

6 years agoperlop tweak
Father Chrysostomos [Thu, 18 Sep 2014 06:41:00 +0000 (23:41 -0700)]
perlop tweak

Consider this a follow-up to fc6933476.

6 years ago[Merge] Eliminate IS_PADGV etc.
Father Chrysostomos [Thu, 18 Sep 2014 06:40:03 +0000 (23:40 -0700)]
[Merge] Eliminate IS_PADGV etc.

The core no longer uses IS_PADGV, IS_PADCONST, or GvIN_PAD.  They were
no longer needed and never really worked properly.

6 years agoRemove GVf_IN_PAD
Father Chrysostomos [Thu, 18 Sep 2014 06:21:11 +0000 (23:21 -0700)]
Remove GVf_IN_PAD

Nothing on CPAN uses it, but some CPAN modules use the associ-
ated macros.

6 years agoOnly #define IS_(PADGV|CONST) if !PERL_CORE
Father Chrysostomos [Thu, 18 Sep 2014 06:18:54 +0000 (23:18 -0700)]
Only #define IS_(PADGV|CONST) if !PERL_CORE

and give IS_PADGV a simpler definition.

These are not used in the perl core any more and shouldn’t be.

The IS_PADGV definition checked for the IN_PAD flag, which flag never
made much sense (see the prev. commit’s message).  Since any GV could
end up with that flag, and since any GV coming near a pad would get
it, it might as well have been turned on for all GVs (except copies).
So just check whether the thingy is a GV.

6 years agopad.c: Stop turning on GvIN_PAD
Father Chrysostomos [Thu, 18 Sep 2014 06:13:33 +0000 (23:13 -0700)]
pad.c: Stop turning on GvIN_PAD

This flag never really made any sense.  It allows us to identify
whether a GV is being used by a pad (e.g., for *foo under ithreads),
but *any* GV could have this set and there is no way to know whether
it was set for the pad we are currently looking at.

6 years agoRemove !IS_PADGV assertions
Father Chrysostomos [Thu, 18 Sep 2014 05:10:47 +0000 (22:10 -0700)]
Remove !IS_PADGV assertions

Commit 60779a30f stopped setting PADTMP on GVs in pads,
and changed many instances of if(SvPADTMP && !IS_PADGV) to

This PADTMP was leftover from the original ithreads implementation
that marked these as PADTMP under the assumption that anything in a
pad had to be marked PADMY or PADTMP.

Since we don’t want these GVs copied the way operator targets are
(PADTMP indicates the latter), we needed this !IS_PADGV check all over
the place.

60779a30f was actually right in removing the flag and the !IS_PADGV
check, because it should be possible for XS modules to create ops that
return copiable GVs.  But the assertions prevent that from working.

More importantly (to me at least), this IS_PADGV doesn’t quite make
sense and I am trying to eliminate it.

BTW, you have to be doubly naughty, but it is possible to fail these

$ ./perl -Ilib -e 'BEGIN { sub { $::{foo} = \@_; constant::_make_const(@_) }->(*bar) } \ foo'
Assertion failed: (!IS_PADGV(sv)), function S_refto, file pp.c, line 576.
Abort trap: 6

6 years agoChange IS_PADGV to isGV in op.c:newPADOP
Father Chrysostomos [Thu, 18 Sep 2014 03:35:15 +0000 (20:35 -0700)]
Change IS_PADGV to isGV in op.c:newPADOP

IS_PADGV is about to go bye-bye.  IS_PADGV was returning true only
for GVs marked as being present in the pad.  But since any GV can
make its way in there (just mention *foo under threads), it’s actually
somewhat meaningless.

This check in newPADOP is perhaps useless, too, since it is only called
by newGVOP in core (so sv is always a GV), and by B::Generate on CPAN,
which, again, gives it a GV.

6 years agopad.c:padlist_clone: Don’t bother with IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:30:00 +0000 (20:30 -0700)]
pad.c:padlist_clone: Don’t bother with IS_PADGV

As of c9859fbde1 and c2bad63bb3, PadnamePV(name) will be non-null
for all pad GVs.

6 years agopad.c:pad_push: Don’t bother with IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:28:21 +0000 (20:28 -0700)]
pad.c:pad_push: Don’t bother with IS_PADGV

As of c9859fbde1 and c2bad63bb3, PadnamePV(name) will be true for
all pad GVs.

6 years agopad.c:cv_clone_pad: Don’t bother with IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:27:46 +0000 (20:27 -0700)]
pad.c:cv_clone_pad: Don’t bother with IS_PADGV

As of c9859fbde1 and c2bad63bb3, namesv && PadnamePV(namesv) will be
true for all pad GVs.

6 years agopad.c:pad_tidy: Remove IS_PADCONST and another IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:25:54 +0000 (20:25 -0700)]
pad.c:pad_tidy: Remove IS_PADCONST and another IS_PADGV

Checking these is no longer necessary, since the only thing this loop
does is handle entries that close over variables from outer subrou-
tines.  IS_PADGV and IS_PADCONST will never be true for those.

6 years agopad.c:pad_tidy: Remove redundant IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:23:29 +0000 (20:23 -0700)]
pad.c:pad_tidy: Remove redundant IS_PADGV

GVs are stored in the pads in two code paths, newPADOP when called by
newGVOP, and ck_rvconst.  Both of those now set the pad name to
&PL_sv_no, as of c9859fbde1 and c2bad63bb3.  So GVs are now excluded
from the check a few lines below, just like constants.

6 years agopad.c:pad_alloc: Remove redundant IS_PADGV
Father Chrysostomos [Thu, 18 Sep 2014 03:20:53 +0000 (20:20 -0700)]
pad.c:pad_alloc: Remove redundant IS_PADGV

GVs are stored in the pads in two code paths, newPADOP when called by
newGVOP, and ck_rvconst.  Both of those now set the pad name to
&PL_sv_no, as of c9859fbde1 and c2bad63bb3.  So by the time this
check is reached, IS_PADGV can never be true.

6 years agoregcomp.c: White-space only
Karl Williamson [Fri, 5 Sep 2014 04:48:22 +0000 (22:48 -0600)]
regcomp.c: White-space only

6 years agoperlop: Nits
Karl Williamson [Thu, 18 Sep 2014 04:42:17 +0000 (22:42 -0600)]
perlop: Nits

6 years Correct pod misspelling
Karl Williamson [Thu, 18 Sep 2014 02:58:20 +0000 (20:58 -0600)] Correct pod misspelling

6 years agoPOSIX pod tweaks.
Jarkko Hietaniemi [Sat, 13 Sep 2014 23:10:54 +0000 (19:10 -0400)]
POSIX pod tweaks.

6 years agoperldelta - Fix a typo and remove a trailing space
Steve Hay [Wed, 17 Sep 2014 20:52:31 +0000 (21:52 +0100)]
perldelta - Fix a typo and remove a trailing space

6 years agoUse more NAN_COMPARE_BROKEN.
Jarkko Hietaniemi [Wed, 17 Sep 2014 17:42:22 +0000 (13:42 -0400)]

VC6 landed on new code paths thanks to more NaN.

6 years agoIf numtype is inf/nan, don't bother with Atof.
Jarkko Hietaniemi [Wed, 17 Sep 2014 17:40:10 +0000 (13:40 -0400)]
If numtype is inf/nan, don't bother with Atof.

6 years agoIf numtype is inf/nan, don't do Atof and iv/uv cast.
Jarkko Hietaniemi [Wed, 17 Sep 2014 17:01:03 +0000 (13:01 -0400)]
If numtype is inf/nan, don't do Atof and iv/uv cast.

The return values are bogus, especially so for nan, but what can you do.

6 years agosilence diagnostics in regen/ for now
Yves Orton [Wed, 17 Sep 2014 14:14:01 +0000 (16:14 +0200)]
silence diagnostics in regen/ for now

6 years agoUse the Perl_isfinite multiplication fallback last.
Jarkko Hietaniemi [Wed, 17 Sep 2014 13:45:02 +0000 (09:45 -0400)]
Use the Perl_isfinite multiplication fallback last.

Otherwise we shadow e.g. the Win32 _isfinite.

6 years agoregen_config_h for GCC
Steve Hay [Wed, 17 Sep 2014 13:12:12 +0000 (14:12 +0100)]
regen_config_h for GCC

(Note: Had to locally undo c69a26e800 to avoid trouble redefining stdio to
PerlIO when building in a minimal configuration with USE_PERLIO=undef!)

6 years agoDefine PERL_PRI[efg]ldbl and PERL_SCNfldbl in Win32 canned config files
Steve Hay [Wed, 17 Sep 2014 13:08:47 +0000 (14:08 +0100)]
Define PERL_PRI[efg]ldbl and PERL_SCNfldbl in Win32 canned config files

Without PERL_PRIgldbl, the gcc build on Win32 is completely broken,
stopping at sv.c in the miniperl build since 61cd60c6c5 added a use of
PERL_PRIgldbl in its new FV_GF.

6 years agoregen_config_h for VC++
Steve Hay [Wed, 17 Sep 2014 12:59:04 +0000 (13:59 +0100)]
regen_config_h for VC++

(Note: Had to locally undo c69a26e800 to avoid trouble redefining stdio to
PerlIO when building in a minimal configuration with USE_PERLIO=undef!)

6 years agoEliminate pointless win32/ macro
Steve Hay [Wed, 17 Sep 2014 12:57:18 +0000 (13:57 +0100)]
Eliminate pointless win32/ macro

As per 6e75769d30 and previous commit.