This is a live mirror of the Perl 5 development currently hosted at
11 years agoadd perlfunc cross-reference sections
Ricardo Signes [Tue, 31 Jan 2012 15:21:58 +0000 (10:21 -0500)]
add perlfunc cross-reference sections

this should allow confused users to say "perldoc -f if"

hopefully in the future, a more generalized mechanism will

11 years agoupdate Math-Complex to CPAN version 1.59
Zefram [Wed, 1 Feb 2012 23:45:05 +0000 (23:45 +0000)]
update Math-Complex to CPAN version 1.59

* Don't declare "tan" operator overloading on Math::Complex
  objects, because there is no such overloading type [

* Remove execute bit from test scripts in CPAN tarball.

11 years agoreally allow pad_findmy's retval to be ignored
Zefram [Wed, 1 Feb 2012 22:22:59 +0000 (22:22 +0000)]
really allow pad_findmy's retval to be ignored

402642c6301a1dbc64ea3acc8beee35078afee26 only changed pad_findmy_pvn.
pad_findmy_pv and pad_findmy_sv need the same treatment.

11 years agoUpdate, correct and clarify the comment in Perl_sv_setuv().
Nicholas Clark [Wed, 1 Feb 2012 21:58:14 +0000 (22:58 +0100)]
Update, correct and clarify the comment in Perl_sv_setuv().

See the correspondence on ticket #36459 for more details.

11 years agoIncrease $arybase::VERSION to 0.04
Father Chrysostomos [Wed, 1 Feb 2012 21:30:06 +0000 (13:30 -0800)]
Increase $arybase::VERSION to 0.04

11 years ago[perl #109570] Fix off-by-1 error in arybase’s lslice
Father Chrysostomos [Wed, 1 Feb 2012 21:29:28 +0000 (13:29 -0800)]
[perl #109570] Fix off-by-1 error in arybase’s lslice

When I wrote that originally, I was treating POPMARK as equivalent to
--*PL_markstack_ptr, rather than *PL_markstack_ptr--.

So I was using the marker for the outer list surrounding the list
slice, and modifying whatever numbers were to be found there, such as
the 3 and 4 in [3, 4, qw(foo bar)[0]].

11 years agoAllow pad_findmy’s retval to be ignored
Father Chrysostomos [Wed, 1 Feb 2012 21:00:43 +0000 (13:00 -0800)]
Allow pad_findmy’s retval to be ignored

11 years now exits with 0 for success for --help
Nicholas Clark [Wed, 1 Feb 2012 20:44:51 +0000 (21:44 +0100)] now exits with 0 for success for --help --help now exits with 0 for success. The "that took" timing
message is no longer shown after the help text. The sanity test for "are we
running from the current checkout" is now moved after the argument checking,
so that --help will always show the help text.

11 years agoAdd --no-match to, equivalent to --expect-fail --match
Nicholas Clark [Wed, 1 Feb 2012 20:24:20 +0000 (21:24 +0100)]
Add --no-match to, equivalent to --expect-fail --match

11 years now treats the command line as files to match with --match.
Nicholas Clark [Wed, 1 Feb 2012 18:41:29 +0000 (19:41 +0100)] now treats the command line as files to match with --match.

Previously with --match it would ignore the command line options, and search
in all distribution files (no --target given), or the build products only
(--target given). These remain the defaults if there are no command line
arguments. But now if command line arguments are given, this are used as glob
patterns to give the list of files to match against.

11 years agoupdate Time-HiRes to CPAN version 1.9725
Zefram [Wed, 1 Feb 2012 18:06:38 +0000 (18:06 +0000)]
update Time-HiRes to CPAN version 1.9725

- Correct stack discipline in stat(), which was screwing up list
  operations in expressions containing calls to it [
- Add missing OUTPUT sections to the XS code [ #70930].
- Skip itimer tests on GNU/Hurd, which has the API but lacks
  the implementation [ #72754].
- Fix a doubled word in the documentation [ #72763].

11 years agoUpdate for ExtUtils-ParseXS on teh CPAN
Chris 'BinGOs' Williams [Wed, 1 Feb 2012 18:01:08 +0000 (18:01 +0000)]
Update for ExtUtils-ParseXS on teh CPAN

11 years agoExtUtils::ParseXS: Changelog and version bump to 3.14
Steffen Mueller [Wed, 1 Feb 2012 17:27:30 +0000 (18:27 +0100)]
ExtUtils::ParseXS: Changelog and version bump to 3.14

11 years agofix punctuation in a panic message
Zefram [Wed, 1 Feb 2012 13:03:24 +0000 (13:03 +0000)]
fix punctuation in a panic message

11 years agoperlxstypemap: typemap variable documentation
Tony Cook [Mon, 30 Jan 2012 07:09:11 +0000 (08:09 +0100)]
perlxstypemap: typemap variable documentation

Add a list of the special Perl variables for interpolation
into typemaps. That's a very important bit of the typemapping mechanism
that was previously virtually undocumented!

11 years agoMove more typemap-related documentation to the typemap doc file
Steffen Mueller [Sun, 29 Jan 2012 17:10:19 +0000 (18:10 +0100)]
Move more typemap-related documentation to the typemap doc file

Some of the discussion in perlxs was duplicated in perlxstypemap.
This also adds several references to the new man page and fixes
a few minor nits.

11 years agoXS::Typemap: Somewhat consistent indentation
Steffen Mueller [Sun, 29 Jan 2012 14:25:52 +0000 (15:25 +0100)]
XS::Typemap: Somewhat consistent indentation

At least in my new code.

11 years agoFix typo in documentation
Steffen Mueller [Sat, 28 Jan 2012 16:50:05 +0000 (17:50 +0100)]
Fix typo in documentation

11 years agoMove typemap documentation to its own file
Steffen Mueller [Sat, 28 Jan 2012 16:47:16 +0000 (17:47 +0100)]
Move typemap documentation to its own file

Sadly, the POD in Typemap.xs was not easily extractable into a POD file
at build time, so it now lives in a separate POD file from the start.
Makes keeping documentation and testing efforts in sync marginally
harder, but it's probably the right trade-off.

What's left to do is finding the right places in other POD files to
refer to this old/new documentation.

11 years agoXS::Typemap: Fix typo in docs, fix version
Steffen Mueller [Sat, 28 Jan 2012 12:10:59 +0000 (13:10 +0100)]
XS::Typemap: Fix typo in docs, fix version

11 years agoXS::Typemap: Tests for T_IN/T_OUT typemaps
Steffen Mueller [Thu, 26 Jan 2012 22:54:38 +0000 (23:54 +0100)]
XS::Typemap: Tests for T_IN/T_OUT typemaps

11 years agoXS::Typemap: Tests for T_INOUT typemap
Steffen Mueller [Thu, 26 Jan 2012 18:18:33 +0000 (19:18 +0100)]
XS::Typemap: Tests for T_INOUT typemap

11 years agoXS::Typemap: Tests for the T_PACKEDARRAY typemap
Steffen Mueller [Thu, 26 Jan 2012 18:04:23 +0000 (19:04 +0100)]
XS::Typemap: Tests for the T_PACKEDARRAY typemap

11 years agoXS::Typemap: Tests for T_PACKED
Steffen Mueller [Tue, 24 Jan 2012 07:24:00 +0000 (08:24 +0100)]
XS::Typemap: Tests for T_PACKED

11 years agoDocument T_PACKEDARRAY
Steffen Mueller [Mon, 23 Jan 2012 17:33:26 +0000 (18:33 +0100)]

11 years agoXS::Typemap: Document T_PACKED
Steffen Mueller [Sat, 21 Jan 2012 14:20:05 +0000 (15:20 +0100)]
XS::Typemap: Document T_PACKED

11 years agoXS-Typemap: Document sharing mechanism for typemaps
Steffen Mueller [Fri, 20 Jan 2012 07:15:45 +0000 (08:15 +0100)]
XS-Typemap: Document sharing mechanism for typemaps

Thankfully, it's a one-liner now.

11 years agoInline the XS-Typemap typemap file
Steffen Mueller [Wed, 18 Jan 2012 07:28:36 +0000 (08:28 +0100)]
Inline the XS-Typemap typemap file

11 years agoDocument the exact format of a typemap
Steffen Mueller [Wed, 18 Jan 2012 07:13:58 +0000 (08:13 +0100)]
Document the exact format of a typemap

Including both the format of the content of a typemap file as well as
the embedded typemap syntax.

11 years agoTypemaps: Start writing some general documentation
Steffen Mueller [Tue, 17 Jan 2012 07:54:50 +0000 (08:54 +0100)]
Typemaps: Start writing some general documentation

11 years agoFirst stab T_REFREF docs
Steffen Mueller [Mon, 16 Jan 2012 21:39:01 +0000 (22:39 +0100)]
First stab T_REFREF docs

I am rather confident that this was added for some notion of symmetry
and completion. It's only half-implemented and there are no known users
in core or on CPAN. Candidate for deprecation (instead or in addition to

11 years agoTypemap tests: T_SHORT, T_U_INT, T_INT, T_LONG
Steffen Mueller [Mon, 16 Jan 2012 20:10:05 +0000 (21:10 +0100)]
Typemap tests: T_SHORT, T_U_INT, T_INT, T_LONG

11 years agoCleanup: Condense tests and add a few
Steffen Mueller [Mon, 16 Jan 2012 17:08:37 +0000 (18:08 +0100)]
Cleanup: Condense tests and add a few

11 years agoMinor documentation fixes and annotations
Steffen Mueller [Mon, 16 Jan 2012 17:08:25 +0000 (18:08 +0100)]
Minor documentation fixes and annotations

11 years agoStop SvPVutf8 from forcing the POK flag
Father Chrysostomos [Wed, 1 Feb 2012 04:40:14 +0000 (20:40 -0800)]
Stop SvPVutf8 from forcing the POK flag

It was setting this even on magical variables, causing stringification
not to bother calling FETCH, because the POK flag means ‘yes, I’m a
bonified [sic] string, with nothing funny going on’.

11 years agoXS::APItest: svpv_magic.t: Correct test name
Father Chrysostomos [Wed, 1 Feb 2012 04:37:22 +0000 (20:37 -0800)]
XS::APItest: svpv_magic.t: Correct test name

11 years agoMake SvPVbyte return bytes for non-PVs
Father Chrysostomos [Wed, 1 Feb 2012 02:16:48 +0000 (18:16 -0800)]
Make SvPVbyte return bytes for non-PVs

Instead of just doing SvPV on something that is not a PV, SvPVbyte
should actually do what it is advertised as doing.

11 years agoperldelta for ‘no overloading’ and qr//
Father Chrysostomos [Wed, 1 Feb 2012 02:16:24 +0000 (18:16 -0800)]
perldelta for ‘no overloading’ and qr//

11 years agoperldelta for stacked filetests and FETCH
Father Chrysostomos [Wed, 1 Feb 2012 02:14:12 +0000 (18:14 -0800)]
perldelta for stacked filetests and FETCH

11 years agoperldelta for stacked -t
Father Chrysostomos [Wed, 1 Feb 2012 02:13:14 +0000 (18:13 -0800)]
perldelta for stacked -t

11 years agoTest that SvPVutf8 works with magic vars
Father Chrysostomos [Tue, 31 Jan 2012 21:04:57 +0000 (13:04 -0800)]
Test that SvPVutf8 works with magic vars

It didn’t until the previous commit.

11 years ago[perl #108994] Stop SvPVutf8 from coercing SVs
Father Chrysostomos [Tue, 31 Jan 2012 20:57:09 +0000 (12:57 -0800)]
[perl #108994] Stop SvPVutf8 from coercing SVs

In shouldn’t destroy globs or references passed to it, or try to
coerce them if they are read-only or incoercible.

I added tests for SvPVbyte at the same time, even though it was not
exhibiting the same problems, as sv_utf8_downgrade doesn’t try to
coerce anything.  (SvPVbyte has its own set of bugs, which I hope to
fix in fifthcoming commits.)

11 years agoperldelta for read-only core globs
Father Chrysostomos [Tue, 31 Jan 2012 20:56:41 +0000 (12:56 -0800)]
perldelta for read-only core globs

11 years agoXS::APItest: Move $VERSION further up
Father Chrysostomos [Tue, 31 Jan 2012 20:24:23 +0000 (12:24 -0800)]
XS::APItest: Move $VERSION further up

so it can be changed without one having to search for it.

11 years agoIncrease $XS::APItest::VERSION to 0.35
Father Chrysostomos [Tue, 31 Jan 2012 20:23:32 +0000 (12:23 -0800)]
Increase $XS::APItest::VERSION to 0.35

11 years agoperldelta for B::COP::stashflags
Father Chrysostomos [Tue, 31 Jan 2012 18:04:13 +0000 (10:04 -0800)]
perldelta for B::COP::stashflags

11 years Document stashflags
Father Chrysostomos [Tue, 31 Jan 2012 18:02:48 +0000 (10:02 -0800)] Document stashflags

(actually just list in; you have to know the internals
to use these things anyway)

11 years agoperldelta up to 675dc5e1a
Father Chrysostomos [Tue, 31 Jan 2012 17:52:29 +0000 (09:52 -0800)]
perldelta up to 675dc5e1a

11 years agoIncrease $File::Copy::VERSION to 2.23
Father Chrysostomos [Tue, 31 Jan 2012 17:30:54 +0000 (09:30 -0800)]
Increase $File::Copy::VERSION to 2.23

not 2.22, as that was used by 5.13.10, but the only changes in 5.13.10
were reverted for 5.13.11+.

11 years ago[perl #109104] File::Copy: Turn off ‘newline’ warnings
Father Chrysostomos [Tue, 31 Jan 2012 17:27:20 +0000 (09:27 -0800)]
[perl #109104] File::Copy: Turn off ‘newline’ warnings

These warnings exist to catch file operations on unchomped file names.
But File::Copy should not be triggering them, otherwise it produces
warnings for every copy("foo/bar\n", "baz/bar\n"), with no (easy) way
to suppress the warning, as warnings are lexical.

I don’t know how to test this portably.

11 years agoRemove use of study from splain
Father Chrysostomos [Tue, 31 Jan 2012 16:33:21 +0000 (08:33 -0800)]
Remove use of study from splain

It only helps with very long strings.  It actually slows things down
slightly when used on short strings.

11 years agoIncrease $File::Glob::VERSION to 1.17
Father Chrysostomos [Tue, 31 Jan 2012 05:30:55 +0000 (21:30 -0800)]
Increase $File::Glob::VERSION to 1.17

following commit ffa23acf6.

11 years agoAdd blank lines around Configure's duplicate extension diagnostic.
Nicholas Clark [Tue, 31 Jan 2012 13:29:04 +0000 (13:29 +0000)]
Add blank lines around Configure's duplicate extension diagnostic.

The diagnostic message containing the duplicate extension did not stand out,
particularly given that the immediately previous output is a very long line
of found extensions. So add blank lines on either to make it easier to

11 years agoPod-Perldoc is now maintained on CPAN
Florian Ragwitz [Tue, 31 Jan 2012 12:13:39 +0000 (13:13 +0100)]
Pod-Perldoc is now maintained on CPAN

11 years agoRemove from perlfunc.pod the summaries of what's new/obsoleted in Perl 5.
Nicholas Clark [Tue, 31 Jan 2012 12:23:16 +0000 (13:23 +0100)]
Remove from perlfunc.pod the summaries of what's new/obsoleted in Perl 5.

Perl 5.000 isn't *new*. These days, people migrating to current Perl 5 aren't
coming from Perl 4, so this section is redundant.

11 years agoPurge references to --libpod, an abbreviation for --libpods
Nicholas Clark [Tue, 24 Jan 2012 15:48:09 +0000 (16:48 +0100)]
Purge references to --libpod, an abbreviation for --libpods

--libpods was removed from Pod::HTML in commit 3b49d8d9ac841d8e, and
references to it removed in commit 6c6fc3be9a6e74e4. However, that commit
missed the fact that 2 callers were not using the full name for the option,
which works because Getopt::Long defaults to accepting unambiguous

11 years agoConfigure now aborts with a diagnostic if it detects a duplicate extension.
Nicholas Clark [Tue, 31 Jan 2012 11:16:53 +0000 (12:16 +0100)]
Configure now aborts with a diagnostic if it detects a duplicate extension.

During the development process, if an extension module changes dual-life
status it can move between ext/, dist/ and cpan/. If one uses git pull in a
built tree across such a change, one can end up with the build tree in a
messy state from which the 'distclean' target can't recover. Configure will
spot both the old and new directories, and may wrongly categorise the
extension as non-XS, resulting in obscure build failures after miniperl is

In the general case, the "old" directory might contain files the user wants
to keep, so it's not safe to automatically delete it. The only safe option
is to ask the user to resolve the problem, hence with this change, if
Configure detects such a situation it aborts with a diagnostic suggesting
what to do.

This isn't a problem that affects released tarballs.

11 years agoIn B.xs, use *pvf() functions to reduce the number of API calls.
Nicholas Clark [Tue, 31 Jan 2012 11:02:43 +0000 (12:02 +0100)]
In B.xs, use *pvf() functions to reduce the number of API calls.

This gives a small reduction in both source lines and object code size.

11 years agodiagnostics doesn't need to search for perldelta.pod in pre-5.005 locations.
Nicholas Clark [Tue, 24 Jan 2012 15:08:37 +0000 (16:08 +0100)]
diagnostics doesn't need to search for perldelta.pod in pre-5.005 locations.

Pods are installed into privlib. Before Perl 5.005, privlib didn't contain
the version number in it, so 5.004 and 5.003 (etc) both installed to the same
directory. perldiag.pod differed in not-quite compatible ways, so hacks were
put in to (a) also install it in privlib with the version number in the
filename (b) to hard link it to archlib, which always did contain the version

5.005 changed privlib to contain the version number, solving the underlying
problem (strictly commit bfb7748a896459cc, described here: )

Commit a841533b5cf319b3 (Oct 2009) removed the first installation hack,
Commit e8ea61279d90dbe9 (Jul 1998) removed the second.

Hence the code to search in the "hacked" locations is no longer needed,
and in the interests of clarity, should go.

11 years agopodcheck.t: Add comment
Karl Williamson [Sat, 28 Jan 2012 22:25:47 +0000 (15:25 -0700)]
podcheck.t: Add comment

11 years agolocale.t: Add tests for fc()
Karl Williamson [Mon, 30 Jan 2012 18:27:07 +0000 (11:27 -0700)]
locale.t: Add tests for fc()

11 years agolocale.t: process in sorted order
Karl Williamson [Mon, 30 Jan 2012 18:25:56 +0000 (11:25 -0700)]
locale.t: process in sorted order

for easier debugging, when debugging

11 years agolocale.t: White space only
Karl Williamson [Mon, 30 Jan 2012 17:29:59 +0000 (10:29 -0700)]
locale.t: White space only

This indents code to account for a newly formed block around it,
reflowing things to fit into an 80 column window.

And it adjusts the indentation of a few other lines.

11 years agolocale.t: Add tests for IN_UNI_8_BIT
Karl Williamson [Mon, 30 Jan 2012 17:25:25 +0000 (10:25 -0700)]
locale.t: Add tests for IN_UNI_8_BIT

These are more tests for commit b36bf33f6564c3e9a9ff131f4f3c9980b7a8af15

11 years agolocale.t: white space only
Karl Williamson [Sun, 29 Jan 2012 19:16:59 +0000 (12:16 -0700)]
locale.t: white space only

Properly indent this statement

11 years agouse locale; fc(""); shouldn't taint.
Brian Fraser [Mon, 30 Jan 2012 19:30:24 +0000 (16:30 -0300)]
use locale; fc(""); shouldn't taint.

fc() brought to life its own version of #39028. fc(""), like
lc("") and friends, shouldn't taint the result.

11 years agoIncrease the fallback value of MAXPATHLEN
Dominic Hargreaves [Sat, 28 Jan 2012 14:00:39 +0000 (14:00 +0000)]
Increase the fallback value of MAXPATHLEN

On systems without MAXPATHLEN or PATH_MAX defined (GNU/Hurd is an example
of such a system), set MAXPATHLEN to 4096 rather than 1024; this increase
creates parity with Linux.

11 years agoMoving :mmap out of core binary into a module
Leon Timmermans [Wed, 25 Jan 2012 19:38:46 +0000 (20:38 +0100)]
Moving :mmap out of core binary into a module

11 years agostat.t: Use $>, not just $< for skipping
Father Chrysostomos [Mon, 30 Jan 2012 22:45:15 +0000 (14:45 -0800)]
stat.t: Use $>, not just $< for skipping

This is the paranoid version of just using $>.

11 years ago[perl #108780] Make /foo$qr/ work under ‘no overloading’
Father Chrysostomos [Mon, 30 Jan 2012 20:33:31 +0000 (12:33 -0800)]
[perl #108780] Make /foo$qr/ work under ‘no overloading’

This changes the code in pp_regcomp to use the underlying REGEXP
instead of the reference to it, when concatenating pieces to mark a
larger regular expression.  This makes /foo$qr/ work even under ‘no
overloading’.  It stopped working with commit a75c6ed6b.

11 years agoUpdate IPC-Cmd to CPAN version 0.76
Chris 'BinGOs' Williams [Mon, 30 Jan 2012 10:45:15 +0000 (10:45 +0000)]
Update IPC-Cmd to CPAN version 0.76


  Changes for 0.76    Mon Jan 30 11:30:53 GMT 2012
  * Make the empty arg stripping the default again,
    with option to override this behaviour.

  Changes for 0.74    Mon Jan 30 10:24:30 GMT 2012
  * Applied patch from WATANABE Hiroaki [RT #74470]
    "Empty string cannot be passed to command"
  * Resolved [RT #74373] reported by Randy Stauner
    "Compilation error when fails to load"

11 years agoUpdate MANIFEST
Father Chrysostomos [Mon, 30 Jan 2012 04:54:15 +0000 (20:54 -0800)]

11 years agoIncrease $Term::ReadLine::VERSION to 1.08
Father Chrysostomos [Mon, 30 Jan 2012 04:50:02 +0000 (20:50 -0800)]
Increase $Term::ReadLine::VERSION to 1.08

11 years agoAdd Darin McBride to AUTHORS
Father Chrysostomos [Mon, 30 Jan 2012 04:48:15 +0000 (20:48 -0800)]
Add Darin McBride to AUTHORS

11 years ago[perl #108470] Make Term::ReadLine use AE if available
Darin McBride [Mon, 30 Jan 2012 04:45:44 +0000 (20:45 -0800)]
[perl #108470] Make Term::ReadLine use AE if available

Term::ReadLine only allows the Tk event loop to be called during
a readline call. This should be updated to use AnyEvent which will
still work with Tk, as well as any other event loop the user may need.

With this patch, T::RL now uses AnyEvent if it is loaded, falling back
to Tk otherwise; so the Tk mode won't be affected.

T::RL::Stub has its own get_line. This does not honour the tkRunning
flag at all. If I remove it, it's fine. This patch does so.

11 years agoUpdate IO-Compress to CPAN version 2.048
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 21:28:12 +0000 (21:28 +0000)]
Update IO-Compress to CPAN version 2.048


  2.048 29 January 2012

      * Set minimum zlib version to 1.2.0

      * IO::Compress test suite fails with Compress::Raw::Zlib 2.047 and zlib < 1.2.4
        [RT# 74503]

11 years agoUpdate Compress-Raw-Zlib to CPAN version 2.048
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 21:23:41 +0000 (21:23 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.048


  2.048 29 January 2012

      * Set minimum zlib version to 1.2.0

11 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.048
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 21:20:15 +0000 (21:20 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.048


  2.048 29 January 2012

      * No Changes

11 years agolc.t: Add tests for previously broken IN_UNI_8_BIT
Karl Williamson [Sun, 29 Jan 2012 20:47:29 +0000 (13:47 -0700)]
lc.t: Add tests for previously broken IN_UNI_8_BIT

This adds tests for commit b36bf33f6564c3e9a9ff131f4f3c9980b7a8af15

11 years agopp.c: Can grow scalar by less
Karl Williamson [Sun, 29 Jan 2012 17:41:14 +0000 (10:41 -0700)]
pp.c: Can grow scalar by less

The max expansion when a Latin1 character is folded and converted to
UTF-8 is '2' bytes per input byte, not the more general case.

11 years agopod updates for fc and \F
Brian Fraser [Mon, 9 Jan 2012 09:13:43 +0000 (06:13 -0300)]
pod updates for fc and \F

11 years agoImplement the fc keyword and the \F string escape.
Brian Fraser [Thu, 12 Jan 2012 20:22:05 +0000 (17:22 -0300)]
Implement the fc keyword and the \F string escape.

Along with the simple_casefolding and full_casefolding features.

fc() stands for foldcase, a sort of pseudo case (like lowercase),
which is used to implement Unicode casefolding. It maps a string
to a form where all case differences are erased, so it's a
locale-independent way of checking if two strings are the same,
regardless of case.

This functionality was, and still is, available through the
regular expression engine -- /i matches would use casefolding
internally. The fc keyword merely exposes this for easier access.

Previously, one could attempt to case-insensitively test two strings
for equality by doing

   lc($a) eq lc($b)

But that might get you wrong results, for example in the case of

11 years agoAdd the fc keyword in regen/
Brian Fraser [Mon, 9 Jan 2012 05:44:16 +0000 (02:44 -0300)]
Add the fc keyword in regen/

It doesn't do anything yet.

11 years agoutf8.h: Restore macro defn incorrectly trashed earlier
Karl Williamson [Sun, 29 Jan 2012 16:32:01 +0000 (09:32 -0700)]
utf8.h: Restore macro defn incorrectly trashed earlier

Commit 66cbab2c91fca8c9abc65a7231a053898208efe3 changed the definition
of IN_UNI_8_BIT, but in so doing, lost the 2nd line of the macro; and I
did not catch it.  Tests will be added shortly.

11 years agoAdd Windows 2008 to the list of Windows versions in perlport
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 16:25:15 +0000 (16:25 +0000)]
Add Windows 2008 to the list of Windows versions in perlport

11 years agofeature.h: Mask hints in CURRENT_FEATURE_BUNDLE
Father Chrysostomos [Sun, 29 Jan 2012 07:06:25 +0000 (23:06 -0800)]
feature.h: Mask hints in CURRENT_FEATURE_BUNDLE

Otherwise CURRENT_FEATURE_BUNDLE will end up including any hints added
later that happen to use higher bits.

This was causing autobox to turn off all features, causing failures
for Dist::Zilla::PluginBundle::AVAR.

I’m not adding tests for this, as such tests would need constant
tweaking in future perl developement.  What autobox is doing is
naughty and unsupported anyway.

11 years ago[perl #109264] ->method(my(...)) forcing lvalue cx
Father Chrysostomos [Sun, 29 Jan 2012 03:14:39 +0000 (19:14 -0800)]
[perl #109264] ->method(my(...)) forcing lvalue cx

A simple my($foo,$bar) list is flagged as an lvalue:

$ ./perl -Ilib -MO=Concise -e 'my($foo,$bar)'
7  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
6     <@> list vKPM/128 ->7
3        <0> pushmark vM/128 ->4
4        <0> padsv[$foo:1,2] vM/LVINTRO ->5
5        <0> padsv[$bar:1,2] vM/LVINTRO ->6
-e syntax OK

That 128 that the list op is the same flag as LVINTRO.

When a method call is compiled, the list op for the argument list is
itself converted into an entersub op.  That LVINTRO flag is never
turned off.  So foo->bar(my($foo,$bar)) becomes this:

$ ./perl -Ilib -MO=Concise -e 'foo->bar(my($foo,$bar))'
9  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
8     <1> entersub[t4] vKMS/LVINTRO,TARG ->9
3        <0> pushmark sM/128 ->4
4        <$> const[PV "foo"] sM/BARE ->5
5        <0> padsv[$foo:1,2] lM/LVINTRO ->6
6        <0> padsv[$bar:1,2] lM/LVINTRO ->7
7        <$> method_named[PV "bar"] ->8
-e syntax OK

This was rarely a problem until commit da1dff948 added lvalue check-
ing for method calls (a fifth bug fix in that commit not mentioned in
the commit message).

Calling the method will now result in ‘Can't modify non-lvalue subrou-
tine call’ unless the method has the :lvalue attribute.

Before that, this would only cause problems with lvalue methods:

$ perl -le '
    sub clear_queue:lvalue { warn "called"; undef }
    3==main->clear_queue(my ($id, $name))
called at -e line 2.
Can't return undef from lvalue subroutine at -e line 3.

Calling it with ($id, $name) was fine, and allowed undef to
be returned.

Perl_localize in op.c (which is called for my, our and local)
calls my() (aka Perl_my_attrs) on the list itself for my or our.
Perl_my_attrs was setting flags on the list, not just on its children.

So this commit modifies my_attrs not to set any flags on the list
op itself.

local() was not affected, as it goes through op_lvalue_flags instead
of my_attrs, and op_lvalue_flags doesn’t set flags on list ops (I
mean ops of type OP_LIST, not listops in general).  I added tests for
it anyway.

11 years agoUpdate IO-Compress to CPAN version 2.047
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 00:24:18 +0000 (00:24 +0000)]
Update IO-Compress to CPAN version 2.047


  2.047 28 January 2012

      * Set minimum Perl version to 5.6

      * IO::Compress::Zip
        - In one-shot zip, set the Text Flag if "-T" thinks the file is a
          text file.
        - In one-shot mode, wrote mod time & access time in wrong order
          in the "UT" extended field.

11 years agoUpdate Compress-Raw-Zlib to CPAN version 2.047
Chris 'BinGOs' Williams [Sun, 29 Jan 2012 00:01:04 +0000 (00:01 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.047


  2.047 28 January 2012

      * Allow flush to be called multiple times without any intermediate
        call to deflate and still return Z_OK.
        In the code below $status was Z_BUF_ERROR before this change.

          $status = $def->flush(...);

      * Added support for zlibCompileFlags

      * Set minimum Perl version to 5.6

11 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.047
Chris 'BinGOs' Williams [Sat, 28 Jan 2012 23:56:05 +0000 (23:56 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.047


  2.047 28 January 2012

      * Set minimum Perl version to 5.6

11 years agoTrim directory extension in pathify under EFS.
Craig A. Berry [Sat, 28 Jan 2012 23:05:35 +0000 (17:05 -0600)]
Trim directory extension in pathify under EFS.

When Extened Filename Syntax (EFS) is in effect, 1fe570cc5e24ee
changed the age-old behavior of trimming the directory extension
off a directory filename when the path is in Unix syntax.  EFS
really has nothing to do with the necessity to trim .DIR;1 from
the name, so remove the conditional check for EFS from the
existing code.

This gets three more tests passing under EFS in vms/ext/filespec.t.

11 years agoFix bug #109206: ANCH_MBOL with while /.*/g
Yves Orton [Sat, 28 Jan 2012 23:06:23 +0000 (00:06 +0100)]
Fix bug #109206: ANCH_MBOL with while /.*/g

We had a fencepost error when ANCH_MBOL was enabled that meant we
did not "see" matches at the end of string. This fixes the problem
and adds tests.

11 years agoaccidentally used my work email for a commit so add it to
Yves Orton [Sat, 28 Jan 2012 23:04:20 +0000 (00:04 +0100)]
accidentally used my work email for a commit so add it to

11 years agofix variable not shared warnings coming from the use statement being executed too...
Yves Orton [Sat, 28 Jan 2012 22:23:07 +0000 (23:23 +0100)]
fix variable not shared warnings coming from the use statement being executed too early

11 years agoIncrease $subs::VERSION to 1.01
Father Chrysostomos [Sat, 28 Jan 2012 20:14:12 +0000 (12:14 -0800)]
Increase $subs::VERSION to 1.01

11 years Add another (old?) address for Juerd
Father Chrysostomos [Sat, 28 Jan 2012 20:13:32 +0000 (12:13 -0800)] Add another (old?) address for Juerd

11 years ago[perl #21396] documentation error in
Juerd Waalboer [Sat, 28 Jan 2012 20:11:17 +0000 (12:11 -0800)]
[perl #21396] documentation error in

11 years agoAdjust skip counts in t/op/filetest_t.t.
Craig A. Berry [Sat, 28 Jan 2012 16:55:55 +0000 (10:55 -0600)]
Adjust skip counts in t/op/filetest_t.t.

Follow-up to 8db8f6b697e6f, where new tests were added without
changing the (implicit) skip count of 1.

11 years agoRestore directory extension and version in fileify under EFS.
Craig A. Berry [Sat, 28 Jan 2012 15:22:04 +0000 (09:22 -0600)]
Restore directory extension and version in fileify under EFS.

In df2786654 and 8a5aa89570, the traditional behavior of adding
the .DIR;1 onto a fileified directory spec was removed when
operating under Extended Filename Syntax.  Various scary comments
were added about its being a bug to add a type and version onto
a Unix-style path, but actually the CRTL appears to be perfectly
happy with, for example:


and without the extension, the home-grown rmdir() fails in the
case of a directory with no preceding path information.  E.g.,


was failing because there was no internal translation to foo.dir
before passing it to SYS$ERASE.

Moreover, even if there were something wrong with adding .DIR;1,
it has nothing to do with EFS.

11 years agofilelify shouldn't always escape dots.
Craig A. Berry [Sat, 28 Jan 2012 14:59:09 +0000 (08:59 -0600)]
filelify shouldn't always escape dots.

Follow-up to a9fac63d75d9222a73fbf511ca58ae1d66cbf9a7.  It turns
out that the CRTL doesn't handle the escapes when the path is in
Unix syntax (even though it requires them in native syntax).


is ok, but


fails.  So skip the escaping if there is a slash anywhere in the