platform/upstream/perl.git
13 years agomro.c: Correct utf8 and bytes concatenation
Father Chrysostomos [Thu, 29 Sep 2011 15:48:38 +0000 (08:48 -0700)]
mro.c: Correct utf8 and bytes concatenation

The previous commit introduced some code that concatenates a pv on to
an sv and then does SvUTF8_on on the sv if the pv was utf8.

That can’t work if the sv was in Latin-1 (or single-byte) encoding
and contained extra-ASCII characters.  Nor can it work if bytes are
appended to a utf8 sv.  Both produce mangled utf8.

There is apparently no function apart from sv_catsv that handle
this.  So I’ve modified sv_catpvn_flags to handle this if passed the
SV_CATUTF8 (concatenating a utf8 pv) or SV_CATBYTES (cancatenating a
byte pv) flag.

This avoids the overhead of creating a new sv (in fact, sv_catsv
even copies its rhs in some cases, so that would mean creating two
new svs).  It might even be worthwhile to redefine sv_catsv in terms
of this....

13 years agomro UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 13:41:10 +0000 (10:41 -0300)]
mro UTF8 cleanup.

This patch also duplicates existing mro tests with copies that use
Unicode in identifiers, to test the mro code.

Since those tests trigger it, it also fixes a bug in the parsing
of *{...}: If the first character inside the braces is a non-ASCII
Unicode identifier character, the inside is now implicitly quoted
if it is just an identifier (just as it is with ASCII identifiers),
instead of being parsed as a bareword that would violate strict subs.

13 years agouniversal.c: ->can UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 11:54:11 +0000 (08:54 -0300)]
universal.c: ->can UTF8 cleanup.

13 years agouniversal.c: ->isa, sv_derived_from UTF8 cleanup.
Brian Fraser [Tue, 27 Sep 2011 00:35:50 +0000 (17:35 -0700)]
universal.c: ->isa, sv_derived_from UTF8 cleanup.

This makes them both nul-and-UTF8 clean, although the latter
is somewhat superficial, as mro isn't clean yet.

(Tests coming once ->can and ->DOES are clean)

13 years agopp_sys.c: pp_tie and untie UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 10:57:20 +0000 (07:57 -0300)]
pp_sys.c: pp_tie and untie UTF8 cleanup.

13 years agopp.c: pp_substr for UTF-8 globs.
Brian Fraser [Tue, 27 Sep 2011 00:24:44 +0000 (17:24 -0700)]
pp.c: pp_substr for UTF-8 globs.

Since typeglobs may have the UTF8 flag set now, we need to avoid
testing SvCUR on a potential glob, as that would trip an assertion.

13 years agopp_ctl.c: pp_caller UTF8 cleanup.
Brian Fraser [Mon, 26 Sep 2011 22:32:45 +0000 (15:32 -0700)]
pp_ctl.c: pp_caller UTF8 cleanup.

13 years agosv.c: S_anonymise_cv_maybe UTF8 cleanup.
Brian Fraser [Mon, 26 Sep 2011 20:48:52 +0000 (13:48 -0700)]
sv.c: S_anonymise_cv_maybe UTF8 cleanup.

13 years agopp.c & sv.c: pp_ref UTF8 and null cleanup.
Brian Fraser [Mon, 26 Sep 2011 19:56:47 +0000 (12:56 -0700)]
pp.c & sv.c: pp_ref UTF8 and null cleanup.

This adds a new function to sv.c, sv_ref, which is a nul-and-UTF8
clean version of sv_reftype. pp_ref now uses that.

sv_ref() not only returns the SV, but also takes in an SV
to modify, so we can say both sv_ref(TARG, obj, TRUE); and
sv = sv_ref(NULL, obj, TRUE);

13 years agoAdd a sv_sethek() function to sv.c
Brian Fraser [Thu, 6 Oct 2011 06:56:03 +0000 (23:56 -0700)]
Add a sv_sethek() function to sv.c

This is exported so that attributes.xs can use it.

13 years agopp.c: pp_bless UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 09:16:30 +0000 (06:16 -0300)]
pp.c: pp_bless UTF8 cleanup.

Some tests in t/uni/bless.t are TODO, as ref() isn't
clean yet.

13 years agoop.c: Flag named methods if they are in UTF-8.
Brian Fraser [Mon, 26 Sep 2011 16:21:23 +0000 (09:21 -0700)]
op.c: Flag named methods if they are in UTF-8.

13 years agopp_hot.c: method_common is UTF-8 aware.
Brian Fraser [Mon, 26 Sep 2011 15:27:59 +0000 (08:27 -0700)]
pp_hot.c: method_common is UTF-8 aware.

Not really useful yet, since named methods aren't correctly
flagged; that is to access a \x{30cb} method, you'd need
to do something like Obj->${\"\x{30cb}"}.

Committer’s note: I’m also including one piece of the ‘gv.c and
pp_ctl.c warnings’ patch so that the newly-added tests in this
commit pass.

13 years agogv.c: gv_fetchmethod_(flags|autoload) UTF8 cleanup.
Brian Fraser [Tue, 4 Oct 2011 01:16:03 +0000 (18:16 -0700)]
gv.c: gv_fetchmethod_(flags|autoload) UTF8 cleanup.

13 years agogv.c: S_gv_get_super_pkg UTF8 cleanup.
Brian Fraser [Mon, 26 Sep 2011 05:32:52 +0000 (22:32 -0700)]
gv.c: S_gv_get_super_pkg UTF8 cleanup.

13 years agogv.c: gv_fetchmeth_pvn_autoload UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 07:31:08 +0000 (04:31 -0300)]
gv.c: gv_fetchmeth_pvn_autoload UTF8 cleanup.

As with the previous commit, no Perl-level visible changes.

13 years agogv.c: gv_fetchmeth_pvn UTF8 cleanup.
Brian Fraser [Mon, 26 Sep 2011 05:15:55 +0000 (22:15 -0700)]
gv.c: gv_fetchmeth_pvn UTF8 cleanup.

Since gv_fetchmeth_pvn is primarily used from within gv.c,
and not much of anything is passing in the flag yet, this has
no visible changes on the Perl level; So tests remain
entirely in XS::APItest for the time being.

13 years agogv.c: gv_init_pvn now uses newCONSTSUB_flags.
Brian Fraser [Wed, 6 Jul 2011 06:03:15 +0000 (03:03 -0300)]
gv.c: gv_init_pvn now uses newCONSTSUB_flags.

13 years agopp.c: Make pp_rv2cv use gv_autoload_pvn()
Brian Fraser [Fri, 22 Jul 2011 12:52:28 +0000 (09:52 -0300)]
pp.c: Make pp_rv2cv use gv_autoload_pvn()

13 years agopp_hot.c: pp_entersub UTF8 cleanup.
Brian Fraser [Fri, 22 Jul 2011 12:51:52 +0000 (09:51 -0300)]
pp_hot.c: pp_entersub UTF8 cleanup.

13 years agopp_ctl.c: pp_goto UTF8 cleanup.
Brian Fraser [Fri, 22 Jul 2011 12:51:03 +0000 (09:51 -0300)]
pp_ctl.c: pp_goto UTF8 cleanup.

13 years agogv.c: gv_autoload4 is now UTF-8 clean.
Brian Fraser [Fri, 22 Jul 2011 12:49:51 +0000 (09:49 -0300)]
gv.c: gv_autoload4 is now UTF-8 clean.

This also uncomments the UTF-8 tests in XS::APItest.

13 years agogv.c: gp_free UTF8 cleanup
Brian Fraser [Wed, 6 Jul 2011 05:36:37 +0000 (02:36 -0300)]
gv.c: gp_free UTF8 cleanup

13 years agoTests for UTF-8 GVs.
Brian Fraser [Wed, 6 Jul 2011 05:20:04 +0000 (02:20 -0300)]
Tests for UTF-8 GVs.

Basically t/op/gv.t with UTF-8 names. A vast majority of
the tests currently fail and are marked as TODO; Minus for
failures related to prototypes, these will start working
in the following commits.

13 years agoop.c: newCONSTSUB and newXS UTF8 cleanup.
Brian Fraser [Wed, 6 Jul 2011 04:50:31 +0000 (01:50 -0300)]
op.c: newCONSTSUB and newXS UTF8 cleanup.

newXS was merged into newXS_flags; added a line in the docs
recommeding using that instead.

newCONSTSUB got a _flags version, which generates the CV in
the right glob if passed the UTF-8 flag.

13 years agosv.c: glob_assign_glob is now UTF-8 aware.
Brian Fraser [Wed, 6 Jul 2011 04:43:51 +0000 (01:43 -0300)]
sv.c: glob_assign_glob is now UTF-8 aware.

This means that
is($t = sub { *\x{30cb} }->(), "*main::\x{30cb}");
won't fail, as $t will get the right glob.
(Though possibly not the right stash, if that also has
UTF-8 in it. That will be done later.)

13 years agoBasic tests for UTF-8 vars.
Brian Fraser [Tue, 5 Jul 2011 22:24:41 +0000 (19:24 -0300)]
Basic tests for UTF-8 vars.

13 years agotoke.c: S_scan_inputsymbol, initial GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 21:34:05 +0000 (18:34 -0300)]
toke.c: S_scan_inputsymbol, initial GV-related UTF8 cleanup

13 years agotoke.c: S_checkcomma, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 21:32:19 +0000 (18:32 -0300)]
toke.c: S_checkcomma, GV-related UTF8 cleanup

13 years agotoke.c: yylex, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 21:26:51 +0000 (18:26 -0300)]
toke.c: yylex, GV-related UTF8 cleanup

13 years agotoke.c: S_find_in_my_stash, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 21:09:03 +0000 (18:09 -0300)]
toke.c: S_find_in_my_stash, GV-related UTF8 cleanup

13 years agotoke.c: S_intuit_method, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 20:29:44 +0000 (17:29 -0300)]
toke.c: S_intuit_method, GV-related UTF8 cleanup

13 years agotoke.c: S_intuit_more, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 20:16:15 +0000 (17:16 -0300)]
toke.c: S_intuit_more, GV-related UTF8 cleanup

13 years agotoke.c: S_force_ident, GV-related UTF8 cleanup
Brian Fraser [Sat, 23 Jul 2011 20:03:18 +0000 (17:03 -0300)]
toke.c: S_force_ident, GV-related UTF8 cleanup

13 years agopp.c: pp_rv2gv UTF8 cleanup.
Brian Fraser [Sat, 23 Jul 2011 19:54:00 +0000 (16:54 -0300)]
pp.c: pp_rv2gv UTF8 cleanup.

13 years agoMerge multi and flags params to gv_init_*
Father Chrysostomos [Sun, 2 Oct 2011 20:57:19 +0000 (13:57 -0700)]
Merge multi and flags params to gv_init_*

Since multi is a boolean (even though it’s typed as an int), there is
no need to have a separate parameter.  We can just use a flag bit.

13 years agogv.c: Initial gv_fetchpvn_flags and gv_stashpvn UTF8 cleanup
Brian Fraser [Sat, 24 Sep 2011 18:57:27 +0000 (11:57 -0700)]
gv.c: Initial gv_fetchpvn_flags and gv_stashpvn UTF8 cleanup

Now that a glob can be initialized and fetched in UTF-8,
the next commit will introduce some changes in toke.c to
actually test this.

Committer’s note: To keep tests passing I had to incorporate
the toke.c:S_pending_ident changes in the same patch.

13 years agoconstant.pm: Disable the UTF8 downgrade when unnecessary
Father Chrysostomos [Sun, 25 Sep 2011 00:58:16 +0000 (17:58 -0700)]
constant.pm: Disable the UTF8 downgrade when unnecessary

The downgrade bug that constant.pm has to imitate is about to be fixed
in the next commit.  The bug workaround is itself a bug if the bug it
is trying to work around is not present.

13 years agoFix thinko in hek_eq_pvn_flags
Father Chrysostomos [Sat, 24 Sep 2011 13:29:10 +0000 (06:29 -0700)]
Fix thinko in hek_eq_pvn_flags

Doing memEQ(str1, str2, len2) without checking the length
first will cause memEQ("forth","fort"...) to compare equal and
memEQ("fort","forth"...) to read unallocated memory.

This was only a potential future problem, as none of the callers reach
this branch.

13 years agohv.c: Stash-related UTF-8 cleanup.
Brian Fraser [Sat, 23 Jul 2011 19:51:54 +0000 (16:51 -0300)]
hv.c: Stash-related UTF-8 cleanup.

This adds a new static function to hv.c, hek_eq_pvn_flags,
which replaces several memEQs.

It also cleans up hv_name_set and has the relevant calls
to hv_common and friends made UTF-8 aware.

Finally, it changes share_hek() to modify the hash passed
in if the pv was modified when downgrading.

13 years agogv.c: gv_name_set and gv_init_(etc) now initialize the GV's name as UTF-8 if passed...
Brian Fraser [Tue, 5 Jul 2011 10:00:02 +0000 (07:00 -0300)]
gv.c: gv_name_set and gv_init_(etc) now initialize the GV's name as UTF-8 if passed the UTF8 flag.

newCONSTSUB is still unclean however, so constant subs are
still generated under a wrong name.

gv_fullname4 is also UTF-8 aware now; While that should've gotten
it's own commit and tests, it's not possible to test the
UTF-8 part without the gv_init changes, and it's not possible
to test the gv_init changes without gv_fullname4.
Chicken and egg, as it were. So let's compromise and
wait for the relevant tests once globs can be intiialized as
UTF-8 from the Perl level without XS magic.

13 years agoSvUTF8() for globs.
Brian Fraser [Mon, 18 Jul 2011 16:36:09 +0000 (17:36 +0100)]
SvUTF8() for globs.

This turns on the GV's UTF8 flag in sv.c when the GV is stringified.
This works the same way overloading and references work, in that the
SvUTF8 flag is only valid immediately after SvPV.

For Nick's much more detailed explanation, see
http://www.nntp.perl.org/group/perl.perl5.porters/2011/07/msg174703.html

13 years agoRestore newGVgen to perlapi.pod
Father Chrysostomos [Sat, 24 Sep 2011 12:40:41 +0000 (05:40 -0700)]
Restore newGVgen to perlapi.pod

13 years agogv.c: newGVgen_flags and a flags parameter for gv_get_super_pkg.
Brian Fraser [Sun, 2 Oct 2011 05:14:50 +0000 (22:14 -0700)]
gv.c: newGVgen_flags and a flags parameter for gv_get_super_pkg.

13 years agoRemove method param from gv_autoload_*
Father Chrysostomos [Sun, 2 Oct 2011 05:14:19 +0000 (22:14 -0700)]
Remove method param from gv_autoload_*

method is a boolean flag (typed I32, but used as a boolean) added by
commit 54310121b442.

These new gv_autoload_* functions have a flags parameter, so there’s
no reason for this extra effective bool.  We can just use a flag bit.

13 years agoRemove 4 from new gv_autoload4_(sv|pvn?) functions
Father Chrysostomos [Sun, 2 Oct 2011 05:13:26 +0000 (22:13 -0700)]
Remove 4 from new gv_autoload4_(sv|pvn?) functions

The 4 was added in commit 54310121b442 (inseparable changes during
5.003/4 developement), presumably the ‘Don't look up &AUTOLOAD in @ISA
when calling plain function’ part.

Before that, gv_autoload had three arguments, so the 4 indicated the
new version (with the method argument).

Since these new functions don’t all have four arguments, and since
they have a new naming convention, there is not reason for the 4.

13 years agoRestore gv_autoload4 to perlapi.pod
Father Chrysostomos [Sat, 24 Sep 2011 03:43:32 +0000 (20:43 -0700)]
Restore gv_autoload4 to perlapi.pod

Even if it’s not documented (which I hope to rectify), it should
still continue to be listed in perlapi.

13 years agogv.c: Added gv_autoload4_(sv|pv|pvn)
Brian Fraser [Sun, 2 Oct 2011 05:12:18 +0000 (22:12 -0700)]
gv.c: Added gv_autoload4_(sv|pv|pvn)

13 years agogv.c: Make Gv_AMupdate use gv_fetchmethod_sv_flags
Brian Fraser [Sun, 2 Oct 2011 05:11:42 +0000 (22:11 -0700)]
gv.c: Make Gv_AMupdate use gv_fetchmethod_sv_flags

13 years agogv.c: Added gv_fetchmethod_(sv|pv|pvn)_flags.
Brian Fraser [Tue, 5 Jul 2011 07:37:42 +0000 (04:37 -0300)]
gv.c: Added gv_fetchmethod_(sv|pv|pvn)_flags.

In addition from taking a flags parameter, it also takes the
length of the method; This will eventually make method
lookup nul-clean.

13 years agoMinor correction to gv_fetchmeth_autoload.t
Father Chrysostomos [Fri, 23 Sep 2011 03:47:39 +0000 (20:47 -0700)]
Minor correction to gv_fetchmeth_autoload.t

It was not doing the sanity check for all three functions.

13 years agoRestore gv_fetchmeth_autoload to perlapi.pod
Father Chrysostomos [Fri, 23 Sep 2011 03:42:33 +0000 (20:42 -0700)]
Restore gv_fetchmeth_autoload to perlapi.pod

13 years agogv.c: Added gv_fetchmeth_(sv|pv|pvn)_autoload.
Brian Fraser [Tue, 5 Jul 2011 06:26:09 +0000 (03:26 -0300)]
gv.c: Added gv_fetchmeth_(sv|pv|pvn)_autoload.

13 years agoRemove comment from hv.c that no longer applies
Father Chrysostomos [Wed, 21 Sep 2011 00:37:38 +0000 (17:37 -0700)]
Remove comment from hv.c that no longer applies

13 years agoDocument and apiify hv name length/utf8 macros
Father Chrysostomos [Tue, 20 Sep 2011 22:39:32 +0000 (15:39 -0700)]
Document and apiify hv name length/utf8 macros

13 years agoRemove some _get variants of *NAMEUTF8 macros in [gh]v.h
Father Chrysostomos [Sat, 24 Sep 2011 17:17:58 +0000 (10:17 -0700)]
Remove some _get variants of *NAMEUTF8 macros in [gh]v.h

For macros that returns flags, the _get convention implies that there
could be a _set variant some day.  But we don’t do that for flags.

13 years agoRestore gv_fetchmeth to perlapi
Father Chrysostomos [Tue, 20 Sep 2011 22:13:59 +0000 (15:13 -0700)]
Restore gv_fetchmeth to perlapi

13 years agoMinor correction to gv_fetchmeth.t
Father Chrysostomos [Fri, 23 Sep 2011 03:37:11 +0000 (20:37 -0700)]
Minor correction to gv_fetchmeth.t

It wasn’t doing the XS::APItest::gv_fetchmeth_type sanity check for
all three gv_fetchmeth* functions.

13 years agogv.c: Added gv_fetchmeth_(sv|pv|pvn).
Brian Fraser [Tue, 5 Jul 2011 05:14:59 +0000 (02:14 -0300)]
gv.c: Added gv_fetchmeth_(sv|pv|pvn).

I'm probably pushing this too early. Can't do the
Perl-level tests because of that. TODO.

13 years agoDocument gv_init*
Father Chrysostomos [Fri, 23 Sep 2011 01:21:28 +0000 (18:21 -0700)]
Document gv_init*

13 years agogv.c: Added gv_init_(sv|pv|pvn), renamed gv_init_sv as gv_init_svtype.
Brian Fraser [Tue, 5 Jul 2011 04:27:13 +0000 (01:27 -0300)]
gv.c: Added gv_init_(sv|pv|pvn), renamed gv_init_sv as gv_init_svtype.

gv_init_pvn() is the same as the old gv_init(), but takes
a flags parameter, which will be used for the UTF-8 cleanup.

The old gv_init() is now implemeneted as a macro in gv.h.

Also included is some minimal testing in XS::APItest.

13 years agoGroundwork to allow cops and pmops to store the UTF8 flag
Brian Fraser [Tue, 5 Jul 2011 03:13:02 +0000 (00:13 -0300)]
Groundwork to allow cops and pmops to store the UTF8 flag

With threaded builds, cop.h and op.h get an extra member in their
structs, to save the UTF-8ness of the stash's name.

*STASH_set() checks for the flag, stores it through
*STASH_flags(), and *STASH() uses the latter to fetch the
correct scalar.

13 years agoUTF-8 related macros in hv.h and gv.h
Brian Fraser [Tue, 5 Jul 2011 03:12:02 +0000 (00:12 -0300)]
UTF-8 related macros in hv.h and gv.h

Groundwork for the following commits.

13 years agoIn bisect-runner.pl, if getconf exists, use it to report the number of CPUs.
Nicholas Clark [Thu, 6 Oct 2011 15:13:29 +0000 (17:13 +0200)]
In bisect-runner.pl, if getconf exists, use it to report the number of CPUs.

Thanks to David Leadbeater for the suggestion.

13 years agoWhitespace
H.Merijn Brand [Thu, 6 Oct 2011 15:11:31 +0000 (17:11 +0200)]
Whitespace

13 years agoNow with comma :(
H.Merijn Brand [Thu, 6 Oct 2011 08:14:07 +0000 (10:14 +0200)]
Now with comma :(

13 years ago_A is predefined in some precompiler environments
H.Merijn Brand [Thu, 6 Oct 2011 08:10:31 +0000 (10:10 +0200)]
_A is predefined in some precompiler environments

On HP-UX 10.20 in the HP C-ANSI-C environment

  CAT2(macro, _A)

expands to

  macro01

as _A obviously expands to 01. This fix "breaks" the token

13 years agoRemove whitespace errors from bisect-runner.pl
Nicholas Clark [Wed, 5 Oct 2011 19:38:23 +0000 (21:38 +0200)]
Remove whitespace errors from bisect-runner.pl

2 trailing spaces and 1 piece of "trailing garbage" in a patch now gone.

13 years agobisect-runner.pl now runs all build commands with STDIN of /dev/null
Nicholas Clark [Wed, 5 Oct 2011 19:25:47 +0000 (21:25 +0200)]
bisect-runner.pl now runs all build commands with STDIN of /dev/null

This should avoid any problems with confused build commands wanting to read
from STDIN and causing the bisect to hang waiting on user input from the
terminal.

13 years agobisect-runner.pl should remove the stdin-is-a-tty test completely.
Nicholas Clark [Wed, 5 Oct 2011 19:04:01 +0000 (21:04 +0200)]
bisect-runner.pl should remove the stdin-is-a-tty test completely.

Before commit dfe9444ca7881e71, Configure would refuse to run if STDIN was
not a tty. dbcdc176dfaaa83c adapted bisect-runner.pl to deal with this by
skipping closing STDIN for old Configure. However, it's actually much simpler
and safer to patch Configure to remove the test, and then always run it with
STDIN closed. This also avoids problems with ./makedepend hanging on STDIN
in some cases.

13 years agoDocument why bisect.pl can't be in the checkout used for bisecting.
Nicholas Clark [Wed, 5 Oct 2011 16:19:37 +0000 (18:19 +0200)]
Document why bisect.pl can't be in the checkout used for bisecting.

Add a sanity test to catch this case.

13 years agoImprove bisect.pl's documentation.
Nicholas Clark [Wed, 5 Oct 2011 15:52:23 +0000 (17:52 +0200)]
Improve bisect.pl's documentation.

13 years agobisect-runner.pl needs to add -L/usr/local/lib prior to 5.002 on FreeBSD.
Nicholas Clark [Wed, 5 Oct 2011 15:27:43 +0000 (17:27 +0200)]
bisect-runner.pl needs to add -L/usr/local/lib prior to 5.002 on FreeBSD.

This may well also be needed on some other platforms, but as it has to be
done in the middle of the Configure run, there isn't a clean cross-platform
way to do it.

With this, FreeBSD will build all extensions back to 5.001n, and miniperl
back to 5.000. I don't think that it's going to be possible to improve on
that (without cheating and using a config.sh imported from the "future").

13 years agobisect-runner.pl needs to inline $compile into the test for malloc.h
Nicholas Clark [Wed, 5 Oct 2011 14:51:16 +0000 (16:51 +0200)]
bisect-runner.pl needs to inline $compile into the test for malloc.h

Prior to bd9b35c97ad661cc Configure had the malloc.h test before the
definition of $compile. With this, bisect-runner.pl can build all
extensions back to perl-5.002.

13 years agoAdd 'Fcntl' as a target for bisect-runner.pl.
Nicholas Clark [Wed, 5 Oct 2011 13:34:20 +0000 (15:34 +0200)]
Add 'Fcntl' as a target for bisect-runner.pl.

This builds the Fcntl shared library, which provides a test of whether XS
modules can be built. Clarify that the 'perl' target does *not* build XS
modules.

Fix a bug with the 'lib/Config.pm' target and -e. This target will only build
miniperl, not perl, so -e needs to use the former to run the one-liner.

13 years agoIn bisect-runner.pl, patch Configure to test-compile #include <malloc.h>
Nicholas Clark [Wed, 5 Oct 2011 11:34:10 +0000 (13:34 +0200)]
In bisect-runner.pl, patch Configure to test-compile #include <malloc.h>

On (at least) FreeBSD malloc.h just gives a compile error saying to use
stdlib.h instead. This is commit 01d07975f7ef0e7d, trimmed.

With this, bisect.pl can build perl-5.8.0 on FreeBSD.

13 years agoUpdate Module-Load to CPAN version 0.22
Chris 'BinGOs' Williams [Wed, 5 Oct 2011 08:55:23 +0000 (09:55 +0100)]
Update Module-Load to CPAN version 0.22

  [DELTA]

  Changes for 0.22    Tue Oct  4 21:44:32 2011
  ============================================
  * Resolve possible security problem [http://goo.gl/YzHRU]
    where a '::' prefixed module can 'jump' out of @INC

13 years agoIn bisect-runner.pl always use blead's hitnts/freebsd.sh
Nicholas Clark [Wed, 5 Oct 2011 10:39:40 +0000 (12:39 +0200)]
In bisect-runner.pl always use blead's hitnts/freebsd.sh

There are rather too many version-specific FreeBSD hints fixes to patch
individually. Also, more than once the FreeBSD hints file has been written
in what turned out to be a rather non-future-proof style, with case
statements treating the most recent version as the exception, instead of
treating previous versions' behaviour explicitly and changing the default to
cater for the current behaviour. (As strangely, future versions inherit the
current behaviour.)

If /sbin/sysctl exists, use it to find the number of CPUs and hence a
default for the number of make jobs to run in parallel.

13 years agoNote ExtUtils::ParseXS upgrade in perldelta
Steffen Mueller [Wed, 5 Oct 2011 06:25:03 +0000 (08:25 +0200)]
Note ExtUtils::ParseXS upgrade in perldelta

13 years agoUpgrade ExtUtils::ParseXS to 3.05
Steffen Mueller [Wed, 5 Oct 2011 06:23:20 +0000 (08:23 +0200)]
Upgrade ExtUtils::ParseXS to 3.05

No functional changes from 3.04_04, just a promotion to "stable".

13 years agoIn bisect-runner.pl, only force Configure's libpth on x86_64 Linux.
Nicholas Clark [Tue, 4 Oct 2011 20:36:38 +0000 (22:36 +0200)]
In bisect-runner.pl, only force Configure's libpth on x86_64 Linux.

Also, if /proc/cpuinfo can be opened and parsed, default the make jobs to one
more than the number of CPUs. Otherwise, default to 2 jobs.

13 years agoShow that blessed comes from Scalar::Util in code example
Dave Rolsky [Tue, 4 Oct 2011 16:32:53 +0000 (11:32 -0500)]
Show that blessed comes from Scalar::Util in code example

13 years agopodcheck.t: Guard against weird input file types
Karl Williamson [Tue, 4 Oct 2011 02:49:10 +0000 (20:49 -0600)]
podcheck.t: Guard against weird input file types

This causes podcheck to only analyze non-zero length files that we can
read and are plain files or symbolic links.

Perhaps symbolic links should be skipped as well.  In the current blead,
experimenting with doing that made no difference.

13 years agobisect-runner.pl needs to patch ext/IPC/SysV/SysV.xs for "newer" Linux.
Nicholas Clark [Mon, 3 Oct 2011 19:11:34 +0000 (21:11 +0200)]
bisect-runner.pl needs to patch ext/IPC/SysV/SysV.xs for "newer" Linux.

(dromedary is built from a sufficiently "special biologist word"
distribution that it doesn't need this)

13 years agobisect-runner.pl should check for t/perl when building test_prep.
Nicholas Clark [Mon, 3 Oct 2011 17:49:18 +0000 (19:49 +0200)]
bisect-runner.pl should check for t/perl when building test_prep.

Checking for perl doesn't spot the cases where make aborts after perl is
built but before test_prep is completed.

13 years agoFix two typos in the documentation for bisect-runner.pl
Nicholas Clark [Mon, 3 Oct 2011 16:05:04 +0000 (18:05 +0200)]
Fix two typos in the documentation for bisect-runner.pl

13 years agoDocumentation for bisect.pl and bisect-runner.pl
Nicholas Clark [Mon, 3 Oct 2011 15:41:18 +0000 (17:41 +0200)]
Documentation for bisect.pl and bisect-runner.pl

13 years agoIn bisect-runner.pl, fix a bug where a good "test_prep" build would skip.
Nicholas Clark [Mon, 3 Oct 2011 15:07:05 +0000 (17:07 +0200)]
In bisect-runner.pl, fix a bug where a good "test_prep" build would skip.

The "skip"/continue logic was not aware that the build code could change
"test_prep" to "test-prep" or "test" on very old perls, and so was looking
for a file that did not exist, instead of ./perl, and then signaling a
"skip" because it could not find it.

Also fix a fencepost error for the -j test - 5.10.0 (inclusive) and later
are safe to build with paralllel make.

13 years agoIn bisect.pl, support matching on files generated by the build.
Nicholas Clark [Mon, 3 Oct 2011 11:23:44 +0000 (13:23 +0200)]
In bisect.pl, support matching on files generated by the build.

If --target isn't specified, then --match will match files in the repository.
If --target is specified, then --mach will match built files (and ignore files
in the repository)

Add 'config.h' as a known target. If a "binary" file matches, print only
the file name, not the "binary" match. Print the match count as part of the
good/bad report line.

13 years agoIf patching fails, bisect-runner.pl should report the name of the file.
Nicholas Clark [Mon, 3 Oct 2011 09:39:58 +0000 (11:39 +0200)]
If patching fails, bisect-runner.pl should report the name of the file.

When commit 0142f0ceeb8dc10a refactored the relevant code into apply_patch(),
it left "perl.c" hard coded into an error message.

13 years agoAdd another exception to dual-life.t
Father Chrysostomos [Mon, 3 Oct 2011 00:56:51 +0000 (17:56 -0700)]
Add another exception to dual-life.t

Module::Build’s tests create a file named something like

    cpan/Module-Build/MB-rrWnCs8O/Simple/bin/foo.PL

during testing, causing dual-life.t to fail when testing in
parallel.

This commit adds that to the list of exceptions, but since the
exact name can vary, it changes the exception list into a
regular expression.

13 years agoStop dual-life.t from failing during parallel testing
Father Chrysostomos [Sun, 2 Oct 2011 23:26:42 +0000 (16:26 -0700)]
Stop dual-life.t from failing during parallel testing

dual-life.t makes sure all dual-lifed scripts make their way into
utils/ during make.

ExtUtils::Install creates a test script in
dist/ExtUtils-Install/t/Big-Dummy/bin/program during testing.

dual-life.t should skip anything containing /t/, to avoid failing
erroneously.

13 years agoRemove unused variable from S_set_caret_X
Father Chrysostomos [Sun, 2 Oct 2011 21:04:12 +0000 (14:04 -0700)]
Remove unused variable from S_set_caret_X

13 years agobisect-runner.pl must use Fcntl::S_IMODE() on the raw output from stat.
Nicholas Clark [Sun, 2 Oct 2011 20:26:14 +0000 (22:26 +0200)]
bisect-runner.pl must use Fcntl::S_IMODE() on the raw output from stat.

Fixes a bug whereby it was failing to mask out the non-file-mode bits from
the return value from stat when testing whether the mode had changed.

13 years agoUpdate Unicode-Collate to CPAN version 0.79
Chris 'BinGOs' Williams [Sun, 2 Oct 2011 18:36:35 +0000 (19:36 +0100)]
Update Unicode-Collate to CPAN version 0.79

  [DELTA]

  0.79  Sun Oct  2 20:31:01 2011
    - pod: [rt.cpan.org #70241] Fix minor grammar error in manpage
            by Harlan Lieberman-Berg.
    - 'suppress' no longer affects contractions via 'entry'.
    - U::C::Locale newly supports locales: as, fi__phonebook, gu.
    - added loc_as.t, loc_fiph.t, loc_gu in t.
    - updated some locales to CLDR 2.0 : ar, be, bg.

13 years agoUpdate Digest to CPAN version 1.17
Chris 'BinGOs' Williams [Sun, 2 Oct 2011 18:24:33 +0000 (19:24 +0100)]
Update Digest to CPAN version 1.17

  [DELTA]

  2011-10-02   Gisle Aas <gisle@ActiveState.com>

   Release 1.17.

   Gisle Aas (6):
      Less noisy 'git status' output
      Merge pull request #1 from schwern/bug/require_eval
      Don't clobber $@ in Digest->new [RT#50663]
      More meta info added to Makefile.PL
      Fix typo in RIPEMD160 [RT#50629]
      Add schwern's test files

   Michael G. Schwern (5):
      Turn on strict.
      Convert tests to use Test::More
      Untabify
      Turn Digest::Dummy into a real file which exercises the Digest->new() require logic.
      Close the eval "require $module" security hole in Digest->new($algorithm)

13 years agoAdd 'config.sh' as a build target for bisect.pl
Nicholas Clark [Sun, 2 Oct 2011 17:31:59 +0000 (19:31 +0200)]
Add 'config.sh' as a build target for bisect.pl

This allows one to bisect to find which commit caused Configure options to
stop/start Configure running to completion.

13 years agoPermit bisect.pl to pass -D, -U and -A parameters to Configure.
Nicholas Clark [Sun, 2 Oct 2011 14:22:06 +0000 (16:22 +0200)]
Permit bisect.pl to pass -D, -U and -A parameters to Configure.

This gives pretty much complete control of the configuration options for a
bisect run.

13 years agoRefactor bisect-runner.pl to use the hashref interface to GetOptions().
Nicholas Clark [Sun, 2 Oct 2011 11:50:26 +0000 (13:50 +0200)]
Refactor bisect-runner.pl to use the hashref interface to GetOptions().

This eliminates many lexical variables used only to hold option state.

13 years agoRefactor bisect.pl to use Getopt::Long's pass_through option.
Nicholas Clark [Sun, 2 Oct 2011 09:33:44 +0000 (11:33 +0200)]
Refactor bisect.pl to use Getopt::Long's pass_through option.

Add a --check-args option to bisect-runner.pl to validate the arguments that
bisect.pl doesn't know how to check (else the automatic start detection
will get very confused by invalid arguments). Switch bisect.pl to bundling,
which permits the "traditional" make argument form of -j4 to be used instead
of -j=4. As this actually makes -j=4 invalid syntax now (an error about the
unknown option "="), change the syntax messages.