13 min agonegate.t: To-do tests for -"-e1" blead
Father Chrysostomos [Sat, 20 Sep 2014 19:47:37 +0000]
negate.t: To-do tests for -"-e1"

broken between 5.21.3 and 5.21.4.

2 hours agoFix NaN double to long double conversion on VMS.
Craig A. Berry [Sat, 20 Sep 2014 15:40:35 +0000]
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

2 hours 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]
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
  % ./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

3 hours agoregen pod issues
Father Chrysostomos [Sat, 20 Sep 2014 16:53:00 +0000]
regen pod issues

3 hours agoYet more Peek.t fix-ups
Father Chrysostomos [Sat, 20 Sep 2014 16:50:34 +0000]
Yet more Peek.t fix-ups

3 hours agoPeek.t: This read-only stuff came after 5.21.4
Father Chrysostomos [Sat, 20 Sep 2014 16:29:25 +0000]
Peek.t: This read-only stuff came after 5.21.4

3 hours agoFix read-only flag checks in lvalue sub exit
Father Chrysostomos [Sat, 20 Sep 2014 13:55:39 +0000]
Fix read-only flag checks in lvalue sub exit

See the previous commit for the explanation.  This fixes this

$ ./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.

3 hours ago[perl #115254] Fix flag check on scope exit
Father Chrysostomos [Sat, 20 Sep 2014 13:41:29 +0000]
[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.)

3 hours agoMore Peek.t fix-ups
Father Chrysostomos [Sat, 20 Sep 2014 13:33:14 +0000]
More Peek.t fix-ups

3 hours agoImplement the bipolar read-only system
Father Chrysostomos [Sat, 20 Sep 2014 06:12:48 +0000]
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.)

3 hours agoAdd SVf_PROTECT
Father Chrysostomos [Sat, 20 Sep 2014 05:23:22 +0000]

3 hours agoPeek.t fix-up
Father Chrysostomos [Sat, 20 Sep 2014 05:18:14 +0000]
Peek.t fix-up

3 hours agoRenumber SVf_IsCOW
Father Chrysostomos [Sat, 20 Sep 2014 04:48:27 +0000]
Renumber SVf_IsCOW

and free up a bit.

3 hours agoRevert "Revert "infnan: more tests.""
Father Chrysostomos [Sat, 20 Sep 2014 16:23:30 +0000]
Revert "Revert "infnan: more tests.""

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

5 hours ago[perl #121983] #error with ro ops and no threads
Father Chrysostomos [Sat, 20 Sep 2014 07:43:28 +0000]
[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-

5 hours ago[perl #122799] Always turn off CvNAMED in cvgv-set
Father Chrysostomos [Sat, 20 Sep 2014 05:15:52 +0000]
[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.

5 hours agoPerl_scalarvoid remove duplicate SvNV call
Daniel Dragan [Fri, 19 Sep 2014 21:44:07 +0000]
Perl_scalarvoid remove duplicate SvNV call

5 hours agomore factoring out in S_utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 21:43:11 +0000]
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.

5 hours agofactor out more in S_utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 00:33:22 +0000]
factor out more in S_utf8_mg_pos_cache_update

5 hours agofactor out FP heavy code in utf8_mg_pos_cache_update
Daniel Dragan [Fri, 19 Sep 2014 00:32:20 +0000]
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.

5 hours agoPrepare Module::CoreList for 5.21.5, expected on 2014-10-20
Steve Hay [Sat, 20 Sep 2014 14:37:37 +0000]
Prepare Module::CoreList for 5.21.5, expected on 2014-10-20

5 hours agoModule::CoreList 5.20140920 is now on CPAN
Steve Hay [Sat, 20 Sep 2014 14:32:57 +0000]
Module::CoreList 5.20140920 is now on CPAN

5 hours agoRegen B::Op_private for 5.21.5
Steve Hay [Sat, 20 Sep 2014 14:31:15 +0000]
Regen B::Op_private for 5.21.5

5 hours agoBump version to 5.21.5
Steve Hay [Sat, 20 Sep 2014 14:01:41 +0000]
Bump version to 5.21.5

6 hours agoCreate new perldelta for 5.21.5
Steve Hay [Sat, 20 Sep 2014 13:55:13 +0000]
Create new perldelta for 5.21.5

6 hours agoAdd epigraph for 5.12.4
Steve Hay [Sat, 20 Sep 2014 13:48:07 +0000]
Add epigraph for 5.12.4

9 hours agoPerl 5.21.4 today v5.21.4
Steve Hay [Sat, 20 Sep 2014 10:03:38 +0000]
Perl 5.21.4 today

10 hours agoFinalize perldelta
Steve Hay [Sat, 20 Sep 2014 09:59:59 +0000]
Finalize perldelta

10 hours agoUpdate Module::CoreList for 5.21.4
Steve Hay [Sat, 20 Sep 2014 09:45:49 +0000]
Update Module::CoreList for 5.21.4

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

17 hours agoDisable libquadmath in configure.com.
Craig A. Berry [Sat, 20 Sep 2014 02:13:54 +0000]
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".

17 hours agoRevert "infnan: more tests."
Jarkko Hietaniemi [Sat, 20 Sep 2014 02:01:32 +0000]
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.

18 hours ago$VERSION bump cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
Steve Hay [Sat, 20 Sep 2014 01:37:53 +0000]
$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.

19 hours agoperldelta: quadmath
Jarkko Hietaniemi [Sat, 20 Sep 2014 01:00:02 +0000]
perldelta: quadmath

19 hours agoperldelta - Remove boilerplate, fill in modules changes and other minor edits
Steve Hay [Sat, 20 Sep 2014 00:17:32 +0000]
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.

19 hours agoUpdate release announcement template
Steve Hay [Fri, 19 Sep 2014 23:46:09 +0000]
Update release announcement template

23 hours agoquadmath: add test actually exercising this fancy precision.
Jarkko Hietaniemi [Fri, 19 Sep 2014 20:26:38 +0000]
quadmath: add test actually exercising this fancy precision.

23 hours agoEditorializing quadmath entry.
Jarkko Hietaniemi [Fri, 19 Sep 2014 13:43:35 +0000]
Editorializing quadmath entry.

25 hours agoperllocale: Nit
Karl Williamson [Fri, 19 Sep 2014 18:09:27 +0000]
perllocale: Nit

25 hours agoperldelta: Grammar nit
Karl Williamson [Fri, 19 Sep 2014 17:49:27 +0000]
perldelta: Grammar nit

The noun 'effect' was meant here.

26 hours agoperldiag: Reunite ‘perhaps you forgot to load’
Father Chrysostomos [Fri, 19 Sep 2014 15:41:00 +0000]
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.

26 hours agoB.xs: fix syntax err in PERL_VERSION < 17
David Mitchell [Fri, 19 Sep 2014 17:28:09 +0000]
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.

26 hours agoregen/op_private: tidy up rv2cv entry
David Mitchell [Fri, 19 Sep 2014 17:24:11 +0000]
regen/op_private: tidy up rv2cv entry

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

26 hours agomove OPpTARGET_MY comments from opcode.pl
David Mitchell [Fri, 19 Sep 2014 17:14:01 +0000]
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.

26 hours agoregen/op_private: update TARGLEX comments.
David Mitchell [Fri, 19 Sep 2014 17:10:27 +0000]
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.

27 hours agopp.h: remove spurious comment about OPpTARGET_MY
David Mitchell [Fri, 19 Sep 2014 16:52:59 +0000]
pp.h: remove spurious comment about OPpTARGET_MY

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

27 hours agoregen/op_private: fix assorted typos
David Mitchell [Fri, 19 Sep 2014 16:49:05 +0000]
regen/op_private: fix assorted typos

27 hours agocomment pp_foo aliases in pp*.c
David Mitchell [Fri, 19 Sep 2014 16:40:25 +0000]
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.

27 hours agoremove vestigal threadsv/threadsv_named
David Mitchell [Fri, 19 Sep 2014 16:12:02 +0000]
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

28 hours agoB.xs: add class names to method branch comments
David Mitchell [Fri, 19 Sep 2014 15:44:34 +0000]
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.

28 hours agofix B::PADOP->sv and ->gv
David Mitchell [Fri, 19 Sep 2014 15:07:08 +0000]
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

29 hours agoDocument customisation introduced by 991b13da7
Chris 'BinGOs' Williams [Fri, 19 Sep 2014 14:52:00 +0000]
Document customisation introduced by 991b13da7

30 hours agodarwin can have libfoo.0.dylib, as opposed to libfoo.dylib.0
Jarkko Hietaniemi [Wed, 10 Sep 2014 21:42:04 +0000]
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.

30 hours agoquadmath NVs cannot be cast to double etc.
Jarkko Hietaniemi [Thu, 11 Sep 2014 02:21:39 +0000]
quadmath NVs cannot be cast to double etc.

30 hours agoquadmath strtoflt128 accepts false infinities.
Jarkko Hietaniemi [Sun, 14 Sep 2014 01:16:55 +0000]
quadmath strtoflt128 accepts false infinities.

30 hours agoquadmath doesn't do locale radixes.
Jarkko Hietaniemi [Wed, 10 Sep 2014 22:40:11 +0000]
quadmath doesn't do locale radixes.

30 hours agoquadmath and gconvert do not mix.
Jarkko Hietaniemi [Wed, 10 Sep 2014 18:30:44 +0000]
quadmath and gconvert do not mix.

30 hours agoquadmath has expq instead of expl.
Jarkko Hietaniemi [Wed, 10 Sep 2014 18:03:37 +0000]
quadmath has expq instead of expl.

30 hours agoquadmath helpers export list.
Jarkko Hietaniemi [Sun, 14 Sep 2014 22:44:27 +0000]
quadmath helpers export list.

30 hours agoquadmath Q format specifier and gcc -Wformat do not mix.
Jarkko Hietaniemi [Sun, 14 Sep 2014 21:39:15 +0000]
quadmath Q format specifier and gcc -Wformat do not mix.

30 hours agoquadmath NV formatted I/O.
Jarkko Hietaniemi [Sun, 14 Sep 2014 19:43:55 +0000]
quadmath NV formatted I/O.

30 hours agoquadmath INSTALL.
Jarkko Hietaniemi [Wed, 27 Aug 2014 00:49:09 +0000]
quadmath INSTALL.

30 hours agoquadmath_snprintf formats.
Jarkko Hietaniemi [Tue, 2 Sep 2014 10:50:38 +0000]
quadmath_snprintf formats.

30 hours agoquadmath interfaces and constants
Jarkko Hietaniemi [Sun, 14 Sep 2014 19:41:45 +0000]
quadmath interfaces and constants

30 hours agoquadmath needs gcc, at least 4.6.
Jarkko Hietaniemi [Sat, 23 Aug 2014 01:02:23 +0000]
quadmath needs gcc, at least 4.6.

30 hours agoquadmath __float128 as NVTYPE.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:55:33 +0000]
quadmath __float128 as NVTYPE.

30 hours agoquadmath __float128 for longdblkind.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:35:34 +0000]
quadmath __float128 for longdblkind.

30 hours agoConfigure -Dusequadmath.
Jarkko Hietaniemi [Fri, 22 Aug 2014 15:05:52 +0000]
Configure -Dusequadmath.

30 hours agoConfigure for <quadmath.h>
Jarkko Hietaniemi [Fri, 22 Aug 2014 14:51:18 +0000]
Configure for <quadmath.h>

31 hours agoMention more C99 math interfaces.
Jarkko Hietaniemi [Fri, 19 Sep 2014 12:37:11 +0000]
Mention more C99 math interfaces.

31 hours agoperldelta: mention the op_private work
David Mitchell [Fri, 19 Sep 2014 12:12:23 +0000]
perldelta: mention the op_private work

32 hours agoadd $VERSION to B::Op_private
David Mitchell [Fri, 19 Sep 2014 09:51:15 +0000]
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 Config.pm 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/regen_lib.pl. (I feel that such a routine should already exist
somewhere, but I couldn't find such a beastie.)

35 hours agoperldelta for 1645b83c5c
Steve Hay [Fri, 19 Sep 2014 08:24:13 +0000]
perldelta for 1645b83c5c

35 hours agoperldelta - Add links for rt.perl.org bugs
Steve Hay [Fri, 19 Sep 2014 08:11:12 +0000]
perldelta - Add links for rt.perl.org bugs

35 hours agoperldelta - Data::Dumper has been upgraded
Steve Hay [Fri, 19 Sep 2014 08:08:37 +0000]
perldelta - Data::Dumper has been upgraded

35 hours agoBump all Math::BigInt $VERSIONs as per 945313f0ae following a0732aaa4b
Steve Hay [Fri, 19 Sep 2014 08:08:11 +0000]
Bump all Math::BigInt $VERSIONs as per 945313f0ae following a0732aaa4b

And add a perldelta note.

37 hours agoTeach diag.t about Perl_mess
Father Chrysostomos [Fri, 19 Sep 2014 06:14:04 +0000]
Teach diag.t about Perl_mess

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

37 hours agogv.c: For ‘Global symbol’ msg, don’t check utf8ness twice
Father Chrysostomos [Fri, 19 Sep 2014 06:02:52 +0000]
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.

38 hours agoperldelta for d8c6310a4f0/#121638
Father Chrysostomos [Fri, 19 Sep 2014 05:12:39 +0000]
perldelta for d8c6310a4f0/#121638

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

38 hours agoperldelta for ff2a62e0/#15667
Father Chrysostomos [Fri, 19 Sep 2014 05:00:43 +0000]
perldelta for ff2a62e0/#15667

38 hours agoUpdate perldiag to reflect ‘Global symbol’ change
Father Chrysostomos [Fri, 19 Sep 2014 05:10:14 +0000]
Update perldiag to reflect ‘Global symbol’ change

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

39 hours agoremove duplicate SvNV calls in pp_enteriter
Daniel Dragan [Fri, 19 Sep 2014 03:24:18 +0000]
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

39 hours ago[perl #121638] Make ‘Global symbol’ message more newbie-friendly
Father Chrysostomos [Fri, 19 Sep 2014 03:34:43 +0000]
[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.

40 hours agoConsistent indentation in AUTHORS
Father Chrysostomos [Fri, 19 Sep 2014 03:15:29 +0000]
Consistent indentation in AUTHORS

40 hours agoRename S_adjust_stack_on_leave
Father Chrysostomos [Fri, 19 Sep 2014 01:08:06 +0000]
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.

40 hours agofactor out TAINT_NOT into S_adjust_stack_on_leave
Daniel Dragan [Mon, 16 Jun 2014 09:53:08 +0000]
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

41 hours agoParenthesize & and | a bit.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:25:42 +0000]
Parenthesize & and | a bit.

41 hours agoinfnan: more tests.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:10:41 +0000]
infnan: more tests.

++, math, compare.

41 hours agoDo not fall into Gconvert or F0convert on inf/nan.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:45:06 +0000]
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)

41 hours agoinfnan: ++ or -- on infnan doesn't lose precision.
Jarkko Hietaniemi [Fri, 19 Sep 2014 01:15:03 +0000]
infnan: ++ or -- on infnan doesn't lose precision.

(found by bulk88)

42 hours agoIncrement $VERSION in Math::BigInt.
James E Keenan [Fri, 19 Sep 2014 01:56:01 +0000]
Increment $VERSION in Math::BigInt.

42 hours agoreplace uses of Test.pm in dist/ distributions (IO, Math-BigInt)
Karen Etheridge [Wed, 17 Sep 2014 19:44:52 +0000]
replace uses of Test.pm in dist/ distributions (IO, Math-BigInt)

42 hours agotoke.c: Fix bad read in S_scan_heredoc
Father Chrysostomos [Thu, 18 Sep 2014 08:16:36 +0000]
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.

42 hours agoDump GPFLAGS
Father Chrysostomos [Thu, 18 Sep 2014 23:12:24 +0000]

42 hours agoSkip no-common-vars optimisation for aliases
Father Chrysostomos [Thu, 18 Sep 2014 23:10:01 +0000]
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.

42 hours agogv.h: Add a gp_flags field
Father Chrysostomos [Thu, 18 Sep 2014 07:24:25 +0000]
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.

43 hours agoperlsyn: Remove reference to potential Unicode op
Karl Williamson [Fri, 19 Sep 2014 00:20:57 +0000]
perlsyn: Remove reference to potential Unicode op

See thread beginning at

45 hours agoPOSIX math: AIX 7 has nexttoward
Jarkko Hietaniemi [Thu, 18 Sep 2014 21:33:36 +0000]
POSIX math: AIX 7 has nexttoward

45 hours agoPOSIX math: the pa-risc gcc missing tgamma and nexttoward
Jarkko Hietaniemi [Thu, 18 Sep 2014 21:30:01 +0000]
POSIX math: the pa-risc gcc missing tgamma and nexttoward