platform/upstream/perl.git
13 years agoregex: Convert regnode FLAGS fields to charset enum
Karl Williamson [Sun, 26 Dec 2010 17:39:12 +0000 (10:39 -0700)]
regex: Convert regnode FLAGS fields to charset enum

The FLAGS fields of certain regnodes were encoded with USE_UNI if
unicode semantics were to be used.  This patch instead sets them to the
character set used, one of the possibilities of which is to use unicode
semantics.  This shortens the code somewhat, and always puts the
character set in the flags field, which can allow use of switch
statements on it for efficiency, especially as new values are added.

13 years agoChange name of /d to DEPENDS
Karl Williamson [Sun, 26 Dec 2010 17:35:58 +0000 (10:35 -0700)]
Change name of /d to DEPENDS

I much prefer David Golden's name for /d whose meaning 'depends' on
circumstances, instead of 'dual' meaning it could be one or another.
Change it before this gets out in a stable release, and we're stuck with
the old name.

13 years agoCH] Change usage of regex/op common to common names
Karl Williamson [Sun, 26 Dec 2010 17:35:20 +0000 (10:35 -0700)]
CH] Change usage of regex/op common to common names

This patch changes the core functions to use the common names for the
fields that are shared between op.c and regcomp.c, just for consistency
of using one name throughout the core for the same thing.

A grep of cpan shows that both names are used in various modules; so
both names must be retained.

13 years agoAdd HTTP::Tiny as a dual-life core module
David Golden [Mon, 17 Jan 2011 01:57:02 +0000 (20:57 -0500)]
Add HTTP::Tiny as a dual-life core module

HTTP::Tiny 0.008 has been added as a dual-life module.  It is a very
small, simple HTTP/1.1 client designed for simple GET requests and file
mirroring.  It has has been added to enable CPAN.pm and CPANPLUS to
"bootstrap" HTTP access to CPAN using pure Perl without relying on external
binaries like F<curl> or F<wget>.

13 years agoTracked down some other places to make the Unicode-Collate changes
Chris 'BinGOs' Williams [Mon, 17 Jan 2011 00:14:25 +0000 (00:14 +0000)]
Tracked down some other places to make the Unicode-Collate changes

13 years agoperldelta update for Unicode-Collate upgrade
Chris 'BinGOs' Williams [Sun, 16 Jan 2011 23:35:42 +0000 (23:35 +0000)]
perldelta update for Unicode-Collate upgrade

13 years agoUpdate Unicode-Collate to CPAN version 0.70 and enable XS version
Chris 'BinGOs' Williams [Sun, 16 Jan 2011 23:23:03 +0000 (23:23 +0000)]
Update Unicode-Collate to CPAN version 0.70 and enable XS version

  [DELTA]

  0.70  Sun Jan 16 20:31:07 2011
    - Now U::C::Locale->new will use the compiled DUCET via XS.

  0.69  Sat Jan 15 19:41:11 2011
    - clarified about XSUB. revised INSTALL in README.
    - xs: flag passed to utf8n_to_uvuni().
    - doc and comments: [perl #81876] Fix typos by Peter J. Acklam.

  A pure-perl version of this module was previously installed,
  this commit enables the XS version of the module instead.

13 years agoUse multi-bit field for regex character set
Karl Williamson [Sun, 26 Dec 2010 17:31:16 +0000 (10:31 -0700)]
Use multi-bit field for regex character set

The /d, /l, and /u regex modifiers are mutually exclusive.  This patch
changes the field that stores the character set to use more than one bit
with an enum determining which one.  This data structure more
closely follows the semantics of their being mutually exclusive, and
conserves bits as well, and is better expandable.

A small API is added to set and query the bit field.

This patch is not .xs source backwards compatible.  A handful of cpan
programs are affected.

13 years agoregcomp.pl: Add capability for fields to be > 1 bit
Karl Williamson [Sun, 26 Dec 2010 17:30:40 +0000 (10:30 -0700)]
regcomp.pl: Add capability for fields to be > 1 bit

Currently, it doesn't generate a good dump structure if a field has more
than one bit.

13 years agoop_reg_common.h: Add guard to only expand once
Karl Williamson [Sun, 26 Dec 2010 17:30:12 +0000 (10:30 -0700)]
op_reg_common.h: Add guard to only expand once

This is in preparation for adding some in-line functions.

13 years agoSubject: [PATCH] re.pm: Correct pod statement
Karl Williamson [Sun, 26 Dec 2010 17:29:48 +0000 (10:29 -0700)]
Subject: [PATCH] re.pm: Correct pod statement

The /d also overrides one of the other pragmas; not just /u, /l.

13 years agoop.h: add blank line for grouping
Karl Williamson [Sun, 26 Dec 2010 17:29:15 +0000 (10:29 -0700)]
op.h: add blank line for grouping

13 years ago.pm: rename variables to reflect expanded usage
Karl Williamson [Sun, 26 Dec 2010 17:28:31 +0000 (10:28 -0700)]
.pm: rename variables to reflect expanded usage

Certain variables have /dul in their names.  /a is about to be added;
and maybe more, so give a more generic name to avoid future confusion

13 years agoallow buildtoc to find libraries after chdir into pod/
Tony Cook [Sun, 16 Jan 2011 22:55:14 +0000 (09:55 +1100)]
allow buildtoc to find libraries after chdir into pod/

13 years ago[perl #82098] Fix RT 61543 and remaining part of RT 63237
Peter John Acklam [Sun, 16 Jan 2011 22:21:38 +0000 (14:21 -0800)]
[perl #82098] Fix RT 61543 and remaining part of RT 63237

Extend bmodpow() to handle negative numbers.

- dist/Math-BigInt/lib/Math/BigInt.pm: Fix bmodpow() code and make the
  documentation style more like that of other methods.

- dist/Math-BigInt/t/bigintpm.inc: Edit test results so they match new
  behaviour, i.e., where earlier a NaN was returned, there are now
  some cases where an integer is returned, since bmodpow() now also
  handles negative numbers. Also include test cases from RT 63237. The
  tests themselves have all been verified to be correct using other
  software.

- dist/Math-BigRat/t/bigratpm.inc: Fix test case so it matches the new
  behaviour of Math::BigInt->bmodinv(). Math::BigRat->bmodinv() only
  handles integers, and is essentially just a front-end to
  Math::BigInt->bmodinv().

- dist/Math-BigInt/t/bare_mbi.t: Increment test count.

- dist/Math-BigInt/t/bigintpm.t: Increment test count.

- dist/Math-BigInt/t/sub_mbi.t: Increment test count.

13 years ago[perl #81584] recommend Devel::FindAmpersand
Father Chrysostomos [Sun, 16 Jan 2011 22:09:14 +0000 (14:09 -0800)]
[perl #81584] recommend Devel::FindAmpersand

13 years agoGet rid of warning.
Michael Stevens [Wed, 12 Jan 2011 16:09:08 +0000 (16:09 +0000)]
Get rid of warning.

Was showing *** WARNING: node ''/flags' mode' contains non-escaped | or
/ at line 42 in file perl5137delta.pod

now fixed.

However I can't find the referenced section so there may still be a
problem.

13 years agoutil.c handling of return value of vsnprintf
Robin Barker [Sun, 16 Jan 2011 21:41:29 +0000 (13:41 -0800)]
util.c handling of return value of vsnprintf

At two points in util.c, there is code that use vsnprintf
if available, otherwise vsprintf.  The handling of the return
value does not reflect which function has been called.
The patch tries to improve this.

13 years agoAdd another address for R. Barker to checkAUTHORS.pl
Father Chrysostomos [Sun, 16 Jan 2011 22:19:29 +0000 (14:19 -0800)]
Add another address for R. Barker to checkAUTHORS.pl

13 years agoUpdate Unicode-Normalize to CPAN version 1.10
Chris 'BinGOs' Williams [Sun, 16 Jan 2011 19:13:28 +0000 (19:13 +0000)]
Update Unicode-Normalize to CPAN version 1.10

  [DELTA]

  1.10  Sun Jan 16 21:00:34 2011
    - XSUB: reorder() and compose() treat with growing the string.
    - XSUB: provision against UTF8_ALLOW_* flags to be undefined in future.
    - doc: about perl 5.13.x and Unicode 6.0.0
    - doc and comments: [perl #81876] Fix typos by Peter J. Acklam.

13 years agore.pm: correct typo
Karl Williamson [Sun, 26 Dec 2010 17:28:15 +0000 (10:28 -0700)]
re.pm: correct typo

13 years agoDeliver t/re/charset.t
Karl Williamson [Sat, 15 Jan 2011 21:13:24 +0000 (14:13 -0700)]
Deliver t/re/charset.t

13 years agoWhite space, comment only change
Karl Williamson [Sat, 15 Jan 2011 20:52:25 +0000 (13:52 -0700)]
White space, comment only change

13 years agoFix \xa0 matching both [\s] [\S], et.al.
Karl Williamson [Sat, 15 Jan 2011 20:42:58 +0000 (13:42 -0700)]
Fix \xa0 matching both [\s] [\S], et.al.

This bug stemmed from Latin1 characters not matching any (non-complemented)
character class in /d semantics when the target string is no utf8; but having
unicode semantics when it isn't.  The solution here is to add a special flag.

There were several tests that relied on the broken behavior, specifically they
tested that \xff isn't a printable word character even in utf8.  I changed the
deparse test to instead use a non-printable code point, and I changed the ones
in re_tests to be TODOs, and will change them back using /a when that is
shortly added.

13 years agoregcomp: Share two bits in ANYOF flags
Karl Williamson [Sat, 15 Jan 2011 16:45:24 +0000 (09:45 -0700)]
regcomp: Share two bits in ANYOF flags

It turns out that the INVERT and EOS flags can actually share the same bit, as
explained in the comments, freeing up a bit for other uses.  No code changes
need be made.

13 years agorestrict \p{IsUserDefined} to In\w+ and In\w+
David Mitchell [Sun, 16 Jan 2011 14:16:20 +0000 (14:16 +0000)]
restrict \p{IsUserDefined} to In\w+ and In\w+

In L<perlunicode/"User-Defined Character Properties">, it says you can
create custom properties by defining subroutines whose names begin with
"In" or "Is". However, perl doesn't actually enforce that naming
restriction, so \p{foo::bar} will call foo::Bar() if it exists.

This commit finally enforces this convention. Note that this broke a
number of existing tests for properties, since they didn't always use an
Is/In prefix.

13 years agoDon't compile or link in EU::CBuilder's base class testing.
Craig A. Berry [Sat, 15 Jan 2011 18:45:15 +0000 (12:45 -0600)]
Don't compile or link in EU::CBuilder's base class testing.

Remove the tests that try to send actual compile and link commands
to the shell and predict what their output will be.   That can't
be done portably in the base class -- that's what the overrides
are for.  Testing that properties get populated correctly and so
forth should be reasonably portable, though there is no guarantee
some of these won't be overridden as well (but leave them in for
now).

13 years agoUpdate perlguts.pod so that prose isn't a lie
Vadim Konovalov [Sat, 15 Jan 2011 00:08:12 +0000 (19:08 -0500)]
Update perlguts.pod so that prose isn't a lie

(Also add a new address for vadim to checkAUTHORS

13 years agotest that perl.pod, pod.lst, MANIFEST and the file system are consistent
Tony Cook [Thu, 13 Jan 2011 12:29:38 +0000 (23:29 +1100)]
test that perl.pod, pod.lst, MANIFEST and the file system are consistent

Possibly this is too strict.

13 years agoFix =item to be ordered list and not warn.
Michael Stevens [Thu, 13 Jan 2011 15:46:51 +0000 (15:46 +0000)]
Fix =item to be ordered list and not warn.

13 years agoregexec.c: Remove no longer needed goto
Karl Williamson [Fri, 14 Jan 2011 16:16:03 +0000 (09:16 -0700)]
regexec.c: Remove no longer needed goto

13 years agoregexec.c: Add to comment
Karl Williamson [Fri, 14 Jan 2011 16:14:32 +0000 (09:14 -0700)]
regexec.c: Add to comment

13 years agouni/fold.t: Fix TODOs that now pass
Karl Williamson [Fri, 14 Jan 2011 16:11:56 +0000 (09:11 -0700)]
uni/fold.t: Fix TODOs that now pass

13 years agoadd enum index in overload.h comments
David Mitchell [Tue, 11 Jan 2011 17:22:59 +0000 (17:22 +0000)]
add enum index in overload.h comments

makes debugging marginally easier!

13 years agoregex: Use ANYOFV
Karl Williamson [Fri, 14 Jan 2011 05:36:36 +0000 (22:36 -0700)]
regex: Use ANYOFV

This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
when there is a possibility that it could match more than one character.   Note
that this doesn't affect the optimizer, as it essentially ignores things that
fit into this category.  (But it means that the optimizer will no longer reject
these when it shouldn't have.)

The handling of the LATIN SHARP s is modified to correspond with this new node
type.

The initial handling of ANYOFV is placed in regexec.c.  More analysis will come
on that.  But there was significant change to the part that handles matching
multi-char strings.  This has long been buggy, with it previously comparing a
folded-version on one side with a non-folded version on the other.

This patch fixes about 60% of the problems that my undelivered test suite gives
for multi-char folds.  But there are still 17K test failures left, so I'm still
not delivering that.  The TODOs that this fixes will be cleaned up in a later commit

13 years agoutf8.h: Add define for max fold expansion in chars
Karl Williamson [Fri, 14 Jan 2011 04:23:46 +0000 (21:23 -0700)]
utf8.h: Add define for max fold expansion in chars

13 years agoregcomp.sym: Add ANYOFV node
Karl Williamson [Fri, 14 Jan 2011 04:12:21 +0000 (21:12 -0700)]
regcomp.sym: Add ANYOFV node

This node is like a straight ANYOF node to match [bracketed character classes],
but can match multiple characters; in particular it can match a multi-char
fold.

When multi-char Unicode folding was added to Perl, it was overlooked that the
ANYOF node is supposed to match exactly one character, hence there have been
bugs ever since.  Adding a specialized node that can match multiple chars,
these can be fixed more easily.  I tried at first to make ANYOF match multiple
chars, but this causes Perl to not be able to fully compile.

13 years agoregex: Some Comment clarifications
Karl Williamson [Tue, 11 Jan 2011 02:33:40 +0000 (19:33 -0700)]
regex: Some Comment clarifications

13 years agoRemove code before declaration, inadvertently added in 447f000ef4448b16.
Nicholas Clark [Thu, 13 Jan 2011 17:31:55 +0000 (17:31 +0000)]
Remove code before declaration, inadvertently added in 447f000ef4448b16.

Code in dist/ isn't yet subject to all the warnings flags that the core C
code enjoys.

13 years agoIn Perl_write_to_stderr(), use Perl_magic_methcall() if STDERR is tied.
Nicholas Clark [Thu, 13 Jan 2011 17:04:14 +0000 (17:04 +0000)]
In Perl_write_to_stderr(), use Perl_magic_methcall() if STDERR is tied.

Add a flag G_WRITING_TO_STDERR to signal that Perl_magic_methcall() needs to
localise PL_stderrgv to NULL, and save/free temps, inside its ENTER/LEAVE
pair.

13 years agoUpdate Pod-LaTeX to CPAN version 0.59
Chris 'BinGOs' Williams [Thu, 13 Jan 2011 16:34:15 +0000 (16:34 +0000)]
Update Pod-LaTeX to CPAN version 0.59

  [DELTA]

  2011-01-04  Tim Jenness  <tjenness@cpan.org>

    ---- Version 0.59 CPAN ----

    * t/*.t: Use Test::More for tests.

    * Build.PL: Use Module::Build

    * LaTeX.pm: Fix typo in pod (RT #46887 via Dave Mitchell)

13 years agoithread_create() was relying on the stack not moving. Fix this.
Nicholas Clark [Thu, 13 Jan 2011 16:24:52 +0000 (16:24 +0000)]
ithread_create() was relying on the stack not moving. Fix this.

4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
passing the thread creation arguments as pointers to a block of memory
holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
because the block of memory is on the Perl stack, which can move as a side
effect of being reallocated to extend it. Hence pass in the offset on the
stack instead, read the current value of the relevant interpreter's stack
at the point of access, and copy all the SVs away before making any further
calls which might cause reallocation.

13 years agoUpdate to Win32-0.44 from CPAN
Jan Dubois [Wed, 12 Jan 2011 21:10:55 +0000 (13:10 -0800)]
Update to Win32-0.44 from CPAN

13 years agoUpdate to Win32-0.43 from CPAN
Jan Dubois [Wed, 12 Jan 2011 19:31:49 +0000 (11:31 -0800)]
Update to Win32-0.43 from CPAN

13 years agoRemove trailing blanks
Michael Stevens [Wed, 12 Jan 2011 15:46:57 +0000 (08:46 -0700)]
Remove trailing blanks

These were generating a podchecker warning

13 years agoUpdate Term-UI to CPAN version 0.24
Chris 'BinGOs' Williams [Wed, 12 Jan 2011 13:37:39 +0000 (13:37 +0000)]
Update Term-UI to CPAN version 0.24

  [DELTA]

  Changes for 0.24        Wed Jan 12 13:16:01 GMT 2011
  =====================================================
  * Skip some tests if we are not on a terminal

13 years agoUpdate IO-Compress to CPAN version 2.033
Chris 'BinGOs' Williams [Tue, 11 Jan 2011 21:34:22 +0000 (21:34 +0000)]
Update IO-Compress to CPAN version 2.033

  [DELTA]

  2.033 11 Jan 2011
      * Fixed typos & spelling errors.
        [perl# 81816]

  2.032 4 Jan 2011

      * IO::Uncompress::Base
        - An input file that had a valid header, and so would allow
          creation of the uncompression object, but was then followed by
          corrupt data would trigger an infinite loop when using the
          input line oprator.
          [RT #61915]

      * IO::Compress::Gzip
        - XFL default settings for max compression & fastest algorithm were
          the wrong way around. Thanks to Andrey Zholos for spotting this.

      * IO::Compress::Base::Common
        - Fixed precedence problem in parameter parsing code.

13 years agoFix execute permissions on the last commit
Chris 'BinGOs' Williams [Tue, 11 Jan 2011 19:24:58 +0000 (19:24 +0000)]
Fix execute permissions on the last commit

13 years agoUpdate Compress-Raw-Zlib to CPAN version 2.033
Chris 'BinGOs' Williams [Tue, 11 Jan 2011 19:23:52 +0000 (19:23 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.033

  [DELTA]

  2.033 11 Jan 2011
      * Fixed typos & spelling errors.
        [perl# 81782]

  2.032 4 Jan 2011

      * Document inflateReset
        [RT #61082]

13 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.033
Chris 'BinGOs' Williams [Tue, 11 Jan 2011 16:55:36 +0000 (16:55 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.033

  [DELTA]

  2.033 11 Jan 2011
      * Fixed typos & spelling errors.
        [perl# 81782]

  2.032 4 Jan 2011

      * No Changes

13 years agoUpdate DB_File to CPAN version 1.821
Chris 'BinGOs' Williams [Tue, 11 Jan 2011 16:12:16 +0000 (16:12 +0000)]
Update DB_File to CPAN version 1.821

  [DELTA]

  1.821 10 January 2011

   * Fixed typos & spelling errors.
     [perl #81792]

13 years agoIn S_ithread_create, reduce the amount of conditionally compiled C code.
Nicholas Clark [Tue, 11 Jan 2011 14:37:59 +0000 (14:37 +0000)]
In S_ithread_create, reduce the amount of conditionally compiled C code.

With a small amount of refactoring, compatibility across different perl
versions can be achieved with less duplication.

13 years agoembed.fnc: Silence 'no docs' message
Karl Williamson [Tue, 11 Jan 2011 03:56:50 +0000 (20:56 -0700)]
embed.fnc: Silence 'no docs' message

I mistakenly added the 'd' flag to the entry for check_utf8_print().

13 years agoCorrect the "unimplemented" message for get{host,net,proto,serv}ent aliases.
Nicholas Clark [Mon, 10 Jan 2011 15:15:25 +0000 (15:15 +0000)]
Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases.

Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a
platform, they would all return 'Unsupported socket function "gethostent"
called', with the analogous results for getnet{byaddr,byname,ent},
getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was
introduced by change af51a00e97d5c559 - prior to this, all 12 functions would
report their own name when unimplemented.

13 years agoremove perlapollo from perl.pod
Robin Barker [Thu, 6 Jan 2011 23:03:44 +0000 (23:03 +0000)]
remove perlapollo from perl.pod

13 years agoMerge the implementations of {end,set}{gr,pw}ent with endhostent.
Nicholas Clark [Mon, 10 Jan 2011 11:54:28 +0000 (11:54 +0000)]
Merge the implementations of {end,set}{gr,pw}ent with endhostent.

Unlike set{host,net,proto,serv}ent, set{gr,pw}ent don't have stayopen
parameter, hence their "signature" is the same as the ent*ent functions.

13 years agoMerge the implementations of pp_s{host,net,proto,serv}ent.
Nicholas Clark [Mon, 10 Jan 2011 10:29:06 +0000 (10:29 +0000)]
Merge the implementations of pp_s{host,net,proto,serv}ent.

13 years agoMerge the implementations of pp_e{host,net,proto,serv}ent.
Nicholas Clark [Mon, 10 Jan 2011 10:12:10 +0000 (10:12 +0000)]
Merge the implementations of pp_e{host,net,proto,serv}ent.

PL_op_desc[] rather than PL_op_name(), as the OPs are internally named e*ent,
but implement the ent*ent functions, and when unimplemented report themselves
using the function name. No need for OP_DESC(), as the switch statement means
that we can't encounter OP_CUSTOM.

13 years agonewSVpvf_nocontext only visible with threads, fix for non-threaded
Tony Cook [Mon, 10 Jan 2011 07:50:59 +0000 (18:50 +1100)]
newSVpvf_nocontext only visible with threads, fix for non-threaded

Ideally it would be available, calling Perl_newSVpvf_nocontext
directly is an alternative, but the comment in sv.c makes that
questionable.

Since the function being called from already has a context, use it.

13 years agoutf8.c: Renumber cases in switch
Karl Williamson [Mon, 10 Jan 2011 01:47:18 +0000 (18:47 -0700)]
utf8.c: Renumber cases in switch

This tidies things up after several of them were removed.

13 years agoutf8.c: Change to warn_d in two places
Karl Williamson [Mon, 10 Jan 2011 01:39:05 +0000 (18:39 -0700)]
utf8.c: Change to warn_d in two places

The routines that these call used the warn_d forms; so these should as well.

13 years agoutf8.h: remove wrong, no-longer used #define
Karl Williamson [Mon, 10 Jan 2011 01:36:10 +0000 (18:36 -0700)]
utf8.h: remove wrong, no-longer used #define

UNICODE_ILLEGAL only referred to one of 66 code points in the same class.  And
they aren't illegal except in certain circumstances.  New #defines have taken
over the use this formerly had, so it is now meaningless.

13 years agomktables: Now can test surrogates and nonchars
Karl Williamson [Mon, 10 Jan 2011 01:34:43 +0000 (18:34 -0700)]
mktables: Now can test surrogates and nonchars

This is a result of their now being more accepted in core

13 years agoDocument the flip of problematic code points handling
Karl Williamson [Mon, 10 Jan 2011 01:33:00 +0000 (18:33 -0700)]
Document the flip of problematic code points handling

13 years agoAdd warnings for use of problematic code points
Karl Williamson [Sun, 9 Jan 2011 22:33:28 +0000 (15:33 -0700)]
Add warnings for use of problematic code points

The non-Unicode code points have no Unicode semantics, so applying operations
such as casing on them warns.

This patch also includes the changes to test the warnings added by recent
commits for handling the surrogates and above-Unicode code points

13 years agoutf8.c: Whitespace only
Karl Williamson [Sun, 9 Jan 2011 22:30:08 +0000 (15:30 -0700)]
utf8.c: Whitespace only

outdent in response to the enclosing block being removed

13 years agoop.c: Remove unnecessary flag
Karl Williamson [Sun, 9 Jan 2011 22:28:29 +0000 (15:28 -0700)]
op.c: Remove unnecessary flag

This flag no longer does anything

13 years agoutf8.c(): Default to allow problematic code points
Karl Williamson [Sun, 9 Jan 2011 20:50:18 +0000 (13:50 -0700)]
utf8.c(): Default to allow problematic code points

Surrogates, non-character code points, and code points that aren't in Unicode
are now allowed by default, instead of having to specify a flag to allow them.
(Most code did specify those flags anyway.)

This affects uvuni_to_utf8_flags(), utf8n_to_uvuni() and various routines that
are specialized interfaces to them.

Now there is a new set of flags to disallow those code points.  Further, all 66
of the non-character code points are known about and handled consistently,
instead of just U+FFFF.

Code that requires these code points to be forbidden will have to change to use
the new flags.  I have looked at all the (few) instances in CPAN where these
routines are used, and the only one I found that appears to have need to do
this, Encode, has already been patched to accommodate this change.  Of course,
I may have overlooked some subtleties.

13 years agoutf8.c: Nits in pod
Karl Williamson [Sun, 9 Jan 2011 20:33:21 +0000 (13:33 -0700)]
utf8.c: Nits in pod

13 years agoAdd check_utf8_print()
Karl Williamson [Sun, 9 Jan 2011 19:37:03 +0000 (12:37 -0700)]
Add check_utf8_print()

This new function looks for problematic code points on output, and warns if any
are found, returning FALSE as well.

What it warns about may change, so is marked as experimental.

13 years agoperldiag.pod: Remove more format precisions
Karl Williamson [Sun, 9 Jan 2011 16:14:00 +0000 (09:14 -0700)]
perldiag.pod: Remove more format precisions

Commit 78d0fecf645563eb571499ade0590a1389a977a8 missed several printf formats.

13 years agodiag.t: Change so a fixed TODO passes
Karl Williamson [Sun, 9 Jan 2011 16:09:54 +0000 (09:09 -0700)]
diag.t: Change so a fixed TODO passes

Commit 9c3e8e01b899ff41442e59a8d18532c177d1bdee changed diag.t so that it now
checks if a TODO passes, but it caused the tests to fail.  This causes a TODO
passed instead.

13 years agoutf8.h: white space, add comments
Karl Williamson [Thu, 6 Jan 2011 19:41:46 +0000 (12:41 -0700)]
utf8.h: white space, add comments

13 years agoupdate Module::CoreList for v5.12.3
Ricardo Signes [Sun, 9 Jan 2011 19:22:31 +0000 (14:22 -0500)]
update Module::CoreList for v5.12.3

13 years agoGenerate "Unsupported socket function" stubs using PL_ppaddr.
Nicholas Clark [Sat, 8 Jan 2011 15:56:22 +0000 (15:56 +0000)]
Generate "Unsupported socket function" stubs using PL_ppaddr.

Instead of having each socket op conditionally compile as either the
implementation or a DIE() depending on #HAS_SOCKET

1: remove the conditional code from the ops themselves
2: only compile the ops if HAS_SOCKET is defined
3: general conditional code for the intialisation of PL_ppaddr - as appropriate
   either the ops, or Perl_unimplemented_op
4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
   ops (ie not the "panic"... message)

Whilst this complicates the support code in regen/opcode.pl, it's already a
net saving of 5 lines in the C code.

13 years agoRename pp_send to pp_syswrite, making send an alias for syswrite.
Nicholas Clark [Sat, 8 Jan 2011 13:49:21 +0000 (13:49 +0000)]
Rename pp_send to pp_syswrite, making send an alias for syswrite.

Previously syswrite was an alias for send. However, syswrite is always
available, whereas send is not implemented if HAS_SOCKET is not defined.

13 years agoIn opcode.h, use the alias macros in PL_ppaddr[]
Nicholas Clark [Sat, 8 Jan 2011 11:11:52 +0000 (11:11 +0000)]
In opcode.h, use the alias macros in PL_ppaddr[]

For OPs that share implementations, use #define aliases for the "original"
names in PL_ppaddr[], instead of having regen/opcode.pl replace them with
the name of the implementing OP body. Whilst this initially adds another layer
of indirection, it will give more flexibility where conditional compilation of
OPs is determined by the feature macros in config.h

13 years agoRemove commented-out code from regen/opcode.pl
Nicholas Clark [Sun, 9 Jan 2011 11:45:00 +0000 (11:45 +0000)]
Remove commented-out code from regen/opcode.pl

13 years agoregen/opcode.pl should only generate prototypes for pp_* functions that exist.
Nicholas Clark [Sun, 9 Jan 2011 11:27:19 +0000 (11:27 +0000)]
regen/opcode.pl should only generate prototypes for pp_* functions that exist.

It now generates prototypes for all functions that implement OPs. Hence
Perl_unimplemented_op no longer needs a special-case prototype. As it is now
generating a prototype for Perl_do_kv, no need for regen/embed.pl to duplicate
this. Convert the last two users of the macro do_kv() to Perl_do_kv(aTHX).

13 years agoGenerate pp_* prototypes in pp_proto.h, and remove pp.sym
Nicholas Clark [Sun, 9 Jan 2011 10:54:58 +0000 (10:54 +0000)]
Generate pp_* prototypes in pp_proto.h, and remove pp.sym

Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
locations that relied on them.

regen/opcode.pl now generates prototypes for the PP functions directly, into
pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
this, removing the only ordering dependency in the regen scripts. opcode.pl
is now responsible for prototypes for pp_* functions. (embed.pl remains
responsible for ck_* functions, reading from regen/opcodes)

13 years agoembed.pl can read the names of ck_* functions direct from regen/opcodes
Nicholas Clark [Sun, 9 Jan 2011 10:08:29 +0000 (10:08 +0000)]
embed.pl can read the names of ck_* functions direct from regen/opcodes

Previously regen/opcode.pl wrote them to pp.sym for regen/embed.pl to read.

13 years agoExtract the opcode data from regen/opcode.pl into regen/opcodes
Nicholas Clark [Sun, 9 Jan 2011 09:38:11 +0000 (09:38 +0000)]
Extract the opcode data from regen/opcode.pl into regen/opcodes

Whilst it is possible to open regen/opcode.pl and parse it to find the __END__
token, it's not the cleanest approach.

13 years agoReplace OP stubs in mathoms.c with #define aliases in opcode.h
Nicholas Clark [Sun, 2 Jan 2011 19:13:12 +0000 (19:13 +0000)]
Replace OP stubs in mathoms.c with #define aliases in opcode.h

External code that references OPs by name will still link (and work).
Unlike the other compatibility functions in mathoms.c, the OP stubs were simply
making calls onwards to their replacements, so simply taking up space without
adding anything.

13 years agoUpdate CPANPLUS to CPAN version 0.9011
Chris 'BinGOs' Williams [Sun, 9 Jan 2011 00:16:46 +0000 (00:16 +0000)]
Update CPANPLUS to CPAN version 0.9011

  [DELTA]

  Changes for 0.9011      Fri Jan  7 22:01:56 2011
  ================================================
  * Remove reporting $! after make test fails. It is misleading
    in test reports
  * Don't unset PERL_MM_USE_DEFAULT if it is already set
    in cpan2dist
  * Apply blead patches from Peter Acklam

13 years agoUpdate CPANPLUS-Dist-Build to CPAN version 0.52
Chris 'BinGOs' Williams [Sun, 9 Jan 2011 00:02:26 +0000 (00:02 +0000)]
Update CPANPLUS-Dist-Build to CPAN version 0.52

  [DELTA]

  0.52 Fri Jan  7 22:23:03 GMT 2011
    - Apply blead patch from Peter Acklam

13 years agoUpdate Term-UI to CPAN version 0.22
Chris 'BinGOs' Williams [Sat, 8 Jan 2011 23:38:05 +0000 (23:38 +0000)]
Update Term-UI to CPAN version 0.22

  [DELTA]

  Changes for 0.22        Fri Jan  7 21:55:38 GMT  2011
  =====================================================
  * Apply blead patch from Peter Acklam

13 years agoUpdate Params-Check to CPAN version 0.28
Chris 'BinGOs' Williams [Sat, 8 Jan 2011 23:23:45 +0000 (23:23 +0000)]
Update Params-Check to CPAN version 0.28

  [DELTA]

  Changes for 0.28    Fri Jan  7 21:52:28 2011
  ============================================
  * Apply blead patch from Peter Acklam

13 years agodiag.t: Remove printf conversion modifiers from msgs
Karl Williamson [Sat, 8 Jan 2011 23:04:24 +0000 (16:04 -0700)]
diag.t: Remove printf conversion modifiers from msgs

The user doesn't need to know that the message was formatted with, eg., and
'ld' vs just a 'd'

13 years agodiag.t: Check that TODOs haven't been done
Karl Williamson [Sat, 8 Jan 2011 22:43:55 +0000 (15:43 -0700)]
diag.t: Check that TODOs haven't been done

If a TODO diagnostic message is added to perldiag.pod, this patch makes
sure that it warns to remove the TODO.

13 years agodiag.t: Remove TODOs that have been done
Karl Williamson [Sat, 8 Jan 2011 22:40:12 +0000 (15:40 -0700)]
diag.t: Remove TODOs that have been done

13 years agodiag.t: Ignore formatting precisions in messages
Karl Williamson [Sat, 8 Jan 2011 22:33:54 +0000 (15:33 -0700)]
diag.t: Ignore formatting precisions in messages

Neither the user looking up an error message, nor a developer adding it to
perldiag.pod cares about the particular formatting things like whether it has
leading zeros or a field width.  So remove them from both the messages in the
pod and the messages diag.t extracts from the Perl source

13 years agodiag.t: Add checks that pod msgs have severity
Karl Williamson [Sat, 8 Jan 2011 22:10:08 +0000 (15:10 -0700)]
diag.t: Add checks that pod msgs have severity

Also, there were errors in the processing of messages and syntax checking for
message class, such as not accepting digits, so the 'utf8' class was not
accepted.

13 years agodiag.t: Use variable for pod name
Karl Williamson [Sat, 8 Jan 2011 22:07:51 +0000 (15:07 -0700)]
diag.t: Use variable for pod name

13 years agoperldiag.pod: Add missing message severities
Karl Williamson [Sat, 8 Jan 2011 21:44:05 +0000 (14:44 -0700)]
perldiag.pod: Add missing message severities

13 years agoUpdate Object-Accessor to CPAN version 0.38
Chris 'BinGOs' Williams [Sat, 8 Jan 2011 23:09:04 +0000 (23:09 +0000)]
Update Object-Accessor to CPAN version 0.38

  [DELTA]

  Changes for 0.38    Fri Jan  7 21:47:51 GMT  2011
  =================================================
  * Apply blead patch from Peter Acklam

13 years agoUpdate Module-Load-Conditional to CPAN version 0.40
Chris 'BinGOs' Williams [Sat, 8 Jan 2011 22:50:48 +0000 (22:50 +0000)]
Update Module-Load-Conditional to CPAN version 0.40

  [DELTA]

  Changes for 0.40    Fri Jan  7 21:45:01 GMT 2011
  =================================================
  * Apply blead patch from Peter Acklam

13 years agoRemove references to pp.sym from makedef.pl, unused since 2000.
Nicholas Clark [Sat, 8 Jan 2011 20:08:51 +0000 (20:08 +0000)]
Remove references to pp.sym from makedef.pl, unused since 2000.

954c1994944eafa7 removed the only user of pp.sym, but not the code to
manipulate the filename.

13 years agoRemove MacOS (classic) code from makedef.pl.
Nicholas Clark [Sat, 8 Jan 2011 19:53:46 +0000 (19:53 +0000)]
Remove MacOS (classic) code from makedef.pl.

13 years agoIn pp_send, assign to io earlier, and use op_type instead of PL_op->op_type.
Nicholas Clark [Sat, 8 Jan 2011 15:38:16 +0000 (15:38 +0000)]
In pp_send, assign to io earlier, and use op_type instead of PL_op->op_type.

On this platform, this doesn't change the size of the object code, suggesting
that there are all transformations that the optimiser had already spotted.
However, the code is now clearer for humans.

13 years agoIn pp_send, transpose the blocks for OP_SYSWRITE and OP_SEND
Nicholas Clark [Sat, 8 Jan 2011 14:29:08 +0000 (14:29 +0000)]
In pp_send, transpose the blocks for OP_SYSWRITE and OP_SEND