This is a live mirror of the Perl 5 development currently hosted at
10 years agoPorting/epigraphs.pod: add v5.13.9 epigraph
Ævar Arnfjörð Bjarmason [Sun, 20 Feb 2011 02:09:04 +0000 (02:09 +0000)]
Porting/epigraphs.pod: add v5.13.9 epigraph

Add the v5.13.9 epigraph by Jesse Vincent and POD-ify it to link to
the raw speech on Wikisource. Taken from:

    Date: Thu, 20 Jan 2011 20:44:42 -0500
    From: Jesse Vincent <>
    Subject: Perl 5.13.9 is now available
    Message-ID: <20110121014442.GA27503@puppy>

10 years agoFix reference to the deprecations Task:: for 5.14
Florian Ragwitz [Sun, 20 Feb 2011 07:35:46 +0000 (08:35 +0100)]
Fix reference to the deprecations Task:: for 5.14

I'll be uploading that dist to CPAN shortly.

10 years agoAllow suffix form for /a /d /l /u
Karl Williamson [Sat, 19 Feb 2011 22:56:29 +0000 (15:56 -0700)]
Allow suffix form for /a /d /l /u

This patch contains the code changes for doing this, but not most of the
pod changes, nor the new .t tests required.  There were already tests in
place to make sure that this didn't break backcompat.

10 years agoregexp.h: The length of 'aa' is 2
Karl Williamson [Sun, 20 Feb 2011 03:52:48 +0000 (20:52 -0700)]
regexp.h: The length of 'aa' is 2

10 years agotoke.c: Don't take the address of a register
Karl Williamson [Sat, 19 Feb 2011 19:13:09 +0000 (12:13 -0700)]
toke.c: Don't take the address of a register

I discovered after I pushed 858a358bdd94da8251cdb2210d9bec7c1bbe7464
that I had forgotten to 'git add' changes before committing.

10 years agoperlfunc/-X: rearrange slightly and note llafr exemption
Father Chrysostomos [Sun, 20 Feb 2011 04:25:44 +0000 (20:25 -0800)]
perlfunc/-X: rearrange slightly and note llafr exemption

The paragraphs explaining -x -r -w and -T -B have grown over time,
obscuring the bit about the syntax, so I’ve moved it up.

I have also expanded it to note its exemption from the ‘looks like a
function’ rule (which is currently mentioned only in perlop, if I
remember correctly).

10 years agoperlfunc tweaks
Father Chrysostomos [Sun, 20 Feb 2011 03:19:18 +0000 (19:19 -0800)]
perlfunc tweaks

Notable changes, apart from grammar and punctuation:
• ‘In general’ in conjunction with ‘all’ is slightly contradictory
• wait, waitpid, and syscall are not the only functions that do not
  return undef on failure

10 years agotoke.c: Move suffix re mods message to one place
Karl Williamson [Sat, 19 Feb 2011 19:13:09 +0000 (12:13 -0700)]
toke.c: Move suffix re mods message to one place

This involves a slight refactoring of the routine that handles
parsing for the mods

10 years agoperlop.pod: Update to account for /r
Karl Williamson [Sun, 20 Feb 2011 03:17:16 +0000 (20:17 -0700)]
perlop.pod: Update to account for /r

10 years agoUpdated Module::Build to CPAN Version 0.37_05
David Golden [Sun, 20 Feb 2011 01:53:32 +0000 (20:53 -0500)]
Updated Module::Build to CPAN Version 0.37_05


0.37_05 - Sat Feb 19 20:43:23 EST 2011


  - fixes failing ppm.t in perl core


  - Pod typo fixes [Hongwen Qiu]

10 years agoperlform tweaks
Father Chrysostomos [Sun, 20 Feb 2011 03:04:24 +0000 (19:04 -0800)]
perlform tweaks

10 years agoperlfork tweaks
Father Chrysostomos [Sun, 20 Feb 2011 02:43:06 +0000 (18:43 -0800)]
perlfork tweaks

10 years agoperlfilter tweaks
Father Chrysostomos [Sun, 20 Feb 2011 02:01:42 +0000 (18:01 -0800)]
perlfilter tweaks

10 years agoMinor perlfaq9 tweaks
Father Chrysostomos [Sun, 20 Feb 2011 01:40:37 +0000 (17:40 -0800)]
Minor perlfaq9 tweaks

10 years agoMinor perlfaq8 tweaks
Father Chrysostomos [Sun, 20 Feb 2011 01:30:45 +0000 (17:30 -0800)]
Minor perlfaq8 tweaks

10 years agoperlfaq7: simple hash keys are always quoted
Father Chrysostomos [Sat, 19 Feb 2011 19:50:34 +0000 (11:50 -0800)]
perlfaq7: simple hash keys are always quoted

10 years agoMinor perlfaq7 tweaks
Father Chrysostomos [Sat, 19 Feb 2011 19:49:31 +0000 (11:49 -0800)]
Minor perlfaq7 tweaks

10 years agoutf8.c: Fix setting wrong variable
Karl Williamson [Sat, 19 Feb 2011 23:31:05 +0000 (16:31 -0700)]
utf8.c: Fix setting wrong variable

This doesn't appear to actually break anything.

10 years agoregexec.c: Fix utf8 e.g. [\s] under locale
Karl Williamson [Sat, 19 Feb 2011 21:27:18 +0000 (14:27 -0700)]
regexec.c: Fix utf8 e.g. [\s] under locale

locale rules are handled improperly for utf8-encoded strings in
bracketed character classes under locale.  This fixes that.

10 years agoperldiag.pod: Minor correction
Karl Williamson [Sat, 19 Feb 2011 22:59:52 +0000 (15:59 -0700)]
perldiag.pod: Minor correction

10 years agoSkip ppm.t in Module::Build if running under PERL_CORE.
Chris 'BinGOs' Williams [Sat, 19 Feb 2011 19:19:44 +0000 (19:19 +0000)]
Skip ppm.t in Module::Build if running under PERL_CORE.

  From #p5p

  [17:54] <@Steffen> avar, is blead passing the M::B ppm.t test again?
  [17:54] <@Steffen> Asking because of the release.
  [17:55] * avar checks
  [18:19] <@avar> xdg: zomg plz fix it wtf bbq
  [18:19] <@avar> :)
  [19:07] <@xdg> avar, nopaste the failure and I'll look at it tonight.  Worst case, just rm ppm.t --
                 it's not critical and it's a finicky test.  (Passes for me.)
  [19:07] * xdg nap &
  [19:09] <@avar> willdo later when I get home, unless someone beats me to it *hint*

10 years agoRevert "regcomp: Add warning if tries to use \p in locale."
Karl Williamson [Sat, 19 Feb 2011 18:48:58 +0000 (11:48 -0700)]
Revert "regcomp: Add warning if tries to use \p in locale."

This reverts commit fb2e24cdda774d9e9c28f1cd0356bba9070894c7.

This turned out to be contentious, and is past the date for
contentious changes.

10 years agoFix locale caseless matching and utf8
Karl Williamson [Sat, 19 Feb 2011 17:20:50 +0000 (10:20 -0700)]
Fix locale caseless matching and utf8

As explained in the doc changes of this patch, under /l, caseless
matching of code points less than 256 now use locale rules regardless
of the utf8ness of the pattern or string.  They now match the behavior
of things like \w, in this regard.

10 years agore/fold_grind.t: Fix improper skipping test
Karl Williamson [Sat, 19 Feb 2011 17:18:35 +0000 (10:18 -0700)]
re/fold_grind.t: Fix improper skipping test

10 years agore/fold_grind.t: Improve debug diagnostic
Karl Williamson [Sat, 19 Feb 2011 17:15:34 +0000 (10:15 -0700)]
re/fold_grind.t: Improve debug diagnostic

10 years agoperlunicode.pod: Remove false statement
Karl Williamson [Sat, 19 Feb 2011 17:13:41 +0000 (10:13 -0700)]
perlunicode.pod: Remove false statement

In fact the code is such that changing an A to a cntrol does work

10 years agoregcomp.c: no sharp ss tricky fold under locale
Karl Williamson [Sat, 19 Feb 2011 17:11:58 +0000 (10:11 -0700)]
regcomp.c: no sharp ss tricky fold under locale

10 years agoregcomp.c: Fix some comments
Karl Williamson [Sat, 19 Feb 2011 16:07:51 +0000 (09:07 -0700)]
regcomp.c: Fix some comments

10 years agofoldEQ_utf8(): Add locale handling
Karl Williamson [Fri, 18 Feb 2011 15:39:36 +0000 (08:39 -0700)]
foldEQ_utf8(): Add locale handling

A new flag is now passable to this function to indicate to use locale
rules for code points below 256.  Unicode rules are still used for above
255.  Folds which cross that boundary are disallowed.

10 years agoregexec.c: Change flag bit from digit to mnemonic
Karl Williamson [Fri, 18 Feb 2011 14:58:48 +0000 (07:58 -0700)]
regexec.c: Change flag bit from digit to mnemonic

10 years agoIn Errno, use typeglob aliasing instead of subref to typeglob assignment.
Nicholas Clark [Sat, 19 Feb 2011 17:38:12 +0000 (17:38 +0000)]
In Errno, use typeglob aliasing instead of subref to typeglob assignment.

Typeglob aliasing saves just over .5K, because fewer internal structures are
created. In the general case the behaviour of the two differs, but as the
only package variables of these names are subroutines, and we are within our
own namespace, there is no difference here.

10 years agoIn Config, use typeglob aliasing instead of subref to typeglob assignment.
Nicholas Clark [Sat, 19 Feb 2011 17:33:43 +0000 (17:33 +0000)]
In Config, use typeglob aliasing instead of subref to typeglob assignment.

Typeglob aliasing saves just over .5K, because fewer internal structures are
created. In the general case the behaviour of the two differs, but as the
only package variables of these names are subroutines, and we are within our
own namespace, there is no difference here.

10 years agoTidy the generated code for
Nicholas Clark [Sat, 19 Feb 2011 16:54:47 +0000 (16:54 +0000)]
Tidy the generated code for

Can now use warnings and use vars, as both pragmata were fixed (some years ago)
not to pull in Carp unconditionally. use vars '%Config' (in two places) is
(about) 98 bytes smaller than our %Config on this platform.

10 years agoMinor perlfaq6 tweaks
Father Chrysostomos [Sat, 19 Feb 2011 15:05:36 +0000 (07:05 -0800)]
Minor perlfaq6 tweaks

10 years agoRe-order ‘How can I read in an entire file all at once?’
Father Chrysostomos [Sat, 19 Feb 2011 14:46:36 +0000 (06:46 -0800)]
Re-order ‘How can I read in an entire file all at once?’

This entry has been edited about five times in the past without regard
to the way the text flows. Each new bit has been slapped on to the
top, so parts of it are now repetitive.

10 years agoMinor perlfaq5 tweaks
Father Chrysostomos [Sat, 19 Feb 2011 14:15:04 +0000 (06:15 -0800)]
Minor perlfaq5 tweaks

10 years agoAdd Config::header_files() to list the header dependencies for XS code.
Nicholas Clark [Sat, 19 Feb 2011 14:58:36 +0000 (14:58 +0000)]
Add Config::header_files() to list the header dependencies for XS code.

Currently ExtUtils::MM_{Unix,VMS} contain hard-coded lists, which omit some
headers, and include other headers that we would like to like to eliminate.
Having the Perl installation providing the canonical list for itself allows
us to avoid the these problems.

10 years agoAdd to realclean target on VMS.
Craig A. Berry [Sat, 19 Feb 2011 03:23:52 +0000 (21:23 -0600)]
Add to realclean target on VMS.

10 years agoDispatch dl_expandspec at build time, not run time.
Craig A. Berry [Sat, 19 Feb 2011 00:52:53 +0000 (18:52 -0600)]
Dispatch dl_expandspec at build time, not run time.

Before 0a0b6c96e6042658aa123b3990724be593a2bb63, dl_expandspec was
an autoloaded function that would never be called if an XS version
was already loaded.  Without autoloading in DynaLoader anymore,
the pure Perl version gets loaded first, which causes trouble if
the XS version is what's expected.  It looks as though VMS is the
only platform that has an XS version, so just avoid declaring the
Perl version there.

10 years agoexport PL_core_reg_engine so it's visible to the re module
Tony Cook [Sat, 19 Feb 2011 01:34:42 +0000 (12:34 +1100)]
export PL_core_reg_engine so it's visible to the re module

Win32 builds have been broken since de1ac46b without this.

10 years agoMinor perlfaq4 tweaks
Father Chrysostomos [Fri, 18 Feb 2011 22:27:54 +0000 (14:27 -0800)]
Minor perlfaq4 tweaks

10 years agoDual-life Devel::DProf
Florian Ragwitz [Fri, 18 Feb 2011 23:03:56 +0000 (00:03 +0100)]
Dual-life Devel::DProf

It's not actually on CPAN yet, but it will be in the next couple of days.

10 years agoAdd a deprecation notice to the Devel::DProf docs
Florian Ragwitz [Fri, 18 Feb 2011 21:22:12 +0000 (22:22 +0100)]
Add a deprecation notice to the Devel::DProf docs

10 years agoSlightly improve some perldelta wording
Florian Ragwitz [Fri, 18 Feb 2011 21:17:28 +0000 (22:17 +0100)]
Slightly improve some perldelta wording

10 years agoAllow Devel::DProf's tests to run without
Florian Ragwitz [Tue, 25 Jan 2011 16:16:06 +0000 (17:16 +0100)]
Allow Devel::DProf's tests to run without

This allows us to run the tests outside of the core.

10 years agoDon't call the new __loaded_from_core on old perls
Florian Ragwitz [Fri, 18 Feb 2011 19:06:55 +0000 (20:06 +0100)]
Don't call the new __loaded_from_core on old perls

On perls that don't have deprecate::__loaded_from_core yet, dprofpp isn't
deprecated yet, so all is good.

10 years agoRemove Devel::DProf from the core distribution. Get it from CPAN now.
Nicholas Clark [Fri, 18 Feb 2011 18:19:45 +0000 (18:19 +0000)]
Remove Devel::DProf from the core distribution. Get it from CPAN now.

Recommend Devel::NYTProf over Devel::DProf.

[Devel::DProf isn't actually on CPAN quite yet, but will be well before 5.14.0

10 years agoBreak out from deprecate::import the "check if it's core" code.
Nicholas Clark [Fri, 18 Feb 2011 17:40:27 +0000 (17:40 +0000)]
Break out from deprecate::import the "check if it's core" code.

This will allow dprofpp to check whether Devel::DProf is from the core
distribution, or from a CPAN install.

10 years agoIn, only cluck() once if the leaf isn't found in the caller stack.
Nicholas Clark [Fri, 18 Feb 2011 16:15:24 +0000 (16:15 +0000)]
In, only cluck() once if the leaf isn't found in the caller stack.

Previously, if the expected leafname was not found in the caller stack, the
code was cluck, and then continue the loop with the next directories to scan.
However, this serves no useful purpose, as the loop changes nothing that causes
the failure condition, hence all that this would result in is a second cluck()
if the next scanned directories also happened to match. Now the core returns

10 years agoIn, remove unused variable $line
Nicholas Clark [Fri, 18 Feb 2011 15:57:25 +0000 (15:57 +0000)]
In, remove unused variable $line

10 years agoperldelta for f1f02a6
Father Chrysostomos [Fri, 18 Feb 2011 18:16:06 +0000 (10:16 -0800)]
perldelta for f1f02a6

10 years agoMinor perlfaq\d tweaks
Father Chrysostomos [Fri, 18 Feb 2011 18:13:30 +0000 (10:13 -0800)]
Minor perlfaq\d tweaks

10 years agoNote the Math::BigInt upgrade
Father Chrysostomos [Fri, 18 Feb 2011 17:46:13 +0000 (09:46 -0800)]
Note the Math::BigInt upgrade

10 years agoAvoid segfault in re::regmust with pluggable RE engines
David Leadbeater [Thu, 17 Feb 2011 23:31:08 +0000 (23:31 +0000)]
Avoid segfault in re::regmust with pluggable RE engines

re::regmust would segfault if called on a Regexp belonging to a
pluggable regexp engine, only allow on the core and debugging engine.
Also correctly moralize the return values to avoid leaking.

10 years agoUpdate Math::BigInt to CPAN version 1.992
Peter John Acklam [Fri, 18 Feb 2011 15:39:40 +0000 (07:39 -0800)]
Update Math::BigInt to CPAN version 1.992

 - Increment version number.

 - Increment version number.
 - Make from_hex(), from_oct(), and behave more like hex() and oct()
   in the Perl core, and make from_bin() consistent with from_hex()
   and from_oct(). This is related to RT #58954.

 - Increment version number.
 - Make _rem() modify first input arg always, not just sometimes.
 - Make _modinv() more consistent with the _modinv() method in other
   libraries (Math::BigInt::GMP, etc.)
 - In _nok(), use symmetry property nok(n,k) = nok(n,n-k). This cuts
   computation time tremendously when n and k are large.
 - In _gcd(), quickly handle zero cases, avoid code duplication, and
   always modify the first input argument in-place.
 - Clean up code and add more code comments.
 - Fix typos.

 - Increment version number.

 - Modify tests to something that still fails.

 - Modify tests to something that still fails.

10 years agoReflow ‘Having no space’ in perldiag
Father Chrysostomos [Fri, 18 Feb 2011 15:28:46 +0000 (07:28 -0800)]
Reflow ‘Having no space’ in perldiag

10 years Update comment
Karl Williamson [Fri, 18 Feb 2011 14:06:51 +0000 (07:06 -0700)] Update comment

10 years agoperldelta.pod: Don't use internal warn cat. name
Karl Williamson [Fri, 18 Feb 2011 14:00:48 +0000 (07:00 -0700)]
perldelta.pod: Don't use internal warn cat. name

10 years agoperldiag.pod: Add missing phrase
Karl Williamson [Fri, 18 Feb 2011 14:00:12 +0000 (07:00 -0700)]
perldiag.pod: Add missing phrase

10 years agopp_subst: eliminate 'matched' local var
David Mitchell [Fri, 18 Feb 2011 13:34:34 +0000 (13:34 +0000)]
pp_subst: eliminate 'matched' local var

10 years agoDynaLoader.t: AUTOLOAD TODO tests passing
David Mitchell [Fri, 18 Feb 2011 12:44:12 +0000 (12:44 +0000)]
DynaLoader.t: AUTOLOAD TODO tests passing

Now that AUTOLOAD has been removed from DynaLoader, some TODO
tests are passing, so unmark them as TODO.

10 years agostruct subst; remove macro for obsolete field
David Mitchell [Fri, 18 Feb 2011 12:35:37 +0000 (12:35 +0000)]
struct subst; remove macro for obsolete field

The field was removed a while ago, but the macro sb_once remained.

10 years agopp_regcomp: don't unset RXf_TAINTED
David Mitchell [Fri, 18 Feb 2011 12:12:31 +0000 (12:12 +0000)]
pp_regcomp: don't unset RXf_TAINTED

Currently at the end of this function, the flag RXf_TAINTED is set or
unset based the value of PL_tainting.

Skip the unsetting part. At the moment this is a noop, but in some future
variant, it might clear the flag that has already been set in some other

In other words, be conservative.

10 years agotaint REGEX SVs as well as refs to them
David Mitchell [Thu, 17 Feb 2011 14:50:04 +0000 (14:50 +0000)]
taint REGEX SVs as well as refs to them

Now that REGEX is actually a first-class SV type, we can taint
the regex SV directly, as well as the RV pointing to it.

This means that this now taints:

    $rr = qr/$tainted/;
    $r = $$r;

10 years agopp_subst: exit earlier after failed match
David Mitchell [Thu, 17 Feb 2011 14:17:13 +0000 (14:17 +0000)]
pp_subst: exit earlier after failed match

If the match fails, don't bother to execute some code that prepares the
source and replacement strings for a substitution (e.g. matching

(This is an enhancement to ff6e92e827a143094fdf3af374056b524759194b)

10 years agotweak the new pattern taint description
David Mitchell [Thu, 17 Feb 2011 14:13:04 +0000 (14:13 +0000)]
tweak the new pattern taint description

10 years agoadjust the skip count to account for the new test in c22d665b
Tony Cook [Fri, 18 Feb 2011 08:03:55 +0000 (19:03 +1100)]
adjust the skip count to account for the new test in c22d665b

10 years agoSubclass utf8 warnings so can turn off individually
Karl Williamson [Fri, 18 Feb 2011 05:42:03 +0000 (22:42 -0700)]
Subclass utf8 warnings so can turn off individually

10 years agot/op/caller.t: Comment magic number
Karl Williamson [Thu, 17 Feb 2011 23:51:17 +0000 (16:51 -0700)]
t/op/caller.t: Comment magic number

So that when it changes, it is easier to find.

10 years agodiag.t: Allow underscore in warnings categories
Karl Williamson [Fri, 18 Feb 2011 05:50:49 +0000 (22:50 -0700)]
diag.t: Allow underscore in warnings categories

A new category is being created with an underscore in it.

10 years agoperldelta: subject-verb agreement
Father Chrysostomos [Fri, 18 Feb 2011 04:39:51 +0000 (20:39 -0800)]
perldelta: subject-verb agreement

10 years agoMention DynaLoader changes in perldelta
Father Chrysostomos [Fri, 18 Feb 2011 04:38:21 +0000 (20:38 -0800)]
Mention DynaLoader changes in perldelta

10 years agoIncrease DynaLoader’s version
Father Chrysostomos [Fri, 18 Feb 2011 04:35:17 +0000 (20:35 -0800)]
Increase DynaLoader’s version

10 years agoSome missing hyphens in perlfaq*
Father Chrysostomos [Fri, 18 Feb 2011 02:28:42 +0000 (18:28 -0800)]
Some missing hyphens in perlfaq*

10 years ago[perl #84358] Removing AutoLoader from DynaLoader
Leon Timmermans [Fri, 18 Feb 2011 02:04:00 +0000 (18:04 -0800)]
[perl #84358] Removing AutoLoader from DynaLoader

DynaLoader currently uses Autoloader. This was an optimization going
back to perl 5.000 in 1994. However, this implementation detail leaks in
a rather troublesome way.

DynaLoader is used by subclassing it. Because of this, when you call
some undefined method on an instance of any class that derives from
DynaLoader (directly or indirectly) you do not get this error message:

    Can't locate object method "undefined_method" via package "Foo"

But this rather cryptic error:

    Can't locate auto/Foo/ in @INC (@INC contains:
/etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
/usr/local/lib/site_perl .)

This is totally incomprehensible for anyone who isn't familiar with
what's going on. It was rather a premature optimization anyway if you
ask me, on my machine it's just 66 non-empty lines of code that are
being autoloaded.

Therefore, I think AutoLoader should be removed from DynaLoader.

10 years agoNo sip without SA_SIGINFO. Broken in c22d665.
Craig A. Berry [Fri, 18 Feb 2011 01:01:04 +0000 (19:01 -0600)]
No sip without SA_SIGINFO.  Broken in c22d665.

10 years agoperldelta entry for b83080de5c42543809ce9004bcdbcd3162a00e70.
Craig A. Berry [Fri, 18 Feb 2011 00:02:06 +0000 (18:02 -0600)]
perldelta entry for b83080de5c42543809ce9004bcdbcd3162a00e70.

10 years agoMove dprofpp from utils/ to ext/Devel-DProf/bin
Florian Ragwitz [Thu, 17 Feb 2011 20:50:54 +0000 (21:50 +0100)]
Move dprofpp from utils/ to ext/Devel-DProf/bin

This way the script can easily be part of the CPAN distribution, where
ExtUtils::MakeMaker will do its shebang munging.

In the core, we still have utils/dprofpp.PL, which also does shebang munging and
takes care of creating `' instead of just `dprofpp' on VMS, which
ExtUtils::MakeMaker doesn't seem to be up to yet.

To make this work, some things had to be moved from script-generation-time to

 * location of the stty binary
   This is probably better for binary perl distributions anyway

 * Devel::DProf version detection
   This is needed for `dprofpp -V'. The version number used to be copied into
   the script, but is now determined by actually loading Devel::DProf.

   In order for this to work it's necessary to be able to load DProf without
   causing profiling to start. For that, starting of the profiler has been moved
   to `import', causing

     require Devel::DProf;

   to not trigger it anymore, while

     use Devel::DProf;

   (and therefore perl -d:DProf) still does.

10 years agohandy.h: isIDFIRST_utf8() changed to use XIDStart
Karl Williamson [Thu, 17 Feb 2011 21:43:10 +0000 (14:43 -0700)]
handy.h: isIDFIRST_utf8() changed to use XIDStart

Previously this used a home-grown definition of an identifier start,
stemming from a bug in some early Unicode versions.  This led to some
problems, fixed by #74022.

But the home-grown solution did not track Unicode, and allowed for
characters, like marks, to begin words when they shouldn't.  This change
brings this macro into compliance with Unicode going-forward.

10 years agoop/turkish.t: Fix wrong test explanations
Karl Williamson [Thu, 17 Feb 2011 22:07:02 +0000 (15:07 -0700)]
op/turkish.t: Fix wrong test explanations

10 years agoperldiag.pod: Clarify non-suffix form regex modifiers
Karl Williamson [Thu, 17 Feb 2011 22:05:20 +0000 (15:05 -0700)]
perldiag.pod: Clarify non-suffix form regex modifiers

It currently is planned to not have the new regex modifiers be available
in suffix form in 5.14.  This likely will lead to confusion given the
existing message.  This adds text to clarify.

10 years agoDeprecate current user-defined case mapping
Karl Williamson [Thu, 17 Feb 2011 22:02:56 +0000 (15:02 -0700)]
Deprecate current user-defined case mapping

This has many issues.  I'm working on a CPAN module to take over
its functionality that should be ready in time for the 5.14 release.

10 years agoIncrease PERLIOBUF_DEFAULT_BUFSIZ to larger of 8192 and BUFSIZ.
Craig A. Berry [Thu, 17 Feb 2011 20:24:39 +0000 (14:24 -0600)]
Increase PERLIOBUF_DEFAULT_BUFSIZ to larger of 8192 and BUFSIZ.

The previous default size of a PerlIO buffer (4096 bytes) was
chosen many years ago before PerlIO was even the default I/O scheme
for Perl.  Benchmarks show that doubling this decade-old default
increases read and write performance in the neighborhood of 25%
to 50% when using the default layers of perlio on top of unix.

The only situation without a noticeable performance benefit so
far appears to be when physical I/O is so slow that it dwarfs
any savings from the reduction in layer shuffling, but there
is also no performance penalty in this case.

BUFSIZ will be chosen in the unlikely event that it's larger
than 8192 on the assumption that the system maintainers would
not set such a value without good reason.

If the new size causes problems, or to try an even bigger size,
configure with:

  ./Configure -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=N

where N is the desired size in bytes; it should probably be a
multiple of your page size.

10 years agoUnblock signal-mask on error for unsafe signals
Leon Timmermans [Sat, 12 Feb 2011 21:19:57 +0000 (22:19 +0100)]
Unblock signal-mask on error for unsafe signals

10 years agoAdd functions to Config to expose the remaining information from perl -V
Nicholas Clark [Thu, 17 Feb 2011 16:25:53 +0000 (16:25 +0000)]
Add functions to Config to expose the remaining information from perl -V

Previously one could only find out by parsing the output of perl -V the list
of local patches, the compilation date, and the compilation options (some of
which affect binary compatibility). Now provide all of these as
local_patches(), compile_date(), bincompat_options() and

10 years agoRefactor to set @EXPORT_OK from keys %Export_Cache
Nicholas Clark [Wed, 16 Feb 2011 17:15:46 +0000 (17:15 +0000)]
Refactor to set @EXPORT_OK from keys %Export_Cache

The refactor generates %Export_Cache at perl build time, and hence avoids running a map on load. The change also results in @Config::EXPORT
containing shared hash key scalars, which saves 124 bytes on this platform,
modest, but everything helps.

Also change the build script to programmatically generate the function stubs
in, instead of having the list duplicated by hand.

10 years agoUnicode::UCD::num(): Remove definitions for irrationals
Karl Williamson [Thu, 17 Feb 2011 14:37:15 +0000 (07:37 -0700)]
Unicode::UCD::num(): Remove definitions for irrationals

We decided it was not a good idea to have definitions for these three
code points that are not officially defined as such in the Unicode

10 years agoUnicode::UCD::num() clarify pod text
Karl Williamson [Thu, 17 Feb 2011 14:36:01 +0000 (07:36 -0700)]
Unicode::UCD::num() clarify pod text

10 years agoMinor correction to perldelta
Father Chrysostomos [Thu, 17 Feb 2011 14:28:47 +0000 (06:28 -0800)]
Minor correction to perldelta

10 years agoSome minor perlebcdic.pod clean-up
Father Chrysostomos [Thu, 17 Feb 2011 04:11:52 +0000 (20:11 -0800)]
Some minor perlebcdic.pod clean-up

10 years agowin32/ fix undef warning
David Mitchell [Thu, 17 Feb 2011 14:02:04 +0000 (14:02 +0000)]
win32/ fix undef warning

10 years ok mess to stdout not stderr on success
David Mitchell [Thu, 17 Feb 2011 13:39:14 +0000 (13:39 +0000)] ok mess to stdout not stderr on success

sub _ok() uses _diag() to print any additional messages passed as
args.  These go to stderr, and so mess up harness output. Make it
instead use note() on success, which goes to stdout.

10 years agoperldoc English improvements
Father Chrysostomos [Thu, 17 Feb 2011 02:52:25 +0000 (18:52 -0800)]
perldoc English improvements

10 years agofold_grind.t: Shorten eval string so no overflow
Karl Williamson [Thu, 17 Feb 2011 01:14:15 +0000 (18:14 -0700)]
fold_grind.t: Shorten eval string so no overflow

This test is failing on win2000 because it is overlowing the stack

10 years agoUpdate Module::Build to CPAN version 0.37_04
David Golden [Wed, 16 Feb 2011 20:39:06 +0000 (15:39 -0500)]
Update Module::Build to CPAN version 0.37_04


0.37_04 - Wed Feb 16 15:27:21 EST 2011


  - moved scripts/ to bin/ for less confusing porting to bleadperl

0.37_03 - Wed Feb 16 09:54:05 EST 2011


  - removed an irrelevant test in t/actions/installdeps.t that was causing
    failures on some Cygwin platforms


  - dropped configure_requires as some CPAN clients apparently get
    confused by having things in both configure_requires and requires

  - bumped Parse::CPAN::Meta build prereq to 1.4401

  - bumped CPAN::Meta prereq to 2.110420

0.37_02 - Mon Feb  7 21:05:30 EST 2011


  - bumped CPAN::Meta prereq to 2.110390 to avoid a regression in 2.110360

0.37_01 - Thu Feb  3 03:44:38 EST 2011


  - Generates META.json and MYMETA.json consistent with version 2 of the
    CPAN Meta Spec. [David Golden]


  - t/signature.t now uses a mocked Module::Signature; this should be
    more robust across platforms as it only needs to confirm that
    Module::Build is calling Module::Signature when expected


  - Added CPAN::Meta and Parse::CPAN::Meta to prerequisites and dropped

0.3624 - Thu Jan 27 11:38:39 EST 2011

  - Fixed pod2html directory bugs and fixed creation of spurious blib
    directory in core perl directory when running install.t (RT#63003)
    [Chris Williams]

0.3623 - Wed Jan 26 17:45:30 EST 2011

  - Fixed bugs involving bootstrapping configure_requires prerequisites
    on older CPANPLUS clients or for either CPAN/CPANPLUS when using
    the compatibility Makefile.PL

  - Added diagnostic output when configure_requires are missing for
    the benefit of users doing manual installation

10 years agocore-cpan-diff should allow some files only in Perl
David Golden [Wed, 16 Feb 2011 20:22:40 +0000 (15:22 -0500)]
core-cpan-diff should allow some files only in Perl

Uses CUSTOMIZED in to also track files that only exist
in Perl and not on CPAN.

10 years agoWindows builds require perliol.h conditional on USE_PERLIO.
George Greer [Wed, 16 Feb 2011 20:00:47 +0000 (15:00 -0500)]
Windows builds require perliol.h conditional on USE_PERLIO.

10 years agoFix pod warnings in perlfaq4.pod
Michael Stevens [Wed, 16 Feb 2011 17:41:44 +0000 (17:41 +0000)]
Fix pod warnings in perlfaq4.pod

10 years agodocument how tainting works with pattern matching
David Mitchell [Wed, 16 Feb 2011 17:17:18 +0000 (17:17 +0000)]
document how tainting works with pattern matching

10 years agofix many s/// tainting bugs
David Mitchell [Mon, 14 Feb 2011 15:46:13 +0000 (15:46 +0000)]
fix many s/// tainting bugs

This is a re-implementation of the tainting code in pp_subst and
pp_substcont. Although this fixes many bugs, because its a de-novo rewrite
of the tainting parts of the code in those two functions, it's quite
possible that it breaks some existing tainting behaviour. It doesn't break
any existing tests, although it turns out that this area was severely
under-tested anyway.

The main bugs that this commit fixes are as follows, where:

T = a tainted value
L = pattern tainted by locale (e.g. use locale; s/\w//)
Happens both with and without 'use re taint' unless specified.
Happens with all modifiers (/g, /r etc) unless explicitly mentioned.

    $1 unexpectedly untainted:
T =~ s///            under use re 'taint'

     original string unexpectedly untainted:
s/L//,  s/L//g

    return value unexpectedly untainted:
T =~ s///g           under no re 'taint'
s/L//g,  s/L//r

    return value unexpectedly tainted:
s//T/r               under no re 'taint'
T =~ s///            under use re 'taint'
s//T/                under use re 'taint'

Also, with /ge, the original string becomes tainted as soon as possible
(usually in the second entry to the /e code block) rather than only at the
end, in code like

    $orig =~ s/T/...code.../ge

The rationale behind the taintedness of the return value of s/// (in the
non /r case), is that a boolean value shouldn't be tainted. This
corresponds to the general perl tainting policy that boolean ops don't
return tainted values. On the other hand,  when it returns an integer
(number of matches), that should be tainted.

A couple of note about the old tainting code this replaces: firstly, several
occurrences of the following were NOOPs, since rxtainted was U8 and the bit
being ored was > 256:

    rxtainted |= RX_MATCH_TAINTED(rx)

secondly, removing a whole bunch of the following didn't make any
existing tests fail:

    TAINT_IF(rxtainted & 1);