diff options
-rw-r--r-- | Changes | 351 | ||||
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | Makefile.SH | 7 | ||||
-rw-r--r-- | ext/B/t/o.t | 76 | ||||
-rwxr-xr-x | ext/DB_File/t/db-btree.t | 2 | ||||
-rw-r--r-- | ext/Encode/Encode.xs | 4 | ||||
-rw-r--r-- | ext/threads/shared/queue.pm | 82 | ||||
-rw-r--r-- | patchlevel.h | 2 | ||||
-rw-r--r-- | pod/perlhack.pod | 41 | ||||
-rw-r--r-- | pod/perltoc.pod | 452 | ||||
-rwxr-xr-x | t/TEST | 9 | ||||
-rw-r--r-- | t/harness | 8 |
12 files changed, 880 insertions, 155 deletions
@@ -28,6 +28,357 @@ example from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ Version v5.7.X Development release working toward v5.8 -------------- ____________________________________________________________________________ +[ 16538] By: jhi on 2002/05/10 15:08:51 + Log: Regen toc. + Branch: perl + ! pod/perltoc.pod +____________________________________________________________________________ +[ 16537] By: jhi on 2002/05/10 15:06:52 + Log: Move pod, add $VERSION. + Branch: perl + ! ext/threads/shared/queue.pm +____________________________________________________________________________ +[ 16536] By: jhi on 2002/05/10 14:42:10 + Log: Unused variables. + Branch: perl + ! ext/Encode/Encode.xs +____________________________________________________________________________ +[ 16535] By: jhi on 2002/05/10 13:52:34 + Log: Subject: Re: [REPATCH MANIFEST ext/B/t/o.t] Add tests for O + From: chromatic <chromatic@rmci.net> + Date: Fri, 10 May 2002 07:43:25 -0700 + Message-ID: <20020510144325.26245.qmail@firewheel> + Branch: perl + + ext/B/t/o.t + ! MANIFEST +____________________________________________________________________________ +[ 16534] By: jhi on 2002/05/10 13:48:10 + Log: Don't do JAPHs unless doing "make torturetest". + Document the less obvious make test targets. + Branch: perl + ! Makefile.SH pod/perlhack.pod t/TEST t/harness +____________________________________________________________________________ +[ 16533] By: nick on 2002/05/10 06:02:58 + Log: Integrate mainline + Branch: perlio + !> Configure Porting/pumpkin.pod doio.c ext/Encode/Encode.xs + !> ext/Encode/Unicode/Unicode.xs ext/IO/IO.xs ext/Storable/README + !> ext/Storable/Storable.pm ext/Storable/Storable.xs + !> ext/Time/HiRes/HiRes.xs ext/threads/shared/shared.xs + !> ext/threads/shared/t/cond.t ext/threads/threads.xs + !> pod/perlfaq3.pod pod/perlfaq4.pod pod/perlhack.pod + !> pod/perllocale.pod pp_sys.c reentr.pl t/op/tie.t + !> t/run/fresh_perl.t util.c +____________________________________________________________________________ +[ 16532] By: jhi on 2002/05/10 03:38:40 + Log: Subject: [PATCH] format and other warnings + From: Robin Barker <rmb1@cise.npl.co.uk> + Date: Thu, 9 May 2002 18:27:30 +0100 (BST) + Message-Id: <200205091727.SAA22792@tempest.npl.co.uk> + Branch: perl + ! Porting/pumpkin.pod ext/Encode/Encode.xs + ! ext/Encode/Unicode/Unicode.xs ext/Storable/Storable.xs + ! ext/Time/HiRes/HiRes.xs ext/threads/shared/shared.xs + ! ext/threads/threads.xs +____________________________________________________________________________ +[ 16531] By: jhi on 2002/05/10 03:26:11 + Log: Move the noisy tie core dump test to fresh_perl from op/tie. + Branch: perl + ! t/op/tie.t t/run/fresh_perl.t +____________________________________________________________________________ +[ 16530] By: jhi on 2002/05/10 03:23:17 + Log: Subject: Re: [PATCH] Re: perl@16433 + From: sthoenna@efn.org (Yitzchak Scott-Thoennes) + Date: Thu, 09 May 2002 16:24:59 -0700 + Message-ID: <LVw28gzkguhE092yn@efn.org> + Branch: perl + ! t/op/tie.t +____________________________________________________________________________ +[ 16529] By: jhi on 2002/05/09 21:39:04 + Log: Subject: [PATCH ext/threads/shared/t/cond.t] Re: where threads cond.t hangs + From: Dave Mitchell <davem@fdgroup.com> + Date: Thu, 9 May 2002 17:18:42 +0100 + Message-ID: <20020509171842.C9836@fdgroup.com> + Branch: perl + ! ext/threads/shared/t/cond.t +____________________________________________________________________________ +[ 16528] By: nick on 2002/05/09 16:40:39 + Log: Integrate maint branch io (pipe) fixes. + Branch: perl + !> doio.c pp_sys.c util.c +____________________________________________________________________________ +[ 16527] By: jhi on 2002/05/09 14:09:00 + Log: FAQ sync. + Branch: perl + ! pod/perlfaq3.pod pod/perlfaq4.pod +____________________________________________________________________________ +[ 16526] By: jhi on 2002/05/09 14:06:53 + Log: metaconfig unit changes for #16525, plus extra linting. + Branch: metaconfig + ! U/compline/ptrsize.U U/protos/Protochk.U + ! U/threads/d_asctime_r.U U/threads/d_crypt_r.U + ! U/threads/d_ctermid_r.U U/threads/d_ctime_r.U + ! U/threads/d_drand48_r.U U/threads/d_endgrent_r.U + ! U/threads/d_endhostent_r.U U/threads/d_endnetent_r.U + ! U/threads/d_endprotoent_r.U U/threads/d_endpwent_r.U + ! U/threads/d_endservent_r.U U/threads/d_getgrent_r.U + ! U/threads/d_getgrgid_r.U U/threads/d_getgrnam_r.U + ! U/threads/d_gethostbyaddr_r.U U/threads/d_gethostbyname_r.U + ! U/threads/d_gethostent_r.U U/threads/d_getlogin_r.U + ! U/threads/d_getnetbyaddr_r.U U/threads/d_getnetbyname_r.U + ! U/threads/d_getnetent_r.U U/threads/d_getprotobyname_r.U + ! U/threads/d_getprotobynumber_r.U U/threads/d_getprotoent_r.U + ! U/threads/d_getpwent_r.U U/threads/d_getpwnam_r.U + ! U/threads/d_getpwuid_r.U U/threads/d_getservbyname_r.U + ! U/threads/d_getservbyport_r.U U/threads/d_getservent_r.U + ! U/threads/d_getspnam_r.U U/threads/d_gmtime_r.U + ! U/threads/d_localtime_r.U U/threads/d_random_r.U + ! U/threads/d_readdir64_r.U U/threads/d_readdir_r.U + ! U/threads/d_setgrent_r.U U/threads/d_sethostent_r.U + ! U/threads/d_setlocale_r.U U/threads/d_setnetent_r.U + ! U/threads/d_setprotoent_r.U U/threads/d_setpwent_r.U + ! U/threads/d_setservent_r.U U/threads/d_srand48_r.U + ! U/threads/d_srandom_r.U U/threads/d_strerror_r.U + ! U/threads/d_tmpnam_r.U U/threads/d_ttyname_r.U +____________________________________________________________________________ +[ 16525] By: jhi on 2002/05/09 14:06:11 + Log: metaconfig unit linting. + Branch: perl + ! reentr.pl +____________________________________________________________________________ +[ 16524] By: jhi on 2002/05/09 13:49:01 + Log: metaconfig unit changes for #16523. + Branch: metaconfig + ! U/compline/ptrsize.U + Branch: metaconfig/U/perl + ! use64bits.U +____________________________________________________________________________ +[ 16523] By: jhi on 2002/05/09 13:48:20 + Log: ptrsize should depend on use64bitall, not the other + way round, noticed by Karl Tomlinson <k.tomlinson@auckland.ac.nz>. + Branch: perl + ! Configure +____________________________________________________________________________ +[ 16522] By: jhi on 2002/05/09 13:07:58 + Log: Integrate #16510 from macperl; + + Tell IO.xs that MacOS sometimes doesn't need extra help + Branch: perl + !> ext/IO/IO.xs +____________________________________________________________________________ +[ 16521] By: ams on 2002/05/09 12:42:12 + Log: Subject: Re: Storable doc patches + From: "Philip Newton" <Philip.Newton@gmx.net> + Date: Thu, 9 May 2002 14:32:29 +0200 + Message-Id: + Branch: perl + ! ext/Storable/Storable.pm +____________________________________________________________________________ +[ 16520] By: rgs on 2002/05/09 11:43:12 + Log: cmp() compares chars, not bytes. + Branch: perl + ! pod/perllocale.pod +____________________________________________________________________________ +[ 16519] By: rgs on 2002/05/09 10:19:04 + Log: A footnote about PERL_DESTRUCT_LEVEL and mod_perl. + Branch: perl + ! pod/perlhack.pod +____________________________________________________________________________ +[ 16518] By: ams on 2002/05/09 09:04:31 + Log: Subject: Storable doc patches + From: Philip Newton <Philip.Newton@gmx.net> + Date: Thu, 09 May 2002 12:00:45 +0200 + Message-Id: <vshkdu49hlpqqm6mlre5ilkn8l9dbqdnsg@4ax.com> + Branch: perl + ! ext/Storable/Storable.pm ext/Storable/Storable.xs +____________________________________________________________________________ +[ 16517] By: ams on 2002/05/09 08:53:50 + Log: Subject: Re: Change 16457: [PATCH] Re: [PATCH] Storable (Re: perl@16433) + From: Philip Newton <Philip.Newton@gmx.net> + Date: Thu, 09 May 2002 11:16:06 +0200 + Message-Id: <6ffkdu422rls6td4okfu243c9vbtnrfntk@4ax.com> + Branch: perl + ! ext/Storable/README +____________________________________________________________________________ +[ 16516] By: nick on 2002/05/09 08:13:39 + Log: Integrate mainline + Branch: perlio + !> pod/perlxstut.pod +____________________________________________________________________________ +[ 16515] By: nick on 2002/05/09 07:29:53 + Log: Integrate mainline + Branch: perlio + !> (integrate 27 files) +____________________________________________________________________________ +[ 16514] By: ams on 2002/05/09 06:50:24 + Log: Subject: [Patch] perlxstut.pod + From: lupe@lupe-christoph.de (Lupe Christoph) + Date: Thu, 9 May 2002 09:42:02 +0200 + Message-Id: <20020509074202.GJ1087@lupe-christoph.de> + (Applied with tweaks.) + Branch: perl + ! pod/perlxstut.pod +____________________________________________________________________________ +[ 16513] By: ams on 2002/05/09 06:04:47 + Log: Subject: [Patch] perlapio.pod + From: lupe@lupe-christoph.de (Lupe Christoph) + Date: Thu, 9 May 2002 09:01:50 +0200 + Message-Id: <20020509070150.GI1087@lupe-christoph.de> + (Applied with tweaks.) + Branch: perl + ! pod/perlapio.pod +____________________________________________________________________________ +[ 16512] By: pudge on 2002/05/09 03:44:21 + Log: Integrate from macperl + Branch: maint-5.6/macperl + !> macos/macperl/MPConsole.cp +____________________________________________________________________________ +[ 16511] By: pudge on 2002/05/09 03:34:14 + Log: Make interrupt act as end of file, MacPerl Bug #542154 + Branch: macperl + ! macos/macperl/MPConsole.cp +____________________________________________________________________________ +[ 16510] By: pudge on 2002/05/09 03:33:34 + Log: Tell IO.xs that MacOS sometimes doesn't need extra help + Branch: macperl + ! ext/IO/IO.xs +____________________________________________________________________________ +[ 16509] By: pudge on 2002/05/09 03:32:47 + Log: Make perlio (!sfio) work on MacOS + Branch: macperl + ! macos/config.h macos/config.sh macos/macish.c +____________________________________________________________________________ +[ 16508] By: gsar on 2002/05/09 00:24:00 + Log: integrate maint-5.6/macperl contents + Branch: maint-5.6/perl + !> README.macos cop.h deb.c embed.h ext/File/Glob/Glob.pm + !> lib/DB.pm lib/File/Copy.pm lib/File/Spec/Mac.pm lib/perl5db.pl + !> perl.c pod/perlport.pod pp_ctl.c proto.h toke.c util.c +____________________________________________________________________________ +[ 16507] By: jhi on 2002/05/08 23:48:12 + Log: Rework #16506 some more. + Branch: perl + ! ext/Time/HiRes/HiRes.xs win32/win32.c +____________________________________________________________________________ +[ 16506] By: jhi on 2002/05/08 23:20:29 + Log: Rework #16503 a bit to keep all the HiRes implementation + in one place, assuming we want to re-CPAN Time::HiRes at + some point. + Branch: perl + ! ext/Time/HiRes/HiRes.xs win32/win32.c +____________________________________________________________________________ +[ 16505] By: jhi on 2002/05/08 22:52:17 + Log: metaconfig unit change for #16504. + Branch: metaconfig + ! U/modified/Cppsym.U +____________________________________________________________________________ +[ 16504] By: jhi on 2002/05/08 22:51:54 + Log: Subject: [ID 20020508.012] with gcc-3.1, Config.pm's ccsymbols='-Acpu=i386 ...' is bad (esp for _h2ph_pre.ph) + From: Pixel <pixel@mandrakesoft.com> + Date: 08 May 2002 18:19:51 +0200 + Message-Id: <ly3cx2wr14.fsf@leia.mandrakesoft.com> + Branch: perl + ! Configure +____________________________________________________________________________ +[ 16503] By: gsar on 2002/05/08 22:49:33 + Log: make the gettimeofday() implementation in Time::HiRes available + from perl + Branch: perl + ! XSUB.h ext/Time/HiRes/HiRes.xs iperlsys.h makedef.pl pp.c + ! win32/config.bc win32/config.gc win32/config.vc + ! win32/config.vc64 win32/config_H.bc win32/config_H.gc + ! win32/config_H.vc win32/config_H.vc64 win32/perlhost.h + ! win32/win32.c win32/win32iop.h +____________________________________________________________________________ +[ 16502] By: jhi on 2002/05/08 22:41:42 + Log: Subject: Test output update for OS X 10.1.4 + From: Kay Röpke <kroepke@dolphin-services.de> + Date: Wed, 8 May 2002 22:23:36 +0200 + Message-Id: <79FC9AC7-62C1-11D6-9BDB-000393414688@dolphin-services.de> + Branch: perl + ! ext/DB_File/t/db-recno.t +____________________________________________________________________________ +[ 16501] By: jhi on 2002/05/08 22:39:11 + Log: Subject: [PATCH] Re: perl@16433 + From: sthoenna@efn.org (Yitzchak Scott-Thoennes) + Date: Tue, 07 May 2002 18:40:44 -0700 + Message-ID: <cII28gzkgaOS092yn@efn.org> + + Subject: Re: [PATCH] Re: perl@16433 + From: sthoenna@efn.org (Yitzchak Scott-Thoennes) + Date: Wed, 08 May 2002 10:16:42 -0700 + Message-ID: <61V28gzkg+jG092yn@efn.org> + Branch: perl + ! pp_sys.c sv.c t/op/tie.t +____________________________________________________________________________ +[ 16500] By: jhi on 2002/05/08 22:25:01 + Log: Subject: [DOC PATCH] Minor threads::shared nits + From: Simon Glover <scog@amnh.org> + Date: Wed, 8 May 2002 17:23:16 -0400 (EDT) + Message-ID: <Pine.GSO.4.43.0205081719050.26360-100000@egg.amnh.org> + Branch: perl + ! ext/threads/shared/queue.pm ext/threads/shared/semaphore.pm + ! ext/threads/shared/shared.pm +____________________________________________________________________________ +[ 16499] By: jhi on 2002/05/08 22:22:30 + Log: Subject: [DOC PATCH] perlthrtut proofreading + From: Simon Glover <scog@amnh.org> + Date: Wed, 8 May 2002 14:00:13 -0400 (EDT) + Message-ID: <Pine.GSO.4.43.0205081351010.23879-100000@egg.amnh.org> + Branch: perl + ! pod/perlthrtut.pod +____________________________________________________________________________ +[ 16498] By: jhi on 2002/05/08 22:19:45 + Log: Deprecate 5.005threads. + Branch: perl + ! pod/perldelta.pod +____________________________________________________________________________ +[ 16497] By: jhi on 2002/05/08 22:11:21 + Log: Integrate perlio; + + PerlIO/XS interface routine and doc updates from + lupe@lupe-christoph.de (Lupe Christoph) in mail + Subject: [For Review] Patch for perlio.c and pods + Message-Id: <20020505084315.GA23900@lupe-christoph.de> + Date: Sun, 5 May 2002 10:43:15 +0200 + (Minor tweaks to follow.) + + Portability and doc tweaks to PerlIO/XS stuff. + We are still "papering over the cracks" a bit, + but now it is good stiff card held on with epoxy. + Branch: perl + !> perlio.c pod/perlapio.pod pod/perlxstut.pod +____________________________________________________________________________ +[ 16496] By: nick on 2002/05/08 19:08:43 + Log: Portability and doc tweaks to PerlIO/XS stuff. + We are still "papering over the cracks" a bit, + but now it is good stiff card held on with epoxy. + Branch: perlio + ! perlio.c pod/perlapio.pod pod/perlxstut.pod +____________________________________________________________________________ +[ 16495] By: nick on 2002/05/08 17:56:43 + Log: PerlIO/XS interface routine and doc updates from + lupe@lupe-christoph.de (Lupe Christoph) in mail + Subject: [For Review] Patch for perlio.c and pods + Message-Id: <20020505084315.GA23900@lupe-christoph.de> + Date: Sun, 5 May 2002 10:43:15 +0200 + (Minor tweaks to follow.) + Branch: perlio + ! perlio.c pod/perlapio.pod pod/perlxstut.pod +____________________________________________________________________________ +[ 16494] By: nick on 2002/05/08 17:40:34 + Log: Integrate mainline + Branch: perlio + !> Changes Porting/p4genpatch ext/File/Glob/bsd_glob.c + !> ext/Storable/Storable.pm lib/base.pm lib/diagnostics.t + !> lib/fields.t lib/locale.t makedef.pl patchlevel.h + !> t/run/fresh_perl.t +____________________________________________________________________________ +[ 16493] By: jhi on 2002/05/08 14:25:31 + Log: Update Changes. + Branch: perl + ! Changes patchlevel.h +____________________________________________________________________________ [ 16492] By: gsar on 2002/05/08 14:00:54 Log: p4genpatch: produce unix-compatible patches on non-MacOS platforms; don't unlink /dev/null @@ -88,6 +88,7 @@ ext/B/defsubs_h.PL Generator for constant subroutines ext/B/Makefile.PL Compiler backend makefile writer ext/B/NOTES Compiler backend notes ext/B/O.pm Compiler front-end module (-MO=...) +ext/B/t/o.t See if O works ext/B/ramblings/cc.notes Compiler ramblings: notes on CC backend ext/B/ramblings/curcop.runtime Compiler ramblings: notes on curcop use ext/B/ramblings/flip-flop Compiler ramblings: notes on flip-flop diff --git a/Makefile.SH b/Makefile.SH index 2c123c6750..3361b42ae1 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -980,7 +980,7 @@ makedepend: makedepend.SH config.sh .PHONY: test check test_prep test_prep_nodll test_prep_pre _test_prep \ test_tty test-tty _test_tty test_notty test-notty _test_notty \ - utest ucheck test.utf8 check.utf8 \ + utest ucheck test.utf8 check.utf8 test.torture torturetest \ test.third check.third utest.third ucheck.third test_notty.third \ test.deparse test_notty.deparse \ minitest coretest @@ -1037,6 +1037,11 @@ test-tty: test_tty test-notty: test_notty +# Torture testing + +test.torture torturetest: test_prep + PERL=./perl TEST_ARGS=-torture $(MAKE) _test + # Targets for Third Degree testing. test_prep.third: test_prep perl.third diff --git a/ext/B/t/o.t b/ext/B/t/o.t new file mode 100644 index 0000000000..6575180ffd --- /dev/null +++ b/ext/B/t/o.t @@ -0,0 +1,76 @@ +#!./perl -w + +BEGIN { + chdir 't' if -d 't'; + @INC = ('../lib', 'lib', '.'); + require 'test.pl'; +} + +use strict; +use Config; +use File::Spec; +use File::Path; + +my $path = File::Spec->catdir( 'lib', 'B' ); +unless (-d $path) { + mkpath( $path ) or skip_all( 'Cannot create fake module path' ); +} + +my $file = File::Spec->catfile( $path, 'success.pm' ); +local *OUT; +open(OUT, '>', $file) or skip_all( 'Cannot write fake backend module'); +print OUT while <DATA>; +close *OUT; + +plan( 9 ); # And someone's responsible. + +# use() makes it difficult to avoid O::import() +require_ok( 'O' ); + +my @args = ('-Ilib', '-MO=success,foo,bar', '-e', '1' ); +my @lines = get_lines( @args ); + +is( $lines[0], '-e syntax OK', 'O.pm should not munge perl output without -qq'); +is( $lines[1], 'Compiling!', 'Output should not be saved without -q switch' ); +is( $lines[2], '(foo) <bar>', 'O.pm should call backend compile() method' ); +is( $lines[3], '[]', 'Nothing should be in $O::BEGIN_output without -q' ); + +$args[1] = '-MO=-q,success,foo,bar'; +@lines = get_lines( @args ); +isnt( $lines[1], 'Compiling!', 'Output should not be printed with -q switch' ); + +SKIP: { + skip( '-q redirection does not work without PerlIO', 2) + unless $Config{useperlio}; + is( $lines[2], "[Compiling!", '... but should be in $O::BEGIN_output' ); + + $args[1] = '-MO=-qq,success,foo,bar'; + @lines = get_lines( @args ); + is( scalar @lines, 3, '-qq should suppress even the syntax OK message' ); +} + +$args[1] = '-MO=success,fail'; +@lines = get_lines( @args ); +like( $lines[0], qr/fail at .eval/, + 'O.pm should die if backend compile() does not return a subref' ); + +sub get_lines { + split(/[\r\n]+/, runperl( args => [ @_ ], stderr => 1 )); +} + +END { + 1 while unlink($file); +} + +__END__ +package B::success; + +print "Compiling!\n"; + +sub compile { + return 'fail' if ($_[0] eq 'fail'); + print "($_[0]) <$_[1]>\n"; + return sub { print "[$O::BEGIN_output]\n" }; +} + +1; diff --git a/ext/DB_File/t/db-btree.t b/ext/DB_File/t/db-btree.t index 668e94a918..16ee276c8d 100755 --- a/ext/DB_File/t/db-btree.t +++ b/ext/DB_File/t/db-btree.t @@ -24,7 +24,7 @@ BEGIN { && $Config{db_version_patch} == 0) { warn <<EOM; # -# This test is known to crash in Mac OS X versions 10.1.3 (or earlier) +# This test is known to crash in Mac OS X versions 10.1.4 (or earlier) # because of the buggy Berkeley DB version included with the OS. # EOM diff --git a/ext/Encode/Encode.xs b/ext/Encode/Encode.xs index 09918a1785..6e24039ce8 100644 --- a/ext/Encode/Encode.xs +++ b/ext/Encode/Encode.xs @@ -283,7 +283,7 @@ Method_needs_lines(obj) SV * obj CODE: { - encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); + /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */ ST(0) = &PL_sv_no; XSRETURN(1); } @@ -293,7 +293,7 @@ Method_perlio_ok(obj) SV * obj CODE: { - encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); + /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */ /* require_pv(PERLIO_FILENAME); */ eval_pv("require PerlIO::encoding", 0); diff --git a/ext/threads/shared/queue.pm b/ext/threads/shared/queue.pm index 557833ac7d..02a5c2cf7d 100644 --- a/ext/threads/shared/queue.pm +++ b/ext/threads/shared/queue.pm @@ -1,48 +1,9 @@ - package threads::shared::queue; use threads::shared; use strict; -sub new { - my $class = shift; - my @q : shared = @_; - my $q = \@q; - return bless $q, $class; -} - -sub dequeue { - my $q = shift; - lock(@$q); - until(@$q) { - cond_wait(@$q); - } - return shift @$q; -} - -sub dequeue_nb { - my $q = shift; - lock(@$q); - if (@$q) { - return shift @$q; - } else { - return undef; - } -} - -sub enqueue { - my $q = shift; - lock(@$q); - push(@$q, @_) and cond_broadcast @$q; -} - -sub pending { - my $q = shift; - lock(@$q); - return scalar(@$q); -} - -1; +our $VERSION = '1.00'; =head1 NAME @@ -104,3 +65,44 @@ L<threads>, L<threads::shared> =cut +sub new { + my $class = shift; + my @q : shared = @_; + my $q = \@q; + return bless $q, $class; +} + +sub dequeue { + my $q = shift; + lock(@$q); + until(@$q) { + cond_wait(@$q); + } + return shift @$q; +} + +sub dequeue_nb { + my $q = shift; + lock(@$q); + if (@$q) { + return shift @$q; + } else { + return undef; + } +} + +sub enqueue { + my $q = shift; + lock(@$q); + push(@$q, @_) and cond_broadcast @$q; +} + +sub pending { + my $q = shift; + lock(@$q); + return scalar(@$q); +} + +1; + + diff --git a/patchlevel.h b/patchlevel.h index a59d8418ee..1bfff9ca6e 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -79,7 +79,7 @@ #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) static char *local_patches[] = { NULL - ,"DEVEL16492" + ,"DEVEL16538" ,NULL }; diff --git a/pod/perlhack.pod b/pod/perlhack.pod index 97772b8b23..2750e9e495 100644 --- a/pod/perlhack.pod +++ b/pod/perlhack.pod @@ -1803,6 +1803,47 @@ You must be triply conscious of cross-platform concerns. This usually boils down to using File::Spec and avoiding things like C<fork()> and C<system()> unless absolutely necessary. +=head2 Special Make Test Targets + +There are various special make targets that can be used to test Perl +slightly differently than the standard "test" target. Not all them +are expected to give a 100% success rate. Many of them have several +aliases. + +=over 4 + +=item coretest + +Run F<perl> on all but F<lib/*> tests. + +=item test.deparse + +Run all the tests through the B::Deparse. Not all tests will succeed. + +=item minitest + +Run F<miniperl> on F<t/base>, F<t/comp>, F<t/cmd>, F<t/run>, F<t/io>, +F<t/op>, and F<t/uni> tests. + +=item test.third check.third utest.third ucheck.third + +(Only in Tru64) Run all the tests using the memory leak + naughty +memory access tool "Third Degree". The log files will be named +F<perl3.log.testname>. + +=item test.torture torturetest + +Run all the usual tests and some extra tests. As of Perl 5.8.0 the +only extra tests are Abigail's JAPHs, t/japh/abigail.t. + +You can also run the torture test with F<t/harness> by giving +C<-torture> argument to F<t/harness>. + +=item utest ucheck test.utf8 check.utf8 + +Run all the tests with -Mutf8. Not all tests will succeed. + +=back =head1 EXTERNAL TOOLS FOR DEBUGGING PERL diff --git a/pod/perltoc.pod b/pod/perltoc.pod index b14290cef8..59c1467ee9 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -1854,6 +1854,104 @@ string =item DESCRIPTION +=item What Is A Thread Anyway? + +=item Threaded Program Models + +=over 4 + +=item Boss/Worker + +=item Work Crew + +=item Pipeline + +=back + +=item Native threads + +=item What kind of threads are perl threads? + +=item Threadsafe Modules + +=item Thread Basics + +=over 4 + +=item Basic Thread Support + +=item Creating Threads + +=item Giving up control + +=item Waiting For A Thread To Exit + +=item Ignoring A Thread + +=back + +=item Threads And Data + +=over 4 + +=item Shared And Unshared Data + +=item Thread Pitfalls: Races + +=item Controlling access: lock() + +=item Thread Pitfall: Deadlocks + +=item Queues: Passing Data Around + +=back + +=item Threads And Code + +=over 4 + +=item Semaphores: Synchronizing Data Access + +Basic semaphores, Advanced Semaphores + +=back + +=item General Thread Utility Routines + +=over 4 + +=item What Thread Am I In? + +=item Thread IDs + +=item Are These Threads The Same? + +=item What Threads Are Running? + +=back + +=item A Complete Example + +=item Conclusion + +=item Bibliography + +=over 4 + +=item Introductory Texts + +=item OS-Related References + +=item Other References + +=back + +=item Acknowledgements + +=item AUTHOR + +=item Copyrights + =back =head2 perlothrtut - old tutorial on threads in Perl @@ -2836,8 +2934,8 @@ References, Tutorials, Task-Oriented, Special Topics =back -=head2 perlfaq3 - Programming Tools ($Revision: 1.21 $, $Date: 2002/04/28 -15:51:10 $) +=head2 perlfaq3 - Programming Tools ($Revision: 1.22 $, $Date: 2002/05/06 +13:11:13 $) =over 4 @@ -2921,8 +3019,8 @@ my C program; what am I doing wrong? =back -=head2 perlfaq4 - Data Manipulation ($Revision: 1.20 $, $Date: 2002/04/07 -18:46:13 $) +=head2 perlfaq4 - Data Manipulation ($Revision: 1.21 $, $Date: 2002/05/06 +13:08:46 $) =over 4 @@ -2942,7 +3040,7 @@ Trig functions? =item How do I convert between numeric representations? -B<How do I convert Hexadecimal into decimal:>, B<How do I convert from +B<How do I convert hexadecimal into decimal:>, B<How do I convert from decimal to hexadecimal:>, B<How do I convert from octal to decimal:>, B<How do I convert from decimal to octal:>, B<How do I convert from binary to decimal:>, B<How do I convert from decimal to binary:> @@ -3800,7 +3898,7 @@ C<!!!>, C<!!>, C<!> =item EXAMPLE 8 (Coming Soon) -=item EXAMPLE 9 (Coming Soon) +=item EXAMPLE 9 Passing open files to XSes =item Troubleshooting these Examples @@ -4360,8 +4458,8 @@ HEf_SVKEY, Nullch, Nullsv get_hv, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, HeVAL, HvNAME, hv_clear, hv_delete, hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey, -hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iterval, hv_magic, hv_store, -hv_store_ent, hv_undef, newHV, Nullhv +hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iternext_flags, hv_iterval, +hv_magic, hv_store, hv_store_ent, hv_undef, newHV, Nullhv =item Magical Functions @@ -4428,13 +4526,13 @@ sv_nounlocking, sv_nv, sv_pos_b2u, sv_pos_u2b, sv_pv, sv_pvbyte, sv_pvbyten, sv_pvbyten_force, sv_pvn, sv_pvn_force, sv_pvn_force_flags, sv_pvutf8, sv_pvutf8n, sv_pvutf8n_force, sv_reftype, sv_replace, sv_report_used, sv_reset, sv_rvweaken, sv_setiv, sv_setiv_mg, sv_setnv, -sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpviv, sv_setpviv_mg, -sv_setpvn, sv_setpvn_mg, sv_setpv_mg, sv_setref_iv, sv_setref_nv, -sv_setref_pv, sv_setref_pvn, sv_setref_uv, sv_setsv, sv_setsv_flags, -sv_setsv_mg, sv_setuv, sv_setuv_mg, sv_taint, sv_tainted, sv_true, -sv_unmagic, sv_unref, sv_unref_flags, sv_untaint, sv_upgrade, sv_usepvn, -sv_usepvn_mg, sv_utf8_decode, sv_utf8_downgrade, sv_utf8_encode, -sv_utf8_upgrade, sv_utf8_upgrade_flags, sv_uv, sv_vcatpvfn, sv_vsetpvfn +sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpvn, sv_setpvn_mg, +sv_setpv_mg, sv_setref_iv, sv_setref_nv, sv_setref_pv, sv_setref_pvn, +sv_setref_uv, sv_setsv, sv_setsv_flags, sv_setsv_mg, sv_setuv, sv_setuv_mg, +sv_taint, sv_tainted, sv_true, sv_unmagic, sv_unref, sv_unref_flags, +sv_untaint, sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_utf8_decode, +sv_utf8_downgrade, sv_utf8_encode, sv_utf8_upgrade, sv_utf8_upgrade_flags, +sv_uv, sv_vcatpvfn, sv_vsetpvfn =item Unicode Support @@ -4539,7 +4637,7 @@ Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt, Set_ptrcnt =item Extension Layers -":encoding", ":Scalar", ":Object" or ":Perl" +":encoding", ":Scalar", ":Via" =back @@ -4572,7 +4670,7 @@ B<PerlIO_rewind(f)>, B<PerlIO_tmpfile()>, B<PerlIO_setlinebuf(f)> =item Co-existence with stdio B<PerlIO_importFILE(f,flags)>, B<PerlIO_exportFILE(f,flags)>, -B<PerlIO_findFILE(f)>, B<PerlIO_releaseFILE(p,f)> +B<PerlIO_releaseFILE(p,f)>, B<PerlIO_findFILE(f)> =item "Fast gets" Functions @@ -5030,6 +5128,11 @@ finish, 'enter', print F<t/base/>, F<t/cmd/>, F<t/comp/>, F<t/io/>, F<t/lib/>, F<t/op/>, F<t/pod/>, F<t/run/>, t/base t/comp, t/cmd t/run t/io t/op, t/lib ext lib +=item Special Make Test Targets + +coretest, test.deparse, minitest, test.third check.third utest.third +ucheck.third, test.torture torturetest, utest ucheck test.utf8 check.utf8 + =back =item EXTERNAL TOOLS FOR DEBUGGING PERL @@ -5209,11 +5312,13 @@ I<The Road goes ever on and on, down from the door where it began.> =item FreeBSD Failing locale Test 117 For ISO8859-15 Locales +=item Modifying $_ Inside for(..) + =item mod_perl 1.26 Doesn't Build With Threaded Perl =item lib/ftmp-security tests warn 'system possibly insecure' -=item HP-UX lib/posix Subtest 9 Fails When LP64-Configured +=item HP-UX lib/posix Subtest 9 Fails When LP64-Configured =item Linux With Sfio Fails op/misc Test 48 @@ -5237,8 +5342,6 @@ I<The Road goes ever on and on, down from the door where it began.> =item XML::Parser not working -=item Localising a Tied Variable Leaks Memory - =item z/OS (OS/390) =item Localising Tied Arrays and Hashes Is Broken @@ -7991,6 +8094,37 @@ method, locked =back +=head2 threadshared::queue, threads::shared::queue - thread-safe queues + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item FUNCTIONS AND METHODS + +new, enqueue LIST, dequeue, dequeue_nb, pending + +=item SEE ALSO + +=back + +=head2 threadshared::semaphore, threads::shared::semaphore - thread-safe +semaphores + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item FUNCTIONS AND METHODS + +new, new NUMBER, down, down NUMBER, up, up NUMBER + +=back + =head2 threadshared::shared, threads::shared - Perl extension for sharing data structures between threads @@ -8027,7 +8161,8 @@ from perl =item DESCRIPTION $thread = threads->create(function, LIST), $thread->join, $thread->detach, -threads->self, $thread->tid, threads->yield();, threads->list(); +threads->self, $thread->tid, threads->yield();, threads->list();, async +BLOCK; =item WARNINGS @@ -8693,7 +8828,8 @@ from perl =item DESCRIPTION $thread = threads->create(function, LIST), $thread->join, $thread->detach, -threads->self, $thread->tid, threads->yield();, threads->list(); +threads->self, $thread->tid, threads->yield();, threads->list();, async +BLOCK; =item WARNINGS @@ -8736,6 +8872,37 @@ cond_signal VARIABLE, cond_broadcast VARIABLE =back +=head2 threadshared::queue, threads::shared::queue - thread-safe queues + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item FUNCTIONS AND METHODS + +new, enqueue LIST, dequeue, dequeue_nb, pending + +=item SEE ALSO + +=back + +=head2 threadshared::semaphore, threads::shared::semaphore - thread-safe +semaphores + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item FUNCTIONS AND METHODS + +new, new NUMBER, down, down NUMBER, up, up NUMBER + +=back + =head2 utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code @@ -10167,8 +10334,7 @@ C<asctime_r_proto>, C<awk> =item b -C<baserev>, C<bash>, C<bin>, C<binexp>, C<bison>, -C<byacc>, C<byteorder> +C<baserev>, C<bash>, C<bin>, C<binexp>, C<bison>, C<byacc>, C<byteorder> =item c @@ -10184,78 +10350,77 @@ C<csh>, C<ctermid_r_proto>, C<ctime_r_proto> C<d__fwalk>, C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>, C<d_asctime_r>, C<d_atolf>, C<d_atoll>, C<d_attribut>, C<d_bcmp>, -C<d_bcopy>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, -C<d_bzero>, C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>, -C<d_chroot>, C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>, -C<d_const>, C<d_crypt>, C<d_crypt_r>, C<d_csh>, C<d_ctermid_r>, -C<d_ctime_r>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>, C<d_difftime>, -C<d_dirfd>, C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>, -C<d_dosuid>, C<d_drand48_r>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>, -C<d_endgrent>, C<d_endgrent_r>, C<d_endhent>, C<d_endhostent_r>, -C<d_endnent>, C<d_endnetent_r>, C<d_endpent>, C<d_endprotoent_r>, -C<d_endpwent>, C<d_endpwent_r>, C<d_endsent>, C<d_endservent_r>, -C<d_eofnblk>, C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>, -C<d_fcntl>, C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>, -C<d_fds_bits>, C<d_fgetpos>, C<d_finite>, C<d_finitel>, C<d_flexfnam>, -C<d_flock>, C<d_flockproto>, C<d_fork>, C<d_fp_class>, C<d_fpathconf>, -C<d_fpclass>, C<d_fpclassify>, C<d_fpclassl>, C<d_fpos64_t>, C<d_frexpl>, -C<d_fs_data_s>, C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>, -C<d_fsync>, C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>, -C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>, C<d_getgrent_r>, -C<d_getgrgid_r>, C<d_getgrnam_r>, C<d_getgrps>, C<d_gethbyaddr>, -C<d_gethbyname>, C<d_gethent>, C<d_gethname>, C<d_gethostbyaddr_r>, -C<d_gethostbyname_r>, C<d_gethostent_r>, C<d_gethostprotos>, -C<d_getitimer>, C<d_getlogin>, C<d_getlogin_r>, C<d_getmnt>, -C<d_getmntent>, C<d_getnbyaddr>, C<d_getnbyname>, C<d_getnent>, -C<d_getnetbyaddr_r>, C<d_getnetbyname_r>, C<d_getnetent_r>, -C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>, C<d_getpbynumber>, -C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>, -C<d_getprior>, C<d_getprotobyname_r>, C<d_getprotobynumber_r>, -C<d_getprotoent_r>, C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>, -C<d_getpwent_r>, C<d_getpwnam_r>, C<d_getpwuid_r>, C<d_getsbyname>, -C<d_getsbyport>, C<d_getsent>, C<d_getservbyname_r>, C<d_getservbyport_r>, -C<d_getservent_r>, C<d_getservprotos>, C<d_getspnam>, C<d_getspnam_r>, -C<d_gettimeod>, C<d_gmtime_r>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, -C<d_htonl>, C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>, -C<d_isfinite>, C<d_isinf>, C<d_isnan>, C<d_isnanl>, C<d_killpg>, -C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_localtime_r>, C<d_locconv>, -C<d_lockf>, C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>, -C<d_madvise>, C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>, -C<d_memcmp>, C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>, -C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>, -C<d_mmap>, C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>, -C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>, -C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>, -C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, -C<d_nl_langinfo>, C<d_nv_preserves_uv>, C<d_off64_t>, -C<d_old_pthread_create_joinable>, C<d_oldpthreads>, C<d_oldsock>, -C<d_open3>, C<d_pathconf>, C<d_pause>, C<d_perl_otherlibdirs>, -C<d_phostname>, C<d_pipe>, C<d_poll>, C<d_portable>, C<d_PRId64>, -C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>, C<d_PRIFUldbl>, -C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>, C<d_PRIu64>, -C<d_PRIx64>, C<d_PRIXU64>, C<d_procselfexe>, C<d_pthread_atfork>, -C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>, C<d_pwclass>, -C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>, C<d_pwquota>, -C<d_qgcvt>, C<d_quad>, C<d_random_r>, C<d_readdir64_r>, C<d_readdir>, -C<d_readdir_r>, C<d_readlink>, C<d_readv>, C<d_recvmsg>, C<d_rename>, -C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>, C<d_sanemcmp>, -C<d_sbrkproto>, C<d_sched_yield>, C<d_scm_rights>, C<d_SCNfldbl>, -C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>, C<d_semctl_semid_ds>, -C<d_semctl_semun>, C<d_semget>, C<d_semop>, C<d_sendmsg>, C<d_setegid>, -C<d_seteuid>, C<d_setgrent>, C<d_setgrent_r>, C<d_setgrps>, C<d_sethent>, -C<d_sethostent_r>, C<d_setitimer>, C<d_setlinebuf>, C<d_setlocale>, -C<d_setlocale_r>, C<d_setnent>, C<d_setnetent_r>, C<d_setpent>, -C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>, C<d_setprior>, -C<d_setproctitle>, C<d_setprotoent_r>, C<d_setpwent>, C<d_setpwent_r>, -C<d_setregid>, C<d_setresgid>, C<d_setresuid>, C<d_setreuid>, C<d_setrgid>, -C<d_setruid>, C<d_setsent>, C<d_setservent_r>, C<d_setsid>, C<d_setvbuf>, -C<d_sfio>, C<d_shm>, C<d_shmat>, C<d_shmatprototype>, C<d_shmctl>, -C<d_shmdt>, C<d_shmget>, C<d_sigaction>, C<d_sigprocmask>, C<d_sigsetjmp>, -C<d_sockatmark>, C<d_sockatmarkproto>, C<d_socket>, C<d_socklen_t>, -C<d_sockpair>, C<d_socks5_init>, C<d_sqrtl>, C<d_srand48_r>, -C<d_srandom_r>, C<d_sresgproto>, C<d_sresuproto>, C<d_statblks>, -C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>, C<d_stdio_cnt_lval>, -C<d_stdio_ptr_lval>, C<d_stdio_ptr_lval_nochange_cnt>, +C<d_bcopy>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, C<d_bzero>, +C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>, C<d_chroot>, +C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>, C<d_const>, +C<d_crypt>, C<d_crypt_r>, C<d_csh>, C<d_ctermid_r>, C<d_ctime_r>, +C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>, C<d_difftime>, C<d_dirfd>, +C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>, C<d_dosuid>, +C<d_drand48_r>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>, C<d_endgrent>, +C<d_endgrent_r>, C<d_endhent>, C<d_endhostent_r>, C<d_endnent>, +C<d_endnetent_r>, C<d_endpent>, C<d_endprotoent_r>, C<d_endpwent>, +C<d_endpwent_r>, C<d_endsent>, C<d_endservent_r>, C<d_eofnblk>, +C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>, C<d_fcntl>, +C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>, C<d_fds_bits>, +C<d_fgetpos>, C<d_finite>, C<d_finitel>, C<d_flexfnam>, C<d_flock>, +C<d_flockproto>, C<d_fork>, C<d_fp_class>, C<d_fpathconf>, C<d_fpclass>, +C<d_fpclassify>, C<d_fpclassl>, C<d_fpos64_t>, C<d_frexpl>, C<d_fs_data_s>, +C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>, C<d_fsync>, +C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>, C<d_getespwnam>, +C<d_getfsstat>, C<d_getgrent>, C<d_getgrent_r>, C<d_getgrgid_r>, +C<d_getgrnam_r>, C<d_getgrps>, C<d_gethbyaddr>, C<d_gethbyname>, +C<d_gethent>, C<d_gethname>, C<d_gethostbyaddr_r>, C<d_gethostbyname_r>, +C<d_gethostent_r>, C<d_gethostprotos>, C<d_getitimer>, C<d_getlogin>, +C<d_getlogin_r>, C<d_getmnt>, C<d_getmntent>, C<d_getnbyaddr>, +C<d_getnbyname>, C<d_getnent>, C<d_getnetbyaddr_r>, C<d_getnetbyname_r>, +C<d_getnetent_r>, C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>, +C<d_getpbynumber>, C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>, +C<d_getppid>, C<d_getprior>, C<d_getprotobyname_r>, +C<d_getprotobynumber_r>, C<d_getprotoent_r>, C<d_getprotoprotos>, +C<d_getprpwnam>, C<d_getpwent>, C<d_getpwent_r>, C<d_getpwnam_r>, +C<d_getpwuid_r>, C<d_getsbyname>, C<d_getsbyport>, C<d_getsent>, +C<d_getservbyname_r>, C<d_getservbyport_r>, C<d_getservent_r>, +C<d_getservprotos>, C<d_getspnam>, C<d_getspnam_r>, C<d_gettimeod>, +C<d_gmtime_r>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, C<d_htonl>, +C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>, C<d_isfinite>, +C<d_isinf>, C<d_isnan>, C<d_isnanl>, C<d_killpg>, C<d_lchown>, +C<d_ldbl_dig>, C<d_link>, C<d_localtime_r>, C<d_locconv>, C<d_lockf>, +C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>, C<d_madvise>, +C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>, C<d_memcmp>, +C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>, C<d_mkdtemp>, +C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>, C<d_mmap>, +C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>, +C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>, C<d_msg_proxy>, +C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>, C<d_msgsnd>, +C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nl_langinfo>, +C<d_nv_preserves_uv>, C<d_off64_t>, C<d_old_pthread_create_joinable>, +C<d_oldpthreads>, C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>, +C<d_perl_otherlibdirs>, C<d_phostname>, C<d_pipe>, C<d_poll>, +C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>, +C<d_PRIFUldbl>, C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>, +C<d_PRIu64>, C<d_PRIx64>, C<d_PRIXU64>, C<d_procselfexe>, +C<d_pthread_atfork>, C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>, +C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>, +C<d_pwquota>, C<d_qgcvt>, C<d_quad>, C<d_random_r>, C<d_readdir64_r>, +C<d_readdir>, C<d_readdir_r>, C<d_readlink>, C<d_readv>, C<d_recvmsg>, +C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>, +C<d_sanemcmp>, C<d_sbrkproto>, C<d_sched_yield>, C<d_scm_rights>, +C<d_SCNfldbl>, C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>, +C<d_semctl_semid_ds>, C<d_semctl_semun>, C<d_semget>, C<d_semop>, +C<d_sendmsg>, C<d_setegid>, C<d_seteuid>, C<d_setgrent>, C<d_setgrent_r>, +C<d_setgrps>, C<d_sethent>, C<d_sethostent_r>, C<d_setitimer>, +C<d_setlinebuf>, C<d_setlocale>, C<d_setlocale_r>, C<d_setnent>, +C<d_setnetent_r>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>, +C<d_setprior>, C<d_setproctitle>, C<d_setprotoent_r>, C<d_setpwent>, +C<d_setpwent_r>, C<d_setregid>, C<d_setresgid>, C<d_setresuid>, +C<d_setreuid>, C<d_setrgid>, C<d_setruid>, C<d_setsent>, C<d_setservent_r>, +C<d_setsid>, C<d_setvbuf>, C<d_sfio>, C<d_shm>, C<d_shmat>, +C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>, C<d_sigaction>, +C<d_sigprocmask>, C<d_sigsetjmp>, C<d_sockatmark>, C<d_sockatmarkproto>, +C<d_socket>, C<d_socklen_t>, C<d_sockpair>, C<d_socks5_init>, C<d_sqrtl>, +C<d_srand48_r>, C<d_srandom_r>, C<d_sresgproto>, C<d_sresuproto>, +C<d_statblks>, C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>, +C<d_stdio_cnt_lval>, C<d_stdio_ptr_lval>, C<d_stdio_ptr_lval_nochange_cnt>, C<d_stdio_ptr_lval_sets_cnt>, C<d_stdio_stream_array>, C<d_stdiobase>, C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>, C<d_strerrm>, C<d_strerror>, C<d_strerror_r>, C<d_strftime>, C<d_strtod>, C<d_strtol>, @@ -11126,6 +11291,8 @@ guess_encoding($data, [, I<list of suspects>]) =item CAVEATS +=item TO DO + =item SEE ALSO =back @@ -11234,11 +11401,12 @@ the Cyrillic world, gsm0338 - Hentai Latin 1 =item CJK: Chinese, Japanese, Korean (Multibyte) Encode::CN -- Continental China, Encode::JP -- Japan, Encode::KR -- Korea, -Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese via CPAN +Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese via CPAN, +Encode::JIS2K -- JIS X 0213 encodings via CPAN =item Miscellaneous encodings -Encode::EBCDIC, Encode::Symbols +Encode::EBCDIC, Encode::Symbols, Encode::MIME::Header, Encode::Guess =back @@ -11432,6 +11600,8 @@ guess_encoding($data, [, I<list of suspects>]) =item CAVEATS +=item TO DO + =item SEE ALSO =back @@ -11514,11 +11684,12 @@ the Cyrillic world, gsm0338 - Hentai Latin 1 =item CJK: Chinese, Japanese, Korean (Multibyte) Encode::CN -- Continental China, Encode::JP -- Japan, Encode::KR -- Korea, -Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese via CPAN +Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese via CPAN, +Encode::JIS2K -- JIS X 0213 encodings via CPAN =item Miscellaneous encodings -Encode::EBCDIC, Encode::Symbols +Encode::EBCDIC, Encode::Symbols, Encode::MIME::Header, Encode::Guess =back @@ -12095,6 +12266,49 @@ B<replace_manpage_separator> =back +=head2 ExtUtils::MM_MacOS - methods to override UN*X behaviour in +ExtUtils::MakeMaker + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=back + +maybe_command + +guess_name + +macify + +patternify + +init_main + +init_others + +init_dirscan + +libscan (o) + +constants (o) + +static (o) + +dlsyms (o) + +dynamic (o) + +clean (o) + +realclean (o) + +rulez (o) + +processPL (o) + =head2 ExtUtils::MM_NW5 - methods to override UN*X behaviour in ExtUtils::MakeMaker @@ -12108,6 +12322,8 @@ ExtUtils::MakeMaker constants (o) +static_lib (o) + dynamic_lib (o) =head2 ExtUtils::MM_OS2 - methods to override UN*X behaviour in @@ -12495,6 +12711,16 @@ dist_core (o) pasthru (o) +=head2 ExtUtils::MM_Win95 - method to customize MakeMaker for Win9X + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=back + =head2 ExtUtils::MY - ExtUtils::MakeMaker subclass for customization =over 4 @@ -17507,7 +17733,7 @@ SOCKADDR_UN, pack_sockaddr_un PATH, unpack_sockaddr_un SOCKADDR_UN =back -=head2 Storable - persistency for perl data structures +=head2 Storable - persistence for Perl data structures =over 4 @@ -17523,6 +17749,10 @@ SOCKADDR_UN, pack_sockaddr_un PATH, unpack_sockaddr_un SOCKADDR_UN =item CANONICAL REPRESENTATION +=item FORWARD COMPATIBILITY + +utf8 data, restricted hashes, files from future versions of Storable + =item ERROR REPORTING =item WIZARDS ONLY @@ -17555,8 +17785,6 @@ C<Storable::is_retrieving> =item CREDITS -=item TRANSLATIONS - =item AUTHOR =item SEE ALSO @@ -18802,7 +19030,7 @@ $obj->isa( TYPE ), CLASS->isa( TYPE ), isa( VAL, TYPE ), $obj->can( METHOD =back -=head2 Unicode::Collate - use UCA (Unicode Collation Algorithm) +=head2 Unicode::Collate - Unicode Collation Algorithm =over 4 @@ -18818,30 +19046,40 @@ alternate, backwards, entry, ignoreName, ignoreChar, level, normalization, overrideCJK, overrideHangul, preprocess, rearrange, table, undefName, undefChar, katakana_before_hiragana, upper_before_lower -=item Other methods +=item Methods for Collation C<@sorted = $Collator-E<gt>sort(@not_sorted)>, C<$result = $Collator-E<gt>cmp($a, $b)>, C<$result = $Collator-E<gt>eq($a, $b)>, C<$result = $Collator-E<gt>ne($a, $b)>, C<$result = $Collator-E<gt>lt($a, $b)>, C<$result = $Collator-E<gt>le($a, $b)>, C<$result = $Collator-E<gt>gt($a, $b)>, C<$result = $Collator-E<gt>ge($a, $b)>, -C<$sortKey = $Collator-E<gt>getSortKey($string)>, C<$position = +C<$sortKey = $Collator-E<gt>getSortKey($string)>, C<$sortKeyForm = +$Collator-E<gt>viewSortKey($string)>, C<$position = $Collator-E<gt>index($string, $substring)>, C<($position, $length) = $Collator-E<gt>index($string, $substring)> +=item Other Methods + +UCA_Version, Base_Unicode_Version + =item EXPORT =item TODO =item CAVEAT +=item BUGS + =back =item AUTHOR =item SEE ALSO -Unicode Collation Algorithm - Unicode TR #10, L<Unicode::Normalize> +http://www.unicode.org/unicode/reports/tr10/, +http://www.unicode.org/unicode/reports/tr10/allkeys.txt, +http://www.unicode.org/unicode/reports/tr15/, +http://www.unicode.org/unicode/reports/tr18, L<Unicode::Normalize> =back @@ -19,6 +19,7 @@ if ($#ARGV >= 0) { push( @argv, $ARGV[$idx] ), next unless $ARGV[$idx] =~ /^-(\S+)$/; $core = 1 if $1 eq 'core'; $verbose = 1 if $1 eq 'v'; + $torture = 1 if $1 eq 'torture'; $with_utf= 1 if $1 eq 'utf8'; $byte_compile = 1 if $1 eq 'bytecompile'; $compile = 1 if $1 eq 'compile'; @@ -110,9 +111,11 @@ unless (@ARGV) { } else { warn "$0: cannot open $mani: $!\n"; } - _find_tests('pod') unless $core; - _find_tests('x2p') unless $core; - _find_tests('japh') unless $core; + unless ($core) { + _find_tests('pod'); + _find_tests('x2p'); + _find_tests('japh') if $torture; + } } # Tests known to cause infinite loops for the perlcc tests. @@ -9,11 +9,18 @@ BEGIN { $ENV{PERL5LIB} = '../lib'; # so children will see it too } +my $torture; # torture testing? + use Test::Harness; $Test::Harness::switches = ""; # Too much noise otherwise $Test::Harness::verbose = shift if @ARGV && $ARGV[0] eq '-v'; +if ($ARGV[0] eq '-torture') { + shift; + $torture = 1; +} + # Let tests know they're running in the perl core. Useful for modules # which live dual lives on CPAN. $ENV{PERL_CORE} = 1; @@ -57,6 +64,7 @@ if (@ARGV) { push @tests, <op/*.t>; push @tests, <uni/*.t>; push @tests, <lib/*.t>; + push @tests, <japh/*.t> if $torture; push @tests, <win32/*.t> if $^O eq 'MSWin32'; use File::Spec; my $updir = File::Spec->updir; |