Craig A. Berry [Sat, 12 Jan 2013 22:30:17 +0000 (16:30 -0600)]
Simplify ExtUtils::Install::_can_write_dir on VMS.
This reverts the code (but not test) portions of
3d55b451d9544fb.
The old solution of using catdir rather than a combination of
catdir and catpath works with and without extended filespecs
enabled, so there's no reason to maintain two versions, and thus
no reason to have all the boilerplate feature checking code at
the beginning of the module.
David Mitchell [Sat, 12 Jan 2013 10:26:15 +0000 (10:26 +0000)]
include SvREADONLY() in SvIMMORTAL() test
SvIMMORTAL() is currently defined as
((sv)==&PL_sv_undef || (sv)==&PL_sv_yes
|| (sv)==&PL_sv_no || (sv)==&PL_sv_placeholder)
Which is relatively slow. Some places do this:
if (SvREADONLY(sv) && SvIMMORTAL(sv)) ...
which quickly rejects most times.
This commit simply moves the SvREADONLY test into the SvIMMORTAL macro
so that *all* uses benefit from this speedup.
Karl Williamson [Sat, 12 Jan 2013 15:48:01 +0000 (08:48 -0700)]
perlapi: Clarify av_pop
This notes that the caller now has control of a reference count of the
returned SV.
Wording mostly suggested by Paul Evans
Karl Williamson [Fri, 11 Jan 2013 21:29:29 +0000 (14:29 -0700)]
Allow slop on a few locale tests
Four recently introduced tests in locale.t fail for two locales of all
the ones that get tested in our smoke farm. I investigated the failures
and it looks to me like the problem in each case is that the locale
definition is defective.
The tests were added because of finding and fixing a bug in Perl, so I
don't want to remove them. Instead these 4 tests will be marked as TODO
if at least 95% of locales pass on any given machine.
This works for our current smokers.
Aaron Crane [Sat, 12 Jan 2013 15:34:43 +0000 (15:34 +0000)]
perlre: fix typo
Nicholas Clark [Sat, 12 Jan 2013 10:45:26 +0000 (11:45 +0100)]
In S_regatom(), set flags to 0 at the start.
Without this, flags will be read uninitialised for the execution path that
ends up with "Internal urp". (Although it's not clear that that error message
is ever reachable.)
The bug was introduced in perl 5.000, which added (?#) comments and (?m)
style embedding flags. It's not present in alpha 9.
Karl Williamson [Fri, 11 Jan 2013 18:51:18 +0000 (11:51 -0700)]
Merge branch 'sets' into blead
This branch adds the experimental regular expression (?[ ]) feature.
Details are in the individual commit messages.
Karl Williamson [Fri, 11 Jan 2013 18:17:32 +0000 (11:17 -0700)]
Add back-compat (?[ ]) tests
This adds testing of (?[ ]), using the same tests, t/re/re_tests<
as are used by many of the regular expression .t files. Basically, it
converts the [bracketed] character classes in these tests to the new
syntax and verifies that they work there.
Some tests won't work in one or the other, and the capability to skip
depending on the .t is added
Karl Williamson [Fri, 11 Jan 2013 00:14:40 +0000 (17:14 -0700)]
reg_mesg.t: Test messages from (?[ ])
Karl Williamson [Fri, 11 Jan 2013 00:06:04 +0000 (17:06 -0700)]
New regex experimental feature: (?[ ])
This is a fancier [bracketed] character class which allows set
operations, such as intersection and subtraction. The entry in perlre
for this commit details its operation.
Besides extending regular expressions to handle this functionality,
recommended by Unicode, the intent here is to do three things:
1) Intersection has been simulated by regexes using zero-width
look-around assertions, which are non-obvious. This allows replacing
those with a more powerful and clearer syntax; the compiled regexes
are smaller and faster. Everything is known at compile time.
2) Set operations have also been simulated by using user-defined Unicode
properties. These are globals, have security implications,
restricted names, and d don't allow as complex expressions as this
new feature.
3) I hope that this feature will come to be viewed as a "better"
bracketed character class. I took advantage of the fact that there
is no embedded base to have to be compatibile with to forbid certain
iffy practices with the existing ones, while remaining mostly
backwards compatible. The main difference is that /x is always
enabled, so white space can be pretty much freely used with these,
but to specify a match on white space, it must be escaped. Things
that should have been illegal are, such as \x{}, and \x{abcdefghi}.
Things that look like a posix specifier but don't quite meet the
rules now give an error instead of silently compiling. e.g., [:digit]
is an error instead of the union of the characters that compose it.
I may have omitted things; perhaps it should be an error to have the
same letter occur twice, adjacent. Since this is experimental, we
can make such changes based on field feed back.
The intent is to keep this feature, since it is strongly recommended by
Unicode. The exact syntax is subject to change, so is experimental.
Karl Williamson [Thu, 10 Jan 2013 23:59:33 +0000 (16:59 -0700)]
regcomp.c: White-space only
Indents to newly formed blocks
Karl Williamson [Thu, 10 Jan 2013 23:42:19 +0000 (16:42 -0700)]
regcomp.c: Add capability for regclass() to return inversion list
This is currently unused, but will have regclass() return an inversion
list instead of a node.
Karl Williamson [Thu, 10 Jan 2013 23:36:05 +0000 (16:36 -0700)]
regcomp.c: Add capability for ignoring white space inside []
This is currently unused, but allows pattern white space to be used
inside [bracketed] character classes. When this is on, literal white
space must be escaped by a preceding backslash to be counted.
Karl Williamson [Thu, 10 Jan 2013 23:06:53 +0000 (16:06 -0700)]
regcomp.c: Add capability for stricter parsing of []
This adds the capability, currently unused, of forbidding certain things
in [bracketed] character classes. Included are things that warn bug
still compile, such as false ranges, [\d-\w], and unrecognized escapes.
Also forbidden are potentially ambiguous cases where \x (without braces)
isn't followed by exactly two hex digits, or \000 where the number of
octal digits isn't precisely three.
Karl Williamson [Thu, 10 Jan 2013 22:47:24 +0000 (15:47 -0700)]
regcomp.c: Add capability for strict [:posix:]
This adds a parameter to regpposixcc() to enforce stricter rules on the
posix class syntax. It is currently unused
Karl Williamson [Thu, 10 Jan 2013 22:42:36 +0000 (15:42 -0700)]
regcomp.c: Add function to skip pattern white space
The plan is to eventually convert all of regcomp to use this for white
space ignoring under /x, but this will be used for now in just the new
syntax for (?[ ]), coming in a few commits. Until then, this function
is unused.
Karl Williamson [Thu, 10 Jan 2013 22:36:22 +0000 (15:36 -0700)]
regcomp.c: Comments, white space
This also reverses the order of 2 macro calls in 2 places which will be
useful for future commits.
Karl Williamson [Thu, 10 Jan 2013 22:15:21 +0000 (15:15 -0700)]
regcomp.c: Add parameter to regclass()
This parameter silences warnings for non-portable characters. It
currently is always FALSE, meaning that warnings are given.
Karl Williamson [Thu, 10 Jan 2013 22:03:39 +0000 (15:03 -0700)]
regcomp.c: Add parameter to regclass()
This parameter allows the caller to specify whether multi-character
folds should be allowed or not. In general it should, and in the case
where this commit says it shouldn't, they never are returned anyway from
Unicode properties.
This capability will be put to real use by future commits
Karl Williamson [Thu, 10 Jan 2013 19:40:44 +0000 (12:40 -0700)]
regcomp.c: Add a vFAIL4 macro
This one is missing.
Karl Williamson [Thu, 10 Jan 2013 15:58:04 +0000 (08:58 -0700)]
regcomp.c: Remove unnecessary variable
This variable is used just in the statement following it. Its value
doesn't need to be saved, can just combine the statements
Karl Williamson [Mon, 7 Jan 2013 15:50:56 +0000 (08:50 -0700)]
regcharclass.h: Add macro for finding pattern white space
This Unicode property will be used in future commits
Karl Williamson [Mon, 7 Jan 2013 15:23:58 +0000 (08:23 -0700)]
grok_bslash_[ox]: Add param to silence non-portable warnings
If a hex or octal number is too big to fit in a 32 bit word, grok_oct
and grok_hex by default output a warning that it is a non-portable
value. This new parameter to the grok_bslash functions can cause them
to shut up those warnings. This is currently unused, but will be needed
in future commits.
Karl Williamson [Mon, 7 Jan 2013 15:18:54 +0000 (08:18 -0700)]
dquote_static.c: refactor common code to initialization
This flag bit is set in both branches of the code; it might as well be
initialized instead.
Karl Williamson [Mon, 7 Jan 2013 06:10:16 +0000 (23:10 -0700)]
regcomp.c: Save a test by moving a line of code
The condition for executing this moved code are met by the else clause a
few lines below.
Karl Williamson [Mon, 7 Jan 2013 05:56:37 +0000 (22:56 -0700)]
regcomp.c: Omit unnecessary 'else's
The 'if' part of this croaks, so there is no need to specify this as an
'else'
Karl Williamson [Mon, 7 Jan 2013 05:50:54 +0000 (22:50 -0700)]
Create new warnings category experimental::regex_sets
This on-by-default warning will be raised upon use of the
soon-to-be-delivered regex sets feature. The syntax used is currently
invalid, so no feature activation is necessary.
The purpose of this warning is to make sure that any user is properly
notified that this feature is experimental and subject to change
Karl Williamson [Mon, 7 Jan 2013 05:49:05 +0000 (22:49 -0700)]
dquote_static.c: White-space only; no code changes
This properly indents a newly-formed block
Karl Williamson [Mon, 7 Jan 2013 05:28:33 +0000 (22:28 -0700)]
Add optional strict mode to grok_bslash_[xo]
This mode croaks on any iffy constructs that currently compile. It is
not currently used; documentation of the error messages will be
delivered later.
Karl Williamson [Mon, 7 Jan 2013 05:03:09 +0000 (22:03 -0700)]
Better error pos for grok_bslash_[xo]
These functions advance the parse pointer for the caller. The regex
code has the infrastructure to output a marker as to where the error
was. This commit simply moves the parse pointer past all the legal
digits in the input, which are likely supposed to be part of the number,
which makes it likely that the missing right brace point is just past
those.
Karl Williamson [Mon, 7 Jan 2013 03:25:24 +0000 (20:25 -0700)]
Revise calling sequences for grok_bslash_[xo]
By passing the address of the parse pointer, the functions can advance
it, eliminating a parameter to the function, and simplifying the code in
the caller.
Karl Williamson [Mon, 31 Dec 2012 18:54:44 +0000 (11:54 -0700)]
regcomp.c: Use a parameter to simplify some code
When parsing \p{} outside of a bracketed character class, code in
regcomp.c has pretended it is a bracketed character class by changing
and restoring the parsing pointers, and then calling the charclass
handler. This code can be simplified by instead passing a flag to the
handler meaning to just parse one item. The faking is simpler there,
with no restoring necessary. Also we can eliminate the duplicate
handling of special cases.
Future commits will make more extensive use of this mechanism.
Karl Williamson [Fri, 11 Jan 2013 18:19:20 +0000 (11:19 -0700)]
regexp.t: Add a period in test name skip reason
This is easier to read.
Karl Williamson [Thu, 10 Jan 2013 02:00:54 +0000 (19:00 -0700)]
lib/warnings/regcomp: Add note about better place for these
reg_mesg.t has some more infrastructure, so it is probably easier
to add new tests there.
Karl Williamson [Thu, 10 Jan 2013 21:54:34 +0000 (14:54 -0700)]
embed.fnc: Fix flags for _invlist_dump
This debugging function is normally #ifdef'd out, but should it e
enabled, the flags were wrong.
Aaron Crane [Mon, 7 Jan 2013 13:29:34 +0000 (13:29 +0000)]
pod/perlcommunity.pod: mention blogs.perl.org and Stack Overflow
And mention that use.perl.org is now read-only.
Aaron Crane [Mon, 7 Jan 2013 13:28:41 +0000 (13:28 +0000)]
Make perlbug recommend perlcommunity.pod over Usenet
Suggested by Dave Mitchell.
David Mitchell [Fri, 11 Jan 2013 15:04:47 +0000 (15:04 +0000)]
expand comment in Perl_pad_tidy
make it clear that /$var/ is only eval-able in the presence of
'use re eval'; then generally tidy and reformat the comment.
Chris 'BinGOs' Williams [Fri, 11 Jan 2013 08:13:59 +0000 (08:13 +0000)]
Update File-Fetch to CPAN version 0.38
[DELTA]
Changes for 0.38 Thu Jan 10 20:52:53 2013
=================================================
* Add support for an optional tempdir_root
parameter (Kent Fredric)
Nicholas Clark [Mon, 3 Dec 2012 20:12:33 +0000 (21:12 +0100)]
Don't use a fixed iteration count in dist/threads-shared/t/stress.t
Looping 500,000 times takes between 0.025s and 1s depending on hardware and
optimisation levels on machines I have access to. For a fixed iteration
count, on a particularly slow machine the timeout can fire before all
threads have had a realistic chance to complete, but dropping the iteration
count will cause fast machines to finish each thread too quickly.
So use an initial busy loop (single-thread) to estimate a suitable iteration
count to use for the per-thread test loop.
Nicholas Clark [Fri, 11 Jan 2013 10:07:53 +0000 (11:07 +0100)]
Tweak the test from
2721a2ca2e5e889d to work with PERL_UNICODE set.
Karl Williamson [Thu, 10 Jan 2013 20:28:49 +0000 (13:28 -0700)]
regcomp.c: Don't write to freed memory
This commit moves code in two places that may have freed memory just
before writing to it, so that the writing happens before the freeing.
It seems not worth the extra test if we are going to free this memory
before actually doing the write.
This bug was found by valgrind
Chris 'BinGOs' Williams [Thu, 10 Jan 2013 08:13:46 +0000 (08:13 +0000)]
Update Archive-Extract to CPAN version 0.62
[DELTA]
Changes for 0.62 Wed Jan 9 21:38:10 2013
============================================
* OpenBSD's tar does not like some archives
on CPAN, prefer gtar if it is available.
* Correctly detect lack of /bin/tar (Smylers)
David Mitchell [Wed, 9 Jan 2013 11:46:26 +0000 (11:46 +0000)]
stop -MO=Concise -e'm?x?' segfaulting
The op_pmreplstart field in a PMOP is actually a union, containing
op_pmreplstart for OP_SUBST, and op_pmstash/op_pmstashoff for OP_MATCH
with PMf_ONCE set.
The B pmreplstart method just blindly treated the value of this field as
an op pointer, even when it wasn't an OP_SUBST. Hence the segfault.
Make it instead return a null pointer when not OP_SUBST.
At the same time I improved the PMOP handling code in Concise.xs so that
it expects particular types for that and the op_pmreplrootu union based on
the op type (OP_SUBST or OP_PUSHRE) rather than trying to handle any field
value regardless of op type.
Tony Cook [Wed, 9 Jan 2013 04:45:09 +0000 (15:45 +1100)]
portability to Haiku-OS for the cachepropagate-*.t tests
which:
- defines but doesn't implement SO_TYPE
- doesn't support datagram unix sockets
Karl Williamson [Wed, 9 Jan 2013 04:27:33 +0000 (21:27 -0700)]
t/re/re_tests: Remove duplicate test
This is identical to the test two lines above.
Karl Williamson [Wed, 9 Jan 2013 04:22:16 +0000 (21:22 -0700)]
t/re/re_tests: Remove unused variable initializations
These lines all fail to compile, so matching doesn't happen, so it
doesn't matter at all what the target string to be matched against
is set to. It is misleading to put apparently meaningful stuff in that
string.
Karl Williamson [Wed, 9 Jan 2013 04:12:14 +0000 (21:12 -0700)]
regcomp.c: Fix a panic
I haven't figured out a way to get this to panic with existing code
(hence no tests), but chanes I'm working on triggered it.
An inversion list has elements that indicate a range that matches code
points in the list; and elements for ranges that do not match code
points in the list. This code was assuming that the final range in the
inversion list was in the list; it might not be, and so an extra test is
needed.
Karl Williamson [Wed, 9 Jan 2013 04:06:54 +0000 (21:06 -0700)]
regcomp.c: Avoid recalculating a value
This value was calculated and saved in 'len' a couple of lines above.
Karl Williamson [Wed, 9 Jan 2013 03:56:44 +0000 (20:56 -0700)]
regexp.t: Skip tests that are supposed to
This reorders some if elsif ... blocks so that skip is tested for and
done before actually trying the test. This only affected tests which
were supposed to generate compiler errors.
Chris 'BinGOs' Williams [Tue, 8 Jan 2013 10:29:59 +0000 (10:29 +0000)]
Update IO-Compress to CPAN version 2.060
[DELTA]
2.060 7 January 2013
* Updated POD
RT# 82138: Example code not clear - gunzip() takes filenames!
* IO::Compress::Base
Remove the flush call when opening a filehandle.
Chris 'BinGOs' Williams [Tue, 8 Jan 2013 10:27:17 +0000 (10:27 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.060
[DELTA]
2.060 7 January 2013
* No Changes
Chris 'BinGOs' Williams [Tue, 8 Jan 2013 10:25:11 +0000 (10:25 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.060
[DELTA]
2.060 7 January 2013
* Mention SimpleZip in POD
Chris 'BinGOs' Williams [Tue, 8 Jan 2013 10:23:00 +0000 (10:23 +0000)]
Update Term-ANSIColor to CPAN version 4.02
[DELTA]
2013-01-07 Russ Allbery <rra@stanford.edu>
* ANSIColor.pm: Version 4.02 released.
* Makefile.PL: Add the minimum Perl version to the package
metadata.
* t/basic256.t: List the tag first in the import list for
compatibility with the Exporter from Perl 5.6.2. Thanks to David
Cantrell for the testing and debugging.
Tony Cook [Tue, 8 Jan 2013 10:50:51 +0000 (21:50 +1100)]
skip appropriately when XS::APItest isn't available
XS::APItest isn't available under -Uusedl
Tony Cook [Tue, 8 Jan 2013 10:38:41 +0000 (21:38 +1100)]
add a dependency for dynamic extensions on $(LIBPERL)
This is necessary on some platforms (Haiku-OS, Cygwin and possibly
others) since EU::MM adds libperl.so/libperl.a (with their appropriate
extensions) as a dependency to the link step.
Added as a dependency on all platforms because it causes no practical
harm (fewer choices for parallel making) on the platforms where it isn't
needed.
Karl Williamson [Mon, 7 Jan 2013 06:01:33 +0000 (23:01 -0700)]
regexec.c: Cast to silence compiler warnings
Karl Williamson [Mon, 7 Jan 2013 06:00:15 +0000 (23:00 -0700)]
regexec.c: Cast to silence compiler warning
Chris 'BinGOs' Williams [Mon, 7 Jan 2013 15:10:42 +0000 (15:10 +0000)]
constant-1.24 has been released to CPAN, update Maintainers.pl to reflect this
Chris 'BinGOs' Williams [Mon, 7 Jan 2013 15:09:22 +0000 (15:09 +0000)]
Forgot to update Maintainers.pl for podlators update
Karl Williamson [Mon, 7 Jan 2013 04:51:12 +0000 (21:51 -0700)]
toke.c: Silence compiler uninitialized warning
I believe that there really is not a path through this that yields an
uninitialized value for this variable, but initialize it to UV_MAX in
case there is, that value will hopefully stand out more than '0' would.
Karl Williamson [Mon, 7 Jan 2013 03:01:28 +0000 (20:01 -0700)]
regcomp.c: Silence compiler warning
One of our smoke compilers is not smart enough to know that the
remainder when dividing by two can only be a 0 or a 1.
Karl Williamson [Mon, 7 Jan 2013 02:51:16 +0000 (19:51 -0700)]
regcomp.c: Silence compiler warning by using a cast
Karl Williamson [Mon, 7 Jan 2013 02:35:00 +0000 (19:35 -0700)]
regcomp.c: Comments only, white-space ; no code changes
Karl Williamson [Mon, 7 Jan 2013 02:32:01 +0000 (19:32 -0700)]
regcomp.c: Silence compiler warning
One compiler doesn't like this, so cast to bool
Karl Williamson [Mon, 7 Jan 2013 02:24:13 +0000 (19:24 -0700)]
pp_ctl.c: Silence compiler warning.
A compiler on one of our smoke platforms wants empty braces here.
Karl Williamson [Mon, 7 Jan 2013 02:19:43 +0000 (19:19 -0700)]
ext/XS-APItest: Remove unused variable decl.
This is to stop a compiler warning
Karl Williamson [Mon, 7 Jan 2013 02:17:42 +0000 (19:17 -0700)]
embed.fnc: Properly declare fcn inline
This function is specified as inline in the source code, but not in the
prototypes; only one compiler seems to have noticed.
Karl Williamson [Fri, 4 Jan 2013 04:45:34 +0000 (21:45 -0700)]
perlunicode: Refactor verbatim lines into =item ones
This is so that they are able to contain links; both versions render
uglily in different ways.
Karl Williamson [Fri, 4 Jan 2013 04:15:55 +0000 (21:15 -0700)]
perlunicode: Correct false statement
This text is just plain wrong. It mixes up which is the block property
and which is the script
Karl Williamson [Tue, 1 Jan 2013 04:55:40 +0000 (21:55 -0700)]
regcomp.c: White-space only; no code changes
This outdents a block to the proper alignment, and reflows the comments
Craig A. Berry [Sun, 6 Jan 2013 22:27:50 +0000 (16:27 -0600)]
Make Pod::Html::_unixify unescape dots on VMS.
Dots in directory names must be escaped in native syntax, but those
escapes confuse various things if left in during a conversion to
Unix syntax.
Craig A. Berry [Fri, 4 Jan 2013 23:41:17 +0000 (17:41 -0600)]
Pod::Html test portability redux.
The flurry of activity to get these tests passing in the lead-up to
5.16.0 swept several issues under the rug. In particular, some
of the tests had failures on VMS that became invisible once we
started skipping them wherever dots are not allowed in directory
names (which is true by default on VMS now, but is likely to change
very shortly).
The facts behind my changes, in no particular order:
File::Spec->rootdir() returns, on VMS, a a special string that will
not be found in any actual pathname, so taking the length of it and
stripping that much off the front of an actual pathname produces
garbage.
File::Spec->rootdir(), on VMS, returns a string that contains a volume
specification, so simply prepending a volume to it produces garbage.
To portably produce a complete path, use catpath().
Windows appears not to care which direction the slashes are leaning,
and VMS can handle pure-Unix paths as long as they aren't pasted onto
components of native paths, so it's reasonbly safe to obtain directory
components with splitdir, and join them together with forward slashes.
The tests pass a value to --podpath that is not absolute, but nor
is it relative in the usual sense. It's apparently intended to be
relative to the filesystem root, which is an inherently non-portable
concept as neither Windows nor VMS has such a thing. The best that
can be done (without a complete rethink of the tests and perhaps the
module) is to make it relative to the top-level directory on the
current volume.
This gets all tests passing on Windows, VMS, and OS X.
Tony Cook [Sun, 6 Jan 2013 11:25:51 +0000 (22:25 +1100)]
add a LEAVE for the ENTER in LOAD_UTF8_CHARCLASS
This appears to fix the regression introduced in
c7304fe2c
James E Keenan [Sat, 29 Dec 2012 16:23:56 +0000 (11:23 -0500)]
t/op/not.t: Add descriptions to all tests.
Also, add note() before tests 4 and 5 explaining rationale for addition of
parentheses to second arguments.
James E Keenan [Sat, 29 Dec 2012 16:09:34 +0000 (11:09 -0500)]
Add parens around second argument to tests 4 and 5.
If a description were to be added to these tests, in the absence of
parentheses the scalar prototype of CORE::not would enforce a scalar context
onto the balance of the statement, leading to apparently anomalous behavior,
viz., the descriptions would not be printed and test 5 would be reported to
FAIL.
James E Keenan [Fri, 28 Dec 2012 02:51:54 +0000 (21:51 -0500)]
t/op/oct.t: Add descriptions to tests lacking them.
James E Keenan [Thu, 27 Dec 2012 02:28:32 +0000 (21:28 -0500)]
t/op/or.t: Provide descriptions for tests lacking them.
James E Keenan [Thu, 27 Dec 2012 02:15:40 +0000 (21:15 -0500)]
t/op/pos.t: Provide descriptions for remaining tests lacking them.
James E Keenan [Wed, 26 Dec 2012 02:37:04 +0000 (21:37 -0500)]
t/op/pwent.t: Add descriptions for all tests.
James E Keenan [Wed, 26 Dec 2012 02:35:25 +0000 (21:35 -0500)]
t/op/pow.t: Add descriptions for tests lacking them.
Those which were still lacking descriptions were all testing that
exponentiation has precedence over negation.
James E Keenan [Wed, 26 Dec 2012 02:34:29 +0000 (21:34 -0500)]
t/op/fork.t: Add description for one special test.
Karl Williamson [Fri, 4 Jan 2013 19:34:34 +0000 (12:34 -0700)]
charnames: Deprecate character names with spacing issues
A user-defined character name with trailing or multiple spaces in a row
is likely a typo, and hence likely won't match what the other uses of
it. These names also won't work if we extend :loose to these. This
now generates a warning.
Karl Williamson [Fri, 4 Jan 2013 18:05:32 +0000 (11:05 -0700)]
charnames: :alias alone implies :full
The documentation says this is how it should behave, but only 1 of the
three paths in the code did it, and in fact there was a test to the
contrary.
I'm only adding a test for one of the two fixed paths, as the other one
appears to require a weird file name.
Karl Williamson [Fri, 4 Jan 2013 18:04:08 +0000 (11:04 -0700)]
charnames: Enforce better file name rules
The code says that identifier syntax is required for a file name, but
the code accepted any sequence of \w's.
Karl Williamson [Fri, 4 Jan 2013 16:06:26 +0000 (09:06 -0700)]
charnames: comment, error message clarifications
Karl Williamson [Tue, 1 Jan 2013 18:52:58 +0000 (11:52 -0700)]
charnames pod: Typo, clarification
Steven Schubiger [Fri, 4 Jan 2013 17:05:08 +0000 (18:05 +0100)]
Fix SvREFCNT_dec doc typo
David Mitchell [Fri, 4 Jan 2013 16:10:53 +0000 (16:10 +0000)]
make m?$pat? match only once under ithreads
[perl #115080]
m?...? is only supposed to match once, until reset. Normally this is done
by setting the PMf_USED flag on the PMOP. Under ithreads we can't modify
ops, so instead we indicate by setting the regex's SV to readonly. (This
is a bit of a hack: the flag should be associated with the PMOP, not the
regex).
This breaks with run-time regexes when the pattern gets recompiled; for
example:
for my $c (qw(a b c)) {
print "matched $c\n" if $c =~ m?^$c$?;
}
outputs
matched a
on unthreaded, but
matched a
matched b
matched c
on threaded.
The re_eval jumbo fix made this more noticeable by sometimes recompiling
even when the pattern text hasn't changed (to make closures work ok).
The quick fix is to propagate the readonlyness of the old re to the new
re. (The proper fix would be to store the flag state in a pad slot
associated with the PMOP).
Needless to say, I've gone for the quick fix.
Chris 'BinGOs' Williams [Fri, 4 Jan 2013 15:26:28 +0000 (15:26 +0000)]
Regenerated customized.dat file due to pod2*.PL changes
Chris 'BinGOs' Williams [Fri, 4 Jan 2013 14:33:58 +0000 (14:33 +0000)]
Update podlators to CPAN version 2.5.0
[DELTA]
2013-01-02 Russ Allbery <rra@stanford.edu>
* VERSION: podlators 2.5.0 released.
* lib/Pod/Man.pm (guesswork): Extend a small-caps section through
the punctuation that commonly appears in license disclaimers so
that small caps isn't turned on and off at the boundaries of every
word, producing unreadable *roff.
* t/man.t: Test the updated small-caps behavior.
* lib/Pod/Man.pm (new): Support a new errors option with values
die, stderr, pod, and none. Convert the stderr option to the
errors option with value stderr. (#39007)
(end_document): Die if errors was set to die and there were POD
syntax errors.
* lib/Pod/Text.pm (new): Likewise.
(end_document): Likewise.
* scripts/pod2man: Support a new --errors option that sets the
underlying errors formatter option and default to dying on POD
syntax errors.
* scripts/pod2text: Likewise.
* t/man-options.t: Add support for catching exceptions during
formatting. Test valid and invalid errors settings.
* t/text-options.t: Likewise.
* lib/Pod/Man.pm (cmd_l): Add nourls option to suppress the URL
from L<> formatting codes that contain anchor text. (#62210)
* lib/Pod/Text.pm (cmd_l): Likewise.
* scripts/pod2man: New --nourls option to set the corresponding
option in Pod::Man.
* scripts/pod2text: Likewise for Pod::Text.
* t/man-options.t: Test new nourls option.
* t/text-options.t: Likewise.
* lib/Pod/Man.pm (outindex): Also collapse consecutive whitespace
in index term text.
* t/man.t: Test for handling of index terms containing whitespace.
2013-01-02 Kevin Ryde <user42@zip.com.au>
* lib/Pod/Man.pm (outindex): Remove newlines from index term text
since *roff quotes don't span lines. (#82332)
2012-06-01 Russ Allbery <rra@stanford.edu>
* VERSION: podlators 2.4.2 released.
* t/text-encoding.t: Remove the test of a POD document without an
encoding. We previously tested that this interpreted the document
as ISO 8859-1, but Pod::Simple behavior has changed so that the
test started failing, plus Pod::Simple now warns about a missing
=encoding. (#77553)
Eric Brine [Wed, 5 Dec 2012 07:48:56 +0000 (02:48 -0500)]
Collapse "if(a){b}else{b}" to "b"
Eric Brine [Wed, 5 Dec 2012 06:30:25 +0000 (01:30 -0500)]
Remove redundant NULL checks.
It's safe to pass NULLs to SvREFCNT_dec.
Steve Hay [Thu, 3 Jan 2013 23:30:57 +0000 (23:30 +0000)]
Add support for building with VC++ 2012
No code changes seem to be required, so it's just a matter of noting that
we've tried it, it works, and we'll support it :-)
David Mitchell [Thu, 3 Jan 2013 14:17:25 +0000 (14:17 +0000)]
S_has_runtime_code(): avoid buffer overrun
This function looks for '(?{' style strings in a pattern. If the last char
in the pattern was '(', it could read a couple of bytes off the end of
the pattern. This is harmless from a logic and security viewpoint since
false positives are ok; but I'm still fixing it for correctness's sake.
Matthew Horsfall (alh) [Wed, 26 Dec 2012 15:30:02 +0000 (10:30 -0500)]
Fix period at the end of perldiag.pod and remove entry from TODO in diag.t
James E Keenan [Thu, 3 Jan 2013 02:47:37 +0000 (21:47 -0500)]
Eliminate redundant words.
Based on observation by Joaquin Ferrero++.
For RT #116274
Tony Cook [Wed, 2 Jan 2013 22:36:27 +0000 (09:36 +1100)]
Don't usenm on haiku
This cam up from building perl with nm enabled and make test_harness
croaking with the complaint that times wasn't implemented.
nm /system/lib/libroot.so | grep times produces:
00095540 T __times
00095460 T __times_beos
0009b690 t itimerspec_to_bigtimes__FRC10itimerspecRxT1
00095540 T times@@LIBROOT_1_ALPHA4
00095460 T times@LIBROOT_BASE
000981c8 t timesub
000958b4 T utimes
of which the two times@... entries appear to be version symbols.
The system perl on Haiku-OS alpha4.1 is built with -Uusenm
Tony Cook [Wed, 2 Jan 2013 03:23:22 +0000 (14:23 +1100)]
Merge Shlomi's latest debugger refactoring work
Tony Cook [Wed, 2 Jan 2013 00:47:08 +0000 (11:47 +1100)]
bump $VERSION for lib/perl5db.pl
There's been a release since this change was submitted.