This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
11 years agoCannot portably split on $Config{path_sep} -- use quotemeta($Config{path_sep}).
Craig A. Berry [Tue, 2 Mar 2010 00:56:45 +0000 (18:56 -0600)]
Cannot portably split on $Config{path_sep} -- use quotemeta($Config{path_sep}).

Broken in fc5e5837c991d3d3224259ff5c1d728d4e0636e2.

On VMS we were getting:

$ perl -"MConfig" -e "print join('+',split $Config{path_sep}, 'foo|bar|baz');"
f+o+o+|+b+a+r+|+b+a+z

which is a *lot* more pieces than we want.  What was intended was:

$ perl -"MConfig" -e "print join('+',split quotemeta($Config{path_sep}), 'foo|bar|baz');"
foo+bar+baz

No version bump as this is test infrastructure and 1.55 has not been
released outside of development releases of blead.

11 years agoNote this doesn't work: $re = "\\N{...}"; /$re/
Karl Williamson [Sun, 28 Feb 2010 15:48:33 +0000 (08:48 -0700)]
Note this doesn't work: $re = "\\N{...}"; /$re/

11 years agoDocument some re bugs in perlre.pod
Karl Williamson [Fri, 26 Feb 2010 03:45:11 +0000 (20:45 -0700)]
Document some re bugs in perlre.pod

11 years agoDocument 5.8 regression #72998 in delta
Karl Williamson [Fri, 26 Feb 2010 03:44:04 +0000 (20:44 -0700)]
Document 5.8 regression #72998 in delta

11 years agoDocument parsing changes for [perl #56444] patch
Karl Williamson [Fri, 26 Feb 2010 02:38:15 +0000 (19:38 -0700)]
Document parsing changes for [perl #56444] patch

11 years agoRevise wording about /x caveats
Karl Williamson [Fri, 26 Feb 2010 02:17:57 +0000 (19:17 -0700)]
Revise wording about /x caveats

11 years agoMention \N{U+...} documentation in delta
Karl Williamson [Fri, 26 Feb 2010 02:16:56 +0000 (19:16 -0700)]
Mention \N{U+...} documentation in delta

11 years agoAdd statement about UTF-8 and \N{} to delta
Karl Williamson [Fri, 26 Feb 2010 02:14:30 +0000 (19:14 -0700)]
Add statement about UTF-8 and \N{} to delta

11 years agoDocument Unicode case-insensitive [] range bug
Karl Williamson [Fri, 26 Feb 2010 01:48:50 +0000 (18:48 -0700)]
Document Unicode case-insensitive [] range bug

11 years agoQuote a code example
Karl Williamson [Fri, 26 Feb 2010 01:39:29 +0000 (18:39 -0700)]
Quote a code example

11 years agoAdd deprecation of non-name \N{foo} to delta pod
Karl Williamson [Thu, 25 Feb 2010 23:28:50 +0000 (16:28 -0700)]
Add deprecation of non-name \N{foo} to delta pod

11 years agoRevise notes on /x modifier
Karl Williamson [Thu, 25 Feb 2010 22:03:47 +0000 (15:03 -0700)]
Revise notes on /x modifier

11 years agoMark \N meaning [^\n] as experimental
Karl Williamson [Thu, 25 Feb 2010 21:43:48 +0000 (14:43 -0700)]
Mark \N meaning [^\n] as experimental

11 years agoMention there are places /x modifier is ineffective
Karl Williamson [Thu, 25 Feb 2010 20:41:10 +0000 (13:41 -0700)]
Mention there are places /x modifier is ineffective

11 years agoClarify perlrebackslash.pod
Karl Williamson [Thu, 25 Feb 2010 19:49:31 +0000 (12:49 -0700)]
Clarify perlrebackslash.pod

11 years agoNote existence (and warn against using) \N{U+c1.c2...}
Karl Williamson [Thu, 25 Feb 2010 19:48:12 +0000 (12:48 -0700)]
Note existence (and warn against using) \N{U+c1.c2...}

11 years agoNote that \N{U+...} forces character semantics
Karl Williamson [Thu, 25 Feb 2010 19:36:53 +0000 (12:36 -0700)]
Note that \N{U+...} forces character semantics

11 years agoDocument \N{U+...}
Karl Williamson [Thu, 25 Feb 2010 19:35:14 +0000 (12:35 -0700)]
Document \N{U+...}

11 years agoMention \N{U+...} in perlunicode.pod
Karl Williamson [Thu, 25 Feb 2010 19:31:12 +0000 (12:31 -0700)]
Mention \N{U+...} in perlunicode.pod

11 years agoUpdate documentation
Karl Williamson [Thu, 25 Feb 2010 19:25:04 +0000 (12:25 -0700)]
Update documentation

List known bugs, mention new meaning of \N

11 years agoUpdate pods for \N changes
Karl Williamson [Wed, 24 Feb 2010 00:33:35 +0000 (17:33 -0700)]
Update pods for \N changes

11 years agoUpdate charnames documentations for \N changes, bugs
Karl Williamson [Wed, 24 Feb 2010 00:31:48 +0000 (17:31 -0700)]
Update charnames documentations for \N changes, bugs

\N has a possible new meaning, and mention bug reports filed against
charnames

11 years agoClarify sv.c API wording.
Karl Williamson [Tue, 23 Feb 2010 04:43:35 +0000 (21:43 -0700)]
Clarify sv.c API wording.

11 years agofix for [perl #72604] @DB::args and win32 fork
David Mitchell [Sun, 28 Feb 2010 15:13:33 +0000 (15:13 +0000)]
fix for [perl #72604] @DB::args and win32 fork

A previous fix for [perl #66108] (7fa38291524c327a3cb23bfe94979e1537743cac)
stopped cloning PL_dbargs, on the grounds that it was usually filled with
garbage (it contains an un-refcounted copy of @_'s elements; once the
function has returned, these may have been freed or reassigned). However,
the fix instead recreated PL_dbargs as a new empty AV that *wasn't* then
associated with the DB::args glob; so modifications to PL_dbargs weren't
seen via @DB::args.

The fix is to simply set it to null when cloning; pp_caller() will
recreate it again if necessary when it is needed.

11 years agobytes.pm: downgrade DEPRECATED to NOTICE
David Mitchell [Fri, 26 Feb 2010 12:50:21 +0000 (12:50 +0000)]
bytes.pm: downgrade DEPRECATED to NOTICE

11 years agoTypo fix
Rafael Garcia-Suarez [Thu, 25 Feb 2010 07:21:07 +0000 (08:21 +0100)]
Typo fix

11 years agomore prose fixups to bytes.pm deprecation warning
David Mitchell [Wed, 24 Feb 2010 22:41:09 +0000 (22:41 +0000)]
more prose fixups to bytes.pm deprecation warning

(suggested by Dr.Rudd)

11 years agoTeach bump-perl-version about additional perl511 references in makedef.pl.
Jan Dubois [Tue, 23 Feb 2010 20:48:58 +0000 (12:48 -0800)]
Teach bump-perl-version about additional perl511 references in makedef.pl.

The previous version also missed 2 instances in win32/makefile.mk because
they were written as "perl511$(a)" instead of "perl511.o".

11 years agoRegression test for 34394ecd - SVs that were only on the tmps stack leaked.
Nicholas Clark [Tue, 23 Feb 2010 14:23:31 +0000 (14:23 +0000)]
Regression test for 34394ecd - SVs that were only on the tmps stack leaked.

11 years agoSymbol S_no_symref_sv should be static (local to the compilation unit).
Jan Dubois [Tue, 23 Feb 2010 08:54:46 +0000 (00:54 -0800)]
Symbol S_no_symref_sv should be static (local to the compilation unit).

11 years agoTeach bump-perl-version about perl511.dll, perl511.lib and perl511s.lib
Jan Dubois [Tue, 23 Feb 2010 02:27:13 +0000 (18:27 -0800)]
Teach bump-perl-version about perl511.dll, perl511.lib and perl511s.lib

11 years agoUpdate the release managers' guide: don't push the tag too soon!
Steve Hay [Mon, 22 Feb 2010 23:24:59 +0000 (23:24 +0000)]
Update the release managers' guide: don't push the tag too soon!

Remind release managers not to push a new tag until the indexing of
the new uploads has been successful. A problem with indexing 5.11.5
meant that we nearly ended up with 5.11.6 instead, since the 5.11.5
tag had already been pushed.

11 years agofix prose from previous lib/bytes.pm doc update
David Mitchell [Mon, 22 Feb 2010 17:19:43 +0000 (17:19 +0000)]
fix prose from previous lib/bytes.pm doc update

11 years agoBetter explain utf8::upgrade/downgrade/encode/decode
David Mitchell [Mon, 22 Feb 2010 16:44:59 +0000 (16:44 +0000)]
Better explain utf8::upgrade/downgrade/encode/decode

Try to make it clear what each does, and the fact that upgrade/downgrade
don't change the logical string value while encode/decode do.

11 years agodeprecate bytes.pm
David Mitchell [Mon, 22 Feb 2010 15:25:16 +0000 (15:25 +0000)]
deprecate bytes.pm

11 years agoBram pointed out the new tests hang if the fix for #72878 isn't in place.
Abigail [Mon, 22 Feb 2010 14:36:50 +0000 (15:36 +0100)]
Bram pointed out the new tests hang if the fix for #72878 isn't in place.
This commits traps the recursion and throws an exception.

11 years agoAnother minor update to the release managers' guide
Steve Hay [Mon, 22 Feb 2010 12:35:45 +0000 (12:35 +0000)]
Another minor update to the release managers' guide

11 years agoDon't multiply define Perl_regcurly in core and the re extension.
Craig A. Berry [Mon, 22 Feb 2010 04:26:15 +0000 (22:26 -0600)]
Don't multiply define Perl_regcurly in core and the re extension.

Broken in ff3f963aa0f95ea53996b6a3842b824504b57c79.

11 years agostop skipping ext/Fcntl/t/syslfs.t
David Mitchell [Sat, 20 Feb 2010 21:01:11 +0000 (21:01 +0000)]
stop skipping ext/Fcntl/t/syslfs.t

Since the module reorganisation and now that tests run cd'ed to
ext/Fcntl, expecting to run ../perl no longer works.
Also, for the benefit of future generations, make the inability
to find perl a failure rather than a skip, with a more relevant error
message.

11 years agostop cpan/Memoize/t/tie_ndbm.t being skipped
David Mitchell [Sat, 20 Feb 2010 20:03:54 +0000 (20:03 +0000)]
stop cpan/Memoize/t/tie_ndbm.t being skipped

Back in 2006, 0b40f9f8cf631862db10aed9706454c7518fef19 added a skip check
for $ENV{TMP} being writeable. This test failed if $TMP wasn't set, but
also, since then this test script has been updated to write its temp files
to the current dir rather than /tmp, so the TMP check is redundant, and is
now removed.

11 years agostop op/groups.t skipping on Linux
David Mitchell [Sat, 20 Feb 2010 19:34:05 +0000 (19:34 +0000)]
stop op/groups.t skipping on Linux

My linux (with selinux) includes a "context=" field as part of the
output of "id -a". Make the extraction of the "groups=(.+)" entry
of "id -a" more robust in the presence of unpredictable (in name and
ordering) fields, by splitting on fieldname=(.*), then looking for a field
name of 'groups'.

11 years agoSys-Syslog/t/constants.t couldn't find macros.all
David Mitchell [Sat, 20 Feb 2010 16:02:58 +0000 (16:02 +0000)]
Sys-Syslog/t/constants.t couldn't find macros.all

The move from ext/ to cpan/ hadn't been reflected in the pathname
of macros.all. However, since tests are now run from the src dir,
the whole $ENV{PERL_CORE} bit is no longer necessary.
(Note that this line has already been modified from the CPAN version,
so a further change to it doesn't really matter as regards maintaining
sync with CPAN).

11 years agoUpdate Porting/release_managers_guide.pod and Porting/makerel
Steve Hay [Sun, 21 Feb 2010 20:30:34 +0000 (20:30 +0000)]
Update Porting/release_managers_guide.pod and Porting/makerel

In the course of releasing perl-5.11.5 I found a few things that are not
quite correct or no longer relevant:

- Add comments on the problems with doing this on Win32
- There are no longer Roman numerals in README.vms (since eb505c2afb6b5ac2aaba7935878ae6494d44732a)
- Note that Module::CoreList's Changes and META.yml files need updating too
- Fix Porting/makerel's null device redirection

One bigger problem remains to be resolved: when run in a normal cmd.exe
shell on Win32, the Porting/makerel script currently generates tarballs
containing world-writable files and directories, which the PAUSE indexer
then rejects as a possible security risk.

11 years agoFix the NAME in two old perlXYZdelta.pod files
Steve Hay [Sun, 21 Feb 2010 19:44:23 +0000 (19:44 +0000)]
Fix the NAME in two old perlXYZdelta.pod files

11 years agoCreate perl5116delta and update other versions
Steve Hay [Sun, 21 Feb 2010 19:43:45 +0000 (19:43 +0000)]
Create perl5116delta and update other versions

11 years agoStop pod/buildtoc from changing EOLs on Win32
Steve Hay [Sun, 21 Feb 2010 19:41:49 +0000 (19:41 +0000)]
Stop pod/buildtoc from changing EOLs on Win32

11 years agoMerge branch 'tie-scalar' into blead
Abigail [Sun, 21 Feb 2010 16:28:39 +0000 (17:28 +0100)]
Merge branch 'tie-scalar' into blead

11 years agoUpdate future release schedule
Steve Hay [Sun, 21 Feb 2010 16:20:46 +0000 (16:20 +0000)]
Update future release schedule

Put myself down for another release. Hopefully we can get Porting/makerel
and/or the PAUSE indexer sorted out before then to avoid the trouble
experienced rolling perl-5.11.5 from Win32 :-)

11 years agoUpped VERSION
Abigail [Sun, 21 Feb 2010 16:13:27 +0000 (17:13 +0100)]
Upped VERSION

11 years agoSince change 9c901649534a1360, vendorlib_stem isn't always added to @INC.
Nicholas Clark [Sun, 21 Feb 2010 14:46:27 +0000 (14:46 +0000)]
Since change 9c901649534a1360, vendorlib_stem isn't always added to @INC.

Update lib/Config.t to reflect this.

vendorlib_stem used always to be added if defined. Since that change it is only
added if inc_version_list is also defined, which makes "vendor" behaviour
consistent with "site", where sitelib_stem had always only ever been added to
@INC if inc_version_list is defined.

11 years agoFinal update to perl5115delta.pod v5.11.5
Steve Hay [Sat, 20 Feb 2010 21:08:25 +0000 (21:08 +0000)]
Final update to perl5115delta.pod

11 years agoRecord Perl 5.11.5 and a new pumpkin keeper in perlhist
Steve Hay [Sat, 20 Feb 2010 18:34:56 +0000 (18:34 +0000)]
Record Perl 5.11.5 and a new pumpkin keeper in perlhist

11 years agoFix Module::CoreList's own $VERSION in 5.11.4
Steve Hay [Sat, 20 Feb 2010 18:21:13 +0000 (18:21 +0000)]
Fix Module::CoreList's own $VERSION in 5.11.4

11 years agoUpdate Module::CoreList for Perl 5.11.5
Steve Hay [Sat, 20 Feb 2010 18:20:18 +0000 (18:20 +0000)]
Update Module::CoreList for Perl 5.11.5

11 years agoDon't recurse forever if both new() and TIESCALAR() are missing.
Abigail [Sat, 20 Feb 2010 17:55:06 +0000 (18:55 +0100)]
Don't recurse forever if both new() and TIESCALAR() are missing.

This should fix issue #72878. Before calling $pkg -> new in TIESCALAR,
we check whether $pkg -> new is actually the new defined in the Tie::Scalar
package; if true, croak instead of calling it.

11 years agoDocument differences between Tie::Scalar and Tie::StdScalar
Abigail [Sat, 20 Feb 2010 17:54:15 +0000 (18:54 +0100)]
Document differences between Tie::Scalar and Tie::StdScalar

11 years agoMissed a version bump in README.vms
Steve Hay [Sat, 20 Feb 2010 16:55:22 +0000 (16:55 +0000)]
Missed a version bump in README.vms

11 years agoBump version to 5.11.5
Steve Hay [Sat, 20 Feb 2010 16:28:04 +0000 (16:28 +0000)]
Bump version to 5.11.5

11 years agoStop Porting/bump-perl-version from changing EOLs on Win32
Steve Hay [Sat, 20 Feb 2010 16:22:41 +0000 (16:22 +0000)]
Stop Porting/bump-perl-version from changing EOLs on Win32

11 years agoAlmost the final updates to perl5115delta.pod
Steve Hay [Sat, 20 Feb 2010 15:41:36 +0000 (15:41 +0000)]
Almost the final updates to perl5115delta.pod

11 years agoUpdate Porting/Maintainers.pl with version bumps that have been forgotten
Steve Hay [Sat, 20 Feb 2010 15:40:52 +0000 (15:40 +0000)]
Update Porting/Maintainers.pl with version bumps that have been forgotten

This should also bump version to 0.82, but only 0.80 is actually on CPAN.
Likewise, Pod::Perldoc should say 3.15_02, but only 3.15_01 is on CPAN.

11 years agounTODO some passing TODO tests in reg_fold.t
David Mitchell [Sat, 20 Feb 2010 15:41:38 +0000 (15:41 +0000)]
unTODO some passing TODO tests in reg_fold.t

As far as I can tell these particular tests were never actually TODO,
but were lumped in with other failing tests for ease of coding the .t file

11 years agoFix apidoc for HeUTF8()
Marcus Holland-Moritz [Sat, 20 Feb 2010 14:33:05 +0000 (15:33 +0100)]
Fix apidoc for HeUTF8()

HeUTF8() onlu takes one argument.

11 years agoUpdate perl5115delta.pod with new diagnostics
Steve Hay [Sat, 20 Feb 2010 12:00:30 +0000 (12:00 +0000)]
Update perl5115delta.pod with new diagnostics

11 years agoPATCH: deprecation warnings for unreasonable charnames
Karl Williamson [Sat, 20 Feb 2010 06:53:36 +0000 (23:53 -0700)]
PATCH: deprecation warnings for unreasonable charnames

Prior to now just about anything has been legal for a character name in
\N{...}.  This means that legal code was broken by having \N{3,4} for
example mean [^\n]{3,4}.  Such code doesn't come from standard
charnames, but from legal custom translators.

This patch deprecates "unreasonable" names.  handy.h is changed by the
addition of macros that taken together define the names we deem
reasonable,  namely alpha beginning with alphanumerics and some
punctuations as continuations.

toke.c is changed to parse each name and to raise a warning if any
problematic characters are found.

Some tests and diagnostic documentation are also included.

11 years agoImprove handling of qq(\N{...}); and /x
Karl Williamson [Fri, 19 Feb 2010 21:42:16 +0000 (14:42 -0700)]
Improve handling of qq(\N{...}); and /x

It is possible to bypass the lexer's parsing of \N.  This patch causes
the regex compiler to deal with that better.  The compiler no longer
assumes that the lexer parsed the \N.  It generates an error message if
the \N isn't in a form it is expecting, and invalid hexadecimal digits
are now fatal errors, with the position of the error more clearly
marked.

The diagnostic pod has been updated to reflect the new error messages,
with some slight clarifications to the previous ones as well.

11 years agoAdd some missing dVAR's
Marcus Holland-Moritz [Sat, 20 Feb 2010 10:13:00 +0000 (11:13 +0100)]
Add some missing dVAR's

Commits c3acb9e0760135dfd888c0ee1b415777d784aabc867fa1e2da145229b4db2c6e8d5b51700c15f114
and f0e67a1d29102aa9905aecf2b0f98449697d5af3 added or changed functions that now require a
dVAR declaration to compile with -DPERL_GLOBAL_STRUCT.

11 years agoRegen headers after previous patches
Steve Hay [Sat, 20 Feb 2010 00:49:07 +0000 (00:49 +0000)]
Regen headers after previous patches

11 years agoAdd X flag to embed.fnc entries.
Karl Williamson [Sat, 20 Feb 2010 00:12:20 +0000 (17:12 -0700)]
Add X flag to embed.fnc entries.

It has been pointed out that the E flag should be accompanied by the X
flag, and is not for these recently changed entries.

11 years agoMove some fncs from Public to extensions visible
Karl Williamson [Fri, 19 Feb 2010 22:26:24 +0000 (15:26 -0700)]
Move some fncs from Public to extensions visible

Run
make regen embed.fnc
on this patch.

Several functions are in the public API, but don't need to be.  They are
helpers for the regex engine, and thus need to be visible to extensions
for 'use re "debug"'.

11 years agoMore updates to perl5115delta.pod
Steve Hay [Sat, 20 Feb 2010 00:29:55 +0000 (00:29 +0000)]
More updates to perl5115delta.pod

11 years agoAvoid returning an undefined SV*
Rafael Garcia-Suarez [Fri, 19 Feb 2010 09:53:24 +0000 (10:53 +0100)]
Avoid returning an undefined SV*

11 years agoRegen headers after previous patches
Rafael Garcia-Suarez [Fri, 19 Feb 2010 09:11:43 +0000 (10:11 +0100)]
Regen headers after previous patches

11 years agoMake a missing right brace on \N{ fatal
Karl Williamson [Thu, 18 Feb 2010 22:06:51 +0000 (15:06 -0700)]
Make a missing right brace on \N{ fatal

It was decided that this should be a fatal error instead of a warning.

Also some comments were updated..

11 years agoPATCH: [perl #56444] delayed interpolation of \N{...}
Karl Williamson [Thu, 18 Feb 2010 20:41:09 +0000 (13:41 -0700)]
PATCH: [perl #56444] delayed interpolation of \N{...}

make regen embed.fnc
needs to be run on this patch.

This patch fixes Bugs #56444 and #62056.

Hopefully we have finally gotten this right.  The parser used to handle
all the escaped constants, expanding \x2e to its single byte equivalent.
The problem is that for regexp patterns, this is a '.', which is a
metacharacter and has special meaning that \x2e does not.  So things
were changed so that the parser didn't expand things in patterns.  But
this causes problems for \N{NAME}, when the pattern doesn't get
evaluated until runtime, as for example when it has a scalar reference
in it, like qr/$foo\N{NAME}/.  We want the value for \N{NAME} that was
in effect at the point during the parsing phase that this regex was
encountered in, but we don't actually look at it until runtime, when
these bug reports show that it is gone.  The solution is for the
tokenizer to parse \N{NAME}, but to compile it into an intermediate
value that won't ever be considered a metacharacter.  We have chosen to
compile NAME to its equivalent code point value, and express it in the
already existing \N{U+...} form.  This indicates to the regex compiler
that the original input was a named character and retains the value it
had at that point in the parse.

This means that \N{U+...} now always must imply Unicode semantics for
the string or pattern it appeared in.  Previously there was an
inconsistency, where effectively \N{NAME} implied Unicode semantics, but
\N{U+...} did not necessarily.  So now, any string or pattern that has
either of these forms is utf8 upgraded.

A complication is that a charnames handler can return a sequence of
multiple characters instead of just one.  To deal with this case, the
tokenizer will generate a constant of the form \N{U+c1.c2.c2...}, where
c1 etc are the individual characters.  Perhaps this will be made a
public interface someday, but I decided to not expose it externally as
far as possible for now in case we find reason to change it.  It is
possible to defeat this by passing it in a single quoted string to the
regex compiler, so the documentation will be changed to discourage that.

A further complication is that \N can have an additional meaning: to
match a non-newline.  This means that the two meanings have to be
disambiguated.

embed.fnc was changed to make public the function regcurly() in
regcomp.c so that it could be referred to in toke.c to see if the ... in
\N{...} is a legal quantifier like {2,}.  This is used in the
disambiguation.

toke.c was changed to update some out-dated relevant comments.
It now parses \N in patterns.  If it determines that it isn't a named
sequence, it passes it through unchanged.  This happens when there is no
brace after the \N, or no closing brace, or if the braces enclose a
legal quantifier.  Previously there has been essentially no restriction
on what can come between the braces so that a custom translator can
accept virtually anything.  Now, legal quantifiers are assumed to mean
that the \N is a "match non-newline that quantity of times".

I removed the #ifdef'd out code that had been left in in case pack U
reverted to earlier behavior.  I did this because it complicated things,
and because the change to pack U has been in long enough and shown that
it is correct so it's not likely to be reverted.

\N meaning a named character is handled differently depending on whether
this is a pattern or not.  In all cases, the output will be upgraded to
utf8 because a named character implies Unicode semantics.  If not a
pattern, the \N is parsed into a utf8 string, as before.  Otherwise it
will be parsed into the intermediate \N{U+...} form.  If the original
was already a valid \N{U+...} constant, it is passed through unchanged.

I now check that the sequence returned by the charnames handler is not
malformed, which was lacking before.

The code in regcomp.c which dealt with interfacing with the charnames
handler has been removed.  All the values should be determined by the
time regcomp.c gets involved.  The affected subroutine is necessarily
restructured.

An EXACT-type node is generated for the character sequence.  Such a node
has a capacity of 255 bytes, and so it is possible to overflow it.  This
wasn't checked for before, but now it is, and a warning issued and the
overflowing characters are discarded.

11 years agoUpdate perldelta for 5.12 to warn vendors about deprecate.pm
Jesse Vincent [Thu, 18 Feb 2010 19:03:23 +0000 (11:03 -0800)]
Update perldelta for 5.12 to warn vendors about deprecate.pm

(See [perl #72670])

11 years agort #72866 - add magic to arrayrefs assigned to *Foo::ISA
Tony Cook [Thu, 18 Feb 2010 09:59:33 +0000 (20:59 +1100)]
rt #72866 - add magic to arrayrefs assigned to *Foo::ISA

The fix for rt #60220 (26d68d86) updated the isa cache when an
arrayref was assigned to some *ISA, but didn't add the magic to the
new @ISA to catch any further updates to it.  Add the magic, and
tests.

11 years agoAvoid a panic from the UTF-8 length cache if the length overflows 32 bits.
Nicholas Clark [Thu, 18 Feb 2010 15:38:11 +0000 (15:38 +0000)]
Avoid a panic from the UTF-8 length cache if the length overflows 32 bits.

Rather than storing a value, and having it wrap to a wrong value, treat such
lengths as "still unknown". This is a work around until a proper solution is
designed an implemented.

11 years agoIn Perl_reg_temp_copy(), ensure SvMAGIC() is NULL in the new REGEXP.
Nicholas Clark [Thu, 18 Feb 2010 15:23:49 +0000 (15:23 +0000)]
In Perl_reg_temp_copy(), ensure SvMAGIC() is NULL in the new REGEXP.

Change c2123ae380a372d5 exposed the fact that Perl_reg_temp_copy() didn't
reset SvMAGIC() to NULL after block copying the "parent" regexp. The analagous
problem with SvSTASH() was fixed with change b9ad13acb338e137.

11 years agoKeep perl5115delta.pod up to date
Steve Hay [Thu, 18 Feb 2010 09:46:59 +0000 (09:46 +0000)]
Keep perl5115delta.pod up to date

11 years agoUpgrade podlators from 2.3.0 to 2.3.1
Steve Hay [Thu, 18 Feb 2010 09:46:16 +0000 (09:46 +0000)]
Upgrade podlators from 2.3.0 to 2.3.1

Ensures that all $VERSIONs are bumped in files that have changed since
Perl 5.11.4.

11 years agoUpdate perl5115delta.pod with today's changes
Steve Hay [Thu, 18 Feb 2010 00:28:17 +0000 (00:28 +0000)]
Update perl5115delta.pod with today's changes

11 years agoUpgrade CPAN from 1.94_55 to 1.94_56
Steve Hay [Thu, 18 Feb 2010 00:17:57 +0000 (00:17 +0000)]
Upgrade CPAN from 1.94_55 to 1.94_56

Ensures that all $VERSIONs are bumped in files that have changed since
Perl 5.11.4.

11 years agoMerge branch 'pod-perlrepository' of git://github.com/avar/perl into blead
Jesse Vincent [Wed, 17 Feb 2010 15:31:58 +0000 (07:31 -0800)]
Merge branch 'pod-perlrepository' of git://github.com/avar/perl into blead

* 'pod-perlrepository' of git://github.com/avar/perl:
  Mention why it's a good idea to use topic branches for everything
  Adjusted the git config user.name/user.email example for what 99% of users would like to do
  Prefix commands universally with "%". Most of the POD used that convention but a few cases didn't
  Don't recommend that people manually fiddle with their F<.git/config>, instead they should edit it with L<git-config(1)>
  Note that checking out from git via http:// is at least 4x slower than git://

11 years agoMake the new Socket implementation of inet_pton consistent with the existing Socket6...
Jesse Vincent [Wed, 17 Feb 2010 14:45:30 +0000 (06:45 -0800)]
Make the new Socket implementation of inet_pton consistent with the existing Socket6 implementation of inet_pton.

Fix for release-blocking ticket [perl #72884]

> |https://rt.cpan.org/Ticket/Display.html?id=52497|4411113f|NJH/IO-Socket-Multicast6-0.03.tar.gz   |

I'll describe what's happening here, and leave it to everyone else to decide
which of the interacting events is the bug, or where the fix might be.

So the *entire* change is this:

commit 4411113f31b3f00171bb335092b02104d29d7cd7
Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Date:   Fri Mar 27 13:19:16 2009 +0100

    Add inet_pton and inet_ntop to the list of functions exported by Socket

diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm
index 6b268ef..7d130ba 100644
--- a/ext/Socket/Socket.pm
+++ b/ext/Socket/Socket.pm
@@ -198,6 +198,7 @@ use XSLoader ();
 @ISA = qw(Exporter);
 @EXPORT = qw(
        inet_aton inet_ntoa
+       inet_pton inet_ntop
        sockaddr_family
        pack_sockaddr_in unpack_sockaddr_in
        pack_sockaddr_un unpack_sockaddr_un

and test fails like this:

$  /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/bin/perl5.11.4 -Mblib t/35mcastsend.t
1..11
Constant subroutine IO::Socket::Multicast6::AF_INET6 redefined at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64.
 at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10
Prototype mismatch: sub IO::Socket::Multicast6::AF_INET6 () vs none at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64.
 at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10
Constant subroutine IO::Socket::Multicast6::PF_INET6 redefined at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64.
 at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10
Prototype mismatch: sub IO::Socket::Multicast6::PF_INET6 () vs none at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64.
 at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10
ok 1 - use IO::Socket::Multicast6;
ok 2 - Create IPv4 multicast socket
ok 3 - Combined IPv4 destination address and port
ok 4 - Separate IPv4 destination address and port
Bad arg length for Socket::pack_sockaddr_in, length is 16, should be 4 at t/35mcastsend.t line 26.

The warnings aren't actually really relevant. The "problem"s are:

IO::Socket::Multicast6 isa IO::Socket::INET6
IO::Socket::INET6 isa IO::Socket

so they chose to inherit all behaviour from IO::Socket. In turn

IO::Socket isa IO::Handle isa Exporter.

IO::Socket chooses to export everything that Socket does:

sub import {
    my $pkg = shift;
    if (@_ && $_[0] eq 'sockatmark') { # not very extensible but for now, fast
Exporter::export_to_level('IO::Socket', 1, $pkg, 'sockatmark');
    } else {
my $callpkg = caller;
Exporter::export 'Socket', $callpkg, @_;
    }
}

So, this means that all those choices and delegation of behaviour (and
responsibility) means that all those modules export whatever Socket exports.
OO modules.

So, now they also export inet_pton and inet_ntop.

The test is careful to only import what it needs:

use strict;
use Socket6 qw/ inet_pton pack_sockaddr_in6/;
use Socket qw/  pack_sockaddr_in /;
use Test::More tests => 11;

in particular, it wants inet_pton from Socket6, and only pack_sockaddr_in
from Socket. So at that point, main::inet_pton is Socket6::inet_pton

Then it does this, correctly in a BEGIN block:

BEGIN { use_ok( 'IO::Socket::Multicast6' ); }

The side effect of this is to import all exports from IO::Socket::Multicast6.
Which, from the above chain of inheritance, is @Socket::EXPORT.

So at this point, main::inet_pton is rebound to Socket::inet_pton

And the test fails, because they differ, and it expected (and wanted)
Socket6::inet_pton(). Socket6::inet_pton() returns 4 bytes for AF_INET, 16
bytes for AF_INET6. Socket::inet_pton() returns 16 for both.
Socket::pack_sockaddr_in() wants 4 bytes.

Now, to add to the fun:

    use IO::Socket::Multicast6 ();

and

    use IO::Socket::Multicast6;

of course mean different things. The former suppresses all exports.
It turns out that with Test::More::isa_ok() has no way of doing the former:

$ cat use_ok.pl

use warnings;
use strict;

use Test::More tests => 3;

package clash;

BEGIN { main::use_ok 'Socket' };

package crunch;

BEGIN { main::use_ok 'Socket', () };

package biff;

BEGIN { main::use_ok 'Socket', 'sockaddr_family' };

package main;

sub dump_lowercase_keys {
    my $package = shift;

    print "For package $package:\n";

    no strict 'refs';
    print "    $_\n" foreach sort grep {!tr/A-Z//} keys %{"${package}::"};

    print "\n";
}

dump_lowercase_keys $_ foreach qw (clash crunch biff);
__END__

$ perl use_ok.pl
1..3
ok 1 - use Socket;
ok 2 - use Socket;
ok 3 - use Socket;
For package clash:
    inet_aton
    inet_ntoa
    pack_sockaddr_in
    pack_sockaddr_un
    sockaddr_family
    sockaddr_in
    sockaddr_un
    unpack_sockaddr_in
    unpack_sockaddr_un

For package crunch:
    inet_aton
    inet_ntoa
    pack_sockaddr_in
    pack_sockaddr_un
    sockaddr_family
    sockaddr_in
    sockaddr_un
    unpack_sockaddr_in
    unpack_sockaddr_un

For package biff:
    sockaddr_family

So, there's no clean way to rewrite that test with use_ok to suppress imports.

So, to summarise, it's due to

A cascade of modules blindly exporting everything that Socket exports
Socket::inet_pton() and Socket6::inet_pton() differing in behaviour
A test that fails to realise that it's importing everything via use_ok

This one ranks as blocker because:

    Socket::inet_pton() and Socket::inet_ntop() are not in any stable release

    Hence we have the option to change them if we do it *NOW*.

I think that the right fix is the appended patch. This makes the new Socket
implementation of inet_pton consistent with the existing Socket6
implementation of inet_pton.

11 years agoDocumentation fix in perldoc's usage statement. (-A -> -v)
Offer Kaye [Wed, 17 Feb 2010 14:37:10 +0000 (06:37 -0800)]
Documentation fix in perldoc's usage statement.  (-A -> -v)

Reported in: <5694251002150108m12a3d68flb196f14a45103149@mail.gmail.com>

11 years agoChange my email address from work to home
Steve Hay [Wed, 17 Feb 2010 09:27:51 +0000 (09:27 +0000)]
Change my email address from work to home

11 years agoKeep perl5115delta.pod up to date
Steve Hay [Tue, 16 Feb 2010 23:23:55 +0000 (23:23 +0000)]
Keep perl5115delta.pod up to date

11 years agoMention why it's a good idea to use topic branches for everything
Ævar Arnfjörð Bjarmason [Tue, 16 Feb 2010 18:19:18 +0000 (18:19 +0000)]
Mention why it's a good idea to use topic branches for everything

Most of this is derived from Dan Golden's E-Mail to me on
perl5-porters with the subject "[PATCH] Add comments to gv.c about
variable implementation" where I'd submitted a patch without using a
topic branch.

11 years agoAdjusted the git config user.name/user.email example for what 99% of users would...
Ævar Arnfjörð Bjarmason [Tue, 16 Feb 2010 17:46:46 +0000 (17:46 +0000)]
Adjusted the git config user.name/user.email example for what 99% of users would like to do

Almost nobody wants to set user.name/user.email on a per-repository
basis as the previous example suggested. I put in a new example that
shows how to use C<git config --global> along with an example of how
to set user.email just for F<perl-git>

I replaced Leon Brocard's name with mine because he didn't fit into
the multiple E-Mail address example and I couldn't think of another
example.

11 years agoPrefix commands universally with "%". Most of the POD used that convention but a...
Ævar Arnfjörð Bjarmason [Tue, 16 Feb 2010 17:36:58 +0000 (17:36 +0000)]
Prefix commands universally with "%". Most of the POD used that convention but a few cases didn't

11 years agoDon't recommend that people manually fiddle with their F<.git/config>, instead they...
Ævar Arnfjörð Bjarmason [Tue, 16 Feb 2010 17:33:43 +0000 (17:33 +0000)]
Don't recommend that people manually fiddle with their F<.git/config>, instead they should edit it with L<git-config(1)>

11 years agoFix another place where I typoed book's name
Jesse Vincent [Tue, 16 Feb 2010 17:28:01 +0000 (09:28 -0800)]
Fix another place where I typoed book's name

11 years agoDoc fix. Thanks to Bram.
Jesse Vincent [Tue, 16 Feb 2010 17:26:30 +0000 (09:26 -0800)]
Doc fix. Thanks to Bram.

11 years agoNote that checking out from git via http:// is at least 4x slower than git://
Ævar Arnfjörð Bjarmason [Tue, 16 Feb 2010 17:23:25 +0000 (17:23 +0000)]
Note that checking out from git via  is at least 4x slower than git://

Tested on a 10 MiB/s connection in London, although this is also
IO/CPU bound since Git needs to resolve deltas and check out after the
repository has made it across the wire.

11 years agoFix #72850 - reading $! shouldn't SEGV if Strerror(errno) returns NULL.
Nicholas Clark [Tue, 16 Feb 2010 16:16:33 +0000 (16:16 +0000)]
Fix #72850 - reading $! shouldn't SEGV if Strerror(errno) returns NULL.

This can happen on some OSes for out of range errno values. The bug was
introduced with 0097b436152452e4, which in turn fixed #61976.

Test case by Steve Peters.

11 years ago$name =~ /Phill?ipp?e?/ && $name eq "Philippe" # FAIL
Philippe Bruhat (BooK) [Tue, 16 Feb 2010 16:16:47 +0000 (17:16 +0100)]
$name =~ /Phill?ipp?e?/ && $name eq "Philippe" # FAIL

11 years agoAdded a sucker for the August 20 release
Jesse Vincent [Tue, 16 Feb 2010 16:06:01 +0000 (08:06 -0800)]
Added a sucker for the August 20 release

11 years agoUpdated release schedule through July 2010
Jesse Vincent [Tue, 16 Feb 2010 15:40:08 +0000 (07:40 -0800)]
Updated release schedule through July 2010

11 years agoRemove unused variable
H.Merijn Brand [Tue, 16 Feb 2010 11:15:11 +0000 (12:15 +0100)]
Remove unused variable