platform/upstream/perl.git
12 years agohandy.h: Don't call _utf8 fcns if ASCII
Karl Williamson [Mon, 26 Sep 2011 19:30:40 +0000 (13:30 -0600)]
handy.h: Don't call _utf8 fcns if ASCII

This patch avoids the overhead of calling eg. is_utf8_alpha() on ASCII
inputs. The result is known to Perl's core, and this can avoid a swash
load.

12 years agoutf8.c: Remove (mostly) redundant test
Karl Williamson [Sat, 24 Sep 2011 21:17:33 +0000 (15:17 -0600)]
utf8.c: Remove (mostly) redundant test

The swashes already have the underscore, so this test is redundant.  It
does save some time for this character to avoid having to go out and
load the swash, but why just the underscore?  In fact an earlier commit
changed the macro that most people should use to access this function to
not even call it for the underscore.

12 years agohandy.h: Don't call _uni fcns if have applicable macro
Karl Williamson [Sat, 24 Sep 2011 21:10:01 +0000 (15:10 -0600)]
handy.h: Don't call _uni fcns if have applicable macro

This patch avoids the overhead of calling eg. is_uni_alpha() if the
result is known to Perl's core.  This can avoid a swash load.

12 years agoDon't use swash to find cntrls
Karl Williamson [Sat, 24 Sep 2011 19:23:21 +0000 (13:23 -0600)]
Don't use swash to find cntrls

Unicode stability policy guarantees that no code points will ever be
added to the control characters beyond those already in it.

All such characters are in the Latin1 range, and so the Perl core
already knows which ones those are, and so there is no need to go out to
disk and create a swash for these.

12 years agoutf8.c: Use less confusing property name
Karl Williamson [Sat, 24 Sep 2011 18:34:33 +0000 (12:34 -0600)]
utf8.c: Use less confusing property name

The XPerlSpace is less confusing than SpacePerl (at least to me).  It
means take PerlSpace and extend it beyond ASCII.

12 years agoNo need for swashes for properties that are ASCII-only
Karl Williamson [Sat, 24 Sep 2011 18:19:42 +0000 (12:19 -0600)]
No need for swashes for properties that are ASCII-only

These three properties are restricted to being true only for ASCII
characters.  That information is compiled into Perl, so no need to
create swashes for them.

12 years agoNo need for swashes for computing if ASCII
Karl Williamson [Sat, 24 Sep 2011 18:05:25 +0000 (12:05 -0600)]
No need for swashes for computing if ASCII

This information is trivially computed via the macro, no need to go out
to disk and store a swash for this.

12 years agohandy.h: No need to call fcns to compute if ASCII
Karl Williamson [Sat, 24 Sep 2011 17:56:40 +0000 (11:56 -0600)]
handy.h: No need to call fcns to compute if ASCII

Only the characters whose ordinals are 0-127 are ASCII.  This is
trivially computed by the macro, so no need to call is_uni_ascii() to do
this.  Also, since ASCII characters are the same when represented in
utf8 or not, the utf8 function call is also superfluous.

12 years agohandy.h: Simplify isASCII definition
Karl Williamson [Sat, 24 Sep 2011 17:46:54 +0000 (11:46 -0600)]
handy.h: Simplify isASCII definition

Thus retains essentially the same definition for EBCDIC platforms, but
substitutes a simpler one for ASCII platforms.  On my system, the new
definition compiles to about half the assembly instructions that the old
one did (non-optimized)

A bomb-proof definition of ASCII is to make sure that the value is
unsigned in the largest possible unsigned for the platform so there is
no possible loss of information, and then the ord  must be < 128.

12 years agohandy.h: refactor FITS_IN_8_BITS defn
Karl Williamson [Sat, 24 Sep 2011 17:42:10 +0000 (11:42 -0600)]
handy.h: refactor FITS_IN_8_BITS defn

This creates a #define for the platforms widest UV, and then uses this
in the FITS_IN_8ITS definition, instead of #ifdef'ing that.  This will
be useful in future commits.

12 years agohandy.h: clarify, typos in comment
Karl Williamson [Sat, 24 Sep 2011 17:29:09 +0000 (11:29 -0600)]
handy.h: clarify, typos in comment

12 years agoMore documenting that \p{} defined only for <= U+10FFF
Karl Williamson [Wed, 28 Sep 2011 15:36:25 +0000 (09:36 -0600)]
More documenting that \p{} defined only for <= U+10FFF

12 years agoutf8.c: Call new function invlist_invert_prop()
Karl Williamson [Wed, 28 Sep 2011 15:14:52 +0000 (09:14 -0600)]
utf8.c: Call new function invlist_invert_prop()

This new function is now potentially called.  However, there is no data file
or other circumstances which currently cause this path to get executed.

12 years agoregcomp.c: Add invlist_invert_prop()
Karl Williamson [Wed, 28 Sep 2011 04:14:29 +0000 (22:14 -0600)]
regcomp.c: Add invlist_invert_prop()

This new function inverts a Unicode property.  A regular inversion
doesn't work because it operates on the whole of the code space, and
Unicode property inversions don't invert above-Unicode code points.

This does for inversion lists, what an earlier commit did for swashes.
This function is currently not called by anyone.

12 years agoperlunicode, perluniprops: \p{Title} is Perl extension
Karl Williamson [Wed, 28 Sep 2011 21:55:19 +0000 (15:55 -0600)]
perlunicode, perluniprops: \p{Title} is Perl extension

This property is not official Unicode, and so should be documented by
us.

12 years agoRevise diagnostic text
Karl Williamson [Wed, 28 Sep 2011 01:20:19 +0000 (19:20 -0600)]
Revise diagnostic text

I believe that the new wording is clearer than the older, which I wrote.

12 years agoregexec.c: Avoid hard-coded utf8 tests for EBCDIC
Karl Williamson [Mon, 26 Sep 2011 19:24:08 +0000 (13:24 -0600)]
regexec.c: Avoid hard-coded utf8 tests for EBCDIC

When a swash is loaded, generally it is checked for sanity with an
assert().  The strings used are hard-coded utf8 strings, which will be
different in EBCDIC, and hence will fail.  I haven't figured out a
simple way to get compile-time utf8 vs utfebcdic strings, but we can
just skip the check in EBCDIC builds

12 years agoregcomp.c: Add assertion
Karl Williamson [Wed, 28 Sep 2011 04:18:20 +0000 (22:18 -0600)]
regcomp.c: Add assertion

This is to guard against misuse of the functions.  There is no guard
currently in the underlying Perl functions to lengthening a string
beyond the capacity to hold it.

12 years agoutf8.c: White space only
Karl Williamson [Wed, 28 Sep 2011 02:25:42 +0000 (20:25 -0600)]
utf8.c: White space only

This indents a block of code to match being in a newly created block

12 years agoutf8.c: Don't invert beyond-Unicode code points
Karl Williamson [Wed, 28 Sep 2011 01:36:35 +0000 (19:36 -0600)]
utf8.c: Don't invert beyond-Unicode code points

The Unicode properties are defined only on Unicode code points.  In the
past, this meant all property matches would fail for non-Unicode code
points.  However, starting with 5.15.1 some properties do succeed.  This
restores the previous behavior.

12 years agoregexec.c: Add assertion check
Karl Williamson [Sat, 24 Sep 2011 21:42:14 +0000 (15:42 -0600)]
regexec.c: Add assertion check

This makes sure before there is a segfault that the is_() functions
actually have the side effect that this expects.

12 years agomk_PL_charclass.pl: Accept Unicode 6.1 syntax
Karl Williamson [Fri, 30 Sep 2011 18:04:09 +0000 (12:04 -0600)]
mk_PL_charclass.pl: Accept Unicode 6.1 syntax

The file read by this has a slightly changed format in 6.1

12 years agomk_PL_charclass.pl: Revise comments, gen'd header
Karl Williamson [Fri, 30 Sep 2011 17:15:06 +0000 (11:15 -0600)]
mk_PL_charclass.pl: Revise comments, gen'd header

12 years agobisect-runner.pl should "skip" if --force-manifest detects changes.
Nicholas Clark [Sat, 1 Oct 2011 15:00:57 +0000 (17:00 +0200)]
bisect-runner.pl should "skip" if --force-manifest detects changes.

12 years agoTeach bisect-runner.pl how to build perl back to perl-5.000.
Nicholas Clark [Sat, 1 Oct 2011 14:36:19 +0000 (16:36 +0200)]
Teach bisect-runner.pl how to build perl back to perl-5.000.

It's unlikely that x86_64 Linux will ever be able to build extentions for
versions before e1666bf5602ae794 which upgraded MakeMaker to 3.7, although
there are still other problems at that commit which we don't (yet) work round.
The earliest released version that does build extensions is 5.002

For 5.002 we need to patch perl.c to avoid double calls to fclose() in the
-e handling code.
For 5.001 we need to force -Dusenm.
For 5.000 we need to patch Configure to allow spaces in -D, and to correctly
conclude that struct dirent does *not* contain a d_namlen member.

12 years agoAdd options --force-manifest and --test-build to bisect.pl
Nicholas Clark [Sat, 1 Oct 2011 14:23:41 +0000 (16:23 +0200)]
Add options --force-manifest and --test-build to bisect.pl

--force-manifest touches any files in MANIFEST that are missing. This avoids
hanging on 5.004 or earlier (where Configure's stdin is a tty) when Configure
detects the missing files and asks you if you want to stop. It's also useful
on 5.005 or later if you don't want to treat missing files as a "skip".
--test-build changes behaviour to treat failing to build the target exectuable
as a "fail", instead of a "skip".

12 years ago[perl #99984] Incorrect errmsg with our $::é
Father Chrysostomos [Sat, 1 Oct 2011 13:30:35 +0000 (06:30 -0700)]
[perl #99984] Incorrect errmsg with our $::é

Having PL_parser->error_count set to non-zero when utf8_heavy.pl tries
to do() one of its swashes results in ‘Compilation error’ being placed
in $@ during the do, even if it was successful.  This patch sets the
error_count to 0 before calling SWASHNEW, to prevent that.  It uses
SAVEI8, to make sure it is restored on scope exit.

12 years agoRegen Configure and friends
H.Merijn Brand [Sat, 1 Oct 2011 11:25:30 +0000 (13:25 +0200)]
Regen Configure and friends

After backporting Nicholas' work and slimming down metaconfig.h

12 years agoAdd more x-y aliases for x_y targets in Makefile
H.Merijn Brand [Sat, 1 Oct 2011 11:24:16 +0000 (13:24 +0200)]
Add more x-y aliases for x_y targets in Makefile

Consistently make test_prep identical to test-prep
for all x-y and x_y targets.

12 years agoAvoid bisect-runner.pl hanging on pre-5.004 if a file in MANIFEST is missing.
Nicholas Clark [Sat, 1 Oct 2011 08:36:11 +0000 (10:36 +0200)]
Avoid bisect-runner.pl hanging on pre-5.004 if a file in MANIFEST is missing.

12 years agoRestore the package name to overload errors; fix crash
Father Chrysostomos [Sat, 1 Oct 2011 01:27:58 +0000 (18:27 -0700)]
Restore the package name to overload errors; fix crash

Commit bfcb351493b (which was backported to 5.8.8) caused these error
messages always to mention the overload package, instead of the pack-
age involved:

Can't resolve method "foo" overloading "+" in package "baz"
Stub found while resolving method "foo" overloading "+" in package "baz"

This commit fixes that.  A compiler warning alerted me to the possi-
bility of HvNAME being null, so I wrote a small test for that, found
that it crashed, and incorporated the fix for the crash into the same
commit (since it’s the same line of code).

12 years agoExport DynaLoader symbols from libperl again
Reini Urban [Tue, 27 Sep 2011 11:45:37 +0000 (06:45 -0500)]
Export DynaLoader symbols from libperl again

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL, before
they were effectively XS_EXTERNAL. This broke B::C and possibly other
embedded apps which link to DynaLoader functions.

12 years agoTo build perl-5.003 bisect-runner.pl needs to force a value for trnl.
Nicholas Clark [Fri, 30 Sep 2011 20:49:14 +0000 (22:49 +0200)]
To build perl-5.003 bisect-runner.pl needs to force a value for trnl.

Without this the current makedepend will hang waiting on stdin.
Additionally, when bisecting this far back we need to watch out for the
//depot/perlext/Compiler branch, which has no Configure, patchlevel.h or
other perl source, but may be checked out by the bisect, as it is the second
parent of a8581515f26a081f. If the file Configure is missing, we exit 125
to signal a skip.

12 years agoIn bisect-runner.pl, don't close Configure's STDIN for 5.004
Nicholas Clark [Fri, 30 Sep 2011 08:29:17 +0000 (10:29 +0200)]
In bisect-runner.pl, don't close Configure's STDIN for 5.004

Before commit dfe9444ca7881e71, Configure would refuse to run if STDIN was
not a tty. With that commit, the tty requirement was dropped for -de and -dE.

Change the default start in bisect.pl from perl-5.005 to perl-5.004.

12 years agoAdd a --match option to bisect.pl, to locate source code changes.
Nicholas Clark [Fri, 30 Sep 2011 08:11:58 +0000 (10:11 +0200)]
Add a --match option to bisect.pl, to locate source code changes.

12 years agoIn bisect-runner.pl, refactor the reporting code into report_and_exit().
Nicholas Clark [Fri, 30 Sep 2011 06:43:49 +0000 (08:43 +0200)]
In bisect-runner.pl, refactor the reporting code into report_and_exit().

12 years agobisect-runner.pl must clean up, even if it's skipping.
Nicholas Clark [Fri, 30 Sep 2011 06:29:05 +0000 (08:29 +0200)]
bisect-runner.pl must clean up, even if it's skipping.

It modifies makedepend.SH before running Configure, and a failed build may
well modify other files. The bisect run will fail if git can't checkout
the next revision to test because a file is locally modified.

12 years agobisect.pl should still print the time taken if it fails.
Nicholas Clark [Fri, 30 Sep 2011 06:06:35 +0000 (08:06 +0200)]
bisect.pl should still print the time taken if it fails.

(Bisect runs can legitimately return failure for various reasons, such as if
"There are only 'skip'ped commits left to test.")

Add an editor block, and convert the only tabs to spaces.

12 years agoDocument BEGIN, END, etc. in perlsyn
David Golden [Fri, 30 Sep 2011 01:12:25 +0000 (21:12 -0400)]
Document BEGIN, END, etc. in perlsyn

This adds a brief note that blocks can be preceded by a
compilation phase keyword and points the reader to
perlmod for the gory details.

12 years agoAdd lib/Config.pm as a target for bisect-runner.pl
Nicholas Clark [Thu, 29 Sep 2011 22:45:49 +0000 (00:45 +0200)]
Add lib/Config.pm as a target for bisect-runner.pl

Add -Ilib to the command line generated when -e is used.

Now you can use --target=lib/Config.pm -e 'use Config; ...' to test code
that needs Config, but doesn't require building perl.

12 years agobisect-runner.pl can build miniperl in parallel for earlier perl versions.
Nicholas Clark [Thu, 29 Sep 2011 22:17:34 +0000 (00:17 +0200)]
bisect-runner.pl can build miniperl in parallel for earlier perl versions.

Makefile bugs that caused problems for parallel builds were for targets built
after miniperl.

Also add an editor block to bisect-runner.pl

12 years agoAdd Porting/bisect.pl, to automate bisecting a perl code test case.
Nicholas Clark [Thu, 29 Sep 2011 20:44:45 +0000 (22:44 +0200)]
Add Porting/bisect.pl, to automate bisecting a perl code test case.

12 years agoupdate valgrind URL and platforms
Tony Cook [Thu, 29 Sep 2011 05:47:30 +0000 (15:47 +1000)]
update valgrind URL and platforms

12 years agoAdd darwin to the list of valgrind platforms
Tony Cook [Thu, 29 Sep 2011 05:43:02 +0000 (15:43 +1000)]
Add darwin to the list of valgrind platforms

12 years agoMakefile.SH: emit make valgrind* targets only on linux
Jim Cromie [Wed, 28 Sep 2011 22:11:13 +0000 (16:11 -0600)]
Makefile.SH: emit make valgrind* targets only on linux

This inserts several case $osname in linux) spitshell ... esac
statements to emit valgrind targets only where valgrind is available.
Platform dependence is better than checking for valgrind executable
because it serves as a subtle hint that it can be installed.
Other platforms can be added by those who have them.

12 years agoMakefile.SH: fix ?= gmake-isms
Jim Cromie [Wed, 28 Sep 2011 21:12:07 +0000 (15:12 -0600)]
Makefile.SH: fix ?= gmake-isms

commit c7b956bbbaff changed Makefile.SH to emit gmake-only syntax, fix
that by doing so only on linux, by inserting a spitshell dependent on
osname.  This isnt the most direct fix, but it starts to isolate
linux-only/mostly stuff, like test.valgrind.

12 years agoperldelta for ExtUtils::MakeMaker version 6.61_01.
George Greer [Wed, 28 Sep 2011 22:34:59 +0000 (18:34 -0400)]
perldelta for ExtUtils::MakeMaker version 6.61_01.

12 years agoUpdate ExtUtils::MakeMaker to CPAN version 6.61_01
George Greer [Wed, 28 Sep 2011 03:16:09 +0000 (23:16 -0400)]
Update ExtUtils::MakeMaker to CPAN version 6.61_01

[DELTA]

6.61_01  Sat Sep 24 22:16:13 PDT 2011
    Win32
    * Liblist::Kid now checks the ActiveState MinGW library path environment
      variable [MITHALDU]
    * Further fixes to the Win32 quoting rules.  Fixes failures on VC8+.
      [rt.cpan.org #69528] [SHAY]

12 years agoAdd missing C on </p> construct
Dave Rolsky [Mon, 26 Sep 2011 19:18:42 +0000 (14:18 -0500)]
Add missing C on </p> construct

12 years agoMake a new section for vars related to interpreter state
Dave Rolsky [Mon, 26 Sep 2011 14:28:58 +0000 (09:28 -0500)]
Make a new section for vars related to interpreter state

This is a little arbitrary, for example one could argue that @INC and %INC
belong in there. My main goal was to move stuff that you're less likely to
care about later in the document. Basically, this is the stuff that wizards
care about and mere mortals generally don't.

12 years agoMove $0 and $$ together
Dave Rolsky [Mon, 26 Sep 2011 14:23:13 +0000 (09:23 -0500)]
Move $0 and $$ together

12 years agoMove uid & gid variable docs next to each other
Dave Rolsky [Mon, 26 Sep 2011 14:22:43 +0000 (09:22 -0500)]
Move uid & gid variable docs next to each other

12 years agoUpdate README.freebsd with the new approach for making $^X absolute.
Nicholas Clark [Wed, 28 Sep 2011 09:38:28 +0000 (11:38 +0200)]
Update README.freebsd with the new approach for making $^X absolute.

12 years agoMerge the improved $^X absolute pathname conversion.
Nicholas Clark [Wed, 28 Sep 2011 09:07:32 +0000 (11:07 +0200)]
Merge the improved $^X absolute pathname conversion.

12 years agoNote the improved $^X absolute pathname conversion in perldelta.pod
Nicholas Clark [Wed, 28 Sep 2011 08:54:44 +0000 (10:54 +0200)]
Note the improved $^X absolute pathname conversion in perldelta.pod

12 years agoTeach Configure about "procselfexe" on Solaris and NetBSD
Nicholas Clark [Tue, 27 Sep 2011 22:15:32 +0000 (00:15 +0200)]
Teach Configure about "procselfexe" on Solaris and NetBSD

Configure would already find /proc/self/exe on NetBSD, where /proc/self is
a symlink to /proc/curproc. However, the revised probe avoids the extra
symlink traversal. Configure did not previously probe for the
relevant path on Solaris, /proc/self/path/a.out

Rename the description of /proc/curproc/file from BSD to FreeBSD, as it seems
that of the "big 3" BSDs, only FreeBSD uses this path.

Based on a patch from Johann 'Myrkraverk' Oskarsson.

12 years agoIn Configure, refactor the test for procselfexe into a loop.
Nicholas Clark [Tue, 27 Sep 2011 21:47:39 +0000 (23:47 +0200)]
In Configure, refactor the test for procselfexe into a loop.

This removes code duplication, and makes it easy to add more variants.
Based on a patch from Johann 'Myrkraverk' Oskarsson.

12 years agoWhere available, use _NSGetExecutablePath() to make $^X absolute.
Nicholas Clark [Wed, 21 Sep 2011 14:33:09 +0000 (15:33 +0100)]
Where available, use _NSGetExecutablePath() to make $^X absolute.

In Configure, check whether _NSGetExecutablePath() can be used to find the
absolute pathname of the executable. If so, set usensgetexecutablepath in
config.sh and USE_NSGETEXECUTABLEPATH in config.h. If this is set, then use
this approach in S_set_caret_X() to canonicalise $^X as an absolute
path. This approach works on OS X, and possible on other platforms that
use dyld.

12 years agoWhere available, use sysctl() with KERN_PROC_PATHNAME to make $^X absolute.
Nicholas Clark [Wed, 21 Sep 2011 12:32:58 +0000 (14:32 +0200)]
Where available, use sysctl() with KERN_PROC_PATHNAME to make $^X absolute.

In Configure, check whether sysctl() and KERN_PROC_PATHNAME can be used
to find the absolute pathname of the executable. If so, set
usekernprocpathname in config.sh and USE_KERN_PROC_PATHNAME in config.h.
If this is set, then use this approach in S_set_caret_X() to canonicalise
$^X as an absolute path. This approach works on (at least) FreeBSD, and
doesn't rely on the /proc filesystem existing, or /proc/curproc/file being
present.

12 years agoUpgrade perlfaq from version 5.0150034 to 5.0150035
Florian Ragwitz [Tue, 27 Sep 2011 09:31:50 +0000 (11:31 +0200)]
Upgrade perlfaq from version 5.0150034 to 5.0150035

12 years agoAvoid a "use of uninitialized value" warning from pwent.t
Nicholas Clark [Tue, 27 Sep 2011 08:59:52 +0000 (10:59 +0200)]
Avoid a "use of uninitialized value" warning from pwent.t

16acebfd4bd4723d refactored parts of t/op/pwent.t and enabled warnings.
The refactoring was not the cause - the previous t/op/pwent.t code would
warn if run with -w.

On OS X (and presumably any other platform where the test processes the
output of /usr/bin/dscl), where a user does not have a real name, dscl does
not output a corresponding line, and as a result the test's processing code
had undef in a data structure. The implicit conversion of this to an empty
string was correct for the test to pass, but generates a warning when
warnings are enabled. Hence disable this specific warning for the minimal
scope where the conversion is wanted behaviour.

12 years agoDual-life perlglossary.pod as part of perlfaq
Florian Ragwitz [Mon, 26 Sep 2011 16:53:55 +0000 (18:53 +0200)]
Dual-life perlglossary.pod as part of perlfaq

12 years agoAdd 5.14.2 to perlhist
Florian Ragwitz [Mon, 26 Sep 2011 10:04:56 +0000 (12:04 +0200)]
Add 5.14.2 to perlhist

12 years agoAdd 5.14.2-RC1 to perlhist
Florian Ragwitz [Mon, 19 Sep 2011 05:18:57 +0000 (07:18 +0200)]
Add 5.14.2-RC1 to perlhist

12 years agoAdd the 5.14.2 perldelta
Florian Ragwitz [Mon, 26 Sep 2011 15:24:48 +0000 (17:24 +0200)]
Add the 5.14.2 perldelta

12 years agoAdd the 5.14.2 epigraph
Florian Ragwitz [Mon, 26 Sep 2011 15:12:32 +0000 (17:12 +0200)]
Add the 5.14.2 epigraph

12 years agopodcheck.t: Work for scripts/utilities under VMS
Karl Williamson [Sun, 25 Sep 2011 17:19:59 +0000 (11:19 -0600)]
podcheck.t: Work for scripts/utilities under VMS

 As noted in the comments in the code for this commit, VMS builds
 add a '.com' suffix to scripts and utilities and hence their names don't
 match what is in podcheck's db.  This canonicalizes such names
 back to what the db is expecting.

12 years agot/re/re_tests: Add TODO
Karl Williamson [Sun, 25 Sep 2011 16:43:19 +0000 (10:43 -0600)]
t/re/re_tests: Add TODO

12 years agoperlrebackslash: Add missing paren to example
Karl Williamson [Sun, 25 Sep 2011 16:42:30 +0000 (10:42 -0600)]
perlrebackslash: Add missing paren to example

12 years agopodcheck.t: New method for skipping .PL files
Karl Williamson [Sun, 25 Sep 2011 16:38:14 +0000 (10:38 -0600)]
podcheck.t: New method for skipping .PL files

This reverts most of commit df80274d3278c640a5e0fbf3982950bb5ca9d7bc
and uses a different method to exclude .PL files, suggested by Nicholas
Clark.

It uses the MANIFEST to find such files and then excludes them based on
the full path name.

12 years agopodcheck.t: Remove extra loop initialization
Karl Williamson [Sun, 25 Sep 2011 16:25:07 +0000 (10:25 -0600)]
podcheck.t: Remove extra loop initialization

I think its clearer to put the subroutine call in each line of
initialization

12 years agopodcheck.t: Move hash declaration to earlier in file
Karl Williamson [Sun, 25 Sep 2011 16:22:57 +0000 (10:22 -0600)]
podcheck.t: Move hash declaration to earlier in file

The only change is to move a block of code around.  This is to prepare
for future commits

12 years agopodcheck.t: Move subroutine defn earlier in file
Karl Williamson [Sun, 25 Sep 2011 17:00:26 +0000 (11:00 -0600)]
podcheck.t: Move subroutine defn earlier in file

This is to prepare for future commits, to avoid a warning message
about prototype checking

12 years agopodcheck.t: Don't calc value twice
Karl Williamson [Sun, 25 Sep 2011 15:40:27 +0000 (09:40 -0600)]
podcheck.t: Don't calc value twice

12 years agopodcheck.t: remove unused variable
Karl Williamson [Sun, 25 Sep 2011 15:37:39 +0000 (09:37 -0600)]
podcheck.t: remove unused variable

12 years agoSynchronise Module::CoreList version in Maintainers.pl
Chris 'BinGOs' Williams [Sun, 25 Sep 2011 14:22:40 +0000 (15:22 +0100)]
Synchronise Module::CoreList version in Maintainers.pl

12 years agoadd a couple missing LEAVEs in perlio_async_run()
Chip [Tue, 20 Sep 2011 06:51:49 +0000 (23:51 -0700)]
add a couple missing LEAVEs in perlio_async_run()

12 years agoAvoid a double free with CORE->lc
Father Chrysostomos [Sun, 25 Sep 2011 01:56:57 +0000 (18:56 -0700)]
Avoid a double free with CORE->lc

The code for autovivifying coresubs for method calls ended up calling
hv_store(stash,name,len,(SV *)gv,0) where gv is already in the stash
under that entry.  Since hv_store takes ownership of one reference
count and decrements that of what it overwrites (which is the same gv
in this case), it ends up freeing the gv prematurely.

It ended up making that call because S_maybe_add_coresub needs the
stash to get its ENAME (which happens when called by gv_fetchmeth),
but it also assumed that the presence of the stash meant the gv
needed to be stored in it (as is the case with the other caller,
gv_fetchpvn_flags).

This patch reuses the fullen (full length) parameter as a flag to
indicate that that hv_store call should be skipped.

These workarounds for the assumptions that newATTRSUB makes are start-
ing to make inlining look very attractive....

12 years agoregexp.t: print diagnostics with leading '#'
Karl Williamson [Thu, 22 Sep 2011 23:34:35 +0000 (17:34 -0600)]
regexp.t: print diagnostics with leading '#'

Some test platforms don't like unexpected output without the comment
prefix character

12 years agoAdd t/porting/checkcfgvar.t to run Porting/checkcfgvar.pl as a test.
Nicholas Clark [Fri, 23 Sep 2011 14:30:22 +0000 (16:30 +0200)]
Add t/porting/checkcfgvar.t to run Porting/checkcfgvar.pl as a test.

Add TAP generation and a --tap option to Porting/checkcfgvar.pl.

In checkcfgvar.t, document its purpose, and the likely way to fix the
problems that it has flagged up. This is a prototype before adding similar
instructions to the other t/porting tests.

12 years agoA small refactor of checkcfgvar.pl
Nicholas Clark [Fri, 23 Sep 2011 13:05:49 +0000 (15:05 +0200)]
A small refactor of checkcfgvar.pl

For --list, only print the name out in one place.
Remove a now-redundant sort for --regen.
Alert the user if default values are not being added because --default was
not specified.

12 years agoRefactor t/porting/regen.t to use TestInit q(T A);
Nicholas Clark [Fri, 23 Sep 2011 14:55:20 +0000 (16:55 +0200)]
Refactor t/porting/regen.t to use TestInit q(T A);

Previously it had custom code to change directory to the top of the source
tree, and to convert the library paths to absolute. TestInit has common code
for this.

12 years ago[perl #92898] Clarify (*THEN)’s scope
Father Chrysostomos [Sat, 24 Sep 2011 04:33:58 +0000 (21:33 -0700)]
[perl #92898] Clarify (*THEN)’s scope

12 years agoDocument open fh, "<:"
Father Chrysostomos [Fri, 23 Sep 2011 13:16:14 +0000 (06:16 -0700)]
Document open fh, "<:"

12 years agoMove the test for recursive call to Perl_load_module to t/io/perlio.t
Nicholas Clark [Fri, 23 Sep 2011 10:48:20 +0000 (12:48 +0200)]
Move the test for recursive call to Perl_load_module to t/io/perlio.t

It's a croak(), not a warning, so doesn't really belong in lib/warnings.t
[This also implicitly fixes the wrong expected output of 69dc7e4bdb8e397c]

12 years agoCorrect the expected results for the first perlio warnings subtest.
Nicholas Clark [Fri, 23 Sep 2011 09:43:37 +0000 (11:43 +0200)]
Correct the expected results for the first perlio warnings subtest.

12 years agoTest perl #96008: use and require affected by open.pm
Father Chrysostomos [Fri, 23 Sep 2011 05:32:48 +0000 (22:32 -0700)]
Test perl #96008: use and require affected by open.pm

12 years ago[perl #96008] use and require are affected by the open pragma
Brian Fraser [Fri, 23 Sep 2011 05:31:46 +0000 (22:31 -0700)]
[perl #96008] use and require are affected by the open pragma

% perl -e 'print "package F;\n # \xF1\n;1;"' > x.pl
% perl '-Mopen=:encoding(utf8)' -e 'require "x.pl"'
utf8 "\xF1" does not map to Unicode at x.pl line 1.

Bit of a surprising discovery; Turns out that passing a single ":" for
the layers skips the fetch from the context layers:
perl -wE 'use open qw( :encoding(UTF-8) ); open my $fh, "<:", "etc"; say PerlIO::get_layers($fh);'

That will only get the relevant default layers, while removing the
colons makes it work as usual -- So we can abuse this (mis)feature to
fix the bug.

12 years agoMove/rewrite test for Recursive call to Perl_load_module
Father Chrysostomos [Fri, 23 Sep 2011 05:29:16 +0000 (22:29 -0700)]
Move/rewrite test for Recursive call to Perl_load_module

This test was relying on a bug in require that causes it to use what-
ever I/O layers are active in require‘s *caller* when opening a file
[perl #96008].

This rewrites the test using the example in ticket #75722.
Since it no longer has anything to do with open.pm, it is now in
t/lib/warnings/perlio.

12 years agoMake CORE->method work
Father Chrysostomos [Thu, 22 Sep 2011 23:28:46 +0000 (16:28 -0700)]
Make CORE->method work

This will probably not be used, but ought to be here for complete-
ness’ sake.

Method lookup needs to trigger the autovivification of coresubs.
Since it does not use gv_fetchpvn_flags, the coresub-autovification is
now in a separate static function, so that both standard gv lookup and
method lookup can share it.

12 years agoperlre: Note a bug's existence
Karl Williamson [Thu, 22 Sep 2011 16:42:30 +0000 (10:42 -0600)]
perlre: Note a bug's existence

12 years agore_tests: Add TODO test
Karl Williamson [Thu, 22 Sep 2011 16:40:15 +0000 (10:40 -0600)]
re_tests: Add TODO test

12 years agopodcheck.t: Add comment
Karl Williamson [Thu, 22 Sep 2011 16:17:36 +0000 (10:17 -0600)]
podcheck.t: Add comment

12 years agoPorting/cherrymaint: Add comment
Karl Williamson [Thu, 22 Sep 2011 16:16:27 +0000 (10:16 -0600)]
Porting/cherrymaint: Add comment

12 years agomanifest.t: Clarify a test's wording
Karl Williamson [Thu, 22 Sep 2011 16:15:34 +0000 (10:15 -0600)]
manifest.t: Clarify a test's wording

12 years agobase.pm: remove unused variable
David Golden [Thu, 22 Sep 2011 17:38:52 +0000 (13:38 -0400)]
base.pm: remove unused variable

12 years agobase.pm no longer tracks loaded modules
David Golden [Thu, 22 Sep 2011 17:33:06 +0000 (13:33 -0400)]
base.pm no longer tracks loaded modules

Tracking modules loaded by base.pm to avoid reloading them means
that any module that wishes to force a reload can't just modify
%INC but must also interact with base.pm to clear its cache.

Removing the module-loaded checks have minimal impact.  The internal
call to require() is a NOP for a loaded module.  For an internal
package, the require() will fail with the same error message as
before, which base.pm then ignores.  Tracking modules loaded to avoid
this slight extra overhead is not worth the complexity for other
modules that wish to manipulate %INC.

12 years agoUse a real compile to test for stdbool.h
H.Merijn Brand [Thu, 22 Sep 2011 15:26:34 +0000 (17:26 +0200)]
Use a real compile to test for  stdbool.h

On some Solaris systems, <stdbool.h> is present, but will give an
error if used by a compiler that is not sufficiently c99-compliant.
Check for this by including <stdbool.h> and trying to compile a
short program that uses bool.

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
12 years agopodcheck.t: clarify its pod
Karl Williamson [Thu, 22 Sep 2011 15:19:02 +0000 (09:19 -0600)]
podcheck.t: clarify its pod

12 years agopodcheck.t: Is problem if cpan/non-cpan have same NAME
Karl Williamson [Thu, 22 Sep 2011 15:08:30 +0000 (09:08 -0600)]
podcheck.t: Is problem if cpan/non-cpan have same NAME

If a module whose upstream is cpan has the same NAME as a module that
isn't, that is a problem that should be warned about, as we shouldn't be
shipping two identically named modules, even if one is not under Perl
core's control.  (If two cpan modules have the same name, it is a
problem as well, but not anything we can do anything about, so warn only
when cpan warnings are enabled.)