This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ricardo Signes [Thu, 9 May 2013 14:35:06 +0000 (10:35 -0400)]
perldelta: "single character" is clearer than "length one"
David Mitchell [Thu, 9 May 2013 14:32:24 +0000 (15:32 +0100)]
porting/podcheck.t: improve diagnostic
If a test fails because the number of warnings for a pod file was more
than expected, make it clear in the diag output that it was indeed
why it failed.
David Mitchell [Thu, 9 May 2013 14:17:10 +0000 (15:17 +0100)]
clarify SvPV* and SvPV_force* docs
See RT #116407.
Make it clear that SvPV(sv) does not always equal SvPVX(sv), and to use
SvPV_force() if necessary. Also, clarify that SvPV_force() will destroy
any non-string content like a reference. Then, make the other SvPV*
descriptions in general refer back to SvPV() or SvPV_force(), so that
people will spot these added caveats.
Nicholas Clark [Sat, 14 Apr 2012 13:51:33 +0000 (15:51 +0200)]
Remove PERL_ASYNC_CHECK() from Perl_leave_scope().
PERL_ASYNC_CHECK() was added to Perl_leave_scope() as part of commit
f410a2119920dd04, which moved signal dispatch from the runloop to
control flow ops, to mitigate nearly all of the speed cost of safe
signals.
The assumption was that scope exit was a safe place to dispatch signals.
However, this is not true, as parts of the regex engine call
leave_scope(), the regex engine stores some state in per-interpreter
variables, and code called within signal handlers can change these
values.
Hence remove the call to PERL_ASYNC_CHECK() from Perl_leave_scope(), and
add it explicitly in the various OPs which were relying on their call to
leave_scope() to dispatch any pending signals. Also add a
PERL_ASYNC_CHECK() to the exit of the runloop, which ensures signals
still dispatch from S_sortcv() and S_sortcv_stacked(), as well as
addressing one of the concerns in the commit message of
f410a2119920dd04:
Subtle bugs might remain - there might be constructions that enter
the runloop (where signals used to be dispatched) but don't contain
any PERL_ASYNC_CHECK() calls themselves.
Finally, move the PERL_ASYNC_CHECK(); added by that commit to pp_goto to
the end of the function, to be consistent with the positioning of all
other PERL_ASYNC_CHECK() calls - at the beginning or end of OP
functions, hence just before the return to or just after the call from
the runloop, and hence effectively at the same point as the previous
location of PERL_ASYNC_CHECK() in the runloop.
Ricardo Signes [Thu, 9 May 2013 13:39:02 +0000 (09:39 -0400)]
perldelta: update how we talk about COW
Ricardo Signes [Thu, 9 May 2013 13:23:14 +0000 (09:23 -0400)]
perldelta: use v5.x rather than 5.x
Suggested by Nicholas Clark:
The text refers to perl version numbers as 5.12, 5.12.x, 5.12.3
v5.12, v5.12.3. I think it would be best if it were consistent with
a v as either v5.12 for the series, or v5.12.3 for a particular
release. Specifically because use 5.12.3; works, but use 5.12;
doesn't.
Ricardo Signes [Thu, 9 May 2013 13:16:04 +0000 (09:16 -0400)]
perldelta: we suspect no known problems..?
Ricardo Signes [Thu, 9 May 2013 13:14:52 +0000 (09:14 -0400)]
perldelta: typo fix
from Nicholas Clark
Ricardo Signes [Thu, 9 May 2013 13:14:39 +0000 (09:14 -0400)]
perldelta: use UTF-8 when we mean UTF-8
most of these changes from Nicholas Clark
Ricardo Signes [Thu, 9 May 2013 13:13:09 +0000 (09:13 -0400)]
perldelta: warn of more platform deprecation
Ricardo Signes [Thu, 9 May 2013 13:12:38 +0000 (09:12 -0400)]
perldelta: correct "new hash function" entry
Ricardo Signes [Thu, 9 May 2013 12:56:22 +0000 (08:56 -0400)]
perldelta: hash ordering may differ, may not
...the key is that you cannot rely on anything about it
David Golden [Wed, 8 May 2013 21:22:39 +0000 (17:22 -0400)]
revise hash overhaul docs
Ricardo Signes [Thu, 9 May 2013 12:54:29 +0000 (08:54 -0400)]
perldelta: drop a reference to a change internal to 5.17
Ricardo Signes [Thu, 9 May 2013 12:54:14 +0000 (08:54 -0400)]
perldelta: remove an inscrutable note, clean up another
David Mitchell [Thu, 9 May 2013 13:23:38 +0000 (14:23 +0100)]
silence warnings under NO_TAINT_SUPPORT
The are lots of places where local vars aren't used when compiled
with NO_TAINT_SUPPORT.
Daniel Dragan [Thu, 9 May 2013 13:03:59 +0000 (14:03 +0100)]
fix threaded NO_TAINT_SUPPORT build errors
NO_TAINT_SUPPORT incorrectly called Perl_croak without aTHX_.
To fix this, change Perl_croak to Perl_croak_nocontext, since it is
slightly more efficient in instruction size than Perl_croak.
David Mitchell [Thu, 9 May 2013 10:55:47 +0000 (11:55 +0100)]
dump.c: avoid compiler warning under -Dmad
this fix was already applied to the non-MAD branch; apply it to
the similar MAD / xml-dump code.
dump.c:2663:57: warning: comparison of constant 85 with expression of type
'svtype' is always false [-Wtautological-constant-out-of-range-compare]
else if (sv == (const SV *)0x55555555 || SvTYPE(sv) == 'U') {
David Mitchell [Thu, 9 May 2013 10:19:32 +0000 (11:19 +0100)]
toke.c/MAD: silence a couple of warnings
A couple of vars are set but not used under -Dmad.
The easiest way to silence the warnings is to use PERL_UNUSED_VAR()
rather than try to #ifdef away all the places the vars appear under mad.
Craig A. Berry [Thu, 9 May 2013 00:26:46 +0000 (19:26 -0500)]
Minor touch-ups to VMS section of perldelta.
Karen Etheridge [Wed, 8 May 2013 22:30:46 +0000 (15:30 -0700)]
spelling, punct fixes for perldelta
Leon Timmermans [Wed, 8 May 2013 20:58:32 +0000 (22:58 +0200)]
Officially deprecate stdio/sfio builds of perl
Steffen Mueller [Wed, 8 May 2013 17:22:32 +0000 (19:22 +0200)]
Quick fixes to Yves' hash randomization documentation
Karl Williamson [Wed, 8 May 2013 16:47:16 +0000 (10:47 -0600)]
perldelta: Typos, grammar
Karl Williamson [Wed, 8 May 2013 16:24:18 +0000 (10:24 -0600)]
Change some perldelta text
This removes things that aren't applicable except to intra-5.17
releases, and rewords some poorly worded text.
Karl Williamson [Wed, 8 May 2013 16:21:15 +0000 (10:21 -0600)]
Use 'was' not 'is' to describe fixed regressions
'is' implies it still is extant, contrary to the meaning of the text.
Ricardo Signes [Wed, 8 May 2013 14:36:02 +0000 (10:36 -0400)]
perldelta: mention non-blocking sockets on VMS
Ricardo Signes [Wed, 8 May 2013 14:35:50 +0000 (10:35 -0400)]
perldelta: mention PERL_NO_INLINE_FUNCTIONS in delta
Ricardo Signes [Wed, 8 May 2013 14:35:37 +0000 (10:35 -0400)]
perldelta: use Pod, not asterisks, for emphasis
Ricardo Signes [Wed, 8 May 2013 14:35:09 +0000 (10:35 -0400)]
perldelta: document PERL_PERTURB_KEYS
Ricardo Signes [Tue, 7 May 2013 22:10:17 +0000 (18:10 -0400)]
Restore the warning previously issued by (-l $fh)
This is a partial reversion of
433644eed8, which removed a
secondary, short-circuiting behavior when the warning was issued.
Now, the warning is issued, but the normal behavior (treat the
handle as a string) is maintained. This work was done after
subsequent refactoring to doio.c, so it couldn't be just a
reversion with the "return" statement removed.
David Mitchell [Wed, 8 May 2013 12:36:53 +0000 (13:36 +0100)]
add various HASH defines to perl -V output
5.18 contains lots of new build knobs to control hash randomisation.
Add them to the perl -V output.
David Mitchell [Wed, 8 May 2013 12:27:04 +0000 (13:27 +0100)]
INSTALL: fix a couple of typos
David Mitchell [Wed, 8 May 2013 11:37:03 +0000 (12:37 +0100)]
release_managers_guide: fix typo
David Mitchell [Wed, 8 May 2013 11:18:15 +0000 (12:18 +0100)]
bisect-runner.pl: clarify -D,-U,-A args in docs
Based on http://www.perlmonks.org/?node_id=1032501, these arguments could
be confusing.
Karl Williamson [Tue, 7 May 2013 23:00:10 +0000 (17:00 -0600)]
pod/perldelta: Add in some deprecations; fix a typo
Feel free to improve the wording of these.
Dominic Hargreaves [Tue, 7 May 2013 22:25:09 +0000 (23:25 +0100)]
bump dist/IO/lib/IO/Handle.pm version to 1.34
Dominic Hargreaves [Sun, 28 Apr 2013 21:11:57 +0000 (22:11 +0100)]
[perl #117791] Clarify that write does not match the C 'write' semantics
Yves Orton [Tue, 7 May 2013 21:52:16 +0000 (23:52 +0200)]
document and improve hash algorithm randomization related build options
Install was a copy of other material, made heavy reference to 5.8.x and
and didnt really document what it should have. I reworked it to be more
up to date.
Yves Orton [Tue, 7 May 2013 20:24:20 +0000 (22:24 +0200)]
cleanup and test PERL_PERTURB_KEYS environment variable handling
Ricardo Signes [Tue, 7 May 2013 02:01:25 +0000 (22:01 -0400)]
remove the 5.17 deltas, update for 5.18
Ricardo Signes [Tue, 7 May 2013 01:54:24 +0000 (21:54 -0400)]
put the perldelta we had been working on in place
Ricardo Signes [Tue, 7 May 2013 02:31:40 +0000 (22:31 -0400)]
update perldiag with new warnings
Ricardo Signes [Tue, 7 May 2013 01:34:32 +0000 (21:34 -0400)]
regenerate uconfig.h and META.json
Ricardo Signes [Tue, 7 May 2013 01:24:52 +0000 (21:24 -0400)]
Bump version to 5.18.0-RC0
This was done with:
./perl -Ilib Porting/bump-perl-version -i 5.17.12 5.18.0
Followed by two tiny manual edits: INSTALL and patchlevel.h
H.Merijn Brand [Tue, 7 May 2013 21:47:21 +0000 (23:47 +0200)]
The URL for the dist source repo changed
David Mitchell [Tue, 7 May 2013 16:53:49 +0000 (17:53 +0100)]
RMG: say that for maint there are two RMG versions
David Mitchell [Tue, 7 May 2013 16:45:02 +0000 (17:45 +0100)]
RMG: add note about maint and Module::CoreList
David Mitchell [Tue, 7 May 2013 16:25:11 +0000 (17:25 +0100)]
RMG: maint perlhist: change from push to pull
When creating a new maint release, rather than copying its perlhist entry
into every other branch just after release, instead just copy it into
blead; then when creating a new maint release, just pull the latest
perlhist file from blead.
David Mitchell [Mon, 6 May 2013 16:12:30 +0000 (17:12 +0100)]
RMG: maint perldeltas: change from push to pull
When creating a new maint release, rather than copying its perldelta into
every other branch just after release, instead just copy it into blead,
then when creating a new maint release, copy any newer perldeltas from
blead.
David Mitchell [Tue, 7 May 2013 15:53:20 +0000 (16:53 +0100)]
add PERL_NEW_COPY_ON_WRITE to perl -V output
Yves Orton [Tue, 7 May 2013 11:20:34 +0000 (13:20 +0200)]
hoping this works finally. gcc is too permissive with my build options
Yves Orton [Tue, 7 May 2013 09:22:44 +0000 (11:22 +0200)]
document Hash::Util::hash_traversal_mask()
It still needs tests. But I figured it would be easier to test
by someone else if I documented it. (Ill try to get tests done for it
soon).
Yves Orton [Tue, 7 May 2013 09:22:22 +0000 (11:22 +0200)]
fix build issue with picky compilers
Steve Hay [Tue, 7 May 2013 07:44:45 +0000 (08:44 +0100)]
Ensure -DUSE_PERLIO gets into Config's ccflags when using dmake on Windows
The -DUSE_PERLIO flag was being used to build perl itself, but amazingly
didn't end up in Config's ccflags, potentially causing trouble later when
building XS extensions. (The problem isn't new: it's been this way ever
since PerlIO support for Windows was added by
e601c439, way back in
November 2000.)
Yves Orton [Sun, 5 May 2013 14:33:43 +0000 (16:33 +0200)]
Make it possible to disable and control hash key traversal randomization
Adds support for PERL_PERTURB_KEYS environment variable, which in turn allows one to control
the level of randomization applied to keys() and friends.
When PERL_PERTURB_KEYS is 0 we will not randomize key order at all. The
chance that keys() changes due to an insert will be the same as in
previous perls, basically only when the bucket size is changed.
When PERL_PERTURB_KEYS is 1 we will randomize keys in a non repeatedable
way. The chance that keys() changes due to an insert will be very high.
This is the most secure and default mode.
When PERL_PERTURB_KEYS is 2 we will randomize keys in a repeatedable way.
Repititive runs of the same program should produce the same output every
time. The chance that keys changes due to an insert will be very high.
This patch also makes PERL_HASH_SEED imply a non-default
PERL_PERTURB_KEYS setting. Setting PERL_HASH_SEED=0 (exactly one 0) implies
PERL_PERTURB_KEYS=0 (hash key randomization disabled), settng PERL_HASH_SEED
to any other value, implies PERL_PERTURB_KEYS=2 (deterministic/repeatable
hash key randomization). Specifying PERL_PERTURB_KEYS explicitly to a
different level overrides this behavior.
Includes changes to allow one to compile out various aspects of the
patch. One can compile such that PERL_PERTURB_KEYS is not respected, or
can compile without hash key traversal randomization at all. Note that
support for these modes is incomplete, and currently a few tests will
fail.
Also includes a new subroutine in Hash::Util::hash_traversal_mask()
which can be used to ensure a given hash produces a predictable key
order (assuming the same hash seed is in effect). This sub acts as a
getter and a setter.
NOTE - this patch lacks tests, but I lack tuits to get them done quickly,
so I am pushing this with the hope that others can add them afterwards.
Brad Gilbert [Mon, 6 May 2013 15:52:05 +0000 (10:52 -0500)]
Removed confusing reference to new in ties perlfunc entry
David Mitchell [Mon, 6 May 2013 15:28:53 +0000 (16:28 +0100)]
improve unpackstring() API docs
See ticket RT #116366 for the full discussion
David Mitchell [Mon, 6 May 2013 11:34:59 +0000 (12:34 +0100)]
Revert "Update docs to concur with $`,$&,$' changes"
This reverts commit
d78f32f607952d58a998c5b7554572320dc57b2a.
Since COW has now not been enabled by default for 5.18, revert the
documentation changes which say that that $' etc no longer have a
performance penalty, etc.
David Mitchell [Mon, 6 May 2013 11:14:26 +0000 (12:14 +0100)]
make /(?p:...)/ keep RXf_PMf_KEEPCOPY flag
RT #117135
The /p flag, when used internally within a pattern, isn't like the
other internal patterns, e.g. (?i:...), in that once seen, the
pattern should have the RXf_PMf_KEEPCOPY flag globally set and not
just enabled within the scope of the (?p:...).
Robin Barker [Wed, 1 May 2013 17:39:26 +0000 (18:39 +0100)]
Use PTR2IV() instead of casting a pointer to IV, to avoid warnings.
The cast to IV was added to avoid problems on platforms where pointers are
larger than longs. However, the change instead generates warnings on
platforms where IVs are larger than pointers. Instead, use the PTR2IV()
macro provided by perl.h to make everyone happy.
Also change the type of the variable on that line, because it is cast to
STRLEN the first time it is used, and then passed to a macro that assigns it
to an int regardless.
Nicholas Clark [Thu, 2 May 2013 11:34:13 +0000 (13:34 +0200)]
Improve the logic in regen_perly.pl for manually generating token macros.
Without this fixup the build breaks on Win32. Previously it was enabled using
a second regular expression to parse the bison version string. This
effectively duplicates the first regular expression that parses the bison
version string to determine if the version of bison found can be used.
The second regular expression could get missed when changing the first, as
happened with commit
f5cf236ddbe8e24e. So refactor the code to extract the
bison version once, and then use this later as a simple numeric comparison.
With this change, we can actually use bison 2.7 to regenerate perly.*
Craig A. Berry [Sun, 5 May 2013 19:50:54 +0000 (14:50 -0500)]
Fix non-blocking sockets on VMS.
It turns out sockets on VMS (just like Windows) are blocking by
default, but the same code already in IO::Socket::blocking for
Windows that uses ioctl to set non-blocking works just fine on VMS.
This is part of [perl #116433] as the deficieny was exposed by
tests in IO::Socket::IP.
Ricardo Signes [Sun, 5 May 2013 20:05:53 +0000 (16:05 -0400)]
Merge perldelta for 5.18, work from past weeks
Ricardo Signes [Sun, 21 Apr 2013 23:56:00 +0000 (19:56 -0400)]
perldelta: split change is incompatible
Smylers [Thu, 4 Apr 2013 13:14:30 +0000 (14:14 +0100)]
perldelta: "corrupts"
Smylers [Thu, 4 Apr 2013 13:10:32 +0000 (14:10 +0100)]
perldelta: singular agreement
Smylers [Thu, 4 Apr 2013 12:55:04 +0000 (13:55 +0100)]
perldelta: "no" missing
Smylers [Thu, 4 Apr 2013 12:07:14 +0000 (13:07 +0100)]
perldelta: unwanted comma removed
The sense is "matching no longer excludes", which can't take a comma (even
though the qualifiers on "matching" are quite long)>
Ricardo Signes [Fri, 5 Apr 2013 23:53:26 +0000 (19:53 -0400)]
perldelta: mark $_ as code in header
Smylers [Thu, 4 Apr 2013 11:58:06 +0000 (12:58 +0100)]
perldelta: "continuation of"
Not "for".
Smylers [Thu, 4 Apr 2013 11:46:50 +0000 (12:46 +0100)]
perldelta: fatal error is an error, not a warning
"(F)" removed, since everything in the 'New Errors' section is obviously
an error, and none of the other errors in there are marked as such.
Smylers [Thu, 4 Apr 2013 10:47:58 +0000 (11:47 +0100)]
perldelta: semicolon there isn't code
Smylers [Thu, 4 Apr 2013 10:43:57 +0000 (11:43 +0100)]
perldelta: extraneous word removed
Smylers [Thu, 4 Apr 2013 10:41:00 +0000 (11:41 +0100)]
perldelta: join sentence fragment
Smylers [Thu, 4 Apr 2013 10:34:21 +0000 (11:34 +0100)]
perldelta: avoid comma splice
Smylers [Thu, 4 Apr 2013 09:26:23 +0000 (10:26 +0100)]
perldelta: short-circuit cross-reference chain
perlre/(?[ ]) just says to see perlrecharclass/Extended Bracketed
Character Classes, so may as well point people there in the first place.
Smylers [Thu, 4 Apr 2013 09:20:11 +0000 (10:20 +0100)]
perldelta: DTrace probes as bullet list
It was a definition list, but with only terms (no definitions), and hence
no indentation.
Smylers [Thu, 4 Apr 2013 09:17:05 +0000 (10:17 +0100)]
perldelta: spelling fix
Smylers [Thu, 4 Apr 2013 09:12:54 +0000 (10:12 +0100)]
perldelta: an env var doesn't do anything itself
Smylers [Thu, 4 Apr 2013 09:07:50 +0000 (10:07 +0100)]
perldelta: missing parenthetical comma
"in hex" is parenthetical
Smylers [Thu, 4 Apr 2013 09:04:48 +0000 (10:04 +0100)]
perldelta: "order" is intended word
Ricardo Signes [Thu, 4 Apr 2013 13:58:42 +0000 (09:58 -0400)]
warn of more things to be removed
Ricardo Signes [Thu, 4 Apr 2013 02:11:47 +0000 (22:11 -0400)]
carry forward future deprecations from 5.16 delta
Ricardo Signes [Thu, 4 Apr 2013 02:11:21 +0000 (22:11 -0400)]
perldelta: mention the removal of BeOS
Ricardo Signes [Wed, 3 Apr 2013 02:13:28 +0000 (22:13 -0400)]
perldelta: the selected bugs
Ricardo Signes [Wed, 3 Apr 2013 01:48:41 +0000 (21:48 -0400)]
perldelta: miscellaneous editing in the middle parts
Ricardo Signes [Wed, 3 Apr 2013 01:27:32 +0000 (21:27 -0400)]
perldelta: deprecations section
Ricardo Signes [Wed, 3 Apr 2013 01:14:43 +0000 (21:14 -0400)]
perldelta: the incompatible changes section
Ricardo Signes [Wed, 3 Apr 2013 01:03:28 +0000 (21:03 -0400)]
perldelta: finish reordering and first pass through Core Enh.
Ricardo Signes [Wed, 3 Apr 2013 00:58:10 +0000 (20:58 -0400)]
experimental feature warning categories have ::
Ricardo Signes [Tue, 2 Apr 2013 14:05:52 +0000 (10:05 -0400)]
perldelta: collect hash changes
Ricardo Signes [Tue, 2 Apr 2013 14:03:47 +0000 (10:03 -0400)]
perldelta: tweak/fix "earlier changes" section
Ricardo Signes [Mon, 1 Apr 2013 21:53:27 +0000 (17:53 -0400)]
import perl51710delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 21:49:52 +0000 (17:49 -0400)]
import perl5179delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 21:42:53 +0000 (17:42 -0400)]
import perl5178delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 21:14:03 +0000 (17:14 -0400)]
import perl5177delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 21:05:48 +0000 (17:05 -0400)]
import perl5176delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 20:56:06 +0000 (16:56 -0400)]
import perl5175delta content to perl5180delta
Ricardo Signes [Mon, 1 Apr 2013 20:49:25 +0000 (16:49 -0400)]
import perl5174delta content to perl5180delta