This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
13 years agoRevert parts of c31c291..96b6b87
Father Chrysostomos [Fri, 8 Apr 2011 20:03:56 +0000 (13:03 -0700)]
Revert parts of c31c291..96b6b87

This restores the old definition of dPOPTOPiirl_nomg from
before 96b6b87 and the old definition of dPOPXiirl_ul_nomg from
before e62ca0f (except for a bug fix: POPi cannot be used since
it’s magical). It also reverts most of c31c291.

This does mean that uninitialized warnings for various operators are
back in reverse order. So I am reinstating a bug with this commit. But
that bug was never a 5.14 blocker and so should never have been fixed
during code freeze (and there is the slight possibility that the fix
would break sensitive test suites). It was only fixed ‘for free’ as a
side effect of fixing [perl #87708], but that bug turned out to have a
better fix (commit 75ea7a1) that allows these changes to be reverted.

13 years agoRevert "[perl #87708] $tied / $tied under use integer"
Father Chrysostomos [Fri, 8 Apr 2011 16:08:02 +0000 (09:08 -0700)]
Revert "[perl #87708] $tied / $tied under use integer"

This reverts most of commit 76422f81b675011beffbdb66c981a36b6fbf4a6b.

It is now unnecessary as of commit 75ea7a1.

13 years agoRemove unnecessary code from pp_add
Father Chrysostomos [Fri, 8 Apr 2011 16:05:38 +0000 (09:05 -0700)]
Remove unnecessary code from pp_add

This code, added recently in 4c3ac4b and amended in 837c879, has been
unnecessary since commit 75ea7a1.

13 years agoRemove unnecessary code from pp_eq
Father Chrysostomos [Fri, 8 Apr 2011 16:04:13 +0000 (09:04 -0700)]
Remove unnecessary code from pp_eq

This code, added recently in 7d779b2, has been unnecessary since com-
mit 75ea7a1.

13 years agoCorrect the skip count in stash.t
Father Chrysostomos [Fri, 8 Apr 2011 16:01:55 +0000 (09:01 -0700)]
Correct the skip count in stash.t

This has been wrong since 57f45d7.

13 years ago[perl #87708] Fix ‘$tied binop $tied’
Father Chrysostomos [Fri, 8 Apr 2011 06:02:35 +0000 (23:02 -0700)]
[perl #87708] Fix ‘$tied binop $tied’

The short story: In 5.13.1 or .2 these ops started calling get-magic
just once if the same gmagical scalar was used for both operands. Then
the same value would be used on both sides. In 5.12 FETCH would be
called twice with both return values used, but they would be swapped
in most cases (so $t/$t would return 1.5 if $t returned 2 and then
3). Now FETCH is called twice and the two operands are used in the
right order.

Up till now there have been patches to fix specific ops, but I real-
ised that the same ten or so lines of code would have to be added to
the rest of the 20+ pp_ functions, all of which use tryAMAGICbin_MG
(which calls Perl_try_amagic_bin in gv.c), so it made sense to add the
code to Perl_try_amagic_bin instead. This fixes all the ops in one
fell swoop.

The code in question checks whether the left and right operands are
the same gmagical scalar. If so, it copies the scalar into a new mor-
tal one, and then calls get-magic on the original operand to get its
new value (for the rhs). The new scalar is placed just below the top
of the stack, so it becomes the left operand.

This does slow down the bitwise integer ops slightly, but only in this
rare edge case. And the simplification of the code seems worth it.

Forthcoming are commits that revert some of the changes already made,
as this commit renders them unnecessary.

13 years ago[perl #87708] $tied == $tied
Father Chrysostomos [Thu, 7 Apr 2011 18:44:15 +0000 (11:44 -0700)]
[perl #87708] $tied == $tied

This is only part of #87708.

This fixes the + operator outside of any ‘use integer’ scope when the
same tied scalar is used for both operands and returns two different
values. Before this commit, get-magic would be called only once and
the same value used. In 5.12.x it just worked.

I tried modifying pp_eq throughout to take this case into account,
but it made the most common cases slightly slower, presumably because
of the extra checks. So this follows the same temp sv method that I
used for pp_add (in 4c3ac4b and 837c879), which, though slowing down
this edge cases due to the extra allocation, leaves the most common
cases just as fast. (And, in case my benchmarks were unreliably [not
unlikely], this method is also safer, as it has less chance of getting
different code paths wrong.)

13 years agoMake :utf8 and :bytes MULTIARG
Leon Timmermans [Thu, 7 Apr 2011 10:33:21 +0000 (12:33 +0200)]
Make :utf8 and :bytes MULTIARG

PerlIO layer types have this property that flags if they can accept
multiple arguments or only one. Unfortunately, this always checks the
uppermost layer that has an Open method defined. This causes issues when
used with utf8 or bytes on top of a layer that uses multiple arguments.

For 5.15 I think abolishing this feature may make most sense. It's just
flat out wrong IMO, it's the layer that uses the arguments that should
validate them, not the topmost, which may not even touch them. In the
mean time adding the multiargs flag to :utf8 and :bytes is a reasonable
stop-gap.

This patch makes perl slightly more permissive, so it shouldn't break
any working code out there.

13 years agoPATCH: [perl #87810] BBC Text::MultiMarkdown
Karl Williamson [Thu, 7 Apr 2011 14:36:51 +0000 (08:36 -0600)]
PATCH: [perl #87810] BBC Text::MultiMarkdown

A statement should have been outside a block but was inside it.
The indentation was correct, and in a number of times reading
the code I still missed it.

I'm having trouble distilling down the failure scenario into
a simple test case, and am short on tuits right now, so a test
will be committed later.

13 years ago[perl #87388] bless[], "main::" crashes
Father Chrysostomos [Thu, 7 Apr 2011 05:44:28 +0000 (22:44 -0700)]
[perl #87388] bless[], "main::" crashes

As mention in the ticket, this was caused by b4dd662, which removed
‘dead’ code from gv_stashpvn:

commit b4dd66232df8f0d1c00796970dec7fc37fbe9edf
Author: Nicholas Clark <nick@ccl4.org>
Date:   Fri Oct 8 21:33:29 2010 +0100

    Remove dead code from Perl_gv_stashpvn().

    GvHV() and HvNAME() will both always already be set, as gv_fetchpvn_flags()
    will initialise these as it walks the string in its initial loop to locate the
    correct stash, then return early because name == name_end.

    This code has been dead since it was added in 5.000.

--- a/gv.c
+++ b/gv.c
@@ -927,11 +927,9 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags)
  Safefree(tmpbuf);
     if (!tmpgv)
  return NULL;
-    if (!GvHV(tmpgv))
- GvHV(tmpgv) = newHV();
     stash = GvHV(tmpgv);
-    if (!HvNAME_get(stash))
- hv_name_set(stash, name, namelen, 0);
+    assert(stash);
+    assert(HvNAME_get(stash));
     return stash;
 }

This routine, before the snippet shown, adds two colons to the end of
the name and then passes "main::::" to gv_fetch_pvn_flags.

gv_fetch_pvn_flags, when it parses a "::", sets the next subname to
point to the character after the second colon, and then continues
scanning from the next character *after* that. So foo::::bar becomes
$foo::{"::bar"} and main:::: becomes $main::{"::"}.

The code that assigns the name to the stash and the early exit are
both inside an if(we have a package separator) block, but the final ::
is not considered one, so a nameless hash is returned.

The easiest way to fix this is to revert just the changes to
lines that deal with the name (since the other deleted lines are
really dead).

13 years agoCorrect stupidities in 4c3ac4b
Father Chrysostomos [Thu, 7 Apr 2011 05:03:33 +0000 (22:03 -0700)]
Correct stupidities in 4c3ac4b

Allocating an extra SV for rare edge cases...er...only needs to be
done in those rare edge cases.

Uninitialized warnings are only supposed to be enabled when they are.

13 years ago[perl #87708] $tied + $tied
Father Chrysostomos [Thu, 7 Apr 2011 00:43:29 +0000 (17:43 -0700)]
[perl #87708] $tied + $tied

This is just part of #87708.

This fixes the + operator outside of any ‘use integer’ when the same
tied scalar is used for both operands and returns two different val-
ues. Before this commit, get-magic would be called only once and the
same value used. In 5.12.x it worked.

13 years agomake mg_clear() et al behave when RC==0
David Mitchell [Wed, 6 Apr 2011 22:35:14 +0000 (23:35 +0100)]
make mg_clear() et al behave when RC==0

The functions S_save_magic() and S_restore_magic(), which are called by
mg_get(), mg_set(), mg_length(), mg_size() and mg_clear(),
are not robust when called with an SV whose reference count is zero.
Basically, one of the actions of S_save_magic() is to temporarily
increase the refcount of the SV, and then for S_restore_magic() to reduce
it again at the end, so that if any of the magic functions called
inbetween decrease the count, it won't be prematurely freed.
However, if the count starts at zero, then bumping it up and bringing it
back down to zero, triggers a spurious second freeing.

So, if its zero, just skip the whole bumping thing.

Now, we shouldn't really be calling these functions will a zero-refcount
SV, but these things happen, and its best to be robust.

In particular, this fixes RT #87860, which was ultimately triggered by a
bug in Set::Object 1.28 that managed to create an HV with null SvMAGIC
field, but with the RMG flag set.

When freeing that HV, sv_clear() skips doing mg_free() because SvMAGIC is
null, whereas later it calls Perl_hv_undef_flags, which calls mg_clear()
because it uses the test SvRMAGICAL(hv) (which is true).

13 years ago[perl #87708] $tied / $tied under use integer
Father Chrysostomos [Wed, 6 Apr 2011 20:12:59 +0000 (13:12 -0700)]
[perl #87708] $tied / $tied under use integer

This is just part of #87708.

This fixes the / operator under ‘use integer’ when the same tied sca-
lar is used for both operands and returns two different values. Before
this commit, get-magic would be called only once and the same value
used. In 5.12.x the operands were swapped.

13 years ago[perl #87708] $tied % $tied and $tied * $tied under use integer
Father Chrysostomos [Wed, 6 Apr 2011 20:04:26 +0000 (13:04 -0700)]
[perl #87708] $tied % $tied and $tied * $tied under use integer

This is just part of #87708.

This fixes the % and * operators under ‘use integer’ when the same
tied scalar is used for both operands and returns two different val-
ues. Before this commit, get-magic would be called only once and
the same value used. In 5.12.x * just worked but the operands were
swapped for %.

It turns out that every operator using the dPOPTOPiirl_nomg macro
needs exactly the same treatment, so this commit eliminates the
dPOPTOPiirl_halfmg macro added a few commits ago and modifies
dPOPTOPiirl_nomg to do was it was doing. This should be perfectly
safe, as dPOPTOPiirl_nomg has not been in a stable release (and is
only for internal use anyway).

13 years ago[perl #87708] $tied + $tied and $tied - $tied under ‘use integer’
Father Chrysostomos [Wed, 6 Apr 2011 19:40:44 +0000 (12:40 -0700)]
[perl #87708] $tied + $tied and $tied - $tied under ‘use integer’

This is just part of #87708.

This fixes + and - under ‘use integer’ when the same tied scalar is
used for both operands and returns two different values. Before this
commit, get-magic would be called only once and the same value used.
In 5.12.x + just worked but the operands were swapped for -.

13 years ago[perl #87708] use integer; $tied < $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:28:01 +0000 (06:28 -0700)]
[perl #87708] use integer; $tied < $tied

This is just part of #87708.

This fixes < under ‘use integer’ when the same tied scalar is used for
both operands and returns two different values. Before this commit,
get-magic would be called only once and the same value used. In 5.12.x
the operands were swapped.

13 years ago[perl #87708] use integer; $tied > $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:24:00 +0000 (06:24 -0700)]
[perl #87708] use integer; $tied > $tied

This is just part of #87708.

This fixes > under ‘use integer’ when the same tied scalar is used for
both operands and returns two different values. Before this commit,
get-magic would be called only once and the same value used. In 5.12.x
the operands were swapped.

13 years ago[perl #87708] use integer; $tied <= $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:21:32 +0000 (06:21 -0700)]
[perl #87708] use integer; $tied <= $tied

This is just part of #87708.

This fixes <= under ‘use integer’ when the same tied scalar is used
for both operands and returns two different values. Before this com-
mit, get-magic would be called only once and the same value used. In
5.12.x the operands were swapped.

13 years ago[perl #87708] use integer; $tied >= $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:20:25 +0000 (06:20 -0700)]
[perl #87708] use integer; $tied >= $tied

This is just part of #87708.

This fixes >= under ‘use integer’ when the same tied scalar is used
for both operands and returns two different values. Before this com-
mit, get-magic would be called only once and the same value used. In
5.12.x the operands were swapped.

13 years ago[perl #87708] use integer; $tied == $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:18:18 +0000 (06:18 -0700)]
[perl #87708] use integer; $tied == $tied

This is just part of #87708.

This fixes == under ‘use integer’ when the same tied scalar is used
for both operands and returns two different values. Before this com-
mit, get-magic would be called only once and the same value used. In
5.12.x it just worked.

13 years ago[perl #87708] use integer; $tied != $tied
Father Chrysostomos [Wed, 6 Apr 2011 13:17:23 +0000 (06:17 -0700)]
[perl #87708] use integer; $tied != $tied

This is just part of #87708.

This fixes != under ‘use integer’ when the same tied scalar is used
for both operands and returns two different values. Before this com-
mit, get-magic would be called only once and the same value used. In
5.12.x it just worked.

13 years agoPATCH: [perl #87908] \W is its complement sometimes
Karl Williamson [Wed, 6 Apr 2011 13:49:51 +0000 (07:49 -0600)]
PATCH: [perl #87908] \W is its complement sometimes

A missing '!' turned \W into \w in some code execution paths and utf8 data.
This patch fixes that.

It does not include tests at the moment, since I don't have time
just now to examine why the existing tests didn't catch this, when
it looks like they are set up to, and there have been several BBC tickets
lately that I'm hopeful this may fix and head off other ones.

13 years ago[perl #87708] use integer; $tied <=> $tied
Father Chrysostomos [Wed, 6 Apr 2011 05:30:16 +0000 (22:30 -0700)]
[perl #87708] use integer; $tied <=> $tied

This is just part of #87708.

This fixes <=> under ‘use integer’ when the same tied scalar is used
for both operands and returns two different values. Before this com-
mit, get-magic would be called only once and the same value used. In
5.12.x, the operands would be reversed.

13 years agoc31c2913 swaps the order of uninitialised warnings, so update test expectations
Nicholas Clark [Wed, 6 Apr 2011 08:52:39 +0000 (09:52 +0100)]
c31c2913 swaps the order of uninitialised warnings, so update test expectations

13 years ago[perl #87708] atan2 $tied, $tied
Father Chrysostomos [Wed, 6 Apr 2011 04:39:01 +0000 (21:39 -0700)]
[perl #87708] atan2 $tied, $tied

This fixes atan2 when the same tied scalar is used for both operands
and returns two different values. Before this commit, get-magic would
be called only once and the same value used. In 5.12.x, the operands
would be reversed.

13 years agoPATCH: [perl #87726] unwanted warning from diagnostics.pm under -w
Karl Williamson [Tue, 5 Apr 2011 04:24:35 +0000 (22:24 -0600)]
PATCH: [perl #87726] unwanted warning from diagnostics.pm under -w

It turns out to be an extra semicolon

13 years agoEr, 87708, not 87726
Father Chrysostomos [Tue, 5 Apr 2011 22:30:45 +0000 (15:30 -0700)]
Er, 87708, not 87726

13 years agoTODO tests for [perl #87726]
Father Chrysostomos [Tue, 5 Apr 2011 22:25:08 +0000 (15:25 -0700)]
TODO tests for [perl #87726]

13 years agoIn Darwin's hints, only add -no-cpp-precomp to ccflags if it's not an error.
Nicholas Clark [Tue, 5 Apr 2011 10:32:08 +0000 (11:32 +0100)]
In Darwin's hints, only add -no-cpp-precomp to ccflags if it's not an error.

Previously -no-cpp-precomp was added uncondtionally to cppflags and ccflags.
Apple's compiler accepts this unconditionally. gcc 4.5 warns about it, but
ignores it. gcc 4.6 treats the unknown flag as an error. Hence test whether
the flag causes problems, and only add it if it does not.

(Searching with Google suggests that this flag has been unnecessary on OS X
for some time. However, there's no clear documentation about it to confirm
when it stopped being necessary.)

13 years agoBump ExtUtils::CBuilder version following a24b897525551a1d.
Nicholas Clark [Tue, 5 Apr 2011 08:52:04 +0000 (09:52 +0100)]
Bump ExtUtils::CBuilder version following a24b897525551a1d.

13 years agoperldelta entry for the [perl #87664] fix
Father Chrysostomos [Mon, 4 Apr 2011 12:47:46 +0000 (05:47 -0700)]
perldelta entry for the [perl #87664] fix

13 years agoperldelta: File::Basename’s version
Father Chrysostomos [Mon, 4 Apr 2011 12:41:45 +0000 (05:41 -0700)]
perldelta: File::Basename’s version

13 years agoRevert "Remove MacOS classic support from File::Basename."
Father Chrysostomos [Mon, 4 Apr 2011 12:40:33 +0000 (05:40 -0700)]
Revert "Remove MacOS classic support from File::Basename."

This reverts commit e713b73750eb9e684a6d14dcca1a22d55ce2226d.

See [perl #87704].

13 years agoMake ExtUtils::CBuilder reset ccflags on compile for VMS.
Craig A. Berry [Thu, 31 Mar 2011 22:09:31 +0000 (17:09 -0500)]
Make ExtUtils::CBuilder reset ccflags on compile for VMS.

On VMS only, the /DEFINE and /INCLUDE qualifiers are parsed off the
local copy of $Config{ccflags} and consumed in the process.  This is
necessary because you're only allowed one of each of these clauses
in the compile command, so to add whatever has been requested for a
specific compile, we have to combine them with whatever Perl was
built with.

But since they are consumed, multiple compiles on the same EU::CB
object were only using the correct flags for the first one.  Even
calling the have_compiler() check before compile() would make the
latter miss the defines and includes that were used to build Perl.

The solution is add a platform override that resets the local copy
of $Config{ccflags} from its original in %Config every time a
compiler operation is initiated.

Fixes smoke failures in ExtUtils::ParseXS.

13 years ago[perl #87664] Don’t autovivify stashes when anonymising CVs
Father Chrysostomos [Mon, 4 Apr 2011 05:32:16 +0000 (22:32 -0700)]
[perl #87664] Don’t autovivify stashes when anonymising CVs

This commit stops CV anonymisation from autovivifying stashes to point
to (unless the stash is %__ANON__::).

If a stash has been deleted from its original position in the symbol
table, then its HvNAME will no longer indicate where to find it.

S_anonymise_cv_maybe in sv.c was using the HvNAME to look up (and
autovivify) the *__ANON__ glob in the stash, without taking into
account that it might not actually be looking in the right spot.

So now, after checking that the stash still has a name (HvNAME), it
uses the HvENAME to find it. If the HvENAME is null, which indicates
that the stash has been detached altogether, then %__ANON__:: is used,
as happens when HvNAME is null.

This solves a Class::Monadic failure introduced by commit 2d0d1eccfc
([perl #79208] %stash:: = () anonymises CVs), which was included
in 5.13.7.

Basically, it can be reduced to this:

13 years ago[perl #87064] eval no longer shares filters
Father Chrysostomos [Tue, 29 Mar 2011 15:33:30 +0000 (08:33 -0700)]
[perl #87064] eval no longer shares filters

Before this commit:

commit f07ec6dd59215a56bc1159449a9631be7a02a94d
Author: Zefram <zefram@fysh.org>
Date:   Wed Oct 13 19:05:19 2010 +0100

    remove filter inheritance option from lex_start

    The only uses of lex_start that had the new_filter parameter false,
    to make the new lexer context share source filters with the previous
    lexer context, were uses with rsfp null, which therefore never invoked
    source filters.  Inheriting source filters from a logically unrelated
    file seems like a silly idea anyway.

string evals could inherit the same source filter space as the cur-
rently compiling code. Despite what the quoted commit message says,
sharing source filters allows filters to be inherited in both direc-
tions: A source filter created when the eval is being compiled also
applies to the file with which it is sharing its space.

There are at least 20 CPAN distributions relying on this behaviour
(or, rather, what could be considered a Test::More bug). So this com-
mit restores the source-filter-sharing capability. It does not change
the current API or make public the API for sharing source filters, as
this is supposed to be a temporary stop-gap measure for 5.14.

13 years agoMake Changes refer to the upcoming release for the full changelog
Florian Ragwitz [Sat, 2 Apr 2011 13:32:30 +0000 (15:32 +0200)]
Make Changes refer to the upcoming release for the full changelog

13 years agoAdd a note to the RMG about the fact that you should run tests after
Jesse Vincent [Sat, 2 Apr 2011 11:54:59 +0000 (19:54 +0800)]
Add a note to the RMG about the fact that you should run tests after
bumping the perl version

13 years agoManually change the sha that uconfig.h was generated from. Something in
Jesse Vincent [Sat, 2 Apr 2011 11:53:25 +0000 (19:53 +0800)]
Manually change the sha that uconfig.h was generated from. Something in
the auto-regen magic isn't doing the right thing for uperl. We should
either be skipping the regen check on it or we should be automating it.

t/porting/regen.t failed without this change.

We should also consider making bump-perl-version NOT operate on any
generated files and mandate a rerun after bumping versions

13 years agoAdded a 5.14 feature bundle (identical to the 5.13 feature bundle)
Jesse Vincent [Sat, 2 Apr 2011 11:09:46 +0000 (19:09 +0800)]
Added a 5.14 feature bundle (identical to the 5.13 feature bundle)

13 years agoFirst provisional bump to 5.14.0-RC0
Jesse Vincent [Sat, 2 Apr 2011 10:58:17 +0000 (18:58 +0800)]
First provisional bump to 5.14.0-RC0

13 years agoWe shouldn't be changing perl version numbers in blead-isn't-upstream
Jesse Vincent [Sat, 2 Apr 2011 10:44:56 +0000 (18:44 +0800)]
We shouldn't be changing perl version numbers in blead-isn't-upstream
CPAN modules

13 years agoRemove a semi-erroneous misleading perldelta entry
Father Chrysostomos [Sat, 2 Apr 2011 05:34:39 +0000 (22:34 -0700)]
Remove a semi-erroneous misleading perldelta entry

I misread a commit message. I should have tried it out. :-)

13 years agoperlrequick: /o no longer needed
Karl Williamson [Sat, 2 Apr 2011 04:15:04 +0000 (22:15 -0600)]
perlrequick: /o no longer needed

This is wrong, and doesn't belong in an introductory document

13 years agoperlrequick: Capitalize Perl when used as a noun
Karl Williamson [Sat, 2 Apr 2011 04:05:28 +0000 (22:05 -0600)]
perlrequick: Capitalize Perl when used as a noun

This is for consistency with other pods

13 years agoperlreref: Fix column in table
Karl Williamson [Sat, 2 Apr 2011 04:01:52 +0000 (22:01 -0600)]
perlreref: Fix column in table

13 years agoperlreref: Update for 5.14 changes
Karl Williamson [Sat, 2 Apr 2011 04:01:25 +0000 (22:01 -0600)]
perlreref: Update for 5.14 changes

13 years agoUpdate HTTP::Tiny’s version in perldelta
Father Chrysostomos [Fri, 1 Apr 2011 13:17:52 +0000 (06:17 -0700)]
Update HTTP::Tiny’s version in perldelta

13 years agoUpdate HTTP::Tiny to CPAN version 0.012
David Golden [Thu, 31 Mar 2011 19:59:44 +0000 (15:59 -0400)]
Update HTTP::Tiny to CPAN version 0.012

HTTP::Tiny 0.011 fails to mirror files correctly on MSWin32, preventing
CPAN bootstrapping over HTTP with just core Perl.  This is fixed in CPAN
version 0.012.

[DELTA]

0.012     2011-03-31 15:48:02 America/New_York

  [BUG FIXES]

  - mirror() now uses binmode during output (RT #67118) [Serguei Trouchelle]

  [DOCUMENTATION]

  - noted that SSL certificates are not verified against CA's
    (RT #66907)

13 years agoperldelta: uc/lc(first) fix [perl #87336]
Father Chrysostomos [Fri, 1 Apr 2011 03:41:43 +0000 (20:41 -0700)]
perldelta: uc/lc(first) fix [perl #87336]

13 years agoperlretut: /o no longer very useful
Karl Williamson [Thu, 31 Mar 2011 17:58:56 +0000 (11:58 -0600)]
perlretut: /o no longer very useful

perlretut still says /o is needed to prevent regex re-compilation in
loops.

13 years agoperlretut: Remove references to Unicode blocks
Karl Williamson [Thu, 31 Mar 2011 17:21:28 +0000 (11:21 -0600)]
perlretut: Remove references to Unicode blocks

blocks are mostly useless, and not suitable for an introduction
to regular expressions.  It was not always the case, as in very early
Unicode these were the best approximation to the much more useful
Script concept.  But that changed 10 or so years ago.

13 years agoperlretut: nits
Karl Williamson [Thu, 31 Mar 2011 16:44:29 +0000 (10:44 -0600)]
perlretut: nits

13 years agoperlretut: Emphasize difference of /r
Karl Williamson [Thu, 31 Mar 2011 16:41:51 +0000 (10:41 -0600)]
perlretut: Emphasize difference of /r

13 years agoperlretut: Use generic Unicode web page link
Karl Williamson [Thu, 31 Mar 2011 16:28:02 +0000 (10:28 -0600)]
perlretut: Use generic Unicode web page link

Use the link to Unicode that gives the latest version, whatever it might be

13 years agoperlretut: Mention 'alert' for \a
Karl Williamson [Thu, 31 Mar 2011 15:30:04 +0000 (09:30 -0600)]
perlretut: Mention 'alert' for \a

13 years agoperlretut: Add info about \N
Karl Williamson [Thu, 31 Mar 2011 15:05:30 +0000 (09:05 -0600)]
perlretut: Add info about \N

13 years agoencoding(utf8) isn't case or dash sensitive
Karl Williamson [Thu, 31 Mar 2011 00:55:58 +0000 (18:55 -0600)]
encoding(utf8) isn't case or dash sensitive

13 years agoperluniintro: bytes.pm is not deprecated
Karl Williamson [Thu, 31 Mar 2011 00:44:42 +0000 (18:44 -0600)]
perluniintro: bytes.pm is not deprecated

13 years ago[perl #87336] lc/uc(first) fail to taint the returned string
Father Chrysostomos [Thu, 31 Mar 2011 13:28:49 +0000 (06:28 -0700)]
[perl #87336] lc/uc(first) fail to taint the returned string

This bug was caused by change 28011 (ec9af7d), which stopped pp_lc
from using sv_setsv_flags, thereby bypassing these two lines at the
end of that function:
    if (SvTAINTED(sstr))
SvTAINT(dstr);

Change 28012 (6730619) did exactly the same thing to pp_uc.

28013 (d54190f) broke ucfirst and lcfirst.

This commit simply puts that taint logic at the end of the pp_*
functions.

13 years agoEncode::Guess is iffy
Karl Williamson [Thu, 31 Mar 2011 01:03:13 +0000 (19:03 -0600)]
Encode::Guess is iffy

13 years agoperlrecharclass: /dual are suffix in 5.14
Karl Williamson [Thu, 31 Mar 2011 02:02:28 +0000 (20:02 -0600)]
perlrecharclass: /dual are suffix in 5.14

So there is no need to avoid using the / form for them.

13 years agoperlrecharclass: Mention UCD::num()
Karl Williamson [Thu, 31 Mar 2011 01:26:38 +0000 (19:26 -0600)]
perlrecharclass: Mention UCD::num()

13 years ago/dual are available in 5.14 as suffix after all
Karl Williamson [Wed, 30 Mar 2011 22:35:14 +0000 (16:35 -0600)]
/dual are available in 5.14 as suffix after all

13 years agoRemoved my name from README.aix
H.Merijn Brand [Wed, 30 Mar 2011 05:48:05 +0000 (07:48 +0200)]
Removed my name from README.aix

As Jan said, we all contribute, and I do not like to receive mail
with questions regarding an OS that I hate  but still have to use
for company purposes.

13 years agoperluniintro: Update for 5.14
Karl Williamson [Wed, 30 Mar 2011 04:00:18 +0000 (22:00 -0600)]
perluniintro: Update for 5.14

This includes some edits that I believe clarify the original language.

13 years agoperlfunc: Note utf8 discrepancy in quotemeta
Karl Williamson [Wed, 30 Mar 2011 03:59:05 +0000 (21:59 -0600)]
perlfunc: Note utf8 discrepancy in quotemeta

13 years agoperldelta: Explain link to Selected Bug FIxes
Father Chrysostomos [Tue, 29 Mar 2011 04:45:23 +0000 (21:45 -0700)]
perldelta: Explain link to Selected Bug FIxes

13 years agoperldelta: Update Pod::Html’s version
Father Chrysostomos [Tue, 29 Mar 2011 04:26:17 +0000 (21:26 -0700)]
perldelta: Update Pod::Html’s version

13 years agoAdd Gene Sullivan to AUTHORS
Father Chrysostomos [Tue, 29 Mar 2011 03:44:59 +0000 (20:44 -0700)]
Add Gene Sullivan to AUTHORS

13 years agoperldelta: Update the bignum version
Father Chrysostomos [Tue, 29 Mar 2011 03:43:55 +0000 (20:43 -0700)]
perldelta: Update the bignum version

13 years agoVersions bumps after the prev commit
Father Chrysostomos [Tue, 29 Mar 2011 03:43:01 +0000 (20:43 -0700)]
Versions bumps after the prev commit

13 years ago[perl #87216] POD typo in bigint, bignum and bigrat pragmas
gene sullivan [Tue, 29 Mar 2011 03:42:16 +0000 (20:42 -0700)]
[perl #87216] POD typo in bigint, bignum and bigrat pragmas

The POD has a typo in the following three pragmas:
    bigint
    bignum
    bigrat

The typo is similar for each pragma: CAVAETS should be changed to CAVEATS.

13 years ago[perl #87128] Unclear note about \Q, etc., in perlretut
Father Chrysostomos [Tue, 29 Mar 2011 01:04:10 +0000 (18:04 -0700)]
[perl #87128] Unclear note about \Q, etc., in perlretut

13 years ago[perl #86566] Allow Pod::Html to write to STDOUT again
David Leadbeater [Tue, 29 Mar 2011 00:59:59 +0000 (17:59 -0700)]
[perl #86566] Allow Pod::Html to write to STDOUT again

7319fd7 introduced lexical file handles but also switched to 3 arg
open; Pod::Html was relying on 2 arg open's behaviour to make '-' mean
STDOUT.

There was also a single quoted argument that obviously needed to be
interpolated.

13 years agoMake the request to fix rather than report bugs in microperl politer.
Nicholas Clark [Sat, 26 Mar 2011 21:44:42 +0000 (21:44 +0000)]
Make the request to fix rather than report bugs in microperl politer.

Expand it slightly to clarify why bare bug reports aren't likely to get acted
upon.

13 years agomicroperl: Define need_va_copy
David Leadbeater [Mon, 7 Mar 2011 21:06:21 +0000 (21:06 +0000)]
microperl: Define need_va_copy

This is needed on some platforms and shouldn't hurt on others, so
define it.

13 years agoFor microperl, add uconfig64.sh, with values suitable for an LP64 platform.
Nicholas Clark [Sat, 26 Mar 2011 21:22:55 +0000 (21:22 +0000)]
For microperl, add uconfig64.sh, with values suitable for an LP64 platform.

Add instructions on how to use it to README.micro.

There's rather too much size-specific in perl's configuration to make it viable
to have a single uconfig.sh that will work "properly" on both LP32 and LP64
platforms. It seems best to ship the default as LP32 (which is correct for
Win32 (although I don't know if microperl yet builds on Win32)), and provide
just a config.sh file for LP64, as most (all?) 64 bit *nix platforms are LP64,
and can run the shell commands to generate a uconfig.h from it.

(Win64 is LLP64, so uconfig64.sh isn't going to be right for it, so the
inability of Win64 to generate uconfig.h from uconfig64.sh isn't a problem)

13 years agomicroperl should use *signed* char for i8, as (plain) char might be unsigned.
Nicholas Clark [Sat, 26 Mar 2011 20:59:15 +0000 (20:59 +0000)]
microperl should use *signed* char for i8, as (plain) char might be unsigned.

13 years agoFix *printf %ld handling for microperl (and other obscure platforms)
Nicholas Clark [Wed, 23 Mar 2011 12:18:20 +0000 (12:18 +0000)]
Fix *printf %ld handling for microperl (and other obscure platforms)

07208e09d4435b4e accidentally moved the implicit q = q + 1 into conditionally
compiled code, which is compiled most everywhere else, except miniperl. Without
the increment of q, formats such as 'ld' were not being recognised as formats.
This was noticed because the tokeniser implements __LINE__ by converting to a
string using %ld.

13 years agoAdd very simple microtest for microperl
Nicholas Clark [Tue, 22 Mar 2011 16:55:18 +0000 (16:55 +0000)]
Add very simple microtest for microperl

For now, all the tests we run don't use Config, so don't try to build it first.
[Hence this is about half of the original commit by David Leadbeater, which
did build Config, from config.sh]

There's an unresolved problem with building Config - building Config.pm etc
from config.sh won't reflect the capabilities of the microperl being tested,
so that argues for the right solution to be adapting configpm to be able to use
uconfig.sh instead. But doing that means that when building and (re)testing
"regular" perl, we could end up with a build tree with lib/Config.pm "up to
date", as far as make is concerned, but totally the wrong contents in reality.
Tests will fail, heads will be scratched, time will be wasted, etc.

13 years agomicroperl: Fix patch_uconfig target
David Leadbeater [Mon, 7 Mar 2011 19:29:57 +0000 (19:29 +0000)]
microperl: Fix patch_uconfig target

Previously it tried to patch 'uconfig.shx', now it patches
'uconfig.sh' as documented.

13 years agoDefault microperl to no optimisation.
Nicholas Clark [Tue, 22 Mar 2011 16:30:02 +0000 (16:30 +0000)]
Default microperl to no optimisation.

Previously it was -O2, which is potentially a gcc-ism. -Os also has the
potential to be "portability challenged". Whilst -O should work everywhere,
as microperl is intended as a least-assumptions bootstrapping approach, it
seems best to make no assumptions about the compiler's optimiser.

13 years agomicroperl: Define NO_MATHOMS to save ~10k
Nicholas Clark [Tue, 22 Mar 2011 13:57:36 +0000 (13:57 +0000)]
microperl: Define NO_MATHOMS to save ~10k

(Half of a single commit by David Leadbeater)

13 years agoDefine memset() for microperl
David Leadbeater [Mon, 7 Mar 2011 19:26:20 +0000 (19:26 +0000)]
Define memset() for microperl

13 years agoCheck if microperl's version in uconfig.sh/h needs bumping
David Leadbeater [Mon, 7 Mar 2011 19:08:55 +0000 (19:08 +0000)]
Check if microperl's version in uconfig.sh/h needs bumping

13 years agomicroperl: Up versions in uconfig.sh to 5.13
David Leadbeater [Mon, 7 Mar 2011 19:34:37 +0000 (19:34 +0000)]
microperl: Up versions in uconfig.sh to 5.13

13 years agoProtect sv_collxfrm in mathoms.c with a USE_LOCALE_COLLATE ifdef
David Leadbeater [Mon, 7 Mar 2011 18:56:50 +0000 (18:56 +0000)]
Protect sv_collxfrm in mathoms.c with a USE_LOCALE_COLLATE ifdef

It calls sv_collxfrm_flags which is only defined if USE_LOCALE_COLLATE
is set.

13 years agomicroperl: On (at least) OS X and Linux stddef.h is needed for ptrdiff_t
David Leadbeater [Mon, 7 Mar 2011 18:54:21 +0000 (18:54 +0000)]
microperl: On (at least) OS X and Linux stddef.h is needed for ptrdiff_t

This shouldn't hurt on other system either.

13 years agoMicroperl doesn't do signal handlers, ifdef some handling code
David Leadbeater [Mon, 7 Mar 2011 18:45:09 +0000 (18:45 +0000)]
Microperl doesn't do signal handlers, ifdef some handling code

13 years agomicroperl: Update generate_uudmap in Makefile.micro
David Leadbeater [Mon, 7 Mar 2011 18:40:55 +0000 (18:40 +0000)]
microperl: Update generate_uudmap in Makefile.micro

Makefile.micro hadn't kept up with the changes for generate_uudmap,
make it match the real Makefile.

13 years agoDon't automatically regenerate uconfig.h as part of the microperl build.
Nicholas Clark [Tue, 22 Mar 2011 15:55:47 +0000 (15:55 +0000)]
Don't automatically regenerate uconfig.h as part of the microperl build.

This avoids limiting microperl to platforms with a Bourne shell. It also
avoids automated build tools modifying distribution files as part of the
default build targets.

Now that we have a regression test to ensure that uconfig.h is up to date,
the version as shipped will be consistent with uconfig.sh. README.micro
already instructs people to run `make -f Makefile.micro regen_uconfig` if
they edit uconfig.sh, so no change needed there.

13 years agoAdd regen/uconfig_h.pl to regenerate uconfig.h
Nicholas Clark [Tue, 22 Mar 2011 15:53:20 +0000 (15:53 +0000)]
Add regen/uconfig_h.pl to regenerate uconfig.h

Most of the work is done by config_h.SH, but the wrapper is needed to add the
digest lines, so that t/porting/regen.t can verify that it's up to date.
I think that we need to take the "digest" approach, rather than "build to a
temporary file during testing", as we can't rely on a working Unix shell on
all platforms, and we couldn't even be sure that we get the skip list correct.

13 years agoExtract read_only_bottom() from read_only_bottom_close_and_rename()'s code.
Nicholas Clark [Tue, 22 Mar 2011 15:27:56 +0000 (15:27 +0000)]
Extract read_only_bottom() from read_only_bottom_close_and_rename()'s code.

13 years agoRegenerate uconfig.h
Nicholas Clark [Tue, 22 Mar 2011 14:12:45 +0000 (14:12 +0000)]
Regenerate uconfig.h

It is almost 26 months out of date.

13 years agoDocs: perlsyn.pod Use dominant American spelling consistently.
Michael Witten [Mon, 28 Mar 2011 00:24:52 +0000 (17:24 -0700)]
Docs: perlsyn.pod Use dominant American spelling consistently.

The `z' in words like `optimize' appears to be already dominant
in this document; the few uses of the British `s' have been
replaced.

13 years agoDocs: Use the symbol `C<< < >>' rather than `less-than'.
Michael Witten [Mon, 28 Mar 2011 00:22:13 +0000 (17:22 -0700)]
Docs: Use the symbol `C<< < >>' rather than `less-than'.

Thanks to Tom Christiansen for pointing out that the original
replacement:

  C< < >

does not ignore the whitespace.

See:

  Message-ID: <28746.1301262347@chthon>

Signed-off-by: Michael Witten <mfwitten@gmail.com>
13 years agoperldelta: wording
Father Chrysostomos [Sun, 27 Mar 2011 23:43:19 +0000 (16:43 -0700)]
perldelta: wording

13 years agoperldelta: Incorporate the local $_ entry from 658a9f3
Father Chrysostomos [Sun, 27 Mar 2011 23:40:26 +0000 (16:40 -0700)]
perldelta: Incorporate the local $_ entry from 658a9f3