This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
10 years agoanother perldelta typo
Father Chrysostomos [Sun, 19 Jun 2011 02:40:01 +0000 (19:40 -0700)]
another perldelta typo

10 years agotwo perldelta fixes
Father Chrysostomos [Sun, 19 Jun 2011 02:33:33 +0000 (19:33 -0700)]
two perldelta fixes

while, not when

What are apple developer tools? Tools for developing apples? For
grafting, perhaps? :-)

10 years agoIncrease stylistic consistency in perldelta by adding C<> and F<>.
Nicholas Clark [Sat, 18 Jun 2011 21:06:43 +0000 (23:06 +0200)]
Increase stylistic consistency in perldelta by adding C<> and F<>.

Correct the stated initial version of COW shared hash key scalars - the first
stable release they were in was 5.8.0, as they were added by Nick Ing-Simmons
in September 2002 in commit 1c846c1f6d96d2ca.

10 years agoperldelta: Minor pod fixes
Karl Williamson [Sat, 18 Jun 2011 18:07:59 +0000 (12:07 -0600)]
perldelta: Minor pod fixes

Commit a1e75797c204ade843c6eb8052cc5577af06c1d6 changed L<Shell>
to C<Shell>, but in reality there still is a Shell module accessible
from L<>, because L<> looks through all of CPAN.  podcheck.t has
to know that it's accessible, and that was done with commit
ce98560028e1830366c9182fe9dd70ec264fe6ee.

Also make the reference to Devel::DProf from C<> to L<> for symmetry.

And, a file reference should be enclosed in F<> and not C<>

10 years agoPrefer the system gcc when searching for libraries such as -lm
Nicholas Clark [Wed, 15 Jun 2011 15:24:43 +0000 (16:24 +0100)]
Prefer the system gcc when searching for libraries such as -lm

40f026236b9959b7 added code to the Linux hints file to use gcc to locate
libraries such as -lm. However, if the user has their own gcc earlier in $PATH
than the system gcc, we don't want its libraries. So try to prefer the system
gcc.

10 years agoForgot to run keywords.pl
Father Chrysostomos [Fri, 17 Jun 2011 21:09:05 +0000 (14:09 -0700)]
Forgot to run keywords.pl

I didn’t realise adding a comment would require this.

10 years agoTypo in podcheck.t
Father Chrysostomos [Fri, 17 Jun 2011 21:08:11 +0000 (14:08 -0700)]
Typo in podcheck.t

$ ./perl -I../lib --add_link foo
Unrecognized switch: --add_link  (-h will show valid options).

$ ./perl -I../lib porting/podcheck.t --add_link foo
Changed: /Users/sprout/Perl/perl.git/t/porting/known_pod_issues.dat

10 years agoDeparse CORE::break
Father Chrysostomos [Fri, 17 Jun 2011 20:32:29 +0000 (13:32 -0700)]
Deparse CORE::break

This is something 80e3f4adf22 missed.

10 years agoDoc update for changes in 5.15.0 + tweaks
Father Chrysostomos [Fri, 17 Jun 2011 20:29:04 +0000 (13:29 -0700)]
Doc update for changes in 5.15.0 + tweaks

10 years agoRemove unnecessary code and tests
Father Chrysostomos [Fri, 17 Jun 2011 16:33:26 +0000 (09:33 -0700)]
Remove unnecessary code and tests

This test was relying on bug #91844.  As that has been fixed (by com-
mit 3ed94dc, which erroneously claimed to fix #81944), this test is
not testing what it purports to test.

Also as a result of that bug fix, it doesn’t matter if the TEMP flag
is set, I can get rid of the SvTEMP_off.  The only effects the TEMP
flag can have now occur only when the refcount is 1, but since *_
holds a refcount and the mortals stack does as well, it’s going to be
2 unless someone undefs *_, in which case the callback won’t have any
reference to it.  If it tries to make a weak reference, doing so will
turn TEMP off.

10 years agoperlfaq4: Use E<> instead of non-ASCII
Karl Williamson [Fri, 17 Jun 2011 19:52:35 +0000 (13:52 -0600)]
perlfaq4: Use E<> instead of non-ASCII

We're trying to get rid of non-ASCII in pods.

10 years agopodcheck.t: Suppress entity out of range messages
Karl Williamson [Fri, 17 Jun 2011 19:39:08 +0000 (13:39 -0600)]
podcheck.t: Suppress entity out of range messages

podchecker emits these messages if an E<> is above 255.  But these
actually work, so the messages are improper.  podchecker is not maintained.

10 years agopodcheck: Make sure perltoc is known
Karl Williamson [Fri, 17 Jun 2011 19:31:47 +0000 (13:31 -0600)]
podcheck: Make sure perltoc is known

perltoc is problematic because it is machine generated from constituent
pods.  This means that errors in them propgagate to it.  As a result,
commit e678c2947ab9ff776af461b393f3a3eecebab64a just skipped it.   But
this led to pods that link to it being flagged as having broken links.
This commit changes things so instead of skipping perltoc, it is added
to the list of pods that are known but are parsed only when there are
links to inside it (of which there are unlikely to be any), and then
only for the existence of such targets.

10 years agopodcheck.t: Add --add_link option
Karl Williamson [Fri, 17 Jun 2011 19:15:24 +0000 (13:15 -0600)]
podcheck.t: Add --add_link option

L<> links in pod apply to anything that search cpan can find.  This
means that it applies to more things than podcheck can find in the Perl
distribution.  So, a list is kept in a data base of modules and man
pages that are known to exist, but aren't findable by podcheck.  This
list has to be maintained manually.  The new option makes adding to the
list easier.

The man page and instructions are somewhat tweaked as well.

10 years agopodcheck.t: Add 'Shell' to list of known modules
Karl Williamson [Fri, 17 Jun 2011 18:32:09 +0000 (12:32 -0600)]
podcheck.t: Add 'Shell' to list of known modules

10 years agoUpdate Module::CoreList with v5.14.1 data
Chris 'BinGOs' Williams [Fri, 17 Jun 2011 18:44:50 +0000 (19:44 +0100)]
Update Module::CoreList with v5.14.1 data

10 years agoCorrect a bug number in perldelta
Father Chrysostomos [Fri, 17 Jun 2011 15:27:30 +0000 (08:27 -0700)]
Correct a bug number in perldelta

Commit 3ed94dc0 fixed #91844, not #81944, as it claimed.

10 years agoAllow ‘sub x :lvalue’ to apply to XSUBs and stubs
Father Chrysostomos [Fri, 17 Jun 2011 15:21:50 +0000 (08:21 -0700)]
Allow ‘sub x :lvalue’ to apply to XSUBs and stubs

This was disabled in 5.12 (with a warning) by commit 885ef6f5, because
applying the attribute to a Perl sub isn’t effective: it does not mod-
ify the op tree accordingly.

But applying an attribute to an XSUB after the fact is perfectly
fine, and is the only way to do it (either with declarative syntax or
attributes.pm).  This commit restores the old behaviour of declarative
for XSUBs.  (attributes.pm never stopped working.)

Commit 885ef6f5 also stopped a declaration from applying the flag to
an undefined subroutine if it happens to have been assigned from else-
where.  It does not make sense to allow the :method attribute to be
applied to such a sub, but not :lvalue.

10 years agoIn pp_subst, use a mortal scalar for dstr, instead of SAVEFREESV().
Nicholas Clark [Fri, 17 Jun 2011 13:19:07 +0000 (15:19 +0200)]
In pp_subst, use a mortal scalar for dstr, instead of SAVEFREESV().

Creation of the mortal can be done with newSVpvn_flags(), saving 1 function
call. Also, the mortal stack uses 1 pointer, whereas the save stack will use 2.
It doesn't matter that dstr is now marked SVs_TEMP, as both code paths already
gut it, stealing its SvPVX(). The SV head will happen to last a bit longer now,
to the next FREETMPS, instead of the the scope pop at the end of pp_subst or
pp_substcont.

10 years agoAdd the v5.12.4-RC2 and v5.14.1 epigraphs to Porting/epigraphs.pod
Leon Brocard [Fri, 17 Jun 2011 12:13:57 +0000 (13:13 +0100)]
Add the v5.12.4-RC2 and v5.14.1 epigraphs to Porting/epigraphs.pod

10 years agoperldelta update + typo fixes
Father Chrysostomos [Fri, 17 Jun 2011 03:15:50 +0000 (20:15 -0700)]
perldelta update + typo fixes

10 years ago[perl #81944] Non-lvalue subs do not copy return values
Father Chrysostomos [Thu, 16 Jun 2011 13:27:50 +0000 (06:27 -0700)]
[perl #81944] Non-lvalue subs do not copy return values

return and leavesub see if they can cheat by not copying anything
marked TEMP, since presumably nothing else is using it.  That means
the return values of delete() and shift() are not copied.  Since @_
aliases to the caller’s variables, sometimes what is returned *is*
used elsewhere and still marked TEMP.  So cases like sub { return
delete $_[0] } ->($x) end up returning $x unchanged, instead of
copying it.

As mentioned in the ticket, the solution is to copy only if the refer-
ence count is 1.

This also allows me to simplify the lvalue-returning code without
spreading this bug further.  (pp_leavesublv currently avoids calling
sv_2mortal, in order not to set the TEMP flag.)

10 years agoStop lvalue subs from copying read-only scalars
Father Chrysostomos [Thu, 16 Jun 2011 13:02:23 +0000 (06:02 -0700)]
Stop lvalue subs from copying read-only scalars

They were only doing so in reference context (subroutine args,
for(...)).

Explicit return already worked, but only because I didn’t write it
well.  I’m in the process of trying to merge the two.

10 years agoTest ref(\pos) and ref(\vec...)
Father Chrysostomos [Thu, 16 Jun 2011 21:55:18 +0000 (14:55 -0700)]
Test ref(\pos) and ref(\vec...)

10 years agoRevert "pos in lvalue context now returns a PVMG instead of a PVLV."
Father Chrysostomos [Thu, 16 Jun 2011 21:51:33 +0000 (14:51 -0700)]
Revert "pos in lvalue context now returns a PVMG instead of a PVLV."

This reverts commit 571f0e8653a532c34edde36e797ecba446978b1c.

I’m afraid I have to revert this, as it does not modify sv_reftype
accordingly, and doing so would add *more* complexity (the opposite
of what that commit was trying to achieve) and slow down ref() at run
time, by making it search for pos magic.

10 years agoperldelta_template: No longer need to indent L<XXX>
Karl Williamson [Fri, 17 Jun 2011 00:48:08 +0000 (18:48 -0600)]
perldelta_template: No longer need to indent L<XXX>

The indentation was done to avoid podcheck.t tests failing for the
broken link to the placeholder XXX.  This is no longer necessary,
as
    1) perldelta_template itself is skipped by podcheck;
    2) podcheck now has been taught to not output a message for
       links to XXX in perldelta

10 years agopodcheck.t: Special case perldelta
Karl Williamson [Fri, 17 Jun 2011 00:40:14 +0000 (18:40 -0600)]
podcheck.t: Special case perldelta

This adds a special case to the checks for perldelta to ignore the
placeholder links (that by necessity are broken).

10 years agopodcheck.t: Ignore perldelta_template.pod
Karl Williamson [Fri, 17 Jun 2011 00:29:42 +0000 (18:29 -0600)]
podcheck.t: Ignore perldelta_template.pod

This file is not a pod, and was supposed to be ignored, but due to
an error in the logic that converts from native file system to
unix format, it was being processed.

10 years agopodcheck.t: NAME ok to be used in multi perldeltas
Karl Williamson [Fri, 17 Jun 2011 00:17:12 +0000 (18:17 -0600)]
podcheck.t: NAME ok to be used in multi perldeltas

The name of all perldeltas should be "perldelta".  So, set to -1 in the db
to indicate to ignore this check.

10 years ago"who be" should be "who are" in perldelta template
Father Chrysostomos [Thu, 16 Jun 2011 21:30:02 +0000 (14:30 -0700)]
"who be" should be "who are" in perldelta template

10 years ago"who be" should be "who are" in perldelta.pod
Pau Amma [Thu, 16 Jun 2011 21:28:46 +0000 (14:28 -0700)]
"who be" should be "who are" in perldelta.pod

10 years ago"who be" should be "who are" in perl*delta.pod
Pau Amma [Thu, 16 Jun 2011 21:28:28 +0000 (14:28 -0700)]
"who be" should be "who are" in perl*delta.pod

(5.13 and 5.14)

10 years ago"who be" should be "who are" in perl*delta.pod
Pau Amma [Thu, 16 Jun 2011 21:27:42 +0000 (14:27 -0700)]
"who be" should be "who are" in perl*delta.pod

(up to 5.12)

10 years agoperldelta: another CPAN breakage
Father Chrysostomos [Thu, 16 Jun 2011 20:13:13 +0000 (13:13 -0700)]
perldelta: another CPAN breakage

10 years agoIncrease Pod::Perldoc’s version
Father Chrysostomos [Thu, 16 Jun 2011 20:09:17 +0000 (13:09 -0700)]
Increase Pod::Perldoc’s version

Perl 5.14.1 is using the number 3.15_04.  What blead had until
recently was identical to 5.14.1, but now it has diverged, so
it needs a new number.

10 years agoAdded Shawn's canonical address
Jesse Vincent [Thu, 16 Jun 2011 19:46:42 +0000 (15:46 -0400)]
Added Shawn's canonical address

10 years agoAdd Shawn M Moore to AUTHORS
Shawn M Moore [Fri, 22 Apr 2011 21:35:35 +0000 (17:35 -0400)]
Add Shawn M Moore to AUTHORS

10 years agoFactor out ->program_name and use it in more places
Shawn M Moore [Tue, 14 Jun 2011 23:43:39 +0000 (19:43 -0400)]
Factor out ->program_name and use it in more places

10 years agoComment grammar and clarity fix
Shawn M Moore [Tue, 14 Jun 2011 23:37:32 +0000 (19:37 -0400)]
Comment grammar and clarity fix

10 years agoConsistently titlecase descriptions in -h
Shawn M Moore [Tue, 14 Jun 2011 23:33:49 +0000 (19:33 -0400)]
Consistently titlecase descriptions in -h

10 years agoUse the same "$me OPTIONS" invocation as the other examples
Shawn M Moore [Tue, 14 Jun 2011 23:31:58 +0000 (19:31 -0400)]
Use the same "$me OPTIONS" invocation as the other examples

    Otherwise when you have a subclass like cpandoc, it is inconsistent

10 years agoAdd another address for Shlomi Fish
Father Chrysostomos [Thu, 16 Jun 2011 12:36:47 +0000 (05:36 -0700)]
Add another address for Shlomi Fish

10 years agoCleanup lib/perl5db.t
Shlomi Fish [Thu, 16 Jun 2011 12:27:38 +0000 (05:27 -0700)]
Cleanup lib/perl5db.t

this is a patch to do some cleanups to lib/perl5db.t. It removes
trailing whitespace, converts multi-line strings to here-documents,
creates a _slurp function, localises variables, and has some other
improvements.

10 years agorevert recent changes to eintr.t
David Mitchell [Thu, 16 Jun 2011 11:44:38 +0000 (12:44 +0100)]
revert recent changes to eintr.t

Revert "[perl #92828] eintr.t hangs on FreeBSD"
This reverts commit 6e59d93aee950461947904b4f24a7f52c6c85f58.

Revert "eintr.t: skip based on capability rather than OS"
This reverts commit df375c6d048b938ecdeaecc7b264a7f1a190120a.

My attempt to skip based on capability hung freebsd, and my attempt to fix
that failed. Give up for now.

10 years agoMerge ext/IPC-Open2 into ext/IPC-Open3.
Nicholas Clark [Thu, 16 Jun 2011 10:47:07 +0000 (12:47 +0200)]
Merge ext/IPC-Open2 into ext/IPC-Open3.

IPC::Open2::open2() is implemented as a thin wrapper around
IPC::Open3::_open3(), and hence is very tightly coupled to it.

10 years agoTypo fix in When to Still Use local()
Ian Goodacre [Thu, 16 Jun 2011 06:26:18 +0000 (18:26 +1200)]
Typo fix in When to Still Use local()

Signed-off-by: David Golden <dagolden@cpan.org>
10 years agoAdd PERL_NO_GET_CONTEXT to ODBM_File
Nicholas Clark [Mon, 21 Mar 2011 16:27:23 +0000 (16:27 +0000)]
Add PERL_NO_GET_CONTEXT to ODBM_File

For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.

10 years agoIn pp_match, refactor the call to CALLREGEXEC() to avoid a goto.
Nicholas Clark [Thu, 16 Jun 2011 09:11:39 +0000 (11:11 +0200)]
In pp_match, refactor the call to CALLREGEXEC() to avoid a goto.

The previous slightly contorted logic had an if() block that ended in a goto,
where the target was only 6 lines later, and could not be reached directly.
It dates back to (at least) 5.000, with no structural changes since then.

10 years agoperldelta for breakpoints by file name
Father Chrysostomos [Thu, 16 Jun 2011 04:52:57 +0000 (21:52 -0700)]
perldelta for breakpoints by file name

10 years agoBreak upon <filename>:<line>
Shlomi Fish [Thu, 16 Jun 2011 04:46:16 +0000 (21:46 -0700)]
Break upon <filename>:<line>

10 years agoTests for #92906: perl -d has non-functional b command
Shlomi Fish [Thu, 16 Jun 2011 04:38:06 +0000 (21:38 -0700)]
Tests for #92906: perl -d has non-functional b command

In bleadperl (NOT perl-5.12.3) perl -d's "b" command does not appear
to do anything as verified on my x86-64 Mandriva Linux Cooker machine. This
patch adds a regression test to test for it.

See:

http://www.nntp.perl.org/group/perl.perl5.porters/2011/06/msg173568.html

10 years ago[perl #92906] perl -d has non-functional b command
Father Chrysostomos [Thu, 16 Jun 2011 04:35:56 +0000 (21:35 -0700)]
[perl #92906] perl -d has non-functional b command

This fixes a regression introduced after 5.14.0.

Commit 6f83ef0e5a4 got dbfile and dbline magic mixed up and ended up
apply set-magic to the hash (dbfile), not to the element (dbline).

The result was that debugger breakpoints simply did not work at all.

10 years agoCGI: Reset permissions during temporary directory test so Win32 can remove.
George Greer [Thu, 16 Jun 2011 03:59:22 +0000 (23:59 -0400)]
CGI: Reset permissions during temporary directory test so Win32 can remove.

The 'tmpdir.t' test leaves the permissions of the directories at 0500, which
translates into setting the 'read-only' bit in Win32-speak.  That makes the
'rmdir' in the END block fail (silently) and thus the test is very unhappy
the next time through.  It is easy enough to just run the test twice to see.

10 years agocharnames: White space, comment only
Karl Williamson [Thu, 16 Jun 2011 00:20:11 +0000 (18:20 -0600)]
charnames: White space, comment only

10 years agocharnames: Add :loose matching
Karl Williamson [Thu, 16 Jun 2011 00:09:02 +0000 (18:09 -0600)]
charnames: Add :loose matching

This adds the capability to charnames to use Unicode loose name
look-ups, via ":loose" being specified in the pragma.

The number of tests per code point is doubled in the .t, so to preserve
the same amount of elapsed test time, the number of code points tested
in each run is halved.

10 years agomktables: Allow for loose \N{} matching
Karl Williamson [Wed, 15 Jun 2011 22:22:38 +0000 (16:22 -0600)]
mktables: Allow for loose \N{} matching

mktables makes several tables and defines a subroutine for looking up
algorithmically determinable names.  Extend this to allow for Unicode
loose matching of names.

This is part of a patch sequence to extend this.

10 years agocharnames.t: Rmv duplicated test
Karl Williamson [Wed, 15 Jun 2011 21:48:00 +0000 (15:48 -0600)]
charnames.t: Rmv duplicated test

10 years agocharnames: small comment fixes
Karl Williamson [Wed, 15 Jun 2011 18:17:41 +0000 (12:17 -0600)]
charnames: small comment fixes

10 years agocharnames: Check for malformed utf8
Karl Williamson [Wed, 15 Jun 2011 18:09:55 +0000 (12:09 -0600)]
charnames: Check for malformed utf8

     The new warnings categories in 5.14 allow for turning off warnings
     for everything but malformed utf8; instead of all or nothing.
     Allow malformed warnings.

10 years agocharnames pod: Note that BELL is now deprecated
Karl Williamson [Wed, 15 Jun 2011 18:08:40 +0000 (12:08 -0600)]
charnames pod: Note that BELL is now deprecated

10 years agocharnames: Minor pod clarifications
Karl Williamson [Mon, 13 Jun 2011 19:00:41 +0000 (13:00 -0600)]
charnames: Minor pod clarifications

10 years agocharnames: Quote metachars in script names
Karl Williamson [Wed, 15 Jun 2011 20:32:14 +0000 (14:32 -0600)]
charnames: Quote metachars in script names

"use charnames qw(.*)" will match any script; it should match none.

10 years agoBenchmark.t: ignore sys CPU time
David Mitchell [Wed, 15 Jun 2011 15:17:01 +0000 (16:17 +0100)]
Benchmark.t: ignore sys CPU time

Currently we work out the CPU burned by a loop by summing user and sys
CPU. On the grounds that the burning we're interested in should have all
been carried out with user CPU and that therefore any sys CPU is a red
herring, ignore sys CPU for the infamous test 15.

Yes, this is clutching at straws. Still, diagnostics output may show
in future whether I was right!

10 years agoBenchmark.t: fix count estimate
David Mitchell [Wed, 15 Jun 2011 15:12:16 +0000 (16:12 +0100)]
Benchmark.t: fix count estimate

Commit bb6c6e4b8d10f2e460a7fe48e677d3d998a7f77d, which added
improved diagnostics, also broke the count estimate.

10 years ago[perl #92828] eintr.t hangs on FreeBSD
David Mitchell [Wed, 15 Jun 2011 14:07:57 +0000 (15:07 +0100)]
[perl #92828] eintr.t hangs on FreeBSD

My commit df375c6d048b938ecdeaecc7b264a7f1a190120a attempted to
convert t/io/eintr.t from OS-based skipping to capability-based skipping,
but it only tested whether reads from pipes are interruptible.
Some OSes (like FreeBSD) only hang on write; so probe for that too.

10 years agoRemove Shell from the core distribution. Get it from CPAN now.
Nicholas Clark [Wed, 15 Jun 2011 10:14:59 +0000 (12:14 +0200)]
Remove Shell from the core distribution. Get it from CPAN now.

This reinstates 28d302d426b73ed7, which was reverted by c9a0cae924d6331f,
because Shell.pm was missing its deprecation warning in 5.12. (Minor changes
subsequently mean that c9a0cae924d6331f as-is can't be reverted).

The entry in perldelta.pod has to to be C<Shell> because L<Shell> would be a
broken link, and fail t/porting/podcheck.t. Change the removal notice for
Devel::DProf from L<> to C<> to be consistent. L<Devel::DProf> *isn't* a
podchecker error - presumably the "=head2 Devel::DProf" in perlperf.pod is seen
as the valid link target.

10 years agoMake B::Deparse emit CORE::state, etc.
Father Chrysostomos [Wed, 15 Jun 2011 01:09:22 +0000 (18:09 -0700)]
Make B::Deparse emit CORE::state, etc.

Commit 9dcb83683 enabled feature.pm-enabled keywords to work with the
CORE:: prefix even without feature.pm.

B::Deparse is hereby updated to account for this, by prefixing CORE::
to those keywords if the feature in question is not loaded.

10 years agoperldelta.pod updated through ca3749d
David Golden [Wed, 15 Jun 2011 01:57:37 +0000 (21:57 -0400)]
perldelta.pod updated through ca3749d

10 years agoMark Devel::DProf as deprecated in corelist
Florian Ragwitz [Tue, 14 Jun 2011 21:07:00 +0000 (23:07 +0200)]
Mark Devel::DProf as deprecated in corelist

10 years agoKill Devel::DProf
Florian Ragwitz [Tue, 14 Jun 2011 10:28:12 +0000 (12:28 +0200)]
Kill Devel::DProf

It has been deprecated in 5.14. Now is the time to remove it.

10 years agoIgnore deletes when looking for changed versions
Florian Ragwitz [Tue, 14 Jun 2011 11:29:11 +0000 (13:29 +0200)]
Ignore deletes when looking for changed versions

10 years agoAllow ‘continue;’ without feature.pm
Father Chrysostomos [Tue, 14 Jun 2011 20:10:13 +0000 (13:10 -0700)]
Allow ‘continue;’ without feature.pm

Since there is no conflict between ‘continue;’ and a user-defined sub-
routine (it’s a syntax error, as ‘continue’ is already a keyword),
there is no need to require the ‘switch’ feature to be enabled for
this keyword.

This actually simplifies the implementation.

10 years agoperldelta up to 571f0e8
Father Chrysostomos [Tue, 14 Jun 2011 19:54:12 +0000 (12:54 -0700)]
perldelta up to 571f0e8

10 years agoUpdate PerlCheat to 5.14
H.Merijn Brand [Tue, 14 Jun 2011 18:12:01 +0000 (20:12 +0200)]
Update PerlCheat to 5.14

10 years agopos in lvalue context now returns a PVMG instead of a PVLV.
Nicholas Clark [Tue, 14 Jun 2011 15:52:46 +0000 (17:52 +0200)]
pos in lvalue context now returns a PVMG instead of a PVLV.

Store the target SV in mg_obj, instead of LvTARG(). This slightly reduces both
code complexity and runtime memory use.

10 years agoIn magic.t, restore $$ after modifying it.
Nicholas Clark [Tue, 14 Jun 2011 15:32:12 +0000 (17:32 +0200)]
In magic.t, restore $$ after modifying it.

Otherwise tests for setting $0 fail on any Linux or FreeBSD machine which
happens to have a running process 42. (The value $$ is set to for the
assignment test). Without a running process 42, those tests skip, on the
assumption that they aren't running on a suitable platform to read the process
name with external commands.

10 years ago[perl #8611] tied handles and gotos don't mix
David Mitchell [Tue, 14 Jun 2011 13:21:56 +0000 (14:21 +0100)]
[perl #8611] tied handles and gotos don't mix

tied handle method calls, unlike other types of tie, don't push a new
stack. This means that a goto within a method to an outer scope
"succeeds", and pops back the context stack past the method call. When
control (at the C level) eventually passes back to the return from
call_method(), we've lost all our relevant stack contents (like all the
ENTERs), and corruption ensures.

The fix is to add PUSHSTACKi/POPSTACK.

The side effect of this is that attempts to goto out of a tied handle
method call now give "Can't find label" errors, like non-handle methods
already do.

10 years agoIgnore the generated mg_data.h
Florian Ragwitz [Tue, 14 Jun 2011 11:12:26 +0000 (13:12 +0200)]
Ignore the generated mg_data.h

10 years agoperlfaq9: Sys::Hostname is in core since 5.0
brian d foy [Thu, 2 Jun 2011 02:21:46 +0000 (21:21 -0500)]
perlfaq9: Sys::Hostname is in core since 5.0

10 years agoRemove FAQ about PONIE
brian d foy [Sun, 29 May 2011 13:17:42 +0000 (08:17 -0500)]
Remove FAQ about PONIE

10 years agoRe-mention $foo Magazin in perlfaq2
brian d foy [Thu, 28 Apr 2011 15:12:51 +0000 (10:12 -0500)]
Re-mention $foo Magazin in perlfaq2

10 years agoThe Perl Review isn't really a magazine anymore
brian d foy [Fri, 15 Apr 2011 20:05:13 +0000 (15:05 -0500)]
The Perl Review isn't really a magazine anymore

10 years agoMake $$ writable, but still magical
Father Chrysostomos [Tue, 14 Jun 2011 05:44:15 +0000 (22:44 -0700)]
Make $$ writable, but still magical

This commit makes $$ writable again, as it was in 5.6, while preserv-
ing the magical pid-fetching added recently (post-5.14.0) by com-
mit 0e219455.

It does this by following Aristotle Pagaltzis’ brilliant suggestion in
<20110609145148.GD8471@klangraum.plasmasturm.org>; namely, to store
the PID in magic when $$ is written to, so that get-magic can detect
whether a fork() has occurred and reset $$ accordingly.  This makes it
seem as though the fork() code sets $$ itself (which it used to before
0e219455), while even working when C code outside of perl’s control
calls fork().

This restores compatibility with DBIx::Connector and PPerl.

10 years agoUpdate preferred perldelta RT citation standard
David Golden [Mon, 13 Jun 2011 23:43:58 +0000 (19:43 -0400)]
Update preferred perldelta RT citation standard

10 years agocharnames: Abbreviations wrong on certain C1 controls
Karl Williamson [Mon, 13 Jun 2011 17:48:40 +0000 (11:48 -0600)]
charnames: Abbreviations wrong on certain C1 controls

The abbreviations for 4 of the C1 controls have a trailing blank.
Unfortunately so did the tests for them.

10 years agoMove an XS::APItest var decl to PREINIT
Father Chrysostomos [Mon, 13 Jun 2011 06:16:29 +0000 (23:16 -0700)]
Move an XS::APItest var decl to PREINIT

Hopefully this will get smoke reports to pass again on Windows.

10 years agoMore perldelta entries
Father Chrysostomos [Mon, 13 Jun 2011 05:05:46 +0000 (22:05 -0700)]
More perldelta entries

10 years agoSome perldelta updates
Father Chrysostomos [Mon, 13 Jun 2011 01:09:59 +0000 (18:09 -0700)]
Some perldelta updates

10 years agoFix typo in perlmod
Father Chrysostomos [Sun, 12 Jun 2011 22:14:04 +0000 (15:14 -0700)]
Fix typo in perlmod

10 years agoCompletely free hashes containing nulls
Father Chrysostomos [Sun, 12 Jun 2011 21:46:44 +0000 (14:46 -0700)]
Completely free hashes containing nulls

This fixes a regression introduced since 5.14.0, by commit e0171a1a3.

The new Perl_hfree_next_entry function that that commit introduced
returns the value of the hash element, or NULL if there are none left.
If the value of the hash element is NULL, the two cases are indistin-
guishable.

Before e0171a1a3, all the hash code took null values into account.
mro_package_moved took advantage of that, stealing values out of a
hash and leaving it to the freeing code to delete the elements.

The two places that call Perl_hfree_next_entry (there was only one,
S_hfreeentries, with commit e0171a1a3, but the following commit,
104d7b699c, made sv_clear call it, too) were not accounting for NULL
values’ being returned, and could terminate early, resulting in mem-
ory leaks.

One could argue that the perl core should not be assigning nulls to
HeVAL, but HeVAL is part of the public API and there could be CPAN
code assigning NULL to it, too.

So the safest approach seems to be to modify Perl_hfree_next_entry’s
callers to check the number of keys and not to attribute a signifi-
cance to a returned NULL.

10 years agoReorder interpreter struct to remove alignment holes
Nicholas Clark [Mon, 2 May 2011 21:22:06 +0000 (22:22 +0100)]
Reorder interpreter struct to remove alignment holes

On a LP64 system the interpreter struct should now be 8 bytes smaller.

10 years agoRe-order perlvars.h to group related variables, and spread mutexes out.
Nicholas Clark [Mon, 2 May 2011 20:22:08 +0000 (21:22 +0100)]
Re-order perlvars.h to group related variables, and spread mutexes out.

Move variables smaller than pointers into groups, to avoid holes in the
structure for PERL_GLOBAL_STRUCT. Spreading the mutexes out tries to keep them
off the same cache lines, which may help slightly on multi-processor machines.

10 years agoPL_perlio_mutex is only needed with USE_UIHREADS && USE_PERLIO
Nicholas Clark [Mon, 2 May 2011 19:24:25 +0000 (20:24 +0100)]
PL_perlio_mutex is only needed with USE_UIHREADS && USE_PERLIO

(Not that Configure will let you configure with ithreads but without perlio)

10 years agoChange PL_use_safe_putenv from int to bool.
Nicholas Clark [Mon, 2 May 2011 16:51:11 +0000 (17:51 +0100)]
Change PL_use_safe_putenv from int to bool.

It is only ever checked for truth/falsehood, and all assignments to it (in core
and on CPAN) are either 0 or 1.

10 years agoMove PL_runops_{std,dbg} to perl.h, and make them const.
Nicholas Clark [Mon, 2 May 2011 14:02:57 +0000 (15:02 +0100)]
Move PL_runops_{std,dbg} to perl.h, and make them const.

They exist solely to ensure that Perl_runops_standard and Perl_runops_debug
are linked in - nothing assigns to either variable, and nothing reads them.

10 years agoMove PL_global_struct_size, PL_interp_size{,_5_16_0} to perl.h
Nicholas Clark [Sun, 1 May 2011 21:12:15 +0000 (22:12 +0100)]
Move PL_global_struct_size, PL_interp_size{,_5_16_0} to perl.h

Make them const U16 - they should have been const from the start.

10 years agoIn perlvar.h, move the always-present globals above those conditionally compiled
Nicholas Clark [Sun, 1 May 2011 20:13:01 +0000 (21:13 +0100)]
In perlvar.h, move the always-present globals above those conditionally compiled

Rename PL_interp_size_5_10_0 to PL_interp_size_5_16_0, as it is only intended to
track interpreter size within (forwards) binary compatible maintenance branches.

10 years agoMove PL_{revision,version,subversion} to perl.h, making them const U8.
Nicholas Clark [Sun, 1 May 2011 13:39:31 +0000 (14:39 +0100)]
Move PL_{revision,version,subversion} to perl.h, making them const U8.

To get the initialisation to work, the location of #include patchlevel.h needs
to be moved.

10 years agoMove PL_sh_path to perl.h (except for OS/2), as it's const char[]
Nicholas Clark [Sun, 1 May 2011 11:25:58 +0000 (12:25 +0100)]
Move PL_sh_path to perl.h (except for OS/2), as it's const char[]

On OS/2, keep it in perlvars.h, as it's not const there. makedef.pl doesn't
pay attention to C pre-processor symbols, so it will always see the declaration
in perlvars.h, and add the symbol to the linker file, so no need to mention
sh_path in globvar.sym. Add special case logic in regen/embed.pl to make the
embedvar.h macros for PL_sh_path defined only on OS/2.

10 years agoMove PL_{No,Yes,hexdigit} from perlvars.h to perl.h, as all are const char[]
Nicholas Clark [Sat, 30 Apr 2011 22:01:07 +0000 (23:01 +0100)]
Move PL_{No,Yes,hexdigit} from perlvars.h to perl.h, as all are const char[]

They were converted in perl.h from const char[] to #define in 31fb120917c4f65d,
then re-instated as const char[], but in perlvars.h, in 3fe35a814d0a98f4.
There's no need for compile-time constants to jump through the hoops of
perlvars.h, even for Symbian, as the various "EXTCONST" variables already in
perl.h demonstrate.

These were the only 3 users of the the PERLVARISC macro, so eliminate that, and
all related code.