This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
12 years agoClarify that @ISA contains scalars which are strings.
Dave Rolsky [Tue, 14 Feb 2012 16:44:02 +0000 (10:44 -0600)]
Clarify that @ISA contains scalars which are strings.

12 years agoDon't reference a specific year for the definition of modern.
Dave Rolsky [Tue, 14 Feb 2012 16:34:41 +0000 (10:34 -0600)]
Don't reference a specific year for the definition of modern.

Just say "with modern Perl" instead of "in 2011".

12 years agoFix a typo (s/lead/led) and some bleah phrasing.
Dave Rolsky [Tue, 14 Feb 2012 16:25:20 +0000 (10:25 -0600)]
Fix a typo (s/lead/led) and some bleah phrasing.

12 years agoUpdate CPANPLUS to CPAN version 0.9118
Chris 'BinGOs' Williams [Tue, 14 Feb 2012 09:47:13 +0000 (09:47 +0000)]
Update CPANPLUS to CPAN version 0.9118

  [DELTA]

  Changes for 0.9118      Mon Feb 13 22:29:33 2012
  ================================================
  * Test reporting enhancements

12 years agoUpdate CPANPLUS-Dist-Build to CPAN version 0.62
Chris 'BinGOs' Williams [Tue, 14 Feb 2012 09:41:51 +0000 (09:41 +0000)]
Update CPANPLUS-Dist-Build to CPAN version 0.62

  [DELTA]

  0.62 Mon Feb 13 22:15:57 GMT 2012
    - Test reporting enhancements

12 years agomixing declarations and assignments not allowed in C89
H.Merijn Brand [Tue, 14 Feb 2012 08:17:02 +0000 (09:17 +0100)]
mixing declarations and assignments not allowed in C89

12 years agoMake pp_study a no-op, as discussed on p5p
Abhijit Menon-Sen [Wed, 1 Feb 2012 05:22:31 +0000 (10:52 +0530)]
Make pp_study a no-op, as discussed on p5p

12 years agois_utf8_char_slow(): Make constistent, correct docs.
Karl Williamson [Mon, 13 Feb 2012 20:13:02 +0000 (13:13 -0700)]
is_utf8_char_slow(): Make constistent, correct docs.

This function is only used by the Perl core for very large code points,
though it is designed to be able to be used for all code points.

For any variant code points, it doesn't succeed unless the passed in
length is exactly the same as the number of bytes the code point
occupies.  The documentation says it succeeds if the length is at least
that number.  This commit updates the documentation to match the
behavior.

Also, for an invariant code point, it succeeds no matter what the
passed-in length says.  This commit changes this to be consistent with
the behavior for all other code points.

12 years agocharnames.t: viacode doesn't return Unicode_1 name always
Karl Williamson [Mon, 13 Feb 2012 18:44:44 +0000 (11:44 -0700)]
charnames.t: viacode doesn't return Unicode_1 name always

There are now four characters which have a different preferred name.

12 years agoavoid unused-var warning from MY_CXT_INIT
Zefram [Mon, 13 Feb 2012 18:14:23 +0000 (18:14 +0000)]
avoid unused-var warning from MY_CXT_INIT

12 years agomktables: viacode() return unparenthesized names for 4 controls
Karl Williamson [Mon, 13 Feb 2012 16:54:22 +0000 (09:54 -0700)]
mktables: viacode() return unparenthesized names for 4 controls

This commit changes the viacode() returned name for four control characters, as
follows:
 Code point      Old Name             New Name
   U+000A    LINE FEED (LF)        LINE FEED
   U+000C    FORM FEED (FF)        FORM FEED
   U+000D    CARRIAGE RETURN (CR)  CARRIAGE RETURN
   U+0085    NEXT LINE (NEL)       NEXT LINE

Only the return from viacode is affected.  All the names are accepted as
input, as they always have been.

Unicode 6.1 now has official names for all the controls, and the new
names match those.  The old names were the ones that were recommended by
TR18 prior to 6.1, and still are, sort of.  This change uses the
official names in preference to the TR18 ones.  We probably wouldn't
bother except that the old names were problematic--the only names in the
whole universe of names containing parentheses, and not matching
traditional usage.  The new names have always been accepted as inputs by
Perl.

I actually doubt that Unicode ever grokked that they were recommending
these ugly names. and they haven't paid much attention to TR18 anyway,
breaking it in version 6.0 by encoding one of the recommended names
(BELL) as an official name for another code point, and without realizing
it.  TR18 now is in limbo, still wrongly recommending BELL, with a
rewrite being promised for many months now.  It's unclear what will
happen with it.

It was agreed on p5p to go with the cleaner, now official names, instead
of the older, likely obsolete, TR18 names.  I did a search of
CPAN; it was unclear if this change, (which again is only for viacode())
mattered to any code there or not.  There were a few instances of the
old names, but none of those were apparently associated with viacode().

12 years agomktables: Don't add exact duplicate to tables
Karl Williamson [Mon, 13 Feb 2012 16:47:09 +0000 (09:47 -0700)]
mktables: Don't add exact duplicate to tables

This was a bug in the case where there can be multiple entries in a
table for a single code point.  But there only can be one identical
entry.

12 years agofix a comment typo: s/MYCXT/MY_CXT/
David Mitchell [Mon, 13 Feb 2012 12:12:39 +0000 (12:12 +0000)]
fix a comment typo: s/MYCXT/MY_CXT/

12 years agoin INSTALL, make clear -DDEBUGGING is much slower
David Mitchell [Mon, 13 Feb 2012 12:10:15 +0000 (12:10 +0000)]
in INSTALL, make clear -DDEBUGGING is much slower

There's some existing text that says it will be bigger and slower, but add
some 'much'es to the text to make it clear that it *really* sucks.

12 years agoTypo in commit 4fe70ef9a66bbf96 spotted by Ilmari.
Nicholas Clark [Mon, 13 Feb 2012 12:04:52 +0000 (13:04 +0100)]
Typo in commit 4fe70ef9a66bbf96 spotted by Ilmari.

12 years agoIn perlfunc, standardise the descriptions for keywords enabled by features.
Nicholas Clark [Mon, 13 Feb 2012 11:37:44 +0000 (12:37 +0100)]
In perlfunc, standardise the descriptions for keywords enabled by features.

Previously the "Functions by Category" summaries noted that state, __SUB__
and the "switch" keywords are enabled only by the feature system, but made
no mention of this for evalbytes, fc and say. __SUB__ didn't note that it
was also always available with a CORE:: prefix. Now the descriptions are
consistent for all feature-enabled keywords.

12 years agounset PERLDB_OPTS environment variable or rt-61222 might hang.
Todd Rinaldo [Tue, 7 Feb 2012 21:42:10 +0000 (15:42 -0600)]
unset PERLDB_OPTS environment variable or rt-61222 might hang.

eg. PERLDB_OPTS='RemotePort=some.other.host:9000'

12 years agoadd --quiet to silence noisy tests
Robin Barker [Tue, 7 Feb 2012 20:13:41 +0000 (20:13 +0000)]
add --quiet to silence noisy tests

The ext/Pod-Html tests generate warnings that appear in the output.
This patch adds --quiet to the function call to silence the
warnings, without (I hope) changing the point of the tests.

12 years agoFix skip count for B using tests in PerlIO::Scalar
David Leadbeater [Sun, 12 Feb 2012 21:54:41 +0000 (13:54 -0800)]
Fix skip count for B using tests in PerlIO::Scalar

12 years agoReplace `char * ptr` with `char *ptr`
Alan Haggai Alavi [Fri, 19 Aug 2011 19:40:53 +0000 (01:10 +0530)]
Replace `char * ptr` with `char *ptr`

Changed pointer declaration style for consistency.

12 years agoVMS does have strptime.
Craig A. Berry [Sun, 12 Feb 2012 16:19:55 +0000 (10:19 -0600)]
VMS does have strptime.

And has had since version 6.2 in 1995.

12 years agoUse the strptime() probe in POSIX.xs & tests
Ævar Arnfjörð Bjarmason [Sun, 12 Feb 2012 14:35:50 +0000 (14:35 +0000)]
Use the strptime() probe in POSIX.xs & tests

My merge of strptime() in v5.15.7-367-g0e58213 would break systems
that didn't have strptime in the C library, use the probe H.Merijn
Brand kindly provided in v5.15.7-370-g8852e31 to deal with that.

Now we'll just croak on systems without strptime(3) if the
POSIX::strptime() function is called, in the same way we croak for
other unimplemented functions in there:

    $ ./perl -Ilib -MPOSIX=strptime -e 'strptime(qw/foo bar/)'
    POSIX::strptime not implemented on this architecture at -e line 1.

This patch is best viewed with the -w option to show or git log, I've
re-indented some code in time.t for the new SKIP block I've added.

12 years agoAdd strptime probe
H.Merijn Brand [Sun, 12 Feb 2012 13:38:30 +0000 (14:38 +0100)]
Add strptime probe

12 years agoCast around signedness warnings in POSIX's new strptime.
Craig A. Berry [Sun, 12 Feb 2012 12:10:42 +0000 (06:10 -0600)]
Cast around signedness warnings in POSIX's new strptime.

12 years agofix -DPERL_GLOBAL_STRUCT compilation error introduced in e8570548
Tony Cook [Sun, 12 Feb 2012 02:04:53 +0000 (03:04 +0100)]
fix -DPERL_GLOBAL_STRUCT compilation error introduced in e8570548

12 years agoMerge branch 'avar/POSIX-strptime' into blead
Ævar Arnfjörð Bjarmason [Sat, 11 Feb 2012 22:31:03 +0000 (22:31 +0000)]
Merge branch 'avar/POSIX-strptime' into blead

Merge my rebased version of Paul "LeoNerd" Evans's branch to blead
after I'd cherry-picked the unrelated a748fe1 commit out of it.

This may or may not be the perfect implementation of strptime, but it
seems to work well enough for me, the bugs that have been raised
against it have been addressed, and it's going to work a hell of a lot
better than not having any strptime support at all.

12 years agoMore obvious variable names and neater code in strptime()
Paul "LeoNerd" Evans [Wed, 8 Feb 2012 16:24:35 +0000 (16:24 +0000)]
More obvious variable names and neater code in strptime()

12 years agostr_offset ought to be a STRLEN, not an int
Paul "LeoNerd" Evans [Wed, 8 Feb 2012 15:52:32 +0000 (15:52 +0000)]
str_offset ought to be a STRLEN, not an int

12 years agoIf strptime() is called with UTf-8 string but legacy format, then downgrade the strin...
Paul "LeoNerd" Evans [Thu, 2 Feb 2012 22:44:00 +0000 (22:44 +0000)]
If strptime() is called with UTf-8 string but legacy format, then downgrade the string to match; taking care to handle pos() counts both sides

12 years agoIf strptime() is called with legacy string but UTF-8 format, then upgrade the string...
Paul "LeoNerd" Evans [Thu, 2 Feb 2012 22:17:46 +0000 (22:17 +0000)]
If strptime() is called with legacy string but UTF-8 format, then upgrade the string to match; taking care to handle pos() counts both sides

12 years agoSmall refactor of string offset code in POSIX::strptime() to hopefully better handle...
Paul "LeoNerd" Evans [Wed, 1 Feb 2012 20:10:25 +0000 (20:10 +0000)]
Small refactor of string offset code in POSIX::strptime() to hopefully better handle mixed UTF-8/non between str and fmt

12 years agoWhen strptime() receives a reference, ensure it's a mutable scalar
Paul "LeoNerd" Evans [Wed, 1 Feb 2012 19:37:34 +0000 (19:37 +0000)]
When strptime() receives a reference, ensure it's a mutable scalar

12 years agoYield -1 as undef from POSIX::strptime(); ensure that mktime() isn't biased by sec...
Paul "LeoNerd" Evans [Wed, 1 Feb 2012 19:19:51 +0000 (19:19 +0000)]
Yield -1 as undef from POSIX::strptime(); ensure that mktime() isn't biased by sec/min/hour = -1

12 years agoActually implement @EXPORT_OK of strptime correctly; delete'ing an undef element...
Paul "LeoNerd" Evans [Wed, 1 Feb 2012 19:06:59 +0000 (19:06 +0000)]
Actually implement @EXPORT_OK of strptime correctly; delete'ing an undef element yields false so ... and push ... would never have worked

12 years agoSolaris needs _STRPTIME_DONTZERO in order not to zero out all the untouched fields...
Paul "LeoNerd" Evans [Tue, 31 Jan 2012 19:30:09 +0000 (19:30 +0000)]
Solaris needs _STRPTIME_DONTZERO in order not to zero out all the untouched fields in strptime(3)

12 years agoFix ext/POSIX/t/time.t test 17's name to be a) unique, and b) factually accurate
Paul "LeoNerd" Evans [Tue, 31 Jan 2012 18:17:16 +0000 (18:17 +0000)]
Fix ext/POSIX/t/time.t test 17's name to be a) unique, and b) factually accurate

12 years agoRemember to init_tm() the struct tm before strptime()ing it; a workaround for some...
Paul "LeoNerd" Evans [Sat, 28 Jan 2012 15:14:59 +0000 (15:14 +0000)]
Remember to init_tm() the struct tm before strptime()ing it; a workaround for some architectures that have extra fields

12 years agoDetect failure of mktime(), return error
Paul "LeoNerd" Evans [Sat, 28 Jan 2012 15:07:00 +0000 (15:07 +0000)]
Detect failure of mktime(), return error

12 years agoDon't use 1906 to test strptime/mktime because it yields a negative time_t value
Paul "LeoNerd" Evans [Sat, 28 Jan 2012 15:02:48 +0000 (15:02 +0000)]
Don't use 1906 to test strptime/mktime because it yields a negative time_t value

12 years agoBump version number in POSIX.pm
Paul "LeoNerd" Evans [Thu, 29 Dec 2011 23:38:56 +0000 (23:38 +0000)]
Bump version number in POSIX.pm

12 years agoAdded some docs about new POSIX::strptime()
Paul "LeoNerd" Evans [Fri, 23 Dec 2011 18:17:12 +0000 (18:17 +0000)]
Added some docs about new POSIX::strptime()

12 years agomktime() before returning result from strptime(), to ensure wday/yday/isdst fields...
Paul "LeoNerd" Evans [Wed, 21 Dec 2011 00:10:41 +0000 (00:10 +0000)]
mktime() before returning result from strptime(), to ensure wday/yday/isdst fields are correct

12 years agoAccept strptime \$str, "format" to use/set pos() magic at parsing position
Paul "LeoNerd" Evans [Fri, 23 Dec 2011 17:50:43 +0000 (17:50 +0000)]
Accept strptime \$str, "format" to use/set pos() magic at parsing position

12 years agoInitial hack at strptime(); just literal strings for now
Paul "LeoNerd" Evans [Sun, 18 Dec 2011 23:25:03 +0000 (23:25 +0000)]
Initial hack at strptime(); just literal strings for now

12 years agoAmmend comment referring to init_tm() to point to its correct location
Paul "LeoNerd" Evans [Sat, 28 Jan 2012 15:12:47 +0000 (15:12 +0000)]
Ammend comment referring to init_tm() to point to its correct location

12 years agoperldelta: Note is_utf8_char_buf() and is_utf8_char()
Karl Williamson [Sat, 11 Feb 2012 21:54:24 +0000 (14:54 -0700)]
perldelta: Note is_utf8_char_buf() and is_utf8_char()

12 years agoChange =head1 to =head2 in perldelta
Karl Williamson [Sat, 11 Feb 2012 21:40:02 +0000 (14:40 -0700)]
Change =head1 to =head2 in perldelta

12 years agoDeprecate is_utf8_char()
Karl Williamson [Sat, 11 Feb 2012 21:20:56 +0000 (14:20 -0700)]
Deprecate is_utf8_char()

This function assumes that there is enough space in the buffer to read
however many bytes are indicated by the first byte in the alleged UTF-8
encoded string.  This may not be true, and so it can read beyond the
buffer end.  is_utf8_char_buf() should be used instead.

12 years agoAdd is_utf8_char_buf()
Karl Williamson [Sat, 11 Feb 2012 21:04:39 +0000 (14:04 -0700)]
Add is_utf8_char_buf()

This function is to replace is_utf8_char(), and requires an extra
parameter to ensure that it doesn't read beyond the end of the buffer.

Convert is_utf8_char() and the only place in the Perl core to use the
new one, assuming in each that there is enough space.

Thanks to Jarkko Hietaniemi for suggesting this function name

12 years agoExtUtils::Install: Fix POD error
Dominic Hargreaves [Sat, 11 Feb 2012 21:18:06 +0000 (14:18 -0700)]
ExtUtils::Install: Fix POD error

12 years agoTerm-Cap/Cap.pm: Fix POD errors
Dominic Hargreaves [Sat, 11 Feb 2012 21:13:07 +0000 (14:13 -0700)]
Term-Cap/Cap.pm: Fix POD errors

12 years agointrpvar.h: Rmv no longer used PL_ variable
Karl Williamson [Sat, 11 Feb 2012 20:43:26 +0000 (13:43 -0700)]
intrpvar.h: Rmv no longer used PL_ variable

Commit 24caacbccae7b938deecdcc3f13dd66c9c6a684e removed all uses of this
variable, but failed to remove it.

12 years agoregcomp.c: /[[:lower:]]/i should match the same as /\p{Lower}/i
Karl Williamson [Sat, 11 Feb 2012 17:49:06 +0000 (10:49 -0700)]
regcomp.c: /[[:lower:]]/i should match the same as /\p{Lower}/i

Same for [[:upper:]] and \p{Upper}.  These were matching instead all of
[[:alpha:]] or \p{Alpha}.  What /\p{Lower}/i and /\p{Upper}/i match instead
is \p{Cased}, and so that is what these should match.

12 years agoGeneral-purpose symbol shortening for VMS.
Craig A. Berry [Sat, 11 Feb 2012 20:17:12 +0000 (14:17 -0600)]
General-purpose symbol shortening for VMS.

Some folks like to write long sentences and then use them as
variable names, which doesn't come up that often, but when it
does, the build on VMS falls down hard if any of the resulting
symbols is longer than 31 characters.  The problem is not for
the compiler, which when using /NAMES=SHORTENED (which we now do
by default) will shorten the symbols, but for the linker, which
must have an exact list of the symbol names to be exported when
creating the perlshr.exe shareable image.

That list of potentially shortened symbols goes in a linker options
file created by vms/gen_shrfls.pl.  Until now we had no recourse
but to hard-code there a mapping of long symbols to shortened ones,
but the AUTODIN-II polynomial used by the compiler to do the
shortening is (partially) documented under the help for CC/NAMES,
and it was possible to extrapolate from there and create a pure-
Perl implementation that mimics precisely what the C compiler (and
the C++ compiler under "extern C" declarations) use for shortening
long symbol names.

Symbols like Perl__it_was_the_best_of_times_it_was_the_worst_of_times
can now be created freely without causing the VMS linker to seize up.

12 years agoregcomp.c: Remove outdated #undef
Karl Williamson [Sat, 11 Feb 2012 20:20:45 +0000 (13:20 -0700)]
regcomp.c: Remove outdated #undef

12 years agomktables: Update comments, variable names
Karl Williamson [Sat, 11 Feb 2012 17:00:11 +0000 (10:00 -0700)]
mktables: Update comments, variable names

Commit d11155ec2b4e3f6cf952e2a25615aec506a8e296 changed the format of
some of the generated tables, but I left some of the old comments and
variable names the same in order to not make this already large commit
bigger.  This updates these to reflect the new format.

It also refactors one 'if' statement to not use a block.

12 years agoregcomp.c: Remove duplicate inversion list
Karl Williamson [Fri, 10 Feb 2012 17:35:48 +0000 (10:35 -0700)]
regcomp.c: Remove duplicate inversion list

\h and \p{XPosixBlank} contain the same code points, so there is no need
to have both of them.

12 years agohandle conditional definition of PL_check_mutex
Zefram [Sat, 11 Feb 2012 17:14:45 +0000 (17:14 +0000)]
handle conditional definition of PL_check_mutex

PL_check_mutex only exists on threading builds, so makedef.pl needs to
know about that conditionality to produce correct export lists.

12 years agoadd wrap_op_checker() API function
Zefram [Sat, 11 Feb 2012 11:05:51 +0000 (11:05 +0000)]
add wrap_op_checker() API function

This function provides a convenient and thread-safe way for modules to
hook op checking.

12 years agorestore ExtUtils-ParseXS portability to Perl 5.6
Zefram [Sat, 11 Feb 2012 08:35:35 +0000 (08:35 +0000)]
restore ExtUtils-ParseXS portability to Perl 5.6

12 years agoupdate ExtUtils-ParseXS to CPAN version 3.15
Zefram [Sat, 11 Feb 2012 08:30:03 +0000 (08:30 +0000)]
update ExtUtils-ParseXS to CPAN version 3.15

Ensure that every module in the ExtUtils-ParseXS distribution has
a $VERSION.

12 years agoUCD.t: white-space only
Karl Williamson [Fri, 10 Feb 2012 23:18:23 +0000 (16:18 -0700)]
UCD.t: white-space only

This outdents some statements that are no longer enclosed in a block

12 years agomktables: Fix up some comments in the generated files
Karl Williamson [Fri, 10 Feb 2012 23:10:12 +0000 (16:10 -0700)]
mktables: Fix up some comments in the generated files

These were incorrectly stating that some tables are accessible via
Unicode::UCD, and giving the wrong name in some instances.

12 years agoUnicode::UCD::prop_invmap: Store Nv property as adjusted type
Karl Williamson [Fri, 10 Feb 2012 22:13:10 +0000 (15:13 -0700)]
Unicode::UCD::prop_invmap: Store Nv property as adjusted type

By converting this property to requiring adjustments to get the proper
values, its storage size decreases by more than half.

12 years agoUnicode::UCD::prop_invmap(): New improved API
Karl Williamson [Fri, 10 Feb 2012 21:50:18 +0000 (14:50 -0700)]
Unicode::UCD::prop_invmap(): New improved API

Thanks to Tony Cook for suggesting this.

The API is changed from returning deltas of code points, to storing the
actual correct values, but requiring adjustments for the non-initial
elements in a range, as explained in the pod.

This makes the data less confusing to look at, and gets rid of
inconsistencies if we didn't make the same sort of deltas for entries
that were, e.g. arrays of code points.

12 years agoUnicode::UCD: move common directory to subroutine
Karl Williamson [Thu, 9 Feb 2012 18:01:43 +0000 (11:01 -0700)]
Unicode::UCD: move common directory to subroutine

All the files that should ever be read by the subroutine will be found
in the unicore directory, so can specify it in the subroutine instead of
in each call to it.  This makes things slightly easier in future
commits.

12 years agoUnicode::UCD: pod and comment nits
Karl Williamson [Wed, 8 Feb 2012 17:44:00 +0000 (10:44 -0700)]
Unicode::UCD: pod and comment nits

One comment is out-dated, also moves a line of code so that the comments
flow better.

12 years agoAvoid null pointer dereference in tovmsspec.
Craig A. Berry [Thu, 9 Feb 2012 23:33:51 +0000 (17:33 -0600)]
Avoid null pointer dereference in tovmsspec.

Before 360732b5267d5, when dirend was either never set at all or
set to NULL, the routine always returned early before executing
the parts that look at dirend.  But after that change it became
possible to dereference a null dirend pointer.  Let's not do that.

12 years agoperrebackslash, perlrecharclass: Note locale effects
Karl Williamson [Sun, 5 Feb 2012 23:17:54 +0000 (16:17 -0700)]
perrebackslash, perlrecharclass: Note locale effects

This adds text to specify what happens under 'use locale'.

12 years agoAllow [[:blank:]] to work under locale
Karl Williamson [Sun, 5 Feb 2012 22:36:08 +0000 (15:36 -0700)]
Allow [[:blank:]] to work under locale

This takes advantage of the recently added Configure probe, and if the
platform has an isblank library function, calls that under locale.  This
now matches the documentation

12 years agoUse system isascii() when available under locale
Karl Williamson [Sun, 5 Feb 2012 00:54:01 +0000 (17:54 -0700)]
Use system isascii() when available under locale

We have code that assumes that ASCII should be locale dependent, but it
was missing its final link.  This supplies that, and makes the code work
as documented.  I thought it better to do that then to document yet
another exception.

12 years agoregcomp.c: Rmv no-longer used variables and code
Karl Williamson [Sun, 5 Feb 2012 00:49:10 +0000 (17:49 -0700)]
regcomp.c: Rmv no-longer used variables and code

12 years agoreg_posixcc.t: Add tests for \v, \V, \h, \H
Karl Williamson [Sun, 5 Feb 2012 00:44:56 +0000 (17:44 -0700)]
reg_posixcc.t: Add tests for \v, \V, \h, \H

12 years agoregcomp.c: Use compiled-in inversion lists
Karl Williamson [Sun, 5 Feb 2012 00:08:58 +0000 (17:08 -0700)]
regcomp.c: Use compiled-in inversion lists

This uses the compiled inversion lists to generate Posix character
classes and things like \v, \s inside bracketed character classes.

This paves the way for future optimizations, and fixes the bug which has
no formal bug number that /[[:ascii:]]/i matched non-Ascii characters,
such as the Kelvin sign, unlike /\p{ascii}/i.

12 years agoAdd compile-time inversion lists for POSIX classes
Karl Williamson [Sat, 4 Feb 2012 18:42:58 +0000 (11:42 -0700)]
Add compile-time inversion lists for POSIX classes

These will be used in regcomp.c to replace the existing bit-wise
handling of these, enabling subsequent optimizations.

These are compiled-in, and hence affect the memory footprint of every
program, including those that don't use Unicode.  The lists that aren't
tiny are therefore currently restricted to only the Latin1 range;
anything needed beyond that will have to be read in at execution time,
just as before.

The design allows for easy conversion from Latin1 to use the full
Unicode range, should it be deemed desirable for some or all of these.

12 years agoregcomp.c: Use compile-time invlists
Karl Williamson [Sat, 4 Feb 2012 05:01:03 +0000 (22:01 -0700)]
regcomp.c: Use compile-time invlists

This creates three simple compile-time inversion lists from the data
that has been generated in a previous commit, and uses two of them.
Three PL_ variables are used to store them.

12 years agoAdd regen/mk_invlists.pl, charclass_invlists.h
Karl Williamson [Sat, 7 Jan 2012 19:10:41 +0000 (12:10 -0700)]
Add regen/mk_invlists.pl, charclass_invlists.h

This will be used to generate compile-time inversion lists in a C hdr
file that can be included in programs for initialization speed

Three simple inversion lists are included in this initial commit

12 years agoregcomp.c: Add ability to have compiled-in inversion lists
Karl Williamson [Sat, 7 Jan 2012 19:34:02 +0000 (12:34 -0700)]
regcomp.c: Add ability to have compiled-in inversion lists

This adds a routine that will take a C array and quickly create an
inversion list that points to that array.  Thus the array had better be
exactly the internal form that is required for an inversion list.  To
make sure that this doesn't get out of sync, a new field in the list's
header is created that is a combination of
version-number/inversion-list-type.

12 years agohandy.h: Add comment
Karl Williamson [Mon, 9 Jan 2012 19:12:00 +0000 (12:12 -0700)]
handy.h: Add comment

12 years agot/re/re_tests: Add Todo test
Karl Williamson [Fri, 3 Feb 2012 21:51:49 +0000 (14:51 -0700)]
t/re/re_tests: Add Todo test

This bug was spotted by Tom Christiansen, but no bug report has been
written.  /[[:ascii:]]/i should match the same set of code points as
/\p{ASCII}/i.  But it is matching things outside the ASCII range

12 years agoregcomp.c: Use new complement union
Karl Williamson [Fri, 3 Feb 2012 22:08:10 +0000 (15:08 -0700)]
regcomp.c: Use new complement union

Previous commits have changed the API of invlist_union so the first
parameter can be NULL, and are to take the complement of the 2nd.  We
can take advantage of that to simplify this code.

12 years agoregcomp.c: Add ability to take union of a complement
Karl Williamson [Fri, 3 Feb 2012 18:40:34 +0000 (11:40 -0700)]
regcomp.c: Add ability to take union of a complement

Previous commits have added the ability to the inversion list
intersection routine to take the complement of one of its inputs.
Likewise, for unions, this will be a frequent paradigm, and it is
cheaper to do the complement of an input in the routine than to
construct a new temporary that is the desired complement, and throw it
away.

12 years agoregcomp.c: _invlist_subtract() becomes a macro
Karl Williamson [Fri, 3 Feb 2012 17:57:33 +0000 (10:57 -0700)]
regcomp.c: _invlist_subtract() becomes a macro

This function is no longer necessary, as it is just a call to the newly
created _invlist_intersection_maybe_complement_2nd() with the correct
parameters.

12 years agoregcomp.c: Add ability to take intersection of complement
Karl Williamson [Fri, 3 Feb 2012 17:32:15 +0000 (10:32 -0700)]
regcomp.c: Add ability to take intersection of complement

It turns out that it is a common paradigm to want to take the
intersection of an inversion list with the complement of another
inversion list.  In fact, this is the how to subtract the second
inversion list from the first, as what remains in the first after the
subtraction is everything in it that is not in the second.

It also turns out that it adds very few cycles to an intersection to
complement one (or both, should we choose to) of the operands.  By
adding this capability, we don't have to create a copy of the inverted
operand beforehand, just to throw it away.

12 years agoregcomp.c: Use NULL first parameter to _invlist_union
Karl Williamson [Fri, 3 Feb 2012 21:55:45 +0000 (14:55 -0700)]
regcomp.c: Use NULL first parameter to _invlist_union

A previous commit has changed _invlist_union() to accept a NULL
first parameter.  This takes advantage of that to simplify some code.

12 years agoregcomp.c: Chg invlist_union() to accept NULL first param
Karl Williamson [Thu, 12 Jan 2012 18:09:39 +0000 (11:09 -0700)]
regcomp.c: Chg invlist_union() to accept NULL first param

It is common in a loop to keep adding inversion lists to a current
running total.  But the first time through, the current union list needs
to be initialized from NULL.  This puts that code in the function
instead of the callers each having to do it.

12 years agoAdd new email address for Reini Urban
Reini Urban [Thu, 9 Feb 2012 06:44:56 +0000 (07:44 +0100)]
Add new email address for Reini Urban

12 years agoSilence compiler warnings
Robin Barker [Thu, 9 Feb 2012 06:42:15 +0000 (07:42 +0100)]
Silence compiler warnings

Cf. RT #110208.
- Remove missing unused variables: op.c, regcomp.c
- Silence -Wformat type error: sv.c
- Cast first part of (,) expression as (void): gv.c

12 years agoREADME.cygwin now has fewer pod issues, update known_pod_issues.dat
Tony Cook [Thu, 9 Feb 2012 01:54:43 +0000 (12:54 +1100)]
README.cygwin now has fewer pod issues, update known_pod_issues.dat

12 years agoadd Cygwin::sync_winenv [perl #110190]
Reini Urban [Wed, 8 Feb 2012 23:58:21 +0000 (17:58 -0600)]
add Cygwin::sync_winenv [perl #110190]

Cygwin::sync_winenv should fix [CPAN #65052], ADODB missing
%COMMONPROGRAMFILES%.
sync_winenv code and solution by Chris Day.

12 years agoRevise perlcygwin.pod for cygwin-1.7
Reini Urban [Wed, 8 Feb 2012 23:51:39 +0000 (17:51 -0600)]
Revise perlcygwin.pod for cygwin-1.7

cygwin does not support windows prior NT5 anymore.
cygwin paths are now all UTF8 encoded, special pathname
characters and names are now allowed.
Removed outdated cruft and fix wrong parts.

12 years agoUpdate Module-Metadata to CPAN version 1.000009
Chris 'BinGOs' Williams [Wed, 8 Feb 2012 18:24:00 +0000 (18:24 +0000)]
Update Module-Metadata to CPAN version 1.000009

  [DELTA]

  1.0.9 2012-02-08 12:00:00
    - API of 'provides' changed to require a 'version' argument to future
      proof the function against CPAN Meta Spec changes (DAGOLDEN)
    - Fatal errors now use 'croak' instead of 'die'; Carp added as
      prerequisite (DAGOLDEN)

12 years agoClean up Pod::Html's cache as part of distclean on *nix.
Nicholas Clark [Tue, 7 Feb 2012 16:58:50 +0000 (17:58 +0100)]
Clean up Pod::Html's cache as part of distclean on *nix.

This has been done on win32 since commit b4a415570dc258dd in 2006.
However, the new Pod::Html caching code only uses one file, pod2htmd.tmp,
so remove now redundant cleanup code for pod2htmi.tmp.

12 years agoMove lib/Pod/t/eol.t to ext/Pod-Html, as it's testing Pod::Html.
Nicholas Clark [Tue, 7 Feb 2012 16:07:33 +0000 (17:07 +0100)]
Move lib/Pod/t/eol.t to ext/Pod-Html, as it's testing Pod::Html.

12 years agoConvert triplicated code in lib/Pod/t/eol.t to a loop.
Nicholas Clark [Tue, 7 Feb 2012 15:59:23 +0000 (16:59 +0100)]
Convert triplicated code in lib/Pod/t/eol.t to a loop.

12 years agoRefactor lib/Pod/t/eol.t
Nicholas Clark [Tue, 7 Feb 2012 15:20:18 +0000 (16:20 +0100)]
Refactor lib/Pod/t/eol.t

* use variables for the names of temporary files
* use lexicals for file handles
* check the return value of close
* use is() rather than ok() with ==
  [possibly still dubious that it's using unpack checksums for comparison,
   instead of SHAs or simply File::Compare]

12 years agoThe cleanup code in lib/Pod/t/eol.t needs updating to track Pod::Html changes.
Nicholas Clark [Tue, 7 Feb 2012 14:46:03 +0000 (15:46 +0100)]
The cleanup code in lib/Pod/t/eol.t needs updating to track Pod::Html changes.

eol.t gained code to clean up temporary files it generated as part of commit
0ec158f4b0db050a in 2002. The temporary file names used by Pod::Html were
changed by commit 33869856bc668ad8 in 2003, but eol.t had never been updated.

12 years agoAdd PERL_RELOCATABLE_INCPUSH to PL_non_bincompat_options, and hence -V output.
Nicholas Clark [Wed, 8 Feb 2012 13:38:01 +0000 (14:38 +0100)]
Add PERL_RELOCATABLE_INCPUSH to PL_non_bincompat_options, and hence -V output.

PERL_RELOCATABLE_INCPUSH was added in commit f31c6eed22759301. As it
causes a small specific behaviour change that isn't visible in any other
configuration option, it seems useful to indicate that the perl binary has
been compiled with it, to aid debugging. (Specifically, debugging of "Why
isn't this working?" when it failed to be enabled.)

12 years agoUpdate Parse-CPAN-Meta to CPAN version 1.4402
Chris 'BinGOs' Williams [Wed, 8 Feb 2012 09:51:30 +0000 (09:51 +0000)]
Update Parse-CPAN-Meta to CPAN version 1.4402

  [DELTA]

  1.4402 Tue Feb 07 2012
      - Minor maintenance: standardized newlines to Unix style

12 years agoUpdate CPAN-Meta-YAML to CPAN version 0.007
Chris 'BinGOs' Williams [Wed, 8 Feb 2012 09:45:12 +0000 (09:45 +0000)]
Update CPAN-Meta-YAML to CPAN version 0.007

  [DELTA]

  0.007     2012-02-07 22:42:42 EST5EDT

    - Generated from ADAMK/YAML-Tiny-1.50.tar.gz

    - Documentation fix to replace missing abstract