This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoFix isASCII for EBCDIC
Karl Williamson [Wed, 8 Oct 2014 17:24:50 +0000 (11:24 -0600)]
Fix isASCII for EBCDIC

Prior to this commit isASCII on EBCDIC platforms was defined as the
isascii() libc function.  It turns out that this doesn't work properly.
It needed to be this way back when EBCDIC was bootstrapped onto the
target machine, but now, various header files are furnished with the
requisite definitions, so this is no longer necessary.

The problem with isascii() is that it is locale-dependent, unlike on
ASCII platforms.  This means that instead of getting a standard ASCII
definition, it returns whatever the underlying locale says, even if
there is no 'use locale' anywhere in the program.  Starting with this
commit, the isASCII definition now comes from the l1_char_class_tab.h
file which we know is accurate and not locale-dependent.

This header can be used in compilations of utility programs where perl.h
is not available.  For these, there are alternate, more complicated
definitions, should they be needed in those utility programs.  Several
of those definitions prior to this commit also used locale-sensitive
isfoo() functions.  The bulk of this commit refactors those definitions
to not use these functions as much as possible.  As noted in the
added comments in the code, the one remaining use of such a function is
only for the lesser-used control characters.  Likely these aren't used
in the utility programs.

6 years agohandy.h: Add missing macro
Karl Williamson [Wed, 8 Oct 2014 17:21:16 +0000 (11:21 -0600)]
handy.h: Add missing macro

This section of code is normally not compiled, but when circumstances
call for it to be compiled, it may be missing the macro defined in this
commit, which is trivial on ASCII platforms, so just define it if
missing

6 years agohandy.h: Need macro definition for normally non-compiled code
Karl Williamson [Wed, 8 Oct 2014 17:16:59 +0000 (11:16 -0600)]
handy.h: Need macro definition for normally non-compiled code

This section of code is compiled only when perl.h is not available, i.e.
for utility programs.  I periodically test that it still works, and this
time a macro was added to the other branch of the #if, but not this one.
This commit adds a trivial one to the missing area.

6 years agohandy.h: Comments only
Karl Williamson [Wed, 8 Oct 2014 17:12:12 +0000 (11:12 -0600)]
handy.h: Comments only

Removes obsolete comment, and adds text to make it easier to find
matching #else and #endif of a #if

6 years agoperlio: Fix to work with MVS Dataset
Yaroslav Kuzmin [Sun, 28 Sep 2014 16:02:17 +0000 (10:02 -0600)]
perlio: Fix to work with MVS Dataset

6 years agomktables: Use chr() instead of pack()
Karl Williamson [Sun, 24 Aug 2014 16:12:49 +0000 (10:12 -0600)]
mktables: Use chr() instead of pack()

The input is the native code point, not the Unicode one, and so it is a
bug that pack(U) works.  The W format is what should be used, but I
think chr() is easier to read.

6 years agoutf8.c: Improve debug message
Karl Williamson [Mon, 23 Jun 2014 03:29:28 +0000 (21:29 -0600)]
utf8.c: Improve debug message

This function was called with an empty string "" because that string was
not actually needed in the function, except to better identify the
source when there is an error.  So change to specify the actual source.

6 years agoregcomp.c: EBCDIC fix
Karl Williamson [Mon, 9 Jun 2014 18:28:10 +0000 (12:28 -0600)]
regcomp.c: EBCDIC fix

6 years agomakedepend.SH: Split too long lines; properly join
Karl Williamson [Thu, 28 Feb 2013 04:59:11 +0000 (21:59 -0700)]
makedepend.SH: Split too long lines; properly join

I had thought that a continuation introduced a space.  But no,
a continuation can happen in the middle of a token.

And this splits lines that are getting very long to avoid preprocessor
limitations.

6 years agomakedepend.SH: White-space only
Karl Williamson [Wed, 27 Feb 2013 22:51:28 +0000 (15:51 -0700)]
makedepend.SH: White-space only

Align continuation backslashes

6 years agomakedepend.SH: Remove some unnecessary white space
Karl Williamson [Wed, 27 Feb 2013 21:39:28 +0000 (14:39 -0700)]
makedepend.SH: Remove some unnecessary white space

Multi-line preprocessor directives are now joined into single lines.
This can create lines too long for the preprocessor to handle.  This
commit removes blanks adjoining comments that get deleted.  This makes
things somewhat less likely to exceed the limit.

This commit also fixes several [] which were meant to each match a tab
or a blank, but editors converted the tabs to blanks

6 years agomakedepend.SH: Retain '/**/' comments
Karl Williamson [Wed, 27 Feb 2013 21:30:51 +0000 (14:30 -0700)]
makedepend.SH: Retain '/**/' comments

These comments may actually be necessary.

6 years agomakedepend.SH: Comment out unnecessary code
Karl Williamson [Tue, 26 Feb 2013 16:00:18 +0000 (09:00 -0700)]
makedepend.SH: Comment out unnecessary code

This causes problems currently for z/OS.  But, since we don't know why
it was there, I'm leaving it in as a placeholder.

6 years agoDisable gcc-style function attributes on z/OS.
Andy Dougherty [Wed, 27 Feb 2013 18:06:07 +0000 (13:06 -0500)]
Disable gcc-style function attributes on z/OS.

John Goodyear <johngood@us.ibm.com> reports that the z/OS C compiler
supports the attribute keyword, but not exactly the same as gcc.
Instead of a "warning", the compiler emits an "INFORMATIONAL" message
that Configure fails to detect.  Until Configure is fixed, just disable
the attributes altogether.

John Goodyear

6 years agoChange os390 custom cppstdin script to use fgrep.
Andy Dougherty [Wed, 27 Feb 2013 14:12:13 +0000 (09:12 -0500)]
Change os390 custom cppstdin script to use fgrep.

Grep appears to be limited to 2048 characters, and truncates
the output for cppstin.  Fgrep apparently doesn't have that limit.
Thanks to John Goodyear <johngood@us.ibm.com> for reporting this.

6 years agoRemove very obsolete comment
Father Chrysostomos [Tue, 21 Oct 2014 01:05:14 +0000 (18:05 -0700)]
Remove very obsolete comment

I chuckle every time I read this comment.  And I chuckled at the time
it got ignored and mangled, too.  :-)

17ab7946 reworked some code without reindenting a block.  And that
lack of indentation was intentional and noted by this comment.

96913b52 four years later reindented the code, ignoring the comment.

486ec47a corrected the spelling mistake in the comment, rendering it
incomprehensible.  ‘Intenting’ was supposed to be ‘indenting’ (it was
obvious to me), but got ‘corrected’ to ‘intending’.

d5524600 gutted almost the entire block, moving it into a static rou-
tine, so the comment is by now not even remotely relevant.

6 years agoIncrease $B::Deparse::VERSION to 1.30
Father Chrysostomos [Tue, 21 Oct 2014 00:52:36 +0000 (17:52 -0700)]
Increase $B::Deparse::VERSION to 1.30

6 years agoRmv restrictions on op tree structure for padrange
Father Chrysostomos [Tue, 21 Oct 2014 00:16:01 +0000 (17:16 -0700)]
Rmv restrictions on op tree structure for padrange

The padrange optimisation was only happening if the op tree was laid
out in a way that would allow B::Deparse easily to restore the origi-
nal op_next pointers (via $B::overlay) for the sake of deparsing.
It turns out that B::Deparse doesn’t even use the op_next pointers
(except for deparsing ‘use’ statements, which are not affected here),
so there is no need for these restrictions.

In the case of my($a,$b)=@_, @_ was expected to be the sibling of the
preceding pushmark-cum-padrange.  Removing that restriction doesn’t
allow the padrange optimisation to happen in any new cases as far as I
can tell.  It just means there is less checking to do.

In the more general case of a list of lexicals with no =@_, this
allows padrange to be used for array and hash slices in conjunction
with a separate list-in-list-context optimisation, that formerly con-
flicted with padrange.

When we compile @a[$lex1,$lex2], we end up with a redundant list-in-
list-context:

 7  aslice
 1    pushmark
 5    list
 2      pushmark
 3      padsv
 4      padsv
 6    padav (assuming the array is lexical

Pushmark pushes a mark on to the markstack, and list pops one, so
pushmark and list cancel each other out in list context.

In 5.18, when padrange was introduced, this was optimised like this:

 5  aslice
 1    pushmark
 3    list
 2      padrange
 -      padsv
 -      padsv
 4    padav

Then a separate optimisation was added in 5.20 that allows a list
with a pushmark kid to turn into null ops, and this cancelled out
the padrange:

 5  aslice
 1    pushmark
 -    ex-list
 -      ex-pushmark
 2      padsv
 3      padsv
 4    padav

Bunchmarks show that this is slightly faster than padrange with two
lexicals, but more lexicals would make padrange faster.  This commit
brings us the goodness of both optimisations at once:

 3  aslice
 1    padrange
 -    ex-list
 -      ex-pushmark
 -      padsv
 -      padsv
 2    padav

And it is faster than just one optimisation.

6 years agoop.c: No need to check the name of *_
Father Chrysostomos [Mon, 20 Oct 2014 23:51:55 +0000 (16:51 -0700)]
op.c: No need to check the name of *_

Checking against PL_defgv is sufficient.

6 years ago[perl #122985] perlxs: PPCODE doesn't allow for CLEANUP
Tony Cook [Tue, 21 Oct 2014 00:11:38 +0000 (11:11 +1100)]
[perl #122985] perlxs: PPCODE doesn't allow for CLEANUP

6 years agoFix misparse of "Ind" as NaN (long story...) [perl #122843]
Jarkko Hietaniemi [Mon, 20 Oct 2014 22:33:41 +0000 (18:33 -0400)]
Fix misparse of "Ind" as NaN (long story...) [perl #122843]

While at it, add more "false nan" parse tests.

6 years agoFix stack-management bug when semctl encounters errors
Aaron Crane [Mon, 20 Oct 2014 14:22:52 +0000 (15:22 +0100)]
Fix stack-management bug when semctl encounters errors

The success cases in pp_semctl both push a single value to the stack, but
the error case merely set the topmost stack value to undef. The fix is to
push an undef.

This bug manifests most obviously as an "uninitialized value in list slice"
warning when doing something like `my $test = (semctl -1,0,0,0)[0]`; that
was reported out-of-band to rjbs.

6 years agoMake null list+pushmark happen in more cases
Father Chrysostomos [Fri, 17 Oct 2014 04:52:32 +0000 (21:52 -0700)]
Make null list+pushmark happen in more cases

This optimisation, added in 7d3c8a683, nulls the list+pushmark pair if
it occurs in list context, since the two ops effectively cancel each
other out.  I recently extended it in 8717a761e to apply to void con-
text, too.

It works by checking in the peephole optimiser whether the sibling of
the current op is a list with a pushmark kid:

1   current op
4   list
2     pushmark
3     ...
5   ...

That means the optimisation doesn’t happen if the elder sibling of the
list op is something that is not part of the execution chain, such as
$package_var:

-   ex-rv2sv
1     gvsv
4   list
2     pushmark
3     ...
5   ...

because the ex-rv2sv is never the ‘current op’.  So ($_,($_,$_))
doesn’t get optimised.

We can’t just handle this when ‘pushmark’ or ‘list’ is the current
op, because, in the former case, there is no way to get to the parent
op to null it; in the latter case, there is no way to get to the op
pointing to pushmark, to rethread the op_next pointers.

However, handling this when list or void context is applied, before we
even get to the peephole optimiser, just works, and requires much less
code.  We can just null the ops there, and leave it to the peephole
optimiser’s handling of null ops to rethread op_next pointers.

This breaks this convention:

    op_prepend_elem(OP_LIST, foo, list(that_list))

by creating two redundant null ops that were not there before, but the
only pieces of code doing that were calling list() needlessly anyway.

6 years agoMore actions to take when bumping the version number.
Abigail [Mon, 20 Oct 2014 19:40:27 +0000 (21:40 +0200)]
More actions to take when bumping the version number.

6 years agoBump the perl version in various places for 5.21.6
Abigail [Mon, 20 Oct 2014 19:38:43 +0000 (21:38 +0200)]
Bump the perl version in various places for 5.21.6

6 years agoregen/opcode.pl run for 5.21.6
Abigail [Mon, 20 Oct 2014 19:38:11 +0000 (21:38 +0200)]
regen/opcode.pl run for 5.21.6

6 years agoCall string overloading once in join($ov,...)
Father Chrysostomos [Sun, 19 Oct 2014 21:14:05 +0000 (14:14 -0700)]
Call string overloading once in join($ov,...)

6 years agof_map.t: Remove version checks
Father Chrysostomos [Sat, 18 Oct 2014 17:13:25 +0000 (10:13 -0700)]
f_map.t: Remove version checks

This is unmaintainable.  Adding optimisations that change most of the
sequence numbers will mean duplicating the contents of the file in one
big ‘if’ statement.

6 years agore_tests: More tests for #122890
Father Chrysostomos [Mon, 20 Oct 2014 05:15:15 +0000 (22:15 -0700)]
re_tests: More tests for #122890

These two are from JE’s test suite.

6 years agoNew perldelta for 5.14.6
Abigail [Mon, 20 Oct 2014 18:29:11 +0000 (20:29 +0200)]
New perldelta for 5.14.6

6 years agoEpigraph for 5.21.5
Abigail [Mon, 20 Oct 2014 18:01:40 +0000 (20:01 +0200)]
Epigraph for 5.21.5

6 years agoAdded 5.21.5 release to perlhist origin/release-5.21.5 v5.21.5
Abigail [Mon, 20 Oct 2014 14:38:09 +0000 (16:38 +0200)]
Added 5.21.5 release to perlhist

6 years agoBe consistent when it comes to (not) terminating =heads with a period.
Abigail [Mon, 20 Oct 2014 13:59:54 +0000 (15:59 +0200)]
Be consistent when it comes to (not) terminating =heads with a period.

6 years agoUpdate acknowledgements in perldelta
Abigail [Mon, 20 Oct 2014 13:50:52 +0000 (15:50 +0200)]
Update acknowledgements in perldelta

6 years agoList updated modules in perldelta
Abigail [Mon, 20 Oct 2014 13:32:33 +0000 (15:32 +0200)]
List updated modules in perldelta

6 years agoUse F<> for files, not L<>
Abigail [Mon, 20 Oct 2014 13:04:17 +0000 (15:04 +0200)]
Use F<> for files, not L<>

6 years agoUpdate Module::CoreList for 5.21.5
Abigail [Mon, 20 Oct 2014 12:16:47 +0000 (14:16 +0200)]
Update Module::CoreList for 5.21.5

6 years agoList files to modify.
Abigail [Mon, 20 Oct 2014 11:59:58 +0000 (13:59 +0200)]
List files to modify.

Explicitely list the files to modify when upping/checking the VERSION
of the various CoreList modules, for easy copy-and-pasting.

I grew tired of running find.

6 years agoDocument not to use test.pl here.
Jarkko Hietaniemi [Mon, 20 Oct 2014 10:53:25 +0000 (06:53 -0400)]
Document not to use test.pl here.

(Whether that's wise is another matter.)

6 years agofix typo in regen/opcode.pl
David Mitchell [Fri, 17 Oct 2014 14:08:22 +0000 (15:08 +0100)]
fix typo in regen/opcode.pl

6 years agopp_av2arylen(): rename var from 'sv' to svp'
David Mitchell [Fri, 17 Oct 2014 13:29:33 +0000 (14:29 +0100)]
pp_av2arylen(): rename var from 'sv' to svp'

Conventionally we name variables of type 'SV**' svp rather than sv.
Calling the var 'sv' in this small function initially confused me,
so rename it.

6 years agot/re/re_tests: Add test for perl #122890
Yves Orton [Mon, 20 Oct 2014 08:28:12 +0000 (10:28 +0200)]
t/re/re_tests: Add test for perl #122890

6 years agot/re/re_tests: put comment in correct column
Yves Orton [Mon, 20 Oct 2014 08:27:55 +0000 (10:27 +0200)]
t/re/re_tests: put comment in correct column

6 years agoAdd test names to t/re/regexp.t and friends
Yves Orton [Mon, 20 Oct 2014 08:26:20 +0000 (10:26 +0200)]
Add test names to t/re/regexp.t and friends

6 years agothese permissions appear to be handled correctly in current cygwin
Tony Cook [Mon, 20 Oct 2014 04:29:01 +0000 (15:29 +1100)]
these permissions appear to be handled correctly in current cygwin

this TODO has been passing on my smoke testers for years, if it turns
out it isn't passing for someone, it should probably be skipped
instead of TODOed to prevent the noise.

6 years agouse a different name for the test directory
Tony Cook [Mon, 20 Oct 2014 04:13:21 +0000 (15:13 +1100)]
use a different name for the test directory

on Windows (cygwin) I was getting rare failures creating $copy1 with
an error complaining that it was a directory, possibly due to some
background process tracking directories.

6 years agowrap the failing call_checker test in an eval and TODO it
Tony Cook [Mon, 20 Oct 2014 03:08:16 +0000 (14:08 +1100)]
wrap the failing call_checker test in an eval and TODO it

this allows the rest of the test script to run, and will help make other
cygwin test issues more obvious once the other failures are fixed or
worked-around

6 years agoIRIX: OS mixup in 1d850a6a.
Jarkko Hietaniemi [Mon, 20 Oct 2014 00:32:24 +0000 (20:32 -0400)]
IRIX: OS mixup in 1d850a6a.

Dangers of having too many login sessions open.

6 years agodump.c: Fix C++ build
Father Chrysostomos [Mon, 20 Oct 2014 00:16:39 +0000 (17:16 -0700)]
dump.c: Fix C++ build

6 years agosignatures.t: To-do tests for #123010
Father Chrysostomos [Sun, 19 Oct 2014 20:51:25 +0000 (13:51 -0700)]
signatures.t: To-do tests for #123010

6 years agoregcomp.c: study_chunk(): Avoid unnecessary recursion.
Yves Orton [Sun, 19 Oct 2014 22:16:37 +0000 (00:16 +0200)]
regcomp.c: study_chunk(): Avoid unnecessary recursion.

Avoid unnecessary recursion with regex subroutines. When we are inside
of a DEFINE we do not need to, and should not, recurse. And once an
infinite construct has been seen and we are not tracking the start
class then we do not /need/ to, at the cost of possibly pessimizing
minlen checks. For instance in

 /(?(DEFINE)(?<p>foo|wozzit))a+(?&p)/

entering 'p' via recursion would only tell us that the minlen was
actually 4 instead of being 1, something that would not make us
match incorrectly. This can be improved in a later commit.

The side effect of not recursing in such situations is that large
patterns such as that in RT #122283 compile in a reasonable amount
of time.

6 years agoregcomp.c: Add comment.
Yves Orton [Sun, 19 Oct 2014 20:48:44 +0000 (22:48 +0200)]
regcomp.c: Add comment.

6 years agoregcomp.c: study_chunk(): Reset the entire data struct, not just a bit of it.
Yves Orton [Sun, 19 Oct 2014 20:48:14 +0000 (22:48 +0200)]
regcomp.c: study_chunk(): Reset the entire data struct, not just a bit of it.

6 years agoregcomp.c: Improve advanced re debug output
Yves Orton [Sun, 19 Oct 2014 20:45:35 +0000 (22:45 +0200)]
regcomp.c: Improve advanced re debug output

use pv_pretty(), add better flags information, and a more compact
recurse bitmap frame outpute, etc.

6 years agodump.c: Add PERL_PV_PRETTY_EXACTSIZE option
Yves Orton [Sun, 19 Oct 2014 20:43:21 +0000 (22:43 +0200)]
dump.c: Add PERL_PV_PRETTY_EXACTSIZE option

Sometimes we want things to fit exactly into a specific number
of chars, elipses, quotes and all. Includes make regen update
to make dsv argument nullok.

6 years agoregcomp.c: Fixup debug output so it matches other messages in context
Yves Orton [Sun, 19 Oct 2014 15:19:50 +0000 (17:19 +0200)]
regcomp.c: Fixup debug output so it matches other messages in context

6 years agoregcomp.c: Improve re debug output by showing buffer names if they exist
Yves Orton [Wed, 15 Oct 2014 21:03:35 +0000 (23:03 +0200)]
regcomp.c: Improve re debug output by showing buffer names if they exist

Requires adding a new optional argument to regprop as we do not
have a completed regexp object to give us the names, and we need
to get it from RExC_state.

6 years agoregcomp.c: study_chunk(): improve branch-branch comment
Yves Orton [Sun, 12 Oct 2014 21:08:42 +0000 (23:08 +0200)]
regcomp.c: study_chunk(): improve branch-branch comment

6 years agoregcomp.c: study_chunk(): whitespace fixup for legibility
Yves Orton [Sun, 12 Oct 2014 21:05:11 +0000 (23:05 +0200)]
regcomp.c: study_chunk(): whitespace fixup for legibility

6 years agoregcomp.c: eliminate memory leak from GOSUB/GOSTART regops
Yves Orton [Sun, 12 Oct 2014 19:28:57 +0000 (21:28 +0200)]
regcomp.c: eliminate memory leak from GOSUB/GOSTART regops

We can reuse previously allocated frames and avoid blowing
up memory during regex compile of complex recursive patterns.

A pattern like that reported in RT #122283 would chew up all
avaiable memory allocating new frames each time it recursed.

6 years agoregcomp.c: reuse temporary debugging temp sv's
Yves Orton [Sun, 12 Oct 2014 19:26:31 +0000 (21:26 +0200)]
regcomp.c: reuse temporary debugging temp sv's

For dumping regex debug state we need some temporary SV's on hand
to pass into regprop() which writes into an SV to do it's thing.
Allocating a new mortal SV every time we want to do this is very
wasteful, and manifests as a "leak" in very long compiles such as
when debugging issues like RT #122283.

By storing the SV's in RExC_state_t we can reuse them during the
compilation process and avoid leaking memory for nothing.

6 years agoregcomp.c: struct scan_frame: rename members for clarity
Yves Orton [Sun, 12 Oct 2014 16:18:38 +0000 (18:18 +0200)]
regcomp.c: struct scan_frame: rename members for clarity

Rename some members of scan_frame so it is easier to understand what
they are for, in preparation for adding some more members.

6 years ago/tmp can have (low) quotas on the number of files.
Jarkko Hietaniemi [Sun, 19 Oct 2014 21:50:22 +0000 (17:50 -0400)]
/tmp can have (low) quotas on the number of files.

/tmp, or wherever tempdir happens.

Happened in IRIX, but applicable anywhere.

6 years agoIRIX: fsync documented to fail on read-only filehandles.
Jarkko Hietaniemi [Sun, 19 Oct 2014 21:37:42 +0000 (17:37 -0400)]
IRIX: fsync documented to fail on read-only filehandles.

6 years agoFix crash with ‘join,’ caused by 987c96916
Father Chrysostomos [Sun, 19 Oct 2014 18:06:48 +0000 (11:06 -0700)]
Fix crash with ‘join,’ caused by 987c96916

6 years agoperldelta: Update the Inf and Nan entry.
Abigail [Sun, 19 Oct 2014 17:30:44 +0000 (19:30 +0200)]
perldelta: Update the Inf and Nan entry.

jhi says properly explaining the long-double and double-double requires
much more detail, so he suggested dropping mentioning it.

6 years agoperldelta: Mention that IRIX and Tru64 are regained platforms.
Abigail [Sun, 19 Oct 2014 16:39:44 +0000 (18:39 +0200)]
perldelta: Mention that IRIX and Tru64 are regained platforms.

6 years agoFix spelling in perldelta
Abigail [Sun, 19 Oct 2014 16:29:19 +0000 (18:29 +0200)]
Fix spelling in perldelta

Using ispell. Ispell does complain about "Acknowledgements", suggesting
"Acknowledgments", but Merriam-Webster recognizes "Acknowledgements" as
a valid variation.

6 years agoAn error cannot be both new, and reworded.
Abigail [Sun, 19 Oct 2014 16:17:17 +0000 (18:17 +0200)]
An error cannot be both new, and reworded.

6 years agoReplace "message" with the actual message.
Abigail [Sun, 19 Oct 2014 16:16:08 +0000 (18:16 +0200)]
Replace "message" with the actual message.

Otherwise, the formatted delta will just list "message" when listing
new errors, instead of the actual messages.

6 years agoAnother perldelta entry
Abigail [Sun, 19 Oct 2014 16:10:32 +0000 (18:10 +0200)]
Another perldelta entry

6 years agoperlvar: Note a deprecation
Karl Williamson [Sun, 19 Oct 2014 14:57:26 +0000 (08:57 -0600)]
perlvar: Note a deprecation

6 years agoperldelta: Typo, clarification
Karl Williamson [Thu, 16 Oct 2014 18:54:53 +0000 (12:54 -0600)]
perldelta: Typo, clarification

6 years agoUpdate Stevan Little's email address
Karl Williamson [Fri, 17 Oct 2014 21:20:07 +0000 (15:20 -0600)]
Update Stevan Little's email address

6 years agoRemove unused stubs and editing notes from perldelta.
Abigail [Sun, 19 Oct 2014 13:59:19 +0000 (15:59 +0200)]
Remove unused stubs and editing notes from perldelta.

6 years agoMore perldelta work
Abigail [Sun, 19 Oct 2014 13:48:37 +0000 (15:48 +0200)]
More perldelta work

6 years agoAdd blank line after =item
Abigail [Sun, 19 Oct 2014 11:50:05 +0000 (13:50 +0200)]
Add blank line after =item

6 years agoperldelta entry for update to perlfaq
James E Keenan [Sun, 19 Oct 2014 12:41:40 +0000 (08:41 -0400)]
perldelta entry for update to perlfaq

6 years agoUpdate perlfaq to version 5.015046
Karen Etheridge [Sun, 19 Oct 2014 02:12:09 +0000 (19:12 -0700)]
Update perlfaq to version 5.015046

6 years agoperldelta for 412989c
Father Chrysostomos [Sun, 19 Oct 2014 05:45:35 +0000 (22:45 -0700)]
perldelta for 412989c

6 years agoTweak multiple nextstate optimisation further
Father Chrysostomos [Sun, 19 Oct 2014 05:31:14 +0000 (22:31 -0700)]
Tweak multiple nextstate optimisation further

There was still one niggling nulled nextstate in the execution
sequence in cases like this (the one numbered 4):

$ ./perl -Ilib  -MO=Concise -e 'time; our $x; our $y; time'
7  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
3     <0> time[t1] v ->4
-     <0> ex-nextstate v ->5
-     <1> rv2sv vK/OURINTR,1 ->4
-        <$> gv(*x) s ->-
4     <0> ex-nextstate v ->5
-     <1> rv2sv vK/OURINTR,1 ->5
-        <$> gv(*y) s ->-
5     <;> nextstate(main 3 -e:1) v:{ ->6
6     <0> time[t4] v ->7
-e syntax OK

6 years agoSkip over state declarations at run time
Father Chrysostomos [Sun, 19 Oct 2014 05:20:43 +0000 (22:20 -0700)]
Skip over state declarations at run time

6 years agoCommon vars check should account for OPpTARGET_MY
Father Chrysostomos [Sat, 18 Oct 2014 23:37:41 +0000 (16:37 -0700)]
Common vars check should account for OPpTARGET_MY

When checking for common vars on either side of a list assignment (to
see whether we need to make temporary copies), we need to account for
the OPpTARGET_MY optimisation which transforms ‘$lex = $foo . $bar’
into a simple ‘$foo . $bar’ that writes directly to $lex instead of
writing to a scratch variable and returning that.

This was printing foofoo instead of foobar:

$ ./perl -Ilib -le 'my ($a,$b); $foo="foo"; $bar="bar"; ($a,$b) = ($b=$foo."", $a=$bar.""); print $a,$b'

6 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Abigail [Sat, 18 Oct 2014 22:09:10 +0000 (00:09 +0200)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

6 years agoAnother perldelta entry
Abigail [Sat, 18 Oct 2014 22:08:52 +0000 (00:08 +0200)]
Another perldelta entry

6 years agoperldelta for two notable B::Concise changes
Father Chrysostomos [Sat, 18 Oct 2014 20:58:25 +0000 (13:58 -0700)]
perldelta for two notable B::Concise changes

6 years agoB::Concise: Give sequence numbers for null ops
Father Chrysostomos [Sat, 18 Oct 2014 20:50:25 +0000 (13:50 -0700)]
B::Concise: Give sequence numbers for null ops

B::Concise was not giving sequence numbers to null ops even if they
were part of the execution order.  Ideally, there should be no null
ops in the execution order, but, if it did happen, B::Concise was not
helpful in debugging it.  In fact, its output was quite confusing:

1        <;> nextstate(main 1 -e:1) v ->-

You can’t tell which ops it’s pointing at and where the optimisations
need to be tweaked.

(See the thread starting at
<20141016220840.29774.qmail@lists-nntp.develooper.com>.)

6 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Abigail [Sat, 18 Oct 2014 20:05:40 +0000 (22:05 +0200)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

Conflicts:
pod/perldelta.pod

6 years agoperldelta work
Abigail [Sat, 18 Oct 2014 19:57:14 +0000 (21:57 +0200)]
perldelta work

6 years agoUse srefgen for anoncode
Father Chrysostomos [Sat, 18 Oct 2014 17:23:26 +0000 (10:23 -0700)]
Use srefgen for anoncode

srefgen is faster than refgen, since it doesn’t have to loop through
the arguments (there is only one) and there is no pushmark to execute.

OA_RETSCALAR causes scalar context to be applied to anoncode ops, but
it always returns one item anyway, so that causes no problems.

6 years agoTypo fix
Abigail [Sat, 18 Oct 2014 17:48:43 +0000 (19:48 +0200)]
Typo fix

6 years agoperldelta for 20c88bf
Father Chrysostomos [Sat, 18 Oct 2014 16:57:34 +0000 (09:57 -0700)]
perldelta for 20c88bf

6 years agoApify SV_CATBYTES and SV_CATUTF8
Father Chrysostomos [Sat, 18 Oct 2014 05:32:23 +0000 (22:32 -0700)]
Apify SV_CATBYTES and SV_CATUTF8

When I added them I was not sure at the time whether they would be
stable or whether they might need to be changed.  They seem pretty
stable now, and they are extremely useful, so make them part
of the API.

6 years agoMANIFEST fix for 91d520f1
Jarkko Hietaniemi [Sat, 18 Oct 2014 12:46:32 +0000 (08:46 -0400)]
MANIFEST fix for 91d520f1

6 years agoDigest::SHA HP-UX hints file is not helping the t/woodbury.t crash.
Jarkko Hietaniemi [Sat, 18 Oct 2014 12:24:26 +0000 (08:24 -0400)]
Digest::SHA HP-UX hints file is not helping the t/woodbury.t crash.

(For which it is was created.)

Neither is it in the Digest::SHA CPAN version.

6 years agoAfter Yosemite there's no /usr/include.
Jarkko Hietaniemi [Sat, 18 Oct 2014 01:54:06 +0000 (21:54 -0400)]
After Yosemite there's no /usr/include.

(The headers are under /Applications/Xcode.app/...)

6 years agoDocument variants of ‘Can’t modify’ individually
Father Chrysostomos [Sat, 18 Oct 2014 04:42:39 +0000 (21:42 -0700)]
Document variants of ‘Can’t modify’ individually

6 years agoperldelta for refaliasing
Father Chrysostomos [Sat, 18 Oct 2014 04:34:08 +0000 (21:34 -0700)]
perldelta for refaliasing

6 years agoperlref: \@hash{slices} = too
Father Chrysostomos [Sat, 18 Oct 2014 03:32:36 +0000 (20:32 -0700)]
perlref: \@hash{slices} = too

6 years agoRename lvalue references
Father Chrysostomos [Sat, 18 Oct 2014 01:07:47 +0000 (18:07 -0700)]
Rename lvalue references

Also correct the description of lvref magic.  When it was first added,
it was for list assignments only, but that soon changed.