99 min agoPOSIX math: Comment tweaks. blead
Jarkko Hietaniemi [Tue, 2 Sep 2014 00:12:47 +0000]
POSIX math: Comment tweaks.

99 min agoPOSIX math: lgammal, not gammal.
Jarkko Hietaniemi [Tue, 2 Sep 2014 00:08:45 +0000]
POSIX math: lgammal, not gammal.

99 min agoMake certain pp_sin result is always initialized.
Jarkko Hietaniemi [Tue, 2 Sep 2014 00:06:39 +0000]
Make certain pp_sin result is always initialized.

3 hours agointroduce gv_stashsvpvn_cached()
syber [Mon, 1 Sep 2014 21:47:54 +0000]
introduce gv_stashsvpvn_cached()

Wrap gv_stashpvn_internal() with a routine which caches
what it does, and rework gv_stashsv() and gv_stashpvn()
to use the cached codepath.

Also rework the documentation of gv_stashsv() and gv_stashpvn()
that the gv_stashsv() is prefered as there is a mechanism to cache
the hash value associated with the name which requires an SV
to passed in as an argument for caching purposes.

Note this is a reworked version of sybers original patch.

3 hours agoRename S_stashpvn to S_gv_stashpvn_internal and add to embed.fnc
Yves Orton [Mon, 1 Sep 2014 22:09:01 +0000]
Rename S_stashpvn to S_gv_stashpvn_internal and add to embed.fnc

S_stashpvn was not added to embed.fnc properly, and is named contrary
to general expectations of the Perl internals.

This fixes that, there should be no other functional differences.

3 hours agoPOSIX math: problems found in Win32.
Jarkko Hietaniemi [Mon, 1 Sep 2014 21:45:49 +0000]
POSIX math: problems found in Win32.

4 hours agoIgnore warning about unused result since it is desperation time.
Jarkko Hietaniemi [Mon, 1 Sep 2014 21:22:03 +0000]
Ignore warning about unused result since it is desperation time.

4 hours agoHP-UX: more robust (10.X) and verbose test skippage.
Jarkko Hietaniemi [Mon, 1 Sep 2014 20:26:31 +0000]
HP-UX: more robust (10.X) and verbose test skippage.

4 hours agoStatic initialization using 1/0 or 0/0 not C89.
Jarkko Hietaniemi [Mon, 1 Sep 2014 19:55:15 +0000]
Static initialization using 1/0 or 0/0 not C89.

7 hours agoUpdate ExtUtils::CBuilder to version 0.280219. Correct one test.
Alberto Simões [Mon, 1 Sep 2014 18:23:26 +0000]
Update ExtUtils::CBuilder to version 0.280219. Correct one test.

Switch to using VERSION_FROM in Makefile.PL.

For: RT #122675

Add update to ExtUtils::CBuilder to perldelta.

7 hours agolib/utf8_heavy.pl: Don't return empty under miniperl
Karl Williamson [Mon, 1 Sep 2014 18:11:48 +0000]
lib/utf8_heavy.pl: Don't return empty under miniperl

When run under miniperl before mktables has generated its tables , this
program would return empty for Unicode properties instead of an error
condition.  The problem was that when it detected this, it just
continued on to the rest of the code which assumed it had found an empty
table, instead of no table at all.  The solution is to return an e error
when one is detected.

7 hours agoPOSIX math: First cut at C99 math docs.
Jarkko Hietaniemi [Mon, 1 Sep 2014 03:07:58 +0000]
POSIX math: First cut at C99 math docs.

Undoubtedly stuff missing and incorrect.  And typod.

7 hours agoPOSIX math: Perl_ldexp, not Perl_ldexpl.
Jarkko Hietaniemi [Mon, 1 Sep 2014 17:25:42 +0000]
POSIX math: Perl_ldexp, not Perl_ldexpl.

7 hours agoPOSIX math: define the fpclassify returns always if needed.
Jarkko Hietaniemi [Mon, 1 Sep 2014 17:03:53 +0000]
POSIX math: define the fpclassify returns always if needed.

(Even without HAS_FPCLASSIFY.)

7 hours agoPOSIX math: Initialize RETVAL to NV_NAN/-1.
Jarkko Hietaniemi [Mon, 1 Sep 2014 13:29:30 +0000]
POSIX math: Initialize RETVAL to NV_NAN/-1.

7 hours agoPOSIX math: M_LN10 was missing.
Jarkko Hietaniemi [Mon, 1 Sep 2014 12:51:39 +0000]
POSIX math: M_LN10 was missing.

7 hours agoHP-UX: missing C99 math.
Jarkko Hietaniemi [Mon, 1 Sep 2014 17:15:31 +0000]
HP-UX: missing C99 math.

7 hours agoHP-UX: 10.X doesn't really have isfinite().
Jarkko Hietaniemi [Mon, 1 Sep 2014 16:13:03 +0000]
HP-UX: 10.X doesn't really have isfinite().

7 hours agoHP-UX: 10.20 math functions don't generate infinities.
Jarkko Hietaniemi [Mon, 1 Sep 2014 15:30:57 +0000]
HP-UX: 10.20 math functions don't generate infinities.

So skip the tests that attempt creating such.

7 hours agoUse Perl_isfinite() to guard the frexpl.
Jarkko Hietaniemi [Mon, 1 Sep 2014 16:17:02 +0000]
Use Perl_isfinite() to guard the frexpl.

Also, print out the deadly nv.

7 hours agoPerl_isinf and Perl_isfinite fallbacks.
Jarkko Hietaniemi [Mon, 1 Sep 2014 14:06:10 +0000]
Perl_isinf and Perl_isfinite fallbacks.

(We have so many fallbacks that some of them probably never deploy.)

7 hours agoDo not use HUGE_VAL/VALL for NV_INF.
Jarkko Hietaniemi [Mon, 1 Sep 2014 13:55:23 +0000]
Do not use HUGE_VAL/VALL for NV_INF.

Because some platforms (like HP-UX 10.*) have HUGE_VAL as DBL_MAX,
which, while large, is not quite the infinity.  So have infinity
own our very own.

Similarly for NV_NAN.

9 hours agoSome missing c99_xxx functions for POSIX.xs on VMS.
Craig A. Berry [Mon, 1 Sep 2014 16:11:56 +0000]
Some missing c99_xxx functions for POSIX.xs on VMS.

9 hours agofix fp_classify in perl.h for VMS.
Craig A. Berry [Mon, 1 Sep 2014 16:07:47 +0000]
fix fp_classify in perl.h for VMS.

We have to include <fp.h> as well for the macros we're testing
for to be defined.

9 hours agoRevert "sv_grow: performance improvement for short strings"
Father Chrysostomos [Mon, 1 Sep 2014 15:23:00 +0000]
Revert "sv_grow: performance improvement for short strings"

This reverts commit 880c169bb2bd5e6e9ae996842d6860bf88d28585.

11 hours agoperldelta: Fix typo
Karl Williamson [Mon, 1 Sep 2014 14:46:22 +0000]
perldelta: Fix typo

11 hours agoPATCH: [perl #122655] 5.20 regression: '"X" !~ /[x]/i'
Karl Williamson [Sat, 30 Aug 2014 16:44:01 +0000]
PATCH: [perl #122655] 5.20 regression: '"X" !~ /[x]/i'

This problem occurs only when the pattern is UTF-8, contains a single ASCII
lowercase letter.  It does not match its uppercase counterpart.

11 hours agorelease schedule: put Abigail on for October
Ricardo Signes [Mon, 1 Sep 2014 13:55:45 +0000]
release schedule: put Abigail on for October

12 hours agoFix assertion failure with our subs and constants
Father Chrysostomos [Mon, 1 Sep 2014 06:14:20 +0000]
Fix assertion failure with our subs and constants

The code path that looks up ‘our’ subs was not vivifying GVs in
the symbol table, and it was assuming that anything it found
would be a GV.

Constants created by ‘use constant’ are stored as simple scalar refs,
when possible, instead of GVs with CVs.

So GvCV() was called on an RV, and blew up.

$ ./miniperl -Ilib -Mfeature=lexical_subs -e 'our sub foo; BEGIN { delete $::{foo}; } use constant foo=>3; warn foo()'
The lexical_subs feature is experimental at -e line 1.
Assertion failed: (SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV), function Perl_yylex, file toke.c, line 6566.
Abort trap: 6

12 hours agoembed.fnc: fix comment
David Mitchell [Mon, 1 Sep 2014 13:21:18 +0000]
embed.fnc: fix comment

spotted by bulk88

22 hours agoPOSIX math: M_SQRT2 and M_2_SQRTPI were misspelled.
Jarkko Hietaniemi [Mon, 1 Sep 2014 01:53:39 +0000]
POSIX math: M_SQRT2 and M_2_SQRTPI were misspelled.

And therefore not constant-exported.

24 hours agoperl.c: Improve buildcustomize error message
Father Chrysostomos [Mon, 1 Sep 2014 01:20:28 +0000]
perl.c: Improve buildcustomize error message

buildcustomize.pl was being loaded with generated code that died if
‘lib/buildcustomize.pl’ existed but do-file failed.  $@ was used as
the error message.

If the file does not exist (do-file searching @INC), then $@ is empty
and the error is in $!.  Before 9054c817, this is what we would get:

$ ./miniperl -T -Ilib -e0
Died.
BEGIN failed--compilation aborted.

I fixed that in 9054c817 so there would be no error (by adding an ini-
tial ‘./’ to the path.)

That message was rather baffling.  It would have been easier to track
down the cause if I had seen something like this:

$ ./miniperl -T -Ilib -e0
lib/buildcustomize.pl: No such file or directory.
BEGIN failed--compilation aborted.

This commit changes the generated code to output $! like that if $@ is
empty, in case a similar bug occurs again.

25 hours agoAIX: allow one to keep long doubles, even if broken.
Jarkko Hietaniemi [Mon, 1 Sep 2014 00:08:10 +0000]
AIX: allow one to keep long doubles, even if broken.

28 hours agoPOSIX math: Solaris needs -lsunmath.
Jarkko Hietaniemi [Sun, 31 Aug 2014 21:37:28 +0000]
POSIX math: Solaris needs -lsunmath.

28 hours agoPOSIX math: use POSIX now imports Inf and NaN.
Jarkko Hietaniemi [Sun, 31 Aug 2014 20:02:42 +0000]
POSIX math: use POSIX now imports Inf and NaN.

The import illusion is not flawless: print -Inf
Ambiguous use of -Inf resolved as -&Inf() at -e line 1.
-Inf
Would need toke.c trip, I guess.

Also, try definining the C99 INFINITY and NAN even if <math.h> didn't.

28 hours agoPOSIX math: fpclassify continues.
Jarkko Hietaniemi [Sun, 31 Aug 2014 19:40:51 +0000]
POSIX math: fpclassify continues.

28 hours agoPOSIX math: Bessel fixes.
Jarkko Hietaniemi [Sun, 31 Aug 2014 19:07:13 +0000]
POSIX math: Bessel fixes.

28 hours agoPOSIX math: todo for emulating fegetround() with fpgetround().
Jarkko Hietaniemi [Sun, 31 Aug 2014 15:03:48 +0000]
POSIX math: todo for emulating fegetround() with fpgetround().

28 hours agoPOSIX math: Configure scan fpgetround
Jarkko Hietaniemi [Sun, 31 Aug 2014 14:51:40 +0000]
POSIX math: Configure scan fpgetround

Legacy BSD way of fegetround.

28 hours agoPOSIX math: lrint and rint emulations.
Jarkko Hietaniemi [Sat, 30 Aug 2014 14:34:41 +0000]
POSIX math: lrint and rint emulations.

28 hours agoPOSIX math: Add fegetround() and fesetround().
Jarkko Hietaniemi [Sat, 30 Aug 2014 13:56:51 +0000]
POSIX math: Add fegetround() and fesetround().

28 hours agoPOSIX math: More handling of legacy implementations.
Jarkko Hietaniemi [Sat, 30 Aug 2014 13:28:43 +0000]
POSIX math: More handling of legacy implementations.

28 hours agoPOSIX math: Configure scan d_fegetround and i_fenv.
Jarkko Hietaniemi [Sat, 30 Aug 2014 13:17:11 +0000]
POSIX math: Configure scan d_fegetround and i_fenv.

28 hours agoPOSIX math: fpclassify emulation.
Jarkko Hietaniemi [Sat, 30 Aug 2014 12:54:19 +0000]
POSIX math: fpclassify emulation.

28 hours agoPOSIX math: Portability emulations and constants.
Jarkko Hietaniemi [Sat, 30 Aug 2014 02:11:58 +0000]
POSIX math: Portability emulations and constants.

Plus fix the cmp_ok tests which had epsilon 18 magnitudes off.
(Didn't cause any false positives, luckily.)

28 hours agoPOSIX math: HP-UX exceptions.
Jarkko Hietaniemi [Sat, 30 Aug 2014 00:31:56 +0000]
POSIX math: HP-UX exceptions.

28 hours agoPOSIX math: Have only one not_here for each API.
Jarkko Hietaniemi [Fri, 29 Aug 2014 18:56:43 +0000]
POSIX math: Have only one not_here for each API.

28 hours agoPOSIX math: Win32 shuffling.
Jarkko Hietaniemi [Fri, 29 Aug 2014 14:38:56 +0000]
POSIX math: Win32 shuffling.

28 hours agoPOSIX math: Use HAS_ACOSH to enable/disable the C99 math.
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:52:58 +0000]
POSIX math: Use HAS_ACOSH to enable/disable the C99 math.

28 hours agoPOSIX math: Skip the POSIX C99 math tests if no acosh().
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:46:06 +0000]
POSIX math: Skip the POSIX C99 math tests if no acosh().

28 hours agoPOSIX math: Configure scan for acosh.
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:42:58 +0000]
POSIX math: Configure scan for acosh.

28 hours agoPOSIX math: Add more C99 math tests.
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:37:20 +0000]
POSIX math: Add more C99 math tests.

(Note: these all will fail if we don't have C99 math.  Duh.)

28 hours agoPOSIX math: Hopefully better use of Configure symbols.
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:20:43 +0000]
POSIX math: Hopefully better use of Configure symbols.

28 hours agoPOSIX math: Configure scan for j0 and j0l.
Jarkko Hietaniemi [Fri, 29 Aug 2014 13:01:36 +0000]
POSIX math: Configure scan for j0 and j0l.

(j0 is canary forthe  Bessel functions, common math.h extensions,
 not dependent on C99, j0l is its long double version.)

28 hours agoPOSIX math: Add FP_ILOGB0 and FP_ILOGBNAN.
Jarkko Hietaniemi [Fri, 29 Aug 2014 12:21:46 +0000]
POSIX math: Add FP_ILOGB0 and FP_ILOGBNAN.

28 hours agoPOSIX math: Implement glue for the C99 math functions.
Jarkko Hietaniemi [Thu, 28 Aug 2014 00:52:39 +0000]
POSIX math: Implement glue for the C99 math functions.

Plus the Bessel functions j0, j1, jn, y0, y1, yn: common extensions
from BSD/SVID/XPG4.

Plus the constants INFINITY/NAN.

28 hours agoPOSIX math: Add M_ constants like M_PI.
Jarkko Hietaniemi [Thu, 28 Aug 2014 00:33:55 +0000]
POSIX math: Add M_ constants like M_PI.

28 hours ago[perl #122669] Don’t taint at compile time
Father Chrysostomos [Sun, 31 Aug 2014 21:10:45 +0000]
[perl #122669] Don’t taint at compile time

 #!perl -T

 # tainted constant
 use constant K=>$^X;

 # Just reading the constant for the sake of folding can enabled
 # taintedness at compile time.
 0 if K;

 # Taintedness is still on when the ‘strict.pm’ SV is created, so
 # require croaks on it (‘Insecure dependency’).
 use strict;

The fix is simply not to propagate taintedness at compile time.
Hence, the value of K will still be tainted at run time (require(K)
croaks), but just reading the value of K at compile time won’t taint
subsequent string literals (or barewords treated as strings).

‘Compile time’ here is relative:  Taintedness still wafts about as
usual when BEGIN blocks are executed, because code is actually run-
ning.  It’s when code is being parsed that propagation is disabled.

The reason taint propagation could span across statements at compile
time was that *execution* of a new statement resets taintedness,
whereas parsing is oblivious to it.

28 hours agoLet taint.t run under miniperl
Father Chrysostomos [Sun, 31 Aug 2014 20:40:30 +0000]
Let taint.t run under miniperl

‘use re taint;’ doesn’t load re.xs, and hasn’t for a long time.

28 hours agotaint.t: Fix skip count
Father Chrysostomos [Sun, 31 Aug 2014 20:39:57 +0000]
taint.t: Fix skip count

28 hours agoGet ‘./miniperl -Ilib -T’ working
Father Chrysostomos [Sun, 31 Aug 2014 20:11:03 +0000]
Get ‘./miniperl -Ilib -T’ working

If the first directory included via -I contains buildcustomize.pl,
then miniperl will try to load it at startup.  This allows the build
process to access all the necessary directories, because
buildcustomize.pl fills in @INC.

This was not working under taint mode, making it a pain for me to
diagnose tainting bugs with miniperl (which builds faster than perl
proper, obviously).

It failed because buildcustomize.pl is loaded with generated code that
does ‘do "lib/buildcustomize.pl"’ (where ‘lib’ is taken from -Ilib),
but do-file searches @INC, which does not include the current direc-
tory under taint mode.

The easiest solution here is to add ‘./’ to the beginning of the path.
It is unlikely that anyone is using miniperl -I/... (with an absolute
path), and miniperl is only supposed to be used for building or devel-
oping perl, anyway.

29 hours agoperlsec: Another typo
Father Chrysostomos [Sun, 31 Aug 2014 19:58:37 +0000]
perlsec: Another typo

29 hours agoperlsec: Typo
Father Chrysostomos [Sun, 31 Aug 2014 19:55:22 +0000]
perlsec: Typo

29 hours agoperlsec: Consistent spaces after dots
Father Chrysostomos [Sun, 31 Aug 2014 19:55:12 +0000]
perlsec: Consistent spaces after dots

31 hours agoperldelta for 59e6df9f1cf
Father Chrysostomos [Sun, 31 Aug 2014 18:15:37 +0000]
perldelta for 59e6df9f1cf

31 hours agoperldelta for 172a6a76e8c
Father Chrysostomos [Sun, 31 Aug 2014 18:11:33 +0000]
perldelta for 172a6a76e8c

33 hours agoAdd perldelta entry for ExtUtils::Manifest upgrade.
James E Keenan [Sun, 31 Aug 2014 16:39:46 +0000]
Add perldelta entry for ExtUtils::Manifest upgrade.

33 hours ago=for apidoc wrong api
Jarkko Hietaniemi [Sun, 31 Aug 2014 16:12:37 +0000]
=for apidoc wrong api

33 hours agoCouple more infnan tests.
Jarkko Hietaniemi [Sun, 31 Aug 2014 16:04:46 +0000]
Couple more infnan tests.

33 hours agosqrt() disappeared in OSX, assuming it became pow().
Jarkko Hietaniemi [Sun, 31 Aug 2014 14:35:35 +0000]
sqrt() disappeared in OSX, assuming it became pow().

Use exp() instead, less likely to disappear.  Yes, handwaving.

33 hours agoAIX: if long doubles do not mix with infinity, disable long doubles.
Jarkko Hietaniemi [Sun, 31 Aug 2014 13:48:46 +0000]
AIX: if long doubles do not mix with infinity, disable long doubles.

33 hours agoDetect HAS_AIX_POWL_NEG_BASE_BUG in hints/aix.sh
Jarkko Hietaniemi [Sun, 31 Aug 2014 13:21:30 +0000]
Detect HAS_AIX_POWL_NEG_BASE_BUG in hints/aix.sh

33 hours agoThe fp classification is a royal mess.
Jarkko Hietaniemi [Sun, 31 Aug 2014 12:34:10 +0000]
The fp classification is a royal mess.

Try avoiding false detections by guarding against an interface falsely
matching a set of return values.  This can still go wrong if <math.h>
declares several sets.  Would really need an array of Configure tests.

33 hours agoWrong result for double-double sqrt(2).
Jarkko Hietaniemi [Sun, 31 Aug 2014 03:39:28 +0000]
Wrong result for double-double sqrt(2).

33 hours agoS_infnan_copy needs at most 5 bytes of output size.
Jarkko Hietaniemi [Sun, 31 Aug 2014 03:13:27 +0000]
S_infnan_copy needs at most 5 bytes of output size.

33 hours agoDo not test sin/cos at [+-]pi, either.
Jarkko Hietaniemi [Sun, 31 Aug 2014 01:14:12 +0000]
Do not test sin/cos at [+-]pi, either.

With AIX and long doubles you may not get exactly the approximation
of pi you were thinking of.  "This is not the pi you are looking for".

33 hours agoAvoid using function pointers for math functions.
Jarkko Hietaniemi [Sun, 31 Aug 2014 01:11:30 +0000]
Avoid using function pointers for math functions.

Otherwise AIX with long double has issues, see perl #122571.  AIX has
some rather intricate arrangement of symbols and macros.  Also, it is
okay to use two switches instead of just one.

35 hours agoUpdate ExtUtils-Manifest to CPAN version 1.66
Chris 'BinGOs' Williams [Sun, 31 Aug 2014 13:52:18 +0000]
Update ExtUtils-Manifest to CPAN version 1.66

  [DELTA]

1.66  Sun, Aug 31, 2014
  - manifind() will now follow symlinks
  - Tests fixed if PERL_MM_MANIFEST_VERBOSE env var is set to
    false value
  - Fixed bug with maniread()'s handling of quoted filenames

35 hours agoperldelta for 8b57a5fa
Father Chrysostomos [Sun, 31 Aug 2014 13:53:34 +0000]
perldelta for 8b57a5fa

35 hours agoperldelta for 211a4342
Father Chrysostomos [Sun, 31 Aug 2014 13:52:01 +0000]
perldelta for 211a4342

35 hours agoperldelta for f20d0df0f
Father Chrysostomos [Sun, 31 Aug 2014 13:50:17 +0000]
perldelta for f20d0df0f

35 hours agoperldelta for 4dda930be/#122556
Father Chrysostomos [Sun, 31 Aug 2014 13:47:13 +0000]
perldelta for 4dda930be/#122556

35 hours agoperldelta: A to-do item
Father Chrysostomos [Sun, 31 Aug 2014 13:45:38 +0000]
perldelta: A to-do item

Mostly my own reminder, because I have not rebased yet, and this
entry will conflict with something already pushed.

35 hours agoperldelta for 8380b6901
Father Chrysostomos [Sun, 31 Aug 2014 13:44:18 +0000]
perldelta for 8380b6901

35 hours agoperldelta for acb187b49 (part of #69456)
Father Chrysostomos [Sun, 31 Aug 2014 13:42:29 +0000]
perldelta for acb187b49 (part of #69456)

35 hours agoperldelta for eff754733a9
Father Chrysostomos [Sun, 31 Aug 2014 13:39:27 +0000]
perldelta for eff754733a9

35 hours agoperldelta for #80368/e4916dd1b3
Father Chrysostomos [Sun, 31 Aug 2014 13:35:55 +0000]
perldelta for #80368/e4916dd1b3

35 hours agoStop prototype declaration from clobbering constants
Father Chrysostomos [Sun, 31 Aug 2014 13:27:45 +0000]
Stop prototype declaration from clobbering constants

$ perl -e 'use constant f=>3; sub f($); warn eval "&f"'
Runaway prototype at -e line 1.
Prototype mismatch:: none vs ($) at -e line 1.
Undefined subroutine &main::f called at (eval 1) line 1.
...caught at -e line 1.
$ perl -e 'sub f (){3} sub f($); warn eval "&f"'
Prototype mismatch: sub main::f () vs ($) at -e line 1.
3 at -e line 1.

(The ‘Runaway prototype’ warning was removed in acfcf464b177, in which
I stated wrongly that the warning could only come about with stash
manipulation.  I suppose the warning was really warning me that the
implementation was broken, which it was until this commit.)

When constant refs in the symbol table were introduced in 5.10.0
(a bisect points to e040ff70dc), one code path in newATTRSUB--that
assumes that a stash entry that is not a GV is not a defined sub,
but either a forward declaration or no sub at all--was not updated to
account for this new way of storing constants.

35 hours agoStop anon sub compilation from clobbering __ANON__
Father Chrysostomos [Sat, 30 Aug 2014 23:19:24 +0000]
Stop anon sub compilation from clobbering __ANON__

Anonymous subs point to *__ANON__ simply because internals expect
defined subroutines to have CvGV pointing somewhere.

So why does anonymous constant sub compilation wipe
*__ANON__{CODE} clean?

$ perl -e 'sub main::__ANON__ { 42 }; warn main::__ANON__; # sub(){3}'
42 at -e line 1.
$ perl -e 'sub main::__ANON__ { 42 }; warn main::__ANON__;  sub(){3}'
Undefined subroutine &main::__ANON__ called at -e line 1.

It doesn’t happen with non-constant subs:

$ perl -e 'sub main::__ANON__ { 42 }; warn main::__ANON__;  sub{3}'
42 at -e line 1.

This is actually a regression:

../perl.git/Porting/bisect.pl  --end=perl-5.8.8  --target=miniperl -e  'sub main::__ANON__ { 42 }; warn main::__ANON__;  sub(){3}'

beab0874143b7208922720fecefc4a224011fa25 is the first bad commit
commit beab0874143b7208922720fecefc4a224011fa25
Author: John Tobey <jtobey at john-edwin-tobey.org>
Date:   Fri Oct 20 18:03:27 2000 -0400

    Re: Creating const subs for constants.
    Message-Id: <m13mo0N-000FObC@feynman.localnet>

    p4raw-id: //depot/perl@7389

The new code path for constants did an unconditional
GvCV_set(gv, NULL), instead of checking whether there was a
name first.

35 hours agoPorting/bisect.pl: Add missing full stop
Father Chrysostomos [Sat, 30 Aug 2014 23:08:13 +0000]
Porting/bisect.pl: Add missing full stop

36 hours agoadd missing close paren in pod
Doug Bell [Sun, 31 Aug 2014 08:20:23 +0000]
add missing close paren in pod

For: RT #122663 (partial)

36 hours agosig() should be kill()
Doug Bell [Sun, 31 Aug 2014 08:02:56 +0000]
sig() should be kill()

There is no sig() function, and the block of text has similar language
to a previous block which uses kill().

For: RT #122662

2 days agoAdd perldelta entries for updated modules and pragmata.
James E Keenan [Sun, 31 Aug 2014 00:59:58 +0000]
Add perldelta entries for updated modules and pragmata.

2 days agoAnother way to detect C99.
Jarkko Hietaniemi [Fri, 29 Aug 2014 14:56:11 +0000]
Another way to detect C99.

2 days agoHAS_C99 was oddly defined, and oddly used.
Jarkko Hietaniemi [Fri, 29 Aug 2014 12:45:09 +0000]
HAS_C99 was oddly defined, and oddly used.

It was defined as "C version high enough, but not VMS",
but used as "does it have intmax_t".  Now that we have
I_STDINT, we can do better.

2 days agoConfigure: add i_stdint.
Jarkko Hietaniemi [Fri, 29 Aug 2014 12:43:34 +0000]
Configure: add i_stdint.

2 days agoapidoc for Perl_isinfnan.
Jarkko Hietaniemi [Fri, 29 Aug 2014 23:57:39 +0000]
apidoc for Perl_isinfnan.

2 days agoAdd a simple atan2() test.
Jarkko Hietaniemi [Thu, 28 Aug 2014 01:17:30 +0000]
Add a simple atan2() test.

(Not similar to the 'torture tests' that were removed.)

2 days agoCheck validity of keys in hash passed as first argument.
James E Keenan [Sat, 16 Aug 2014 19:00:01 +0000]
Check validity of keys in hash passed as first argument.

Prevent processing of misspelled options in hash passed to find() or
finddepth().

Add perldelta entry for File::Find.

For: RT #122547

2 days agoFix up Peek.t after priv flag twiddling
Father Chrysostomos [Sat, 30 Aug 2014 05:20:30 +0000]
Fix up Peek.t after priv flag twiddling