perl.git
4 years agoAIX doesn't set the length in getsockopt.
Jarkko Hietaniemi [Tue, 23 Sep 2014 12:17:47 +0000 (08:17 -0400)] 
AIX doesn't set the length in getsockopt.

[perl #120835] and [rt #91183] and [rt #85570]

Seen errors in blead smoke in AIX 6.1:

cpan/IO-Socket-IP/t/18fdopen .................................. Argument
"\0\0\0^A\0\0\0r\0\0\0\0\0\0\0\0?M-^U\0\0M-^E^[^???\0^N\0..." isn't
numeric in numeric eq (==) at ../../lib/IO/Socket/IP.pm line 748.

cpan/IO-Socket-IP/t/31nonblocking-connect-internet ............ Argument
"\0\0\0\0\0\0\0\0?\0\n^B1?\0\0\0^B\0^BM-\rf?^H?\0^N\0^B?|..." isn't
numeric in scalar assignment at ../../lib/IO/Socket/IP.pm line 707.

4 years agoAvoid mixing Inf/NaN with IV/UV.
Jarkko Hietaniemi [Tue, 23 Sep 2014 01:37:38 +0000 (21:37 -0400)] 
Avoid mixing Inf/NaN with IV/UV.

It really makes no sense to ask what's the IV/UV of this Inf/NaN,
or turn on the IOK/UV flags (private or public).

4 years agoMove the VC6 "broken-nan" define from win32.h to perl.h.
Jarkko Hietaniemi [Tue, 23 Sep 2014 01:18:28 +0000 (21:18 -0400)] 
Move the VC6 "broken-nan" define from win32.h to perl.h.

4 years agot/re/speed.t: adjust watchdog timeout
David Mitchell [Tue, 23 Sep 2014 09:18:05 +0000 (10:18 +0100)] 
t/re/speed.t: adjust watchdog timeout

Thus is based on measuring it on a raspberry pi, which is about the
slowest thing on earth.

4 years agoIncrease $B::VERSION to 1.52
Father Chrysostomos [Tue, 23 Sep 2014 04:56:15 +0000 (21:56 -0700)] 
Increase $B::VERSION to 1.52

4 years agoStop flip from returning the same scalar each time
Father Chrysostomos [Tue, 23 Sep 2014 04:48:48 +0000 (21:48 -0700)] 
Stop flip from returning the same scalar each time

sub f {
  for my $n (1..5) {
    my $x = \scalar($n == 2 .. $n == 4);
    $_ = $x if $n == 1;
    print "$n: $$_\n";
  }
  print("-----\n"), f() if @_
}
f(1);

Output:

1:
2: 1
3: 2
4: 3E0
5:
-----
1:
2:
3:
4:
5:

When f() is called, it evaluates a flipflop five times.  It takes a
reference to the return value the first time, and prints that same
scalar for each iteration.

Notice how the very same scalar is returned each time in the outer sub
call, but the recursive call hides that implementation detail.

.. should not be returning the same scalar each time, or at least that
implementation detail should not leak through.  (Most operators do
reuse the same scalar, but the scalar is flagged such that \ will copy
it, hiding that fact.)

This was happening because of the eccentric way that the flipflop
targets are allocated in the pad.  They are allocated as PADMY (i.e.,
like ‘my’ variables), but without a name.  pad_push (which creates a
new pad for recursion) assumes that anything without a name is PADTMP
instead (copy on reference).  So the recursive call behaves correctly.

I am not sure why the targets were allocated with PADMY to begin with.
(This goes back to perl 5.000.)  But now the PADMY prevents the tar-
gets from being shared with other ops under USE_PAD_RESET builds.

The better way to allocate these targets is to use PADMY as before,
but actually give those slots names.  The target that gets returned
needs to be marked PADTMP, so we also need to copy that flag
in pad_push.

4 years agogv.h: Make gp_line and gp_flags into a bitfield
Father Chrysostomos [Tue, 23 Sep 2014 04:45:26 +0000 (21:45 -0700)] 
gv.h: Make gp_line and gp_flags into a bitfield

This reduces the allocated size on Windows, where an
extra header is added to what gets allocated.  See
<https://rt.perl.org/Ticket/Display.html?id=15667#txn-1309657>.

4 years agoPeek.t: Drop 5.8 support
Father Chrysostomos [Mon, 22 Sep 2014 15:31:09 +0000 (08:31 -0700)] 
Peek.t: Drop 5.8 support

There is no reason these tests need to run on such an old version
any more, and this is getting in the way of something I am trying
to do.

4 years agoPOSIX math: add todo about the macro interface emulations.
Jarkko Hietaniemi [Mon, 22 Sep 2014 13:25:42 +0000 (09:25 -0400)] 
POSIX math: add todo about the macro interface emulations.

4 years agoFurther tweaking for bad skip() usage.
Jarkko Hietaniemi [Mon, 22 Sep 2014 18:51:01 +0000 (14:51 -0400)] 
Further tweaking for bad skip() usage.

See also e96513a2.

4 years agoNo point in pack 'w' for inf/nan.
Jarkko Hietaniemi [Mon, 22 Sep 2014 01:53:24 +0000 (21:53 -0400)] 
No point in pack 'w' for inf/nan.

(For inf, the existing code already did this, slowly.)

4 years agoPATCH: [perl #122252] international currency formatting (POSIX.1-2008)
Andrew Fresh [Wed, 9 Jul 2014 10:30:00 +0000 (03:30 -0700)] 
PATCH: [perl #122252] international currency formatting (POSIX.1-2008)

Add the new portions of locale currency formatting that are specified in
POSIX.1-2008

The commiter (Karl Williamson) made the trivial indentation changes
asked for by H. Merijn Brand, and added a perldelta entry

4 years agoglobvar.sym: include PL_ prefix in names
David Mitchell [Mon, 22 Sep 2014 15:20:18 +0000 (16:20 +0100)] 
globvar.sym: include PL_ prefix in names

By prepending 'PL_' to each line in globvar.sym, it
a) makes makedef.pl slightly simpler,
b) makes it easier to spot all usage of a particular var when you
   do 'git grep PL_foo'

4 years agocreate t/re/speed.t, t/re/speed_thr.t
David Mitchell [Mon, 22 Sep 2014 14:57:52 +0000 (15:57 +0100)] 
create t/re/speed.t,  t/re/speed_thr.t

Some tests in re/pat.t are specifically expected to run very slowly if
certain optimisations break.

Move them into their own test file, along with a watchdog()

(There are probably some more tests that could be moved, but these are
the ones I'm aware of, principally because I wrote them.)

4 years agoSvFLAGS: informally reserve a bit
David Mitchell [Mon, 22 Sep 2014 14:19:50 +0000 (15:19 +0100)] 
SvFLAGS: informally reserve a bit

SvFAKE is currently unused on HVs, so I'm marking it as mine.
Hopefully it will eventually get used for vtables on HVs.

I've also improved the description of SVs_TEMP.

4 years agoFix distclean for "pm_to_blib directly" extensions.
Craig A. Berry [Sun, 21 Sep 2014 22:36:27 +0000 (17:36 -0500)] 
Fix distclean for "pm_to_blib directly" extensions.

The values of the %pm hash already have ../../ prepended, so we
were trying to remove, for example, ../../../../lib/Exporter.pm
instead of ../../lib/Exporter.pm.

This fixes [perl #122820] wherein it was reported that a distclean
make left some build products under lib/.

4 years agoMissing "by" noticed by James Keenan.
Jarkko Hietaniemi [Mon, 22 Sep 2014 01:17:11 +0000 (21:17 -0400)] 
Missing "by" noticed by James Keenan.

4 years agoNo re module if only miniperl built.
Jarkko Hietaniemi [Sun, 21 Sep 2014 23:01:22 +0000 (19:01 -0400)] 
No re module if only miniperl built.

4 years agoHook::LexWrap is a valid pod link
Father Chrysostomos [Mon, 22 Sep 2014 00:21:56 +0000 (17:21 -0700)] 
Hook::LexWrap is a valid pod link

4 years agoMention Hook::LexWrap in perl5220delta
Father Chrysostomos [Mon, 22 Sep 2014 00:20:59 +0000 (17:20 -0700)] 
Mention Hook::LexWrap in perl5220delta

so that I can close the RT ticket (#122757).

4 years agoregen pod issues
Father Chrysostomos [Mon, 22 Sep 2014 00:17:34 +0000 (17:17 -0700)] 
regen pod issues

In this case it’s fine for both to have the same title, since only
one gets installed.

4 years agoAdd perl5220delta.pod to Porting/
Father Chrysostomos [Sun, 21 Sep 2014 23:19:47 +0000 (16:19 -0700)] 
Add perl5220delta.pod to Porting/

Just the template so far.  This gives us a place to accumulate a list
of broken modules (under Known Problems).

4 years agopp.h: Remove SETsv and SETsvUN
Father Chrysostomos [Sun, 21 Sep 2014 19:52:59 +0000 (12:52 -0700)] 
pp.h: Remove SETsv and SETsvUN

With commit 6f1401dc2a, most of the old overload macros stopped being
used.  d4f7673c78 removed them.  SETsv and SETsvUN were only used
by the removed macros, and are now completetly unused in core
and on CPAN.

4 years agoComments on unpack 'D' and long doubles formats.
Jarkko Hietaniemi [Sun, 21 Sep 2014 20:17:06 +0000 (16:17 -0400)] 
Comments on unpack 'D' and long doubles formats.

4 years agoConsistent spaces after dots in perlapi
Father Chrysostomos [Sun, 21 Sep 2014 07:29:09 +0000 (00:29 -0700)] 
Consistent spaces after dots in perlapi

4 years agoGuard against bad skip() arguments, swapped (15ed07b0) or extra.
Jarkko Hietaniemi [Sun, 21 Sep 2014 00:41:31 +0000 (20:41 -0400)] 
Guard against bad skip() arguments, swapped (15ed07b0) or extra.

4 years agoNegation of "-e1" no more todo.
Jarkko Hietaniemi [Sat, 20 Sep 2014 22:38:10 +0000 (18:38 -0400)] 
Negation of "-e1" no more todo.

4 years agoFix -"-e1".
Jarkko Hietaniemi [Sat, 20 Sep 2014 23:45:35 +0000 (19:45 -0400)] 
Fix -"-e1".

Was broken by ae776a2c.

4 years agoThe number to skip is the second argument to skip().
Craig A. Berry [Sat, 20 Sep 2014 23:01:58 +0000 (18:01 -0500)] 
The number to skip is the second argument to skip().

Which is difficult to remember and impossible to verify if you
aren't actually skipping anything.

4 years agoOn VC6 (broken NaN compare) redefine Perl_isinf.
Jarkko Hietaniemi [Sat, 20 Sep 2014 17:45:20 +0000 (13:45 -0400)] 
On VC6 (broken NaN compare) redefine Perl_isinf.

So that it works with NaN, by not using the comparison version of
Perl_isinf.  A little messy but since win32/win32.h is included so
late in perl.h, cannot be done earlier with the other Perl_isinf
logic.  Partially reverts 128eeacb.

4 years agonegate.t: To-do tests for -"-e1"
Father Chrysostomos [Sat, 20 Sep 2014 19:47:37 +0000 (12:47 -0700)] 
negate.t: To-do tests for -"-e1"

broken between 5.21.3 and 5.21.4.

4 years agoFix NaN double to long double conversion on VMS.
Craig A. Berry [Sat, 20 Sep 2014 15:40:35 +0000 (10:40 -0500)] 
Fix NaN double to long double conversion on VMS.

Promotion from double to long double on VMS is apparently done via
the math routine OTS$CVT_FLOAT_T_X, which seems to do the right
thing for ordinary values, infinities, and signaling NaNs.  But
for quiet NaNs (and only on Itanium, not Alpha) it produces a
negative infinity rather than a NaN.  Oops.

So hack around that by detecting NaN in the double and explicitly
setting it in the long double.  We can't use NV_NAN because this
is the code path in Perl_sv_vcatpvfn_flags where we have not
configured long doubles but are using the "fv" long double to format
output.

4 years agoDowngrade the optimization of regcomp.c on mips and mipsel due to a gcc-4.9 bug
Niko Tyni [Tue, 8 Jul 2014 20:04:30 +0000 (23:04 +0300)] 
Downgrade the optimization of regcomp.c on mips and mipsel due to a gcc-4.9 bug

  % cat ~/t.pl
  print ( (q{foo'} =~ /[^']+'/) ?  "ok\n" : "not ok\n" );
  % perl ~/t.pl
  ok
  % ./miniperl ~/t.pl
  not ok

This only happens with -fPIC -ftree-vrp builds.
It is a regression from gcc-4.8.

Bug-Debian: http://bugs.debian.org/754054
Patch-Name: debian/regcomp-mips-optim.diff

4 years agoregen pod issues
Father Chrysostomos [Sat, 20 Sep 2014 16:53:00 +0000 (09:53 -0700)] 
regen pod issues

4 years agoYet more Peek.t fix-ups
Father Chrysostomos [Sat, 20 Sep 2014 16:50:34 +0000 (09:50 -0700)] 
Yet more Peek.t fix-ups

4 years agoPeek.t: This read-only stuff came after 5.21.4
Father Chrysostomos [Sat, 20 Sep 2014 16:29:25 +0000 (09:29 -0700)] 
Peek.t: This read-only stuff came after 5.21.4

4 years agoFix read-only flag checks in lvalue sub exit
Father Chrysostomos [Sat, 20 Sep 2014 13:55:39 +0000 (06:55 -0700)] 
Fix read-only flag checks in lvalue sub exit

See the previous commit for the explanation.  This fixes this
discrepancy:

$ ./miniperl -Ilib -e '+sub:lvalue{my $x = 3; Internals::SvREADONLY $x, 1; $x }->() = 3'
Can't return a readonly value from lvalue subroutine at -e line 1.
$ ./miniperl -Ilib -e '+sub:lvalue{my $x = *foo; Internals::SvREADONLY $x, 1; $x }->() = 3'
Modification of a read-only value attempted at -e line 1.

It was not just a flag check that this commit fixed, but also a bogus
SvREADONLY(TOPs) where TOPs may not even be the scalar we are dying
for, giving ‘a temporary’ for some read-only values.  That mistake was
my own, made in commit d25b0d7b8.

4 years ago[perl #115254] Fix flag check on scope exit
Father Chrysostomos [Sat, 20 Sep 2014 13:41:29 +0000 (06:41 -0700)] 
[perl #115254] Fix flag check on scope exit

$ ./perl -Ilib -e '{ my $x = 3; Internals::SvREADONLY $x, 1; () }'
$ ./perl -Ilib -e '{ my $x = ${qr//}; Internals::SvREADONLY $x, 1; () }'
Modification of a read-only value attempted at -e line 1.

The latter causes $x to be marked FAKE.  At the time this code was
introduced in scope.c, read-only+fake meant cow, so the !fake check
was necessary.  (That said, it has always behaved incorrectly for glob
copies that are also marked fake.)

4 years agoMore Peek.t fix-ups
Father Chrysostomos [Sat, 20 Sep 2014 13:33:14 +0000 (06:33 -0700)] 
More Peek.t fix-ups

4 years agoImplement the bipolar read-only system
Father Chrysostomos [Sat, 20 Sep 2014 06:12:48 +0000 (23:12 -0700)] 
Implement the bipolar read-only system

This fixes bugs related to Hash::Util::unlock accidentally unlocking
internal scalars (e.g., that returned by undef()) and allowing them to
be modified.

Internal read-only values are now marked by two flags, the regular
read-only flag, and the new ‘protected’ flag.

Before this SvREADONLY served two purposes:

1) The code would use it to protect things that must not be modi-
   fied, ever (except when the core sees fit to do so).
2) Hash::Util and everybody else would use it to make this unmodifia-
   ble temporarily when requested by the user.

Internals::SvREADONLY serves the latter purpose and only flips the
read-only flag, so things that need to stay read-only will remain so,
because of the ‘other’ read-only flag, that CPAN doesn’t know about.
(If you are a CPAN author, do not read this.)

4 years agoAdd SVf_PROTECT
Father Chrysostomos [Sat, 20 Sep 2014 05:23:22 +0000 (22:23 -0700)] 
Add SVf_PROTECT

4 years agoPeek.t fix-up
Father Chrysostomos [Sat, 20 Sep 2014 05:18:14 +0000 (22:18 -0700)] 
Peek.t fix-up

4 years agoRenumber SVf_IsCOW
Father Chrysostomos [Sat, 20 Sep 2014 04:48:27 +0000 (21:48 -0700)] 
Renumber SVf_IsCOW

and free up a bit.

4 years agoRevert "Revert "infnan: more tests.""
Father Chrysostomos [Sat, 20 Sep 2014 16:23:30 +0000 (09:23 -0700)] 
Revert "Revert "infnan: more tests.""

This reverts commit af9a438112f49d9f3c6920ffd2c7dc4dd0a24d8d (q.v.)
as planned.

4 years ago[perl #121983] #error with ro ops and no threads
Father Chrysostomos [Sat, 20 Sep 2014 07:43:28 +0000 (00:43 -0700)] 
[perl #121983] #error with ro ops and no threads

PERL_DEBUG_READONLY_OPS is designed to catch modifications of op trees
at run time, to make sure that perl is doing things safely under
threads.  (Op trees are shared between threads.)

On non-threaded perls, ops are modified regularly, which is perfectly
safe, so PERL_DEBUG_READONLY_OPS does not make any sense, and is guar-
anteed to crash.

Forcing a compilation error with cpp directives makes it obvious that
it is not intended for this PERL_DEBUG_READONLY_OPS mode to work with-
out USE_ITHREADS.

4 years ago[perl #122799] Always turn off CvNAMED in cvgv-set
Father Chrysostomos [Sat, 20 Sep 2014 05:15:52 +0000 (22:15 -0700)] 
[perl #122799] Always turn off CvNAMED in cvgv-set

Instead of turning off the flag only when we need to turn it off
(when there is a hek, which is the only time it should be on), just
turn it off unconditionally.

This gets Scope::Upper working once more.

While it is arguably the module’s fault, it’s still a good idea to
make cvgv_set robust.  CvNAMED should never be on after calling it,
regardless of the previous state of the CV.

4 years agoPerl_scalarvoid remove duplicate SvNV call
Daniel Dragan [Fri, 19 Sep 2014 21:44:07 +0000 (17:44 -0400)] 
Perl_scalarvoid remove duplicate SvNV call

4 years agomore factoring out in S_utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 21:43:11 +0000 (17:43 -0400)] 
more factoring out in S_utf8_mg_pos_cache_update

Flip the inputs to keep_earlier, this way one 1 copy of the keep_earlier
three way square exists in machine code. Removing the float casts would
make the calculation more efficient since truncating precsion asm op dont
have to happen after every calculation but I'm not sure about side effects.
Float casts are from commit ab455f6077 with no background provided.

4 years agofactor out more in S_utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 00:33:22 +0000 (20:33 -0400)] 
factor out more in S_utf8_mg_pos_cache_update

4 years agofactor out FP heavy code in utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 00:32:20 +0000 (20:32 -0400)] 
factor out FP heavy code in utf8_mg_pos_cache_update

Visual C 2003 and 6 couldn't factor this FP math heavy expression out
with -O1, and it appeared twice in machine code, so do it by hand.

4 years agoPrepare Module::CoreList for 5.21.5, expected on 2014-10-20
Steve Hay [Sat, 20 Sep 2014 14:37:37 +0000 (15:37 +0100)] 
Prepare Module::CoreList for 5.21.5, expected on 2014-10-20

4 years agoModule::CoreList 5.20140920 is now on CPAN
Steve Hay [Sat, 20 Sep 2014 14:32:57 +0000 (15:32 +0100)] 
Module::CoreList 5.20140920 is now on CPAN

4 years agoRegen B::Op_private for 5.21.5
Steve Hay [Sat, 20 Sep 2014 14:31:15 +0000 (15:31 +0100)] 
Regen B::Op_private for 5.21.5

4 years agoBump version to 5.21.5
Steve Hay [Sat, 20 Sep 2014 14:01:41 +0000 (15:01 +0100)] 
Bump version to 5.21.5

4 years agoCreate new perldelta for 5.21.5
Steve Hay [Sat, 20 Sep 2014 13:55:13 +0000 (14:55 +0100)] 
Create new perldelta for 5.21.5

4 years agoAdd epigraph for 5.12.4
Steve Hay [Sat, 20 Sep 2014 13:48:07 +0000 (14:48 +0100)] 
Add epigraph for 5.12.4

4 years agoPerl 5.21.4 today v5.21.4
Steve Hay [Sat, 20 Sep 2014 10:03:38 +0000 (11:03 +0100)] 
Perl 5.21.4 today

4 years agoFinalize perldelta
Steve Hay [Sat, 20 Sep 2014 09:59:59 +0000 (10:59 +0100)] 
Finalize perldelta

4 years agoUpdate Module::CoreList for 5.21.4
Steve Hay [Sat, 20 Sep 2014 09:45:49 +0000 (10:45 +0100)] 
Update Module::CoreList for 5.21.4

4 years agoBlead is in sync with Data::Dumper 2.154
Steve Hay [Sat, 20 Sep 2014 09:28:18 +0000 (10:28 +0100)] 
Blead is in sync with Data::Dumper 2.154

4 years agoDisable libquadmath in configure.com.
Craig A. Berry [Sat, 20 Sep 2014 02:13:54 +0000 (21:13 -0500)] 
Disable libquadmath in configure.com.

It can't reasonably be a configuration option since there is no
special library needed (or available) to do 128-bit doubles.

Also, we can't set the default of a configure variable to "n" unless
it's the default answer to a question we ask; the compiler
understands "#define" and "#undef" but not "#n".

4 years agoRevert "infnan: more tests."
Jarkko Hietaniemi [Sat, 20 Sep 2014 02:01:32 +0000 (22:01 -0400)] 
Revert "infnan: more tests."

This reverts commit 5d288d736c2758c27a5943647f4a524f0e93a642.

So that Steve Hay can enjoy a fail-free VC6 build for 5.21.4.

After the release, let's revert this revert, and return to
punishing ourselves with VC6.

4 years ago$VERSION bump cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
Steve Hay [Sat, 20 Sep 2014 01:37:53 +0000 (02:37 +0100)] 
$VERSION bump cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm

Picked up by .\perl Porting\cmpVERSION.pl -d --tag v5.21.3 but not by
.\perl Porting\cmpVERSION.pl -d -x --tag v5.21.3 or porting/cmp_version.t.

4 years agoperldelta: quadmath
Jarkko Hietaniemi [Sat, 20 Sep 2014 01:00:02 +0000 (21:00 -0400)] 
perldelta: quadmath

4 years agoperldelta - Remove boilerplate, fill in modules changes and other minor edits
Steve Hay [Sat, 20 Sep 2014 00:17:32 +0000 (01:17 +0100)] 
perldelta - Remove boilerplate, fill in modules changes and other minor edits

And a known_pod_issues.dat regen since I'm giving up for now at least on
trying to get the perldiag link to "\N{} in inverted character class or as
a range end-point is restricted to one character in regex; marked by
S<<-- HERE> in m/%s/" working.

4 years agoUpdate release announcement template
Steve Hay [Fri, 19 Sep 2014 23:46:09 +0000 (00:46 +0100)] 
Update release announcement template

4 years agoquadmath: add test actually exercising this fancy precision.
Jarkko Hietaniemi [Fri, 19 Sep 2014 20:26:38 +0000 (16:26 -0400)] 
quadmath: add test actually exercising this fancy precision.

4 years agoEditorializing quadmath entry.
Jarkko Hietaniemi [Fri, 19 Sep 2014 13:43:35 +0000 (09:43 -0400)] 
Editorializing quadmath entry.

4 years agoperllocale: Nit
Karl Williamson [Fri, 19 Sep 2014 18:09:27 +0000 (12:09 -0600)] 
perllocale: Nit

4 years agoperldelta: Grammar nit
Karl Williamson [Fri, 19 Sep 2014 17:49:27 +0000 (11:49 -0600)] 
perldelta: Grammar nit

The noun 'effect' was meant here.

4 years agoperldiag: Reunite ‘perhaps you forgot to load’
Father Chrysostomos [Fri, 19 Sep 2014 15:41:00 +0000 (08:41 -0700)] 
perldiag: Reunite ‘perhaps you forgot to load’

to the other part of the message.  diagnostics.pm won’t find it otherwise:

$ perl -Mdiagnostics -we '"foo"->bar'
Can't locate object method "bar" via package "foo" (perhaps you forgot to load
"foo"?) at -e line 1 (#1)
Uncaught exception from user code:
Can't locate object method "bar" via package "foo" (perhaps you forgot to load "foo"?) at -e line 1.

Now we have this:

Can't locate object method "bar" via package "foo" (perhaps you forgot to load
"foo"?) at -e line 1 (#1)
    (F) You called a method on a class that did not exist, and the method
    could not be found in UNIVERSAL.  This often means that a method
    requires a package that has not been loaded.

Uncaught exception from user code:
Can't locate object method "bar" via package "foo" (perhaps you forgot to load "foo"?) at -e line 1.

4 years agoB.xs: fix syntax err in PERL_VERSION < 17
David Mitchell [Fri, 19 Sep 2014 17:28:09 +0000 (18:28 +0100)] 
B.xs: fix syntax err in PERL_VERSION < 17

The blead version of B.xs obviously hasn't been able to be compiled
on old perls for a while. This fixes one such syntax error, blind.

4 years agoregen/op_private: tidy up rv2cv entry
David Mitchell [Fri, 19 Sep 2014 17:24:11 +0000 (18:24 +0100)] 
regen/op_private: tidy up rv2cv entry

Remove some temporary comments, and merge the two places where rv2cv flags
are defined.

4 years agomove OPpTARGET_MY comments from opcode.pl
David Mitchell [Fri, 19 Sep 2014 17:14:01 +0000 (18:14 +0100)] 
move OPpTARGET_MY comments from opcode.pl

There is a section in regen/opcode.pl 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.

4 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 Concise.pm and regen/opcodes T flags.

4 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.

4 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

4 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.

4 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
them.

4 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.

4 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:

    unthreaded:

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

    threaded:

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

4 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

4 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:
https://rt.cpan.org/Ticket/Display.html?id=98766
and has been applied.

4 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.

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

4 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.

4 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.

4 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.

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

4 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.

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

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

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

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

4 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.

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

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

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

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

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