This patch describes the changes made in ActivePerl build 807 over the official Perl v5.8.1 sources from CPAN. Summary of changes in build 807: * Make "perl -V" output reflect ActiveState build. * Add Win32::BuildNumber() for compatibility. * Add resources to perl.exe and perl58.dll. The ActivePerl Release Notes contain an informal summary of these changes. These can be viewed at: http://www.ActiveState.com/ActivePerl/docs/CHANGES.html The included patch may be applied to Perl v5.8.1 sources using the GNU patch utility. e.g: % cd perl-5.8.1 % patch -lNp1 < this_file --------------------------------------------------------------------------- diff -ruN perl-5.8.1/Changes AP807_source/Changes --- perl-5.8.1/Changes Thu Nov 6 16:08:42 2003 +++ AP807_source/Changes Thu Nov 6 16:06:50 2003 @@ -24,6 +24,710 @@ to the perl5-porters mailing list. You can retrieve the messages for example from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ +-------------------- +ActivePerl build 807 Patches on top of Perl 5.8.1 +-------------------- + +____________________________________________________________________________ +[ 21627] By: rgs on 2003/11/02 20:40:47 + Log: Subject: [PATCH pod/perlguts.pod] update embed.pl description + From: "Marcus Holland-Moritz" + Date: Sun, 2 Nov 2003 22:24:28 +0100 + Message-ID: <007b01c3a187$b34c6110$0c2f1fac@R2D2> + Branch: perl + ! pod/perlguts.pod +____________________________________________________________________________ +[ 21625] By: rgs on 2003/11/02 20:24:21 + Log: Mention perl 5.8.2-RC1 in perlhist, as spotted by Abigail. + Branch: perl + ! pod/perlhist.pod +____________________________________________________________________________ +[ 21616] By: rgs on 2003/11/02 12:37:54 + Log: Subject: DOCPATCH: does STORE need to return anything and if so what? + From: david nicol + Date: 26 Oct 2003 22:34:04 -0600 + Message-Id: <1067229244.1071.51.camel@plaza.davidnicol.com> + Branch: perl + ! pod/perltie.pod +____________________________________________________________________________ +[ 21601] By: nicholas on 2003/11/01 12:34:09 + Log: Subject: [PATCH 5.8.1] make reentr.[ch] compatible with 5.8.0 again + From: Jan Dubois + Date: Thu, 30 Oct 2003 16:58:05 -0800 + Message-ID: + Branch: maint-5.8/perl + + reentr.inc + ! MANIFEST installperl perl.h reentr.c reentr.h reentr.pl + ! win32/Makefile win32/makefile.mk +____________________________________________________________________________ +[ 21596] By: rgs on 2003/10/31 20:46:44 + Log: Subject: Re: [perl #24367] [PATCH] configure flag -Dextras="HTML::Parser" doesn't seem to do anything + From: Andy Dougherty + Date: Fri, 31 Oct 2003 15:32:35 -0500 (EST) + Message-ID: + (plus POD link fixes) + Branch: perl + ! INSTALL +____________________________________________________________________________ +[ 21593] By: rgs on 2003/10/31 20:19:01 + Log: Test nit ; goes with change 21591 + Branch: perl + ! t/lib/warnings/regcomp +____________________________________________________________________________ +[ 21592] By: rgs on 2003/10/31 20:03:58 + Log: Subject: [PATCH] Document PERL_DL_NONLAZY + From: Gisle Aas + Date: 31 Oct 2003 03:13:03 -0800 + Message-ID: + Branch: perl + ! pod/perlrun.pod +____________________________________________________________________________ +[ 21591] By: rgs on 2003/10/31 19:54:23 + Log: Subject: [PATCH] Off-by-one error in regcomp.c + From: Slaven Rezic + Date: Fri, 31 Oct 2003 12:16:11 +0000 + Message-Id: <1067602571.12768@devpc01.iconmobile.de> + Branch: perl + ! regcomp.c t/op/regmesg.t +____________________________________________________________________________ +[ 21590] By: rgs on 2003/10/31 19:36:32 + Log: Subject: [patch pod/perlfunc.pod] separate two unrelated notes in require + From: Stas Bekman + Date: Wed, 29 Oct 2003 16:47:24 -0800 + Message-ID: <3FA05F9C.2080304@stason.org> + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21588] By: rgs on 2003/10/31 19:25:38 + Log: Subject: [PATCH] Devel::PPPort and scan_bin + From: "Marcus Holland-Moritz" + Date: Wed, 29 Oct 2003 22:53:43 +0100 + Message-ID: <037201c39e67$1faa9940$0c2f1fac@R2D2> + Branch: perl + ! ext/Devel/PPPort/PPPort.pm +____________________________________________________________________________ +[ 21587] By: rgs on 2003/10/31 19:19:00 + Log: Subject: [PATCH] change p4d2p to deal with new style diff2 output + From: Jan Dubois + Date: Thu, 30 Oct 2003 18:43:08 -0800 + Message-ID: + Branch: perl + ! Porting/p4d2p +____________________________________________________________________________ +[ 21575] By: rgs on 2003/10/29 06:51:19 + Log: Move a fcntl() example in perlfunc at a more proper place, + as suggested by : + Subject: [perl #24334] ioctl/fcntl doc confusion + From: "perl-5.8.0@ton.iguana.be (via RT)" + Date: 28 Oct 2003 13:37:49 -0000 + Message-ID: + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21564] By: davem on 2003/10/27 22:01:12 + Log: Fix more shared threads leaks: add SAVETMPS to the second branch + of sharedsv_scalar_store(). + Branch: perl + ! ext/threads/shared/shared.xs +____________________________________________________________________________ +[ 21560] By: nicholas on 2003/10/27 18:01:02 + Log: Record the escape^Wrelease of 5.9.0 + Branch: perl + ! pod/perlhist.pod +____________________________________________________________________________ +[ 21567] By: rgs on 2003/10/28 08:48:06 + Log: Upgrade to Time::HiRes 1.52. + Branch: perl + ! ext/Time/HiRes/Changes ext/Time/HiRes/HiRes.pm + ! ext/Time/HiRes/Makefile.PL ext/Time/HiRes/t/HiRes.t +____________________________________________________________________________ +[ 21554] By: nicholas on 2003/10/27 16:09:37 + Log: Subject: Re: DBD::Sybase and Sybase::CTlib build problems w/ 5.8.1, Solaris, gcc + From: Alan Burlison + Date: Tue, 21 Oct 2003 15:00:58 +0100 + Message-ID: <3F953C1A.3060800@sun.com> + Branch: perl + ! hints/solaris_2.sh +____________________________________________________________________________ +[ 21550] By: nicholas on 2003/10/27 13:45:27 + Log: Sync with Unicode::Normalize 0.25 + Branch: perl + + ext/Unicode/Normalize/t/fcdc.t ext/Unicode/Normalize/t/form.t + + ext/Unicode/Normalize/t/proto.t + + ext/Unicode/Normalize/t/split.t + ! MANIFEST ext/Unicode/Normalize/Changes + ! ext/Unicode/Normalize/Makefile.PL + ! ext/Unicode/Normalize/Normalize.pm + ! ext/Unicode/Normalize/Normalize.xs + ! ext/Unicode/Normalize/README +____________________________________________________________________________ +[ 21549] By: nicholas on 2003/10/27 13:11:48 + Log: Sync with Unicode::Collate 0.30 + Branch: perl + + lib/Unicode/Collate/t/hangtype.t + + lib/Unicode/Collate/t/normal.t lib/Unicode/Collate/t/trailwt.t + + lib/Unicode/Collate/t/variable.t + + lib/Unicode/Collate/t/version.t + ! MANIFEST lib/Unicode/Collate.pm lib/Unicode/Collate/Changes + ! lib/Unicode/Collate/README lib/Unicode/Collate/t/contract.t + ! lib/Unicode/Collate/t/hangul.t lib/Unicode/Collate/t/index.t + ! lib/Unicode/Collate/t/test.t +____________________________________________________________________________ +[ 21548] By: nicholas on 2003/10/27 12:39:39 + Log: Sync with Pod::Perldoc 3.12 + Branch: perl + ! lib/Pod/Perldoc.pm +____________________________________________________________________________ +[ 21540] By: rgs on 2003/10/26 14:59:53 + Log: Fix backward-compatibility issues in if.pm. + Branch: perl + ! lib/if.pm +____________________________________________________________________________ +[ 21538] By: ams on 2003/10/26 08:08:02 + Log: Fix off-by-one in $0 set magic. (From Autrijus.) + The whole PL_origalen thing in perl.c looks very hokey. + Branch: perl + ! mg.c +____________________________________________________________________________ +[ 21528] By: nicholas on 2003/10/23 19:21:00 + Log: When it says "add", then, like, you have to p4 add it. D'oh! + (missed the new file in "Update I18N::LangTags from 0.28 to 0.29") + Branch: perl + + lib/I18N/LangTags/t/02decency.t +____________________________________________________________________________ +[ 21527] By: davem on 2003/10/23 19:13:20 + Log: Fix two threads::shared leaks + #24061 - AV in shared interpreter wasn't set to AvREAL + #24255 - mortals were added to the shared interpreter's tmpstack + and never freed. + Branch: perl + ! ext/threads/shared/shared.xs +____________________________________________________________________________ +[ 21526] By: nicholas on 2003/10/23 19:11:24 + Log: From: Jan Dubois + Subject: [PATCH] Update Pod::Perldoc from 3.10 to 3.11 + Date: Wed, 22 Oct 2003 20:17:07 -0700 + Message-ID: + + From: Jan Dubois + Subject: [PATCH] Update I18N::LangTags from 0.28 to 0.29 + Date: Wed, 22 Oct 2003 20:26:56 -0700 + Message-ID: + Branch: perl + ! MANIFEST lib/I18N/LangTags.pm lib/I18N/LangTags/ChangeLog + ! lib/I18N/LangTags/List.pm lib/I18N/LangTags/README + ! lib/Pod/Perldoc.pm lib/Pod/Perldoc/ToMan.pm pod/perldoc.pod + ! utils/perldoc.PL +____________________________________________________________________________ +[ 21523] By: ams on 2003/10/23 12:53:03 + Log: Subject: [PATCH] utime documentation + From: Gisle Aas + Date: 23 Oct 2003 05:33:43 -0700 + Message-Id: + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21522] By: ams on 2003/10/23 08:07:18 + Log: Subject: [PATCH] dup2() not going through PerlLIO abstraction layer + From: Jan Dubois + Date: Wed, 22 Oct 2003 20:33:54 -0700 + Message-Id: + Branch: perl + ! doio.c +____________________________________________________________________________ +[ 21516] By: rgs on 2003/10/22 15:06:13 + Log: Small email update in AUTHORS. + Branch: perl + ! AUTHORS +____________________________________________________________________________ +[ 21513] By: rgs on 2003/10/21 20:45:12 + Log: Fix doc bug #23890, as suggested by Himanshu Garg : + in perltoot, $him->fullname should be $him->fullname->as_string + when passed to printf. + Branch: perl + ! pod/perltoot.pod +____________________________________________________________________________ +[ 21506] By: rgs on 2003/10/20 19:28:27 + Log: Subject: [PATCH] add some missing defines to Devel::PPPort + From: "Marcus Holland-Moritz" + Date: Mon, 20 Oct 2003 20:14:19 +0200 + Message-ID: <03a301c39735$fb7cb220$0c2f1fac@R2D2> + Branch: perl + ! ext/Devel/PPPort/Changes ext/Devel/PPPort/PPPort.pm +____________________________________________________________________________ +[ 21505] By: rgs on 2003/10/20 19:22:38 + Log: Subject: Re: [perl #24225] [5.8.1] segfault in binmode STDOUT, ':stdio'; print 1 + From: Slaven Rezic + Date: 19 Oct 2003 17:54:59 +0200 + Message-ID: <871xt9te7g.fsf@vran.herceg.de> + Branch: perl + ! perlio.c +____________________________________________________________________________ +[ 21503] By: rgs on 2003/10/20 06:04:04 + Log: Skip the chflags tests in filetest.t on Darwin. + Branch: perl + ! lib/filetest.t +____________________________________________________________________________ +[ 21473] By: rgs on 2003/10/17 08:53:48 + Log: -u is deprecated. + Subject: Re: why PERL5LIB is ignored when -T is in effect + From: Slaven Rezic + Date: Fri, 17 Oct 2003 10:02:31 +0000 + Message-Id: <1066384951.4964@devpc01.iconmobile.de> + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 21472] By: rgs on 2003/10/17 07:29:10 + Log: The compilation of PerlIO::via may hang on AIX when + compiling with vac at -O3 optimization level. Disable + optimization for this module. + Branch: perl + + ext/PerlIO/via/hints/aix.pl + ! MANIFEST +____________________________________________________________________________ +[ 21470] By: davem on 2003/10/16 20:03:44 + Log: Ensure PL_comppad/curpad point to PL_main_cv's padlist when + PL_main_root is freed; this may not have been be the case if a + thread other than the main one is the last to be destroyed + Branch: perl + ! ext/threads/t/thread.t pad.h perl.c +____________________________________________________________________________ +[ 21469] By: nicholas on 2003/10/16 19:31:19 + Log: Duplicate 19423 (pathological hashes too easy) into share_hek_flags + (as suggested by Jan Dubois) + Branch: perl + ! hv.c +____________________________________________________________________________ +[ 21468] By: ams on 2003/10/16 19:00:14 + Log: Subject: Re: assert.h breaks perl.h + From: Alexey Tourbin + Date: Thu, 16 Oct 2003 22:24:35 +0400 + Message-Id: <20031016182434.GH1724@julia.office.altlinux.ru> + Branch: perl + ! sv.h +____________________________________________________________________________ +[ 21467] By: ams on 2003/10/16 18:57:57 + Log: Subject: [PATCH] Tie::Hash documentation + From: Slaven Rezic + Date: Thu, 16 Oct 2003 17:57:35 +0000 + Message-Id: <1066327055.1428@devpc01.iconmobile.de> + Branch: perl + ! lib/Tie/Hash.pm +____________________________________________________________________________ +[ 21466] By: rgs on 2003/10/16 08:52:50 + Log: Further tweak on change #21464. + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 21464] By: ams on 2003/10/16 08:42:50 + Log: Subject: perl -h tweak [PATCH] + From: Gisle Aas + Date: 16 Oct 2003 02:49:39 -0700 + Message-Id: + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 21456] By: rgs on 2003/10/15 19:19:05 + Log: Perlfaq1 : take notice that 5.8.1 is now released. + Branch: perl + ! pod/perlfaq1.pod +____________________________________________________________________________ +[ 21454] By: rgs on 2003/10/15 19:06:05 + Log: PerlFAQ sync. (only actual changes) + Branch: perl + ! pod/perlfaq4.pod +____________________________________________________________________________ +[ 21453] By: rgs on 2003/10/15 19:02:35 + Log: Typos. + Branch: perl + ! hints/aix.sh +____________________________________________________________________________ +[ 21452] By: rgs on 2003/10/15 11:12:31 + Log: Fix bug [perl #24212] : improper error recovery in the + tokenizer after an unknown filetest operator. + Branch: perl + ! t/comp/parser.t toke.c +____________________________________________________________________________ +[ 21451] By: rgs on 2003/10/15 09:19:02 + Log: Update MIME::Base64 and Digest::MD5 from the CPAN version. + Branch: perl + ! ext/Digest/MD5/Changes ext/Digest/MD5/MD5.pm + ! ext/Digest/MD5/Makefile.PL ext/Digest/MD5/t/align.t + ! ext/Digest/MD5/t/files.t ext/Digest/MD5/t/utf8.t + ! ext/MIME/Base64/Base64.pm ext/MIME/Base64/Base64.xs + ! ext/MIME/Base64/Changes ext/MIME/Base64/Makefile.PL + ! ext/MIME/Base64/QuotedPrint.pm ext/MIME/Base64/t/unicode.t +____________________________________________________________________________ +[ 21448] By: ams on 2003/10/15 05:56:12 + Log: Rewrite #21447. + Branch: perl + ! pod/perliol.pod +____________________________________________________________________________ +[ 21447] By: ams on 2003/10/15 05:36:48 + Log: Subject: [patch pod/perliol.pod] + From: Stas Bekman + Date: Tue, 14 Oct 2003 18:05:29 -0700 + Message-Id: <3F8C9D59.3040403@stason.org> + Branch: perl + ! pod/perliol.pod +____________________________________________________________________________ +[ 21446] By: nicholas on 2003/10/14 18:45:39 + Log: Duplicate 19423 (pathological hashes too easy) into hv_store_ent + (the routine used by perl level HV operations) + Branch: perl + ! hv.c +____________________________________________________________________________ +[ 21445] By: rgs on 2003/10/13 21:03:05 + Log: Subject: [PATCH ext/Devel/PPPort/PPPort.pm] Changes #20819 and #20996 break compatibility with perl 5.6.0 + From: "Marcus Holland-Moritz" + Date: Tue, 30 Sep 2003 19:23:34 +0200 + Message-ID: <021e01c38777$93ea4e10$0c2f1fac@R2D2> + Branch: perl + ! ext/Devel/PPPort/PPPort.pm +____________________________________________________________________________ +[ 21442] By: ams on 2003/10/13 08:41:17 + Log: Subject: [perl #24189] Incorrect comment in perldoc strict + From: "Iain 'Spoon' Truskett (via RT)" + Date: 12 Oct 2003 09:01:25 -0000 + Message-Id: + Branch: perl + ! lib/strict.pm +____________________________________________________________________________ +[ 21441] By: rgs on 2003/10/13 08:02:21 + Log: Subject: [PATCH] Internals::hash_seed() returns wrong value + From: Jan Dubois + Date: Sun, 12 Oct 2003 22:09:39 -0700 + Message-ID: <07ckovck8mp5e8tthmtbbcrpi2tj6q9eak@4ax.com> + Branch: perl + ! universal.c +____________________________________________________________________________ +[ 21440] By: rgs on 2003/10/12 19:58:05 + Log: Subject: [perl #24122] setreuid and friends borked on darwin/osx + From: "pxm@nubz.org (via RT)" + Date: 5 Oct 2003 20:55:56 -0000 + Message-ID: + Branch: perl + ! mg.c +____________________________________________________________________________ +[ 21439] By: rgs on 2003/10/12 16:28:06 + Log: Subject: [PATCH] Tie::Hash documentation + From: Slaven Rezic + Date: Sun, 12 Oct 2003 18:55:54 +0200 (CEST) + Message-Id: <200310121655.h9CGtsrY003613@vran.herceg.de> + Branch: perl + ! lib/Tie/Hash.pm +____________________________________________________________________________ +[ 21438] By: rgs on 2003/10/12 15:48:13 + Log: Subject: Re: [perl #24122] setreuid and friends borked on darwin/osx + From: Slaven Rezic + Date: 07 Oct 2003 00:04:34 +0200 + Message-ID: <87ekxq6n0t.fsf@vran.herceg.de> + Branch: perl + ! hints/darwin.sh +____________________________________________________________________________ +[ 21437] By: rgs on 2003/10/12 15:25:17 + Log: Minor nit in perlrun, spotted by Art Haas. + Branch: perl + ! pod/perlrun.pod +____________________________________________________________________________ +[ 21436] By: ams on 2003/10/10 19:05:55 + Log: Subject: [PATCH] threads::async + some cleanup + From: Elizabeth Mattijsen + Date: Fri, 10 Oct 2003 16:37:55 +0200 + Message-Id: + Branch: perl + ! ext/threads/threads.pm +____________________________________________________________________________ +[ 21435] By: ams on 2003/10/10 19:02:34 + Log: Make everyone stop posting to p5p about 0e0. + Branch: perl + ! pod/perlsyn.pod +____________________________________________________________________________ +[ 21433] By: nicholas on 2003/10/09 20:57:26 + Log: Put all pre-processor #s on the first column (some compilers are picky) + [perl #24167] `#' comment signs not at the very beginning of a line + Branch: perl + ! cop.h dosish.h ext/SDBM_File/sdbm/sdbm.h iperlsys.h op.c + ! perl.h regcomp.c +____________________________________________________________________________ +[ 21431] By: rgs on 2003/10/09 11:06:15 + Log: Document the behaviour of filetest operators regarding parentheses. + This fixes bug #24127 (by documenting it as a feature.) + Branch: perl + ! pod/perlop.pod +____________________________________________________________________________ +[ 21430] By: ams on 2003/10/09 07:55:34 + Log: Subject: [PATCH 5.8.1 CORE] Internal fixes to source-code coordinate + calculations in regcomp.c + From: Eric Promislow + Date: Wed, 8 Oct 2003 17:42:42 -0700 + Message-Id: <20031008174242.A17544@ActiveState.com> + Branch: perl + ! regcomp.c +____________________________________________________________________________ +[ 21429] By: ams on 2003/10/09 07:43:56 + Log: Patch based on: + + Subject: [perl #24157] -MModule=} is broken + From: "Lukas Mai" (via RT) + Date: 7 Oct 2003 21:47:43 -0000 + Message-Id: + + (Includes a fix for a similar problem in -A, but not -d.) + Branch: perl + ! perl.c + ActivePerl: Hunk #2 not applied (was specific to -A assertion + commandline option) +____________________________________________________________________________ +[ 21428] By: ams on 2003/10/09 02:32:07 + Log: Subject: [PATCH] Devel::PPPort is missing an aTHX when calling + grok_numeric_radix() + From: Jan Dubois + Date: Wed, 08 Oct 2003 20:37:42 -0700 + Message-Id: <8kl9ov0932qo08o24uafuc9v77clrgnoe4@4ax.com> + Branch: perl + ! ext/Devel/PPPort/PPPort.pm +____________________________________________________________________________ +[ 21426] By: ams on 2003/10/09 01:26:57 + Log: Subject: Re: Simple @INC hook core dump [PATCH] + From: Gisle Aas + Date: 08 Oct 2003 13:35:28 -0700 + Message-Id: + Branch: perl + ! t/op/inccode.t +____________________________________________________________________________ +[ 21425] By: rgs on 2003/10/08 11:34:17 + Log: Fix bug #24108: Goto +foo broken + the fix having been suggested by xmath via Juerd. + Branch: perl + ! op.c t/op/goto.t +____________________________________________________________________________ +[ 21424] By: rgs on 2003/10/08 11:16:58 + Log: Subject: Re: Simple @INC hook core dump [PATCH] + From: Gisle Aas + Date: 08 Oct 2003 04:47:33 -0700 + Message-ID: + Branch: perl + ! pp_ctl.c +____________________________________________________________________________ +[ 21423] By: ams on 2003/10/08 10:09:41 + Log: Subject: [PATCH pod/perlrun.pod] Layout & POD nit. + From: Abigail + Date: Wed, 8 Oct 2003 03:50:49 -0700 + Message-Id: <20031008105049.GA15770@ucan.foad.org> + Branch: perl + ! pod/perlrun.pod +____________________________________________________________________________ +[ 21422] By: ams on 2003/10/08 06:13:07 + Log: "Are implicit undefs true?" asks Gisle. + Branch: perl + ! pod/perlsyn.pod +____________________________________________________________________________ +[ 21421] By: ams on 2003/10/08 03:20:00 + Log: Subject: Re: [PATCH] perlop.pod Revamp - revision 4 + From: schwern@pobox.com + Date: Tue, 7 Oct 2003 20:39:36 -0700 + Message-Id: <20031007203936.X4301@ttul.org> + + (Originally from Shlomi Fish. Applied with tweaks.) + Branch: perl + ! pod/perlop.pod + ActivePerl: Hunk #6 not applied (was specific to "//" defined or operator) +____________________________________________________________________________ +[ 21420] By: ams on 2003/10/07 19:51:35 + Log: Minor tweaks to pod/perlsyn.pod (as suggested by Yves Orton), + sv.c (Tim Bunce), t/op/pow.t (John P. Linderman). + Branch: perl + ! pod/perlsyn.pod sv.c t/op/pow.t +____________________________________________________________________________ +[ 21419] By: ams on 2003/10/07 04:03:34 + Log: Why should -3**$x be more precisely determined than 3**$x? + Branch: perl + ! t/op/pow.t +____________________________________________________________________________ +[ 21417] By: ams on 2003/10/07 03:55:18 + Log: Update perlfunc/require to describe NXDOMAIN caching... er, you + know what I mean. + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21416] By: ams on 2003/10/07 03:37:01 + Log: Subject: [patch sv.c] improve "...free unref scalar" warning + From: Stas Bekman + Date: Mon, 06 Oct 2003 21:19:53 -0700 + Message-Id: <3F823EE9.4030103@stason.org> + Branch: perl + ! sv.c +____________________________________________________________________________ +[ 21413] By: rgs on 2003/10/06 15:05:32 + Log: Fixes in the modules maintainers list. + Branch: perl + ! Porting/Maintainers.pl +____________________________________________________________________________ +[ 21412] By: rgs on 2003/10/06 15:02:42 + Log: Fix broken link in perltodo.pod. + Branch: perl + ! pod/perltodo.pod +____________________________________________________________________________ +[ 21410] By: rgs on 2003/10/06 11:55:52 + Log: Subject: Re: [doc-PATCH] for unpack_str() and question + From: LAUN Wolfgang + Date: Mon, 6 Oct 2003 08:45:29 +0200 + Message-ID: <75A46BF1A9D8D311863A00508B6259A405F180C1@ATTMSX4> + Branch: perl + ! pod/perlapi.pod pp_pack.c +____________________________________________________________________________ +[ 21409] By: rgs on 2003/10/06 11:49:55 + Log: Subject: [PATCH pod/perlfunc.pod] ref can return false on references + From: Abigail + Date: Mon, 6 Oct 2003 05:55:21 -0700 + Message-ID: <20031006125521.GA26446@ucan.foad.org> + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21408] By: rgs on 2003/10/06 11:46:14 + Log: Add a new option --check to Porting/Maintainers, + to check for files who are listed for several maintainers. + Branch: perl + ! Porting/Maintainers.pm +____________________________________________________________________________ +[ 21405] By: ams on 2003/10/06 03:56:54 + Log: Subject: Re: [PATCH] perlsyn.pod Revision - Resend + From: Shlomi Fish + Date: Fri, 3 Oct 2003 12:34:46 +0200 (IST) + Message-Id: + (Applied with minor tweaks.) + Branch: perl + ! pod/perlsyn.pod +____________________________________________________________________________ +[ 21404] By: ams on 2003/10/06 03:32:50 + Log: Subject: [perl #24120] Tie::Hash documentation has broken code + From: "Benjamin J. Tilly" (via RT) + Date: 5 Oct 2003 18:40:36 -0000 + Message-Id: + (Applied without $VERSION update.) + Branch: perl + ! lib/Tie/Hash.pm +____________________________________________________________________________ +[ 21403] By: ams on 2003/10/06 03:26:39 + Log: Subject: Re: [PATCH] [perl #24113] mistake in perlretut + From: Robert Spier + Date: Sun, 05 Oct 2003 21:34:30 -0700 + Message-Id: + Branch: perl + ! pod/perlretut.pod +____________________________________________________________________________ +[ 21402] By: ams on 2003/10/05 03:08:53 + Log: Subject: [PATCH] pp_sys.c: pp_waitpid and EINTR + From: Steve Grazzini + Date: Sat, 4 Oct 2003 18:15:23 -0400 + Message-Id: <20031004221523.GA29324@grazzini.net> + Branch: perl + ! pp_sys.c +____________________________________________________________________________ +[ 21401] By: ams on 2003/10/02 17:25:34 + Log: Subject: Re: 5.8.1 and srand + From: Slaven Rezic + Date: Thu, 2 Oct 2003 15:51:11 +0000 + Message-Id: <1065109871.3115@devpc01.iconmobile.de> + Branch: perl + ! t/op/fork.t +____________________________________________________________________________ +[ 21398] By: hv on 2003/10/02 09:15:42 + Log: build perlapi.pod in deterministic order even when functions differ + only in case; regen perlapi.pod + Branch: perl + ! autodoc.pl pod/perlapi.pod +____________________________________________________________________________ +[ 21397] By: ams on 2003/10/02 07:48:51 + Log: Subject: Re: 5.8.1 and srand + From: Brendan O'Dea + Date: Thu, 2 Oct 2003 10:30:36 +1000 + Message-Id: <20031002003036.GA9198@londo.c47.org> + Branch: perl + ! util.c +____________________________________________________________________________ +[ 21392] By: rgs on 2003/09/30 20:22:02 + Log: Revamp the section on local() in perlsub. + - avoid using the word "declare" in conjunction with local() + - less archaelogical references + - more about localization of lvalues + - removes examples of localization of tied hashes that don't work + - give titles to subsections + - explain localization of magic values + - explain localization of globs + - fix link to perldelta + Branch: perl + ! pod/perlsub.pod +____________________________________________________________________________ +[ 21391] By: rgs on 2003/09/30 12:47:13 + Log: Useless "local $_" in a perlfaq3 example + Branch: perl + ! pod/perlfaq3.pod +____________________________________________________________________________ +[ 21390] By: rgs on 2003/09/30 11:29:17 + Log: Subject: Re: NCR MP-RAS perl problems [perl #23791] + From: grommel@sears.com + Date: Mon, 29 Sep 2003 14:45:16 -0500 + Message-ID: + Branch: perl + ! hints/svr4.sh t/op/pack.t +____________________________________________________________________________ +[ 21388] By: rgs on 2003/09/30 10:52:50 + Log: Subject: [PATCH] Re: [perl #24071] Typo in description of binmode + From: Yitzchak Scott-Thoennes + Date: Tue, 30 Sep 2003 04:53:02 -0700 + Message-ID: <20030930115302.GA3200@efn.org> + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 21387] By: rgs on 2003/09/29 12:47:37 + Log: Subject: [PATCH] perl-5.8.1 hints/powerux.sh, ext/Sys/Syslog/t/syslog.t + From: Tom Horsley + Date: Mon, 29 Sep 2003 13:00:09 GMT + Message-Id: <200309291300.NAA23856@amber2.ccur.com> + Branch: perl + ! ext/Sys/Syslog/t/syslog.t hints/powerux.sh +____________________________________________________________________________ +[ 21386] By: rgs on 2003/09/29 11:14:27 + Log: Subject: [PATCH 5.8.1] Fix broken splitpod program + From: Steve Hay + Date: Mon, 29 Sep 2003 11:50:23 +0100 + Message-ID: <3F780E6F.3020704@uk.radan.com> + Branch: perl + ! pod/splitpod +____________________________________________________________________________ +[ 21385] By: rgs on 2003/09/29 11:09:32 + Log: Subject: [PATCH 5.8.1] pod/perlrun.pod: no space after -i allowed + From: Brendan O'Dea + Date: Sun, 28 Sep 2003 23:23:34 +1000 + Message-ID: <20030928132334.GA29499@londo.c47.org> + Branch: perl + ! pod/perlrun.pod +____________________________________________________________________________ +[ 21384] By: rgs on 2003/09/26 20:39:19 + Log: Nit to the maintainers list by SADAHIRO Tomoyuki + Branch: perl + ! Porting/Maintainers.pl +____________________________________________________________________________ +[ 21383] By: jhi on 2003/09/26 04:41:17 + Log: Missing +x bits. + Branch: perl + ! Porting/makerel +____________________________________________________________________________ +[ 21379] By: chip on 2003/09/25 18:10:01 + Log: Relocate the mention of safe signals with POSIX::SigAction. + Branch: maint-5.8/perl + ! pod/perl581delta.pod +____________________________________________________________________________ +[ 21372] By: gbarr on 2003/09/25 07:35:24 + Log: Sync with libnet 1.17 + Branch: perl + ! lib/Net/ChangeLog.libnet lib/Net/Domain.pm lib/Net/FTP.pm + ActivePerl: Applied to pod/perldelta.pod instead +____________________________________________________________________________ + + -------------- Version v5.8.1 Maintenance release working toward v5.8.1 -------------- diff -ruN perl-5.8.1/AUTHORS AP807_source/AUTHORS --- perl-5.8.1/AUTHORS Thu Nov 6 16:08:41 2003 +++ AP807_source/AUTHORS Thu Nov 6 16:06:49 2003 @@ -353,7 +353,7 @@ Jim Anderson Jim Avera Jim Balter -Jim Cromie +Jim Cromie Jim Meyering Jim Miner Jim Richardson diff -ruN perl-5.8.1/BuildInfo.h AP807_source/BuildInfo.h --- perl-5.8.1/BuildInfo.h Wed Dec 31 16:00:00 1969 +++ AP807_source/BuildInfo.h Thu Nov 6 16:06:50 2003 @@ -0,0 +1,26 @@ +/* BuildInfo.h + * + * Copyright (c) 1998-2003 ActiveState Corp. All rights reserved. + * + */ + +#ifndef ___BuildInfo__h___ +#define ___BuildInfo__h___ + +#define PRODUCT_BUILD_NUMBER "807" +#define PERLFILEVERSION "5,8,1,807\0" +#define PERLRC_VERSION 5,8,1,807 +#define ACTIVEPERL_CHANGELIST "" +#define PERLPRODUCTVERSION "Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST "\0" +#define PERLPRODUCTNAME "ActivePerl\0" + +#define PERL_VENDORLIB_NAME "ActiveState" + +#define ACTIVEPERL_VERSION "Built " __TIME__ " " __DATE__ "\n" +#define ACTIVEPERL_LOCAL_PATCHES_ENTRY "ActivePerl Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST +#define BINARY_BUILD_NOTICE PerlIO_printf(PerlIO_stdout(), "\n\ +Binary build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST " provided by ActiveState Corp. http://www.ActiveState.com\n\ +ActiveState is a division of Sophos.\n\ +" ACTIVEPERL_VERSION "\n"); + +#endif /* ___BuildInfo__h___ */ diff -ruN perl-5.8.1/Configure AP807_source/Configure --- perl-5.8.1/Configure Thu Nov 6 16:08:43 2003 +++ AP807_source/Configure Thu Nov 6 16:06:51 2003 @@ -9807,6 +9807,8 @@ eval $inlibc : Look for GNU-cc style attribute checking +case "$d_attribut" in +'') echo " " echo "Checking whether your compiler can handle __attribute__ ..." >&4 $cat >attrib.c <<'EOCP' @@ -9825,6 +9827,9 @@ echo "Your C compiler doesn't seem to understand __attribute__ at all." val="$undef" fi +;; +*) val="$d_attribut" ;; +esac set d_attribut eval $setvar $rm -f attrib* diff -ruN perl-5.8.1/INSTALL AP807_source/INSTALL --- perl-5.8.1/INSTALL Thu Nov 6 16:08:43 2003 +++ AP807_source/INSTALL Thu Nov 6 16:06:51 2003 @@ -1084,7 +1084,7 @@ it's convenient to have both. If you are using a shared libperl, see the warnings about multiple -versions of perl under L. +versions of perl under L. =head2 Extensions @@ -1109,6 +1109,9 @@ you can build and install extensions just fine even if you don't have dynamic loading. See lib/ExtUtils/MakeMaker.pm for more details.) +If you have dynamic loading, another way of specifying extra modules +is described in L<"Adding extra modules to the build"> below. + You can learn more about each of the supplied extensions by consulting the documentation in the individual .pm modules, located under the ext/ subdirectory. @@ -1471,6 +1474,9 @@ or answer first 'y' to the question 'Install any extra modules?' and then answer "Compress::Zlib Bundle::LWP DBI" to the 'Extras?' question. The module or the bundle names are as for the CPAN module 'install' command. +This will only work if those modules are to be built as dynamic +extensions. If you wish to include those extra modules as static +extensions, see L<"Extensions"> above. Notice that because the CPAN module will be used to fetch the extra modules, you will need access to the CPAN, either via the Internet, @@ -1790,7 +1796,7 @@ =item invalid token: ## You are using a non-ANSI-compliant C compiler. See L. +version requires a compiler that supports ANSI C.> =item Miscellaneous diff -ruN perl-5.8.1/MANIFEST AP807_source/MANIFEST --- perl-5.8.1/MANIFEST Thu Nov 6 16:08:43 2003 +++ AP807_source/MANIFEST Thu Nov 6 16:06:51 2003 @@ -575,6 +575,7 @@ ext/PerlIO/via/Makefile.PL PerlIO layer for layers in perl ext/PerlIO/via/via.pm PerlIO layer for layers in perl ext/PerlIO/via/via.xs PerlIO layer for layers in perl +ext/PerlIO/via/hints/aix.pl Hint for PerlIO::via for named architecture ext/POSIX/hints/bsdos.pl Hint for POSIX for named architecture ext/POSIX/hints/dynixptx.pl Hint for POSIX for named architecture ext/POSIX/hints/freebsd.pl Hint for POSIX for named architecture @@ -756,8 +757,12 @@ ext/Unicode/Normalize/Normalize.pm Unicode::Normalize ext/Unicode/Normalize/Normalize.xs Unicode::Normalize ext/Unicode/Normalize/README Unicode::Normalize +ext/Unicode/Normalize/t/fcdc.t Unicode::Normalize +ext/Unicode/Normalize/t/form.t Unicode::Normalize ext/Unicode/Normalize/t/func.t Unicode::Normalize ext/Unicode/Normalize/t/norm.t Unicode::Normalize +ext/Unicode/Normalize/t/proto.t Unicode::Normalize +ext/Unicode/Normalize/t/split.t Unicode::Normalize ext/Unicode/Normalize/t/test.t Unicode::Normalize ext/util/make_ext Used by Makefile to execute extension Makefiles ext/XS/APItest/APItest.pm XS::APItest extension @@ -1256,6 +1261,7 @@ lib/I18N/LangTags.pm I18N::LangTags lib/I18N/LangTags/README I18N::LangTags lib/I18N/LangTags/t/01test.t See whether I18N::LangTags works +lib/I18N/LangTags/t/02decency.t See if I18N::LangTags::List::is_decent works lib/if.pm For "use if" lib/if.t Tests for "use if" lib/importenv.pl Perl routine to get environment into variables @@ -1733,9 +1739,14 @@ lib/Unicode/Collate.pm Unicode::Collate lib/Unicode/Collate/README Unicode::Collate lib/Unicode/Collate/t/contract.t Unicode::Collate +lib/Unicode/Collate/t/hangtype.t Unicode::Collate lib/Unicode/Collate/t/hangul.t Unicode::Collate lib/Unicode/Collate/t/index.t Unicode::Collate +lib/Unicode/Collate/t/normal.t Unicode::Collate lib/Unicode/Collate/t/test.t Unicode::Collate +lib/Unicode/Collate/t/trailwt.t Unicode::Collate +lib/Unicode/Collate/t/variable.t Unicode::Collate +lib/Unicode/Collate/t/version.t Unicode::Collate lib/Unicode/README Explanation what happened to lib/unicode. lib/Unicode/UCD.pm Unicode character database lib/Unicode/UCD.t See if Unicode character database works @@ -2486,6 +2497,7 @@ README.Y2K Notes about Year 2000 concerns reentr.c Reentrant interfaces reentr.h Reentrant interfaces +reentr.inc Reentrant interfaces reentr.pl Reentrant interfaces regcomp.c Regular expression compiler regcomp.h Private declarations for above diff -ruN perl-5.8.1/Porting/Maintainers.pl AP807_source/Porting/Maintainers.pl --- perl-5.8.1/Porting/Maintainers.pl Thu Nov 6 16:08:43 2003 +++ AP807_source/Porting/Maintainers.pl Thu Nov 6 16:06:51 2003 @@ -237,7 +237,7 @@ 'CPAN' => 1, }, - 'Scalar-List-Util' => + 'Scalar-List-Utils' => { 'MAINTAINER' => 'gbarr', 'FILES' => q[ext/List/Util], @@ -318,7 +318,7 @@ 'PerlIO' => { 'MAINTAINER' => 'p5p', - 'FILES' => q[ext/PerlIO lib/PerlIO], + 'FILES' => q[ext/PerlIO], 'CPAN' => 1, }, @@ -331,7 +331,7 @@ 'CPAN' => 0, }, - 'Perlio::via::QuotedPrint' => + 'PerlIO::via::QuotedPrint' => { 'MAINTAINER' => 'elizabeth', 'FILES' => q[lib/PerlIO/via/QuotedPrint.pm @@ -367,17 +367,9 @@ 'CPAN' => 0, }, - 'Pod::Checker' => { + 'PodParser' => { 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/Checker.pm pod/podchecker.PL - t/pod/testpchk.pl], - 'CPAN' => 1, - }, - - 'Pod::Find' => - { - 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/Find.pm t/pod/find.t], + 'FILES' => q[lib/Pod/{InputObjects,Parser,ParseUtils,Select,PlainText,Usage,Checker,Find}.pm pod/pod{select,2usage,checker}.PL t/pod/testcmp.pl t/pod/testp2pt.pl t/pod/testpchk.pl t/pod/emptycmd.* t/pod/find.t t/pod/for.* t/pod/headings.* t/pod/include.* t/pod/included.* t/pod/lref.* t/pod/multiline_items.* t/pod/nested_items.* t/pod/nested_seqs.* t/pod/oneline_cmds.* t/pod/poderrs.* t/pod/pod2usage.* t/pod/podselect.* t/pod/special_seqs.*], 'CPAN' => 1, }, @@ -391,16 +383,7 @@ 'podlators' => { 'MAINTAINER' => 'rra', - 'FILES' => q[lib/Pod/{Checker,Find,Html,InputObjects,Man,ParseLink,Parser,ParseUtils,PlainText,Select,Text,Text/{Color,Overstrike,Termcap},Usage}.pm pod/pod2man.PL pod/pod2text.PL lib/Pod/t/{basic.*,{basic,man,parselink,text*}.t} lib/Pod/t/{InputObjects,Select,Usage,utils}.t], - 'CPAN' => 1, - }, - - 'Pod::Parser' => { - 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/{InputObjects,Parse{r,Utils}}.pm - t/pod/testcmp.pl - t/pod/{emptycmd,for,headings,include{,d},lref,{multiline,nested}_items,{nested,special}_seqs,oneline_cmds,poderrs}.{t,xr} - ], + 'FILES' => q[lib/Pod/{Html,Man,ParseLink,Text,Text/{Color,Overstrike,Termcap}}.pm pod/pod2man.PL pod/pod2text.PL lib/Pod/t/{basic.*,{man,parselink,text*}.t}], 'CPAN' => 1, }, @@ -416,26 +399,6 @@ 'MAINTAINER' => 'rmbarker', 'FILES' => q[lib/Pod/Plainer.pm t/pod/plainer.t], 'CPAN' => 0, - }, - - 'Pod::PlainText' => { - 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/PlainText.pm t/pod/testp2pt.pl], - 'CPAN' => 1, - }, - - 'Pod::Select' => { - 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/Select.pm pod/podselect.PL - t/pod/podselect.{t,xr}], - 'CPAN' => 1, - }, - - 'Pod::Usage' => { - 'MAINTAINER' => 'marekr', - 'FILES' => q[lib/Pod/Usage.pm pod/pod2usage.PL - t/pod/pod2usage.{t,xr}], - 'CPAN' => 1, }, 'Safe' => diff -ruN perl-5.8.1/Porting/Maintainers.pm AP807_source/Porting/Maintainers.pm --- perl-5.8.1/Porting/Maintainers.pm Thu Nov 6 16:08:43 2003 +++ AP807_source/Porting/Maintainers.pm Thu Nov 6 16:06:51 2003 @@ -67,10 +67,11 @@ sub usage { print <<__EOF__; -$0: Usage: $0 [[--maintainer M --module M --files]|file ...] +$0: Usage: $0 [[--maintainer M --module M --files --check]|file ...] --maintainer M list all maintainers matching M --module M list all modules matching M --files list all files +--check check consistency of Maintainers.pl Matching is case-ignoring regexp, author matching is both by the short id and by the full name and email. A "module" may not be just a module, it may be a file or files or a subdirectory. @@ -82,6 +83,7 @@ my $Maintainer; my $Module; my $Files; +my $Check; sub process_options { usage() @@ -90,6 +92,7 @@ 'maintainer=s' => \$Maintainer, 'module=s' => \$Module, 'files' => \$Files, + 'check' => \$Check, ); my @Files = @ARGV; @@ -219,8 +222,25 @@ } } } + elsif ($Check) { + duplicated_maintainers(); + } else { usage(); + } +} + +sub duplicated_maintainers { + my %files; + for my $k (keys %Modules) { + for my $f (get_module_files($k)) { + ++$files{$f}; + } + } + for my $f (keys %files) { + if ($files{$f} > 1) { + warn "File $f appears $files{$f} times in Maintainers.pl\n"; + } } } diff -ruN perl-5.8.1/Porting/makerel AP807_source/Porting/makerel --- perl-5.8.1/Porting/makerel Thu Nov 6 16:08:43 2003 +++ AP807_source/Porting/makerel Thu Nov 6 16:06:51 2003 @@ -106,6 +106,8 @@ Porting/*.pl mpeix/nm mpeix/relink + Cross/generate_config_sh + Cross/warp ); system("chmod +x @exe") == 0 or die "system: $!"; diff -ruN perl-5.8.1/Porting/p4d2p AP807_source/Porting/p4d2p --- perl-5.8.1/Porting/p4d2p Thu Nov 6 16:08:43 2003 +++ AP807_source/Porting/p4d2p Thu Nov 6 16:06:51 2003 @@ -36,7 +36,7 @@ } my ($cur, $match); -$cur = m<^==== //depot/(.+?)\#\d+.* ====$> ... m<^(\@\@.+\@\@|\*+)$>; +$cur = m<^==== //depot/(.+?)\#\d+.* ====( \w+)?$> ... m<^(\@\@.+\@\@|\*+)$>; $match = $1; @@ -71,7 +71,7 @@ } } # see if we hit another patch (i.e. previous patch was empty) - elsif (m<^==== //depot/(.+?)\#\d+.* ====$>) { + elsif (m<^==== //depot/(.+?)\#\d+.* ====( \w+)?$>) { $file = $match = $1; } # suppress all other lines in the header diff -ruN perl-5.8.1/autodoc.pl AP807_source/autodoc.pl --- perl-5.8.1/autodoc.pl Thu Nov 6 16:08:43 2003 +++ AP807_source/autodoc.pl Thu Nov 6 16:06:52 2003 @@ -209,7 +209,8 @@ _EOB_ my $key; -for $key (sort { uc($a) cmp uc($b); } keys %apidocs) { # case insensitive sort +# case insensitive sort, with fallback for determinacy +for $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %apidocs) { my $section = $apidocs{$key}; print DOC "\n=head1 $key\n\n=over 8\n\n"; for my $key (sort { uc($a) cmp uc($b); } keys %$section) { diff -ruN perl-5.8.1/cop.h AP807_source/cop.h --- perl-5.8.1/cop.h Thu Nov 6 16:08:43 2003 +++ AP807_source/cop.h Thu Nov 6 16:06:52 2003 @@ -37,11 +37,11 @@ # define CopFILEGV(c) (CopFILE(c) \ ? gv_fetchfile(CopFILE(c)) : Nullgv) - #ifdef NETWARE - #define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) - #else - #define CopFILE_set(c,pv) ((c)->cop_file = savesharedpv(pv)) - #endif +# ifdef NETWARE +# define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) +# else +# define CopFILE_set(c,pv) ((c)->cop_file = savesharedpv(pv)) +# endif # define CopFILESV(c) (CopFILE(c) \ ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) @@ -49,11 +49,11 @@ ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) # define CopSTASHPV(c) ((c)->cop_stashpv) - #ifdef NETWARE - #define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) - #else - #define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = savesharedpv(pv)) - #endif +# ifdef NETWARE +# define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) +# else +# define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = savesharedpv(pv)) +# endif # define CopSTASH(c) (CopSTASHPV(c) \ ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) @@ -62,17 +62,17 @@ && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) - #ifdef NETWARE - #define CopSTASH_free(c) SAVECOPSTASH_FREE(c) - #else - #define CopSTASH_free(c) PerlMemShared_free(CopSTASHPV(c)) - #endif +# ifdef NETWARE +# define CopSTASH_free(c) SAVECOPSTASH_FREE(c) +# else +# define CopSTASH_free(c) PerlMemShared_free(CopSTASHPV(c)) +# endif - #ifdef NETWARE - #define CopFILE_free(c) SAVECOPFILE_FREE(c) - #else - #define CopFILE_free(c) (PerlMemShared_free(CopFILE(c)),(CopFILE(c) = Nullch)) - #endif +# ifdef NETWARE +# define CopFILE_free(c) SAVECOPFILE_FREE(c) +# else +# define CopFILE_free(c) (PerlMemShared_free(CopFILE(c)),(CopFILE(c) = Nullch)) +# endif #else # define CopFILEGV(c) ((c)->cop_filegv) # define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv)) diff -ruN perl-5.8.1/doio.c AP807_source/doio.c --- perl-5.8.1/doio.c Thu Nov 6 16:08:43 2003 +++ AP807_source/doio.c Thu Nov 6 16:06:52 2003 @@ -1548,7 +1548,7 @@ while (*t && isSPACE(*t)) ++t; - if (!*t && (dup2(1,2) != -1)) { + if (!*t && (PerlLIO_dup2(1,2) != -1)) { s[-2] = '\0'; break; } diff -ruN perl-5.8.1/dosish.h AP807_source/dosish.h --- perl-5.8.1/dosish.h Thu Nov 6 16:08:43 2003 +++ AP807_source/dosish.h Thu Nov 6 16:06:52 2003 @@ -63,9 +63,9 @@ * if you need the last, try #DEFINE MEM_SIZE unsigned long. */ #ifdef MSDOS - #ifndef DJGPP - #define HAS_64K_LIMIT - #endif +# ifndef DJGPP +# define HAS_64K_LIMIT +# endif #endif /* USEMYBINMODE diff -ruN perl-5.8.1/ext/Devel/PPPort/Changes AP807_source/ext/Devel/PPPort/Changes --- perl-5.8.1/ext/Devel/PPPort/Changes Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Devel/PPPort/Changes Thu Nov 6 16:06:53 2003 @@ -1,3 +1,8 @@ +2.008 - 20th October 2003 + + * eval_(pv|sv) added + * PERL_MAGIC_* added + 2.007 - 18th September 2003 * small fix in grok_numeric_radix: variable was used uninitialized diff -ruN perl-5.8.1/ext/Devel/PPPort/PPPort.pm AP807_source/ext/Devel/PPPort/PPPort.pm --- perl-5.8.1/ext/Devel/PPPort/PPPort.pm Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Devel/PPPort/PPPort.pm Thu Nov 6 16:06:53 2003 @@ -159,7 +159,7 @@ use strict; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK $data ); -$VERSION = "2.007"; +$VERSION = "2.009"; @ISA = qw(Exporter DynaLoader); @EXPORT = qw(); @@ -786,6 +786,14 @@ # define call_sv perl_call_sv #endif +#ifndef eval_pv +# define eval_pv perl_eval_pv +#endif + +#ifndef eval_sv +# define eval_sv perl_eval_sv +#endif + #ifndef PERL_SCAN_GREATER_THAN_UV_MAX # define PERL_SCAN_GREATER_THAN_UV_MAX 0x02 #endif @@ -802,7 +810,7 @@ # define PERL_SCAN_DISALLOW_PREFIX 0x02 #endif -#if (PERL_VERSION >= 6) +#if (PERL_VERSION > 6) || ((PERL_VERSION == 6) && (PERL_SUBVERSION >= 1)) #define I32_CAST #else #define I32_CAST (I32*) @@ -838,7 +846,7 @@ _grok_oct((string), (len), (flags), (result)) #endif -#ifndef grok_bin +#if !defined(grok_bin) && defined(scan_bin) static UV _grok_bin (char *string, STRLEN *len, I32 *flags, NV *result) { NV r = scan_bin(string, *len, I32_CAST len); if (r > UV_MAX) { @@ -877,7 +885,7 @@ #endif #ifndef grok_numeric_radix -# define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send) +# define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(aTHX_ sp, send) #define grok_numeric_radix Perl_grok_numeric_radix @@ -885,7 +893,7 @@ Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send) { #ifdef USE_LOCALE_NUMERIC -#if (PERL_VERSION >= 6) +#if (PERL_VERSION > 6) || ((PERL_VERSION == 6) && (PERL_SUBVERSION >= 1)) if (PL_numeric_radix_sv && IN_LOCALE) { STRLEN len; char* radix = SvPV(PL_numeric_radix_sv, len); @@ -1114,6 +1122,163 @@ return 0; } #endif /* grok_number */ + +#ifndef PERL_MAGIC_sv +# define PERL_MAGIC_sv '\0' +#endif + +#ifndef PERL_MAGIC_overload +# define PERL_MAGIC_overload 'A' +#endif + +#ifndef PERL_MAGIC_overload_elem +# define PERL_MAGIC_overload_elem 'a' +#endif + +#ifndef PERL_MAGIC_overload_table +# define PERL_MAGIC_overload_table 'c' +#endif + +#ifndef PERL_MAGIC_bm +# define PERL_MAGIC_bm 'B' +#endif + +#ifndef PERL_MAGIC_regdata +# define PERL_MAGIC_regdata 'D' +#endif + +#ifndef PERL_MAGIC_regdatum +# define PERL_MAGIC_regdatum 'd' +#endif + +#ifndef PERL_MAGIC_env +# define PERL_MAGIC_env 'E' +#endif + +#ifndef PERL_MAGIC_envelem +# define PERL_MAGIC_envelem 'e' +#endif + +#ifndef PERL_MAGIC_fm +# define PERL_MAGIC_fm 'f' +#endif + +#ifndef PERL_MAGIC_regex_global +# define PERL_MAGIC_regex_global 'g' +#endif + +#ifndef PERL_MAGIC_isa +# define PERL_MAGIC_isa 'I' +#endif + +#ifndef PERL_MAGIC_isaelem +# define PERL_MAGIC_isaelem 'i' +#endif + +#ifndef PERL_MAGIC_nkeys +# define PERL_MAGIC_nkeys 'k' +#endif + +#ifndef PERL_MAGIC_dbfile +# define PERL_MAGIC_dbfile 'L' +#endif + +#ifndef PERL_MAGIC_dbline +# define PERL_MAGIC_dbline 'l' +#endif + +#ifndef PERL_MAGIC_mutex +# define PERL_MAGIC_mutex 'm' +#endif + +#ifndef PERL_MAGIC_shared +# define PERL_MAGIC_shared 'N' +#endif + +#ifndef PERL_MAGIC_shared_scalar +# define PERL_MAGIC_shared_scalar 'n' +#endif + +#ifndef PERL_MAGIC_collxfrm +# define PERL_MAGIC_collxfrm 'o' +#endif + +#ifndef PERL_MAGIC_tied +# define PERL_MAGIC_tied 'P' +#endif + +#ifndef PERL_MAGIC_tiedelem +# define PERL_MAGIC_tiedelem 'p' +#endif + +#ifndef PERL_MAGIC_tiedscalar +# define PERL_MAGIC_tiedscalar 'q' +#endif + +#ifndef PERL_MAGIC_qr +# define PERL_MAGIC_qr 'r' +#endif + +#ifndef PERL_MAGIC_sig +# define PERL_MAGIC_sig 'S' +#endif + +#ifndef PERL_MAGIC_sigelem +# define PERL_MAGIC_sigelem 's' +#endif + +#ifndef PERL_MAGIC_taint +# define PERL_MAGIC_taint 't' +#endif + +#ifndef PERL_MAGIC_uvar +# define PERL_MAGIC_uvar 'U' +#endif + +#ifndef PERL_MAGIC_uvar_elem +# define PERL_MAGIC_uvar_elem 'u' +#endif + +#ifndef PERL_MAGIC_vstring +# define PERL_MAGIC_vstring 'V' +#endif + +#ifndef PERL_MAGIC_vec +# define PERL_MAGIC_vec 'v' +#endif + +#ifndef PERL_MAGIC_utf8 +# define PERL_MAGIC_utf8 'w' +#endif + +#ifndef PERL_MAGIC_substr +# define PERL_MAGIC_substr 'x' +#endif + +#ifndef PERL_MAGIC_defelem +# define PERL_MAGIC_defelem 'y' +#endif + +#ifndef PERL_MAGIC_glob +# define PERL_MAGIC_glob '*' +#endif + +#ifndef PERL_MAGIC_arylen +# define PERL_MAGIC_arylen '#' +#endif + +#ifndef PERL_MAGIC_pos +# define PERL_MAGIC_pos '.' +#endif + +#ifndef PERL_MAGIC_backref +# define PERL_MAGIC_backref '<' +#endif + +#ifndef PERL_MAGIC_ext +# define PERL_MAGIC_ext '~' +#endif + #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */ diff -ruN perl-5.8.1/ext/Digest/MD5/Changes AP807_source/ext/Digest/MD5/Changes --- perl-5.8.1/ext/Digest/MD5/Changes Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Digest/MD5/Changes Thu Nov 6 16:06:53 2003 @@ -1,3 +1,28 @@ +2003-10-09 Gisle Aas + + Release 2.30 + + Some tweaks to make the module build on perl-5.004 and + perl-5.005 again. + + + +2003-10-06 Gisle Aas + + Release 2.29 + + Another try. Forgot to update the test checksums. + + + +2003-10-06 Gisle Aas + + Release 2.28 + + Fix minor documentation typo. + + + 2003-08-04 Gisle Aas Release 2.27 @@ -131,7 +156,7 @@ Release 2.16 Sync up with the bleadperl version: - - use SvPVbyte() if avaiable + - use SvPVbyte() if available - fixes to make the code 'gcc -Wall'-clean @@ -140,7 +165,7 @@ Release 2.15 - Avoid exit() in Makefile.PL and bleedperls redefinition of printf + Avoid exit() in Makefile.PL and bleadperl redefinition of printf in the alignment test program. Patch by Doug MacEachern . @@ -157,7 +182,7 @@ Document the missing padding for the base64 digests. If both XS bootstrap and locating Digest::Perl::MD5 fails - reraise the original XS bootstrap exception. + re-raise the original XS bootstrap exception. @@ -400,7 +425,7 @@ $md5->digest will automatically reset now. Digest::HMAC methods add() and addfile() did not return the - corret object. + correct object. Added Digest.pm loading module. I am not sure this is a good idea. @@ -543,7 +568,7 @@ routines is limited to (2^32 - 1) bytes -- that's 4 gigabytes. I'm sorry if that's a real problem for you ... -And finally, a minor complilation warning (unsigned char * used with +And finally, a minor compilation warning (unsigned char * used with function having char * prototype) has also been eliminated. *** 96/04/09 Version 1.6 @@ -565,7 +590,7 @@ *** 96/03/12 Version 1.5.2 Minor fixes from Christopher J Madsen to provide -support for building on OS/2 (and to work arround a perl -w bug). +support for building on OS/2 (and to work around a perl -w bug). Remove warning about possible difference between add('foo', 'bar') and add('foobar'). This is not true (it may have been true in the earliest diff -ruN perl-5.8.1/ext/Digest/MD5/MD5.pm AP807_source/ext/Digest/MD5/MD5.pm --- perl-5.8.1/ext/Digest/MD5/MD5.pm Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Digest/MD5/MD5.pm Thu Nov 6 16:06:53 2003 @@ -3,7 +3,7 @@ use strict; use vars qw($VERSION @ISA @EXPORT_OK); -$VERSION = '2.27'; # $Date: 2003/08/05 06:08:10 $ +$VERSION = '2.30'; # $Date: 2003/10/09 09:26:59 $ require Exporter; *import = \&Exporter::import; @@ -104,7 +104,7 @@ Note that the base64 encoded string returned is not padded to be a multiple of 4 bytes long. If you want interoperability with other base64 encoded md5 digests you might want to append the redundant -string redundant "==" to the result. +string "==" to the result. =back @@ -247,7 +247,7 @@ close(FILE); print $md5->b64digest, " $file\n"; -Or we can use the builtin addfile method for more efficient reading of +Or we can use the addfile method for more efficient reading of the file: use Digest::MD5; diff -ruN perl-5.8.1/ext/Digest/MD5/Makefile.PL AP807_source/ext/Digest/MD5/Makefile.PL --- perl-5.8.1/ext/Digest/MD5/Makefile.PL Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Digest/MD5/Makefile.PL Thu Nov 6 16:06:53 2003 @@ -24,7 +24,6 @@ @extra, 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, ); -exit; diff -ruN perl-5.8.1/ext/Digest/MD5/t/align.t AP807_source/ext/Digest/MD5/t/align.t --- perl-5.8.1/ext/Digest/MD5/t/align.t Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Digest/MD5/t/align.t Thu Nov 6 16:06:53 2003 @@ -13,7 +13,7 @@ use Digest::MD5 qw(md5_hex); my $str = "\100" x 20; -substr($str, 0, 1, ""); # chopping off first char makes the string unaligned +substr($str, 0, 1) = ""; # chopping off first char makes the string unaligned #use Devel::Peek; Dump($str); diff -ruN perl-5.8.1/ext/Digest/MD5/t/files.t AP807_source/ext/Digest/MD5/t/files.t --- perl-5.8.1/ext/Digest/MD5/t/files.t Thu Nov 6 16:08:44 2003 +++ AP807_source/ext/Digest/MD5/t/files.t Thu Nov 6 16:06:53 2003 @@ -20,26 +20,26 @@ my $EXPECT; if (ord "A" == 193) { # EBCDIC $EXPECT = <). The +ending sequence to use. It is optional and defaults to "\n". The returned encoded string is broken into lines of no more than 76 characters each and it will end with $eol unless it is empty. Pass an empty string as second argument if you do not want the encoded string @@ -49,8 +49,8 @@ silently ignored. Characters occuring after a '=' padding character are never decoded. -If the length of the string to decode (after ignoring -non-base64 chars) is not a multiple of 4 or padding occurs too early, +If the length of the string to decode, after ignoring +non-base64 chars, is not a multiple of 4 or padding occurs too early, then a warning is generated if perl is running under C<-w>. =back @@ -127,6 +127,10 @@ The XS implementation use code from metamail. Copyright 1991 Bell Communications Research, Inc. (Bellcore) +=head1 SEE ALSO + +L + =cut use strict; @@ -137,7 +141,7 @@ @ISA = qw(Exporter DynaLoader); @EXPORT = qw(encode_base64 decode_base64); -$VERSION = '2.20'; +$VERSION = '2.21'; eval { bootstrap MIME::Base64 $VERSION; }; if ($@) { @@ -153,10 +157,20 @@ # The XS implementation runs about 20 times faster, but the Perl # code might be more portable, so it is still here. -use integer; - sub old_encode_base64 ($;$) { + if ($] >= 5.006) { + require bytes; + if (bytes::length($_[0]) > length($_[0]) || + ($] >= 5.008 && $_[0] =~ /[^\0-\xFF]/)) + { + require Carp; + Carp::croak("The Base64 encoding is only defined for bytes"); + } + } + + use integer; + my $eol = $_[1]; $eol = "\n" unless defined $eol; @@ -180,6 +194,7 @@ sub old_decode_base64 ($) { local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123] + use integer; my $str = shift; $str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars diff -ruN perl-5.8.1/ext/MIME/Base64/Base64.xs AP807_source/ext/MIME/Base64/Base64.xs --- perl-5.8.1/ext/MIME/Base64/Base64.xs Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/MIME/Base64/Base64.xs Thu Nov 6 16:06:57 2003 @@ -1,4 +1,4 @@ -/* $Id: Base64.xs,v 1.37 2003/05/13 18:20:18 gisle Exp $ +/* $Id: Base64.xs,v 1.38 2003/10/09 11:26:12 gisle Exp $ Copyright 1997-2003 Gisle Aas @@ -159,7 +159,7 @@ chunk = 0; } c1 = *str++; - c2 = *str++; + c2 = len > 1 ? *str++ : '\0'; *r++ = basis_64[c1>>2]; *r++ = basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)]; if (len > 2) { @@ -298,7 +298,7 @@ while (p < end && qp_isplain(*p)) { p++; } - if (*p == '\n' || p == end) { + if (p == end || *p == '\n') { /* whitespace at end of line must be encoded */ while (p > p_beg && (*(p - 1) == '\t' || *(p - 1) == ' ')) p--; @@ -308,9 +308,9 @@ if (p_len) { /* output plain text (with line breaks) */ if (eol_len) { - STRLEN max_last_line = (*p == '\n' || p == end) + STRLEN max_last_line = (p == end || *p == '\n') ? MAX_LINE /* .......\n */ - : (*(p + 1) == '\n' || (p + 1) == end) + : ((p + 1) == end || *(p + 1) == '\n') ? MAX_LINE - 3 /* ....=XX\n */ : MAX_LINE - 4; /* ...=XX=\n */ while (p_len + linelen > max_last_line) { @@ -331,13 +331,17 @@ } } - if (*p == '\n' && eol_len) { + if (p == end) { + break; + } + else if (*p == '\n' && eol_len) { sv_catpvn(RETVAL, eol, eol_len); p++; linelen = 0; } - else if (p < end) { + else { /* output escaped char (with line breaks) */ + assert(p < end) if (eol_len && linelen > MAX_LINE - 4) { sv_catpvn(RETVAL, "=", 1); sv_catpvn(RETVAL, eol, eol_len); @@ -346,10 +350,6 @@ sv_catpvf(RETVAL, "=%02X", (unsigned char)*p); p++; linelen += 3; - } - else { - assert(p == end); - break; } /* optimize reallocs a bit */ diff -ruN perl-5.8.1/ext/MIME/Base64/Changes AP807_source/ext/MIME/Base64/Changes --- perl-5.8.1/ext/MIME/Base64/Changes Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/MIME/Base64/Changes Thu Nov 6 16:06:57 2003 @@ -1,3 +1,19 @@ +2003-10-09 Gisle Aas + + Release 2.21 + + Documentation tweaks. + + Don't rely on SvEND(sv) == '\0' as discussed in the perl5-porters + mailing list thread that starts with + http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-10/msg00258.html + + Should now pass test suite even without XS support. + + Perl v5.005 or better is now required. + + + 2003-05-13 Gisle Aas Release 2.20 diff -ruN perl-5.8.1/ext/MIME/Base64/Makefile.PL AP807_source/ext/MIME/Base64/Makefile.PL --- perl-5.8.1/ext/MIME/Base64/Makefile.PL Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/MIME/Base64/Makefile.PL Thu Nov 6 16:06:57 2003 @@ -1,4 +1,4 @@ -require 5.002; +require 5.005; use ExtUtils::MakeMaker; WriteMakefile( diff -ruN perl-5.8.1/ext/MIME/Base64/QuotedPrint.pm AP807_source/ext/MIME/Base64/QuotedPrint.pm --- perl-5.8.1/ext/MIME/Base64/QuotedPrint.pm Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/MIME/Base64/QuotedPrint.pm Thu Nov 6 16:06:57 2003 @@ -1,5 +1,5 @@ # -# $Id: QuotedPrint.pm,v 2.13 2003/05/13 18:22:09 gisle Exp $ +# $Id: QuotedPrint.pm,v 2.17 2003/10/09 19:04:29 gisle Exp $ package MIME::QuotedPrint; @@ -34,13 +34,24 @@ =item encode_qp($str, $eol) This function will return an encoded version of the string given as -argument. The second argument is the line ending sequence to use (it -is optional and defaults to C<"\n">). +argument. + +The second argument is the line ending sequence to use. It is +optional and defaults to "\n". Every occurence of "\n" will be +replaced with this string and it will also be used for additional +"soft line breaks" to ensure that no line is longer than 76 +characters. You might want to pass it as "\015\012" to produce data +suitable external consumption. The string "\r\n" will produce the +same result on many platforms, but not all. + +An $eol of "" special. If passed no "soft line breaks" are introduced +and any literal "\n" in the original data is encoded as well. =item decode_qp($str); This function will return the plain text version of the string given -as argument. Lines with be "\n" terminated. +as argument. The lines of the result will be "\n" terminated even it +the $str argument contains "\r\n" terminated lines. =back @@ -52,6 +63,17 @@ $encoded = MIME::QuotedPrint::encode($decoded); $decoded = MIME::QuotedPrint::decode($encoded); +Perl v5.6 and better allow extended Unicode characters in strings. +Such strings cannot be encoded directly as the quoted-printable +encoding is only defined for bytes. The solution is to use the Encode +module to select the byte encoding you want. For example: + + use MIME::QuotedPrint qw(encode_qp); + use Encode qw(encode); + + $encoded = encode_qp(encode("UTF-8", "\x{FFFF}\n")); + print $encoded; + =head1 COPYRIGHT Copyright 1995-1997,2002-2003 Gisle Aas. @@ -59,6 +81,10 @@ This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. +=head1 SEE ALSO + +L + =cut use strict; @@ -71,9 +97,7 @@ @ISA = qw(Exporter); @EXPORT = qw(encode_qp decode_qp); -use Carp qw(croak); - -$VERSION = "2.20"; +$VERSION = "2.21"; use MIME::Base64; # try to load XS version of encode_qp unless (defined &encode_qp) { @@ -87,13 +111,15 @@ if ($] >= 5.006) { require bytes; if (bytes::length($res) > length($res) || - ($] >= 5.008 && $res =~ /[^\0-\xFF]/)) { - croak("The Quoted-Printable encoding is only defined for bytes"); + ($] >= 5.008 && $res =~ /[^\0-\xFF]/)) + { + require Carp; + Carp::croak("The Quoted-Printable encoding is only defined for bytes"); } } my $eol = shift; - $eol = "\n" unless defined($eol) || length($eol); + $eol = "\n" unless defined $eol; # Do not mention ranges such as $res =~ s/([^ \t\n!-<>-~])/sprintf("=%02X", ord($1))/eg; # since that will not even compile on an EBCDIC machine (where ord('!') > ord('<')). @@ -122,12 +148,15 @@ } else { # ASCII style machine $res =~ s/([^ \t\n!"#\$%&'()*+,\-.\/0-9:;<>?\@A-Z[\\\]^_`a-z{|}~])/sprintf("=%02X", ord($1))/eg; # rule #2,#3 + $res =~ s/\n/=0A/g unless length($eol); $res =~ s/([ \t]+)$/ join('', map { sprintf("=%02X", ord($_)) } split('', $1) )/egm; # rule #3 (encode whitespace at eol) } + return $res unless length($eol); + # rule #5 (lines must be shorter than 76 chars, but we are not allowed # to break =XX escapes. This makes things complicated :-( ) my $brokenlines = ""; @@ -137,6 +166,7 @@ |[^=\n] (?! [^=\n]{0,2} $) # 74 not followed by .?.?\n | (?! [^=\n]{0,3} $) # 73 not followed by .?.?.?\n ))//xsm; + $res =~ s/\n\z/$eol/; "$brokenlines$res"; } diff -ruN perl-5.8.1/ext/MIME/Base64/t/unicode.t AP807_source/ext/MIME/Base64/t/unicode.t --- perl-5.8.1/ext/MIME/Base64/t/unicode.t Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/MIME/Base64/t/unicode.t Thu Nov 6 16:06:57 2003 @@ -9,14 +9,25 @@ } } -print "1..1\n"; +print "1..2\n"; require MIME::Base64; eval { - MIME::Base64::encode(v300); + my $tmp = MIME::Base64::encode(v300); + print "# enc: $tmp\n"; }; - +print "# $@" if $@; print "not " unless $@; print "ok 1\n"; + +require MIME::QuotedPrint; + +eval { + my $tmp = MIME::QuotedPrint::encode(v300); + print "# enc: $tmp\n"; +}; +print "# $@" if $@; +print "not " unless $@; +print "ok 2\n"; diff -ruN perl-5.8.1/ext/PerlIO/via/hints/aix.pl AP807_source/ext/PerlIO/via/hints/aix.pl --- perl-5.8.1/ext/PerlIO/via/hints/aix.pl Wed Dec 31 16:00:00 1969 +++ AP807_source/ext/PerlIO/via/hints/aix.pl Thu Nov 6 16:06:57 2003 @@ -0,0 +1,2 @@ +# compilation may hang at -O3 level +$self->{OPTIMIZE} = '-O'; diff -ruN perl-5.8.1/ext/SDBM_File/sdbm/sdbm.h AP807_source/ext/SDBM_File/sdbm/sdbm.h --- perl-5.8.1/ext/SDBM_File/sdbm/sdbm.h Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/SDBM_File/sdbm/sdbm.h Thu Nov 6 16:06:57 2003 @@ -245,7 +245,7 @@ # endif # endif # ifdef BUGGY_MSC - # pragma function(memcmp) +# pragma function(memcmp) # endif #else # ifndef memcmp diff -ruN perl-5.8.1/ext/Sys/Syslog/t/syslog.t AP807_source/ext/Sys/Syslog/t/syslog.t --- perl-5.8.1/ext/Sys/Syslog/t/syslog.t Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Sys/Syslog/t/syslog.t Thu Nov 6 16:06:58 2003 @@ -49,7 +49,7 @@ if (-e Sys::Syslog::_PATH_LOG()) { # The only known $^O eq 'svr4' that needs this is NCR MP-RAS, # but assuming 'stream' in SVR4 is probably not that bad. - if ($^O =~ /^(solaris|irix|svr4)$/) { + if ($^O =~ /^(solaris|irix|svr4|powerux)$/) { # we should check for stream support here, not for solaris/irix print defined(eval { setlogsock('stream') }) ? "ok 1\n" : "not ok 1 # $!\n"; } else { diff -ruN perl-5.8.1/ext/Time/HiRes/Changes AP807_source/ext/Time/HiRes/Changes --- perl-5.8.1/ext/Time/HiRes/Changes Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Time/HiRes/Changes Thu Nov 6 16:06:58 2003 @@ -1,5 +1,10 @@ Revision history for Perl extension Time::HiRes. +1.52 + - In AIX (v?) with perl 5.6.1 the HiRes.t can hang after + the subtest 18. No known analysis nor fix, but added + an alarm (that requires fork() and alarm()) to the test. + 1.51 - doc tweaks from mjd (perl change #20456) - NCR MP-RAS hints file added (svr4.pl) (perl change #21249) diff -ruN perl-5.8.1/ext/Time/HiRes/HiRes.pm AP807_source/ext/Time/HiRes/HiRes.pm --- perl-5.8.1/ext/Time/HiRes/HiRes.pm Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Time/HiRes/HiRes.pm Thu Nov 6 16:06:58 2003 @@ -15,7 +15,7 @@ d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer d_nanosleep); -$VERSION = '1.51'; +$VERSION = '1.52'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff -ruN perl-5.8.1/ext/Time/HiRes/Makefile.PL AP807_source/ext/Time/HiRes/Makefile.PL --- perl-5.8.1/ext/Time/HiRes/Makefile.PL Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Time/HiRes/Makefile.PL Thu Nov 6 16:06:58 2003 @@ -284,7 +284,7 @@ } if ($has_setitimer && $has_getitimer) { - print "You have interval timers (both setitimer and getitimer).\n"; + print "You have interval timers (both setitimer and setitimer).\n"; } else { print "You do not have interval timers.\n"; } diff -ruN perl-5.8.1/ext/Time/HiRes/t/HiRes.t AP807_source/ext/Time/HiRes/t/HiRes.t --- perl-5.8.1/ext/Time/HiRes/t/HiRes.t Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Time/HiRes/t/HiRes.t Thu Nov 6 16:06:58 2003 @@ -30,6 +30,31 @@ use Config; +my $have_alarm = $Config{d_alarm}; +my $have_fork = $Config{d_fork}; +my $waitfor = 60; # 10 seconds is normal. +my $pid; + +if ($have_fork) { + print "# Testing process $$\n"; + print "# Starting the timer process\n"; + if (defined ($pid = fork())) { + if ($pid == 0) { # We are the kid, set up the timer. + print "# Timer process $$\n"; + sleep($waitfor); + warn "$0: Time's up!\n"; + print "# Terminating the testing process\n"; + kill('TERM', getppid()); + print "# Timer process exiting\n"; + exit(0); + } + } else { + warn "$0: fork failed: $!\n"; + } +} else { + print "# No timer process\n"; +} + my $xdefine = ''; if (open(XDEFINE, "xdefine")) { @@ -131,7 +156,7 @@ ok 11, $f > 0.4 && $f < 0.9, "slept $f instead of 0.5 secs."; } -if (!$have_ualarm || !$Config{d_alarm}) { +if (!$have_ualarm || !$have_alarm) { skip 12..13; } else { @@ -337,3 +362,9 @@ skip 24; skip 25; } + +if (defined $pid) { + print "# Terminating the timer process $pid\n"; + kill('TERM', $pid); # We are done, the timer can go. +} + diff -ruN perl-5.8.1/ext/Unicode/Normalize/Changes AP807_source/ext/Unicode/Normalize/Changes --- perl-5.8.1/ext/Unicode/Normalize/Changes Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Unicode/Normalize/Changes Thu Nov 6 16:06:58 2003 @@ -1,5 +1,21 @@ Revision history for Perl extension Unicode::Normalize. +0.25 Mon Oct 6 22:26:03 2003 + - added form.t and proto.t. + +0.24 Sat Oct 4 17:57:10 2003 + - supports FCD and FCC (UTN #5): + FCD(), normalize('FCD'), checkFCD(), check('FCD'); + FCC(), normalize('FCC'), checkFCC(), check('FCC'). + - changed INSTALLATION (cf. README). + * Initial state of the distribution is changed to XSUB. To build + pure Perl, type before . + * The purePerl-XSUB converter is now provided as two perl + script files, named "enableXS" and "disableXS". + (no longer and .) + * simplified Makefile.PL. + - added fcdc.t and split.t. + 0.23 Sat Jun 28 20:38:10 2003 - bug fix: \0-terminate in compose() in XS. - tweak in pure perl: forced $codepoint to numeric (i.e. "+0065" to 65) diff -ruN perl-5.8.1/ext/Unicode/Normalize/Makefile.PL AP807_source/ext/Unicode/Normalize/Makefile.PL --- perl-5.8.1/ext/Unicode/Normalize/Makefile.PL Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Unicode/Normalize/Makefile.PL Thu Nov 6 16:06:58 2003 @@ -1,35 +1,5 @@ use ExtUtils::MakeMaker; -# This code for XS-NOXS installer is shamelessly stolen -# after Gurusamy Sarathy's Data::Dumper. Thank you! - -# a bit modified. - -use File::Copy qw(); - -my $arg = $ARGV[0] || ""; - -if ($arg =~ /^no/i and -f "Normalize.xs") { - print STDERR "Disabling XS in sources...\n"; - - die "***** Failed, sources could be inconsistent! *****\n" - unless File::Copy::move('MANIFEST', 'MANIFEST.XS') - and File::Copy::move('MANIFEST.NXS', 'MANIFEST') - and File::Copy::move('Normalize.pm', 'Normalize.pm.XS') - and File::Copy::move('Normalize.xs', 'Normalize.xs.XS') - and File::Copy::move('Normalize.pm.NXS','Normalize.pm'); -} -if ($arg =~ /^xs/i and -f "Normalize.xs.XS") { - print STDERR "Enabling XS in sources...\n"; - - die "***** Failed, sources could be inconsistent! *****\n" - unless File::Copy::move('MANIFEST', 'MANIFEST.NXS') - and File::Copy::move('MANIFEST.XS', 'MANIFEST') - and File::Copy::move('Normalize.pm', 'Normalize.pm.NXS') - and File::Copy::move('Normalize.xs.XS', 'Normalize.xs') - and File::Copy::move('Normalize.pm.XS', 'Normalize.pm'); -} - my $clean = {}; if (-f "Normalize.xs") { @@ -40,7 +10,7 @@ } WriteMakefile( - 'INSTALLDIRS' => $] > 5.007 ? 'perl' : 'site', + 'INSTALLDIRS' => $] >= 5.007 ? 'perl' : 'site', 'NAME' => 'Unicode::Normalize', 'VERSION_FROM' => 'Normalize.pm', # finds $VERSION 'clean' => $clean, diff -ruN perl-5.8.1/ext/Unicode/Normalize/Normalize.pm AP807_source/ext/Unicode/Normalize/Normalize.pm --- perl-5.8.1/ext/Unicode/Normalize/Normalize.pm Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Unicode/Normalize/Normalize.pm Thu Nov 6 16:06:58 2003 @@ -11,12 +11,11 @@ use warnings; use Carp; -our $VERSION = '0.23'; +our $VERSION = '0.25'; our $PACKAGE = __PACKAGE__; require Exporter; require DynaLoader; -require AutoLoader; our @ISA = qw(Exporter DynaLoader); our @EXPORT = qw( NFC NFD NFKC NFKD ); @@ -26,15 +25,22 @@ getCanon getCompat getComposite getCombinClass isExclusion isSingleton isNonStDecomp isComp2nd isComp_Ex isNFD_NO isNFC_NO isNFC_MAYBE isNFKD_NO isNFKC_NO isNFKC_MAYBE + FCD checkFCD FCC checkFCC composeContiguous + splitOnLastStarter ); our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ], normalize => [ @EXPORT, qw/normalize decompose reorder compose/ ], check => [ qw/checkNFD checkNFKD checkNFC checkNFKC check/ ], + fast => [ qw/FCD checkFCD FCC checkFCC composeContiguous/ ], ); +###### + bootstrap Unicode::Normalize $VERSION; +###### + sub pack_U { return pack('U*', @_); } @@ -43,6 +49,11 @@ return unpack('U*', pack('U*').shift); } + +## +## normalization forms +## + use constant COMPAT => 1; sub NFD ($) { reorder(decompose($_[0])) } @@ -50,30 +61,49 @@ sub NFC ($) { compose(reorder(decompose($_[0]))) } sub NFKC ($) { compose(reorder(decompose($_[0], COMPAT))) } +sub FCD ($) { + my $str = shift; + return checkFCD($str) ? $str : NFD($str); +} +sub FCC ($) { composeContiguous(reorder(decompose($_[0]))) } + +our %formNorm = ( + NFC => \&NFC, C => \&NFC, + NFD => \&NFD, D => \&NFD, + NFKC => \&NFKC, KC => \&NFKC, + NFKD => \&NFKD, KD => \&NFKD, + FCD => \&FCD, FCC => \&FCC, +); + sub normalize($$) { my $form = shift; my $str = shift; - $form =~ s/^NF//; - return - $form eq 'D' ? NFD ($str) : - $form eq 'C' ? NFC ($str) : - $form eq 'KD' ? NFKD($str) : - $form eq 'KC' ? NFKC($str) : - croak $PACKAGE."::normalize: invalid form name: $form"; + return exists $formNorm{$form} + ? $formNorm{$form}->($str) + : croak $PACKAGE."::normalize: invalid form name: $form"; } + +## +## quick check +## + +our %formCheck = ( + NFC => \&checkNFC, C => \&checkNFC, + NFD => \&checkNFD, D => \&checkNFD, + NFKC => \&checkNFKC, KC => \&checkNFKC, + NFKD => \&checkNFKD, KD => \&checkNFKD, + FCD => \&checkFCD, FCC => \&checkFCC, +); + sub check($$) { my $form = shift; my $str = shift; - $form =~ s/^NF//; - return - $form eq 'D' ? checkNFD ($str) : - $form eq 'C' ? checkNFC ($str) : - $form eq 'KD' ? checkNFKD($str) : - $form eq 'KC' ? checkNFKC($str) : - croak $PACKAGE."::check: invalid form name: $form"; + return exists $formCheck{$form} + ? $formCheck{$form}->($str) + : croak $PACKAGE."::check: invalid form name: $form"; } 1; @@ -138,14 +168,31 @@ returns the Normalization Form KC (formed by compatibility decomposition followed by B composition). +=item C<$FCD_string = FCD($string)> + +If the given string is in FCD ("Fast C or D" form; cf. UTN #5), +returns it without modification; otherwise returns an FCD string. + +Note: FCD is not always unique, then plural forms may be equivalent +each other. C will return one of these equivalent forms. + +=item C<$FCC_string = FCC($string)> + +returns the FCC form ("Fast C Contiguous"; cf. UTN #5). + +Note: FCD is unique, as well as four normalization forms (NF*). + =item C<$normalized_string = normalize($form_name, $string)> As C<$form_name>, one of the following names must be given. - 'C' or 'NFC' for Normalization Form C - 'D' or 'NFD' for Normalization Form D - 'KC' or 'NFKC' for Normalization Form KC - 'KD' or 'NFKD' for Normalization Form KD + 'C' or 'NFC' for Normalization Form C (UAX #15) + 'D' or 'NFD' for Normalization Form D (UAX #15) + 'KC' or 'NFKC' for Normalization Form KC (UAX #15) + 'KD' or 'NFKD' for Normalization Form KD (UAX #15) + + 'FCD' for "Fast C or D" Form (UTN #5) + 'FCC' for "Fast C Contiguous" (UTN #5) =back @@ -194,7 +241,7 @@ =head2 Quick Check -(see Annex 8, UAX #15, and F) +(see Annex 8, UAX #15; and F) The following functions check whether the string is in that normalization form. @@ -222,6 +269,17 @@ returns C (C<1>), C (C), or C (C). +=item C<$result = checkFCD($string)> + +returns C (C<1>) or C (C). + +=item C<$result = checkFCC($string)> + +returns C (C<1>), C (C), or C (C). + +If a string is not in C, it must not be in . +So C should return C. + =item C<$result = check($form_name, $string)> returns C (C<1>), C (C), or C (C). @@ -232,23 +290,26 @@ B -In the cases of NFD and NFKD, the answer must be either C or C. -The answer C may be returned in the cases of NFC and NFKC. +In the cases of NFD, NFKD, and FCD, the answer must be +either C or C. The answer C may be returned +in the cases of NFC, NFKC, and FCC. -A MAYBE-NFC/NFKC string should contain at least -one combining character or the like. -For example, C has +A C string should contain at least one combining character +or the like. For example, C has the MAYBE_NFC/MAYBE_NFKC property. + Both C and C will return C. C<"A\N{COMBINING ACUTE ACCENT}"> is not in NFC (its NFC is C<"\N{LATIN CAPITAL LETTER A WITH ACUTE}">), while C<"B\N{COMBINING ACUTE ACCENT}"> is in NFC. -If you want to check exactly, compare the string with its NFC/NFKC; i.e., +If you want to check exactly, compare the string with its NFC/NFKC/FCC; +i.e., - $string eq NFC($string) # more thorough than checkNFC($string) - $string eq NFKC($string) # more thorough than checkNFKC($string) + $string eq NFC($string) # thorough than checkNFC($string) + $string eq NFKC($string) # thorough than checkNFKC($string) + $string eq FCC($string) # thorough than checkFCC($string) =head2 Character Data @@ -319,7 +380,7 @@ =head1 AUTHOR -SADAHIRO Tomoyuki, ESADAHIRO@cpan.orgE +SADAHIRO Tomoyuki, http://homepage1.nifty.com/nomenclator/perl/ @@ -339,6 +400,10 @@ =item http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt Derived Normalization Properties + +=item http://www.unicode.org/notes/tn5/ + +Canonical Equivalence in Applications - UTN #5 =back diff -ruN perl-5.8.1/ext/Unicode/Normalize/Normalize.xs AP807_source/ext/Unicode/Normalize/Normalize.xs --- perl-5.8.1/ext/Unicode/Normalize/Normalize.xs Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Unicode/Normalize/Normalize.xs Thu Nov 6 16:06:58 2003 @@ -20,6 +20,12 @@ #define utf8n_to_uvuni utf8_to_uv #endif /* utf8n_to_uvuni */ +/* if utf8n_to_uvuni() sets retlen to 0 when flags = 0 */ +#define ErrRetlenIsZero "panic (Unicode::Normalize): zero-length character" + +/* utf8_hop() hops back before start. Maybe broken UTF-8 */ +#define ErrHopBeforeStart "panic (Unicode::Normalize): hopping before start" + /* At present, char > 0x10ffff are unaffected without complaint, right? */ #define VALID_UTF_MAX (0x10ffff) #define OVER_UTF_MAX(uv) (VALID_UTF_MAX < (uv)) @@ -187,9 +193,11 @@ s = (U8*)SvPV(src,srclen); e = s + srclen; - for (p = s; p < e;) { + for (p = s; p < e; p += retlen) { uv = utf8n_to_uvuni(p, e - p, &retlen, 0); - p += retlen; + if (!retlen) + croak(ErrRetlenIsZero); + if (Hangul_IsS(uv)) sv_cat_decompHangul(dst, uv); else { @@ -197,7 +205,7 @@ if (r) sv_catpv(dst, (char *)r); else - sv_catpvn(dst, (char *)p - retlen, retlen); + sv_catpvn(dst, (char *)p, retlen); } } RETVAL = dst; @@ -242,9 +250,13 @@ STRLEN cc_len, cc_iter, cc_pos; uv = utf8n_to_uvuni(p, e - p, &retlen, 0); - curCC = getCombinClass(uv); + if (!retlen) + croak(ErrRetlenIsZero); p += retlen; + + + curCC = getCombinClass(uv); if (! (curCC && p < e)) continue; else @@ -257,10 +269,14 @@ while (p < e) { uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); + p += retlen; + curCC = getCombinClass(uv); if (!curCC) break; - p += retlen; + cc_pos++; if (stk_cc_max <= cc_pos) { /* extend if need */ stk_cc_max = cc_pos + 1; @@ -294,6 +310,8 @@ compose(arg) SV * arg PROTOTYPE: $ + ALIAS: + composeContiguous = 1 PREINIT: SV *src, *dst, *tmp; U8 *s, *p, *e, *d, *t, *tmp_start, curCC, preCC; @@ -324,6 +342,8 @@ for (p = s; p < e;) { if (beginning) { uvS = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); p += retlen; if (getCombinClass(uvS)) { /* no Starter found yet */ @@ -340,7 +360,10 @@ /* to the next Starter */ while (p < e) { uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); p += retlen; + curCC = getCombinClass(uv); if (preCC && preCC == curCC) { @@ -349,7 +372,8 @@ } else { uvComp = composite_uv(uvS, uv); - if (uvComp && ! isExclusion(uvComp) && preCC <= curCC) { + if (uvComp && ! isExclusion(uvComp) && + (ix ? (t == tmp_start) : (preCC <= curCC))) { STRLEN leftcur, rightcur, dstcur; leftcur = UNISKIP(uvComp); rightcur = UNISKIP(uvS) + UNISKIP(uv); @@ -385,7 +409,6 @@ RETVAL - void checkNFD(arg) SV * arg @@ -397,7 +420,7 @@ SV *src; STRLEN srclen, retlen; U8 *s, *e, *p, curCC, preCC; - PPCODE: + CODE: if (SvUTF8(arg)) { src = arg; } else { @@ -411,6 +434,9 @@ preCC = 0; for (p = s; p < e; p += retlen) { uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); + curCC = getCombinClass(uv); if (preCC > curCC && curCC != 0) /* canonical ordering violated */ XSRETURN_NO; @@ -434,7 +460,7 @@ STRLEN srclen, retlen; U8 *s, *e, *p, curCC, preCC; bool isMAYBE; - PPCODE: + CODE: if (SvUTF8(arg)) { src = arg; } else { @@ -449,6 +475,9 @@ isMAYBE = FALSE; for (p = s; p < e; p += retlen) { uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); + curCC = getCombinClass(uv); if (preCC > curCC && curCC != 0) /* canonical ordering violated */ @@ -479,6 +508,78 @@ +void +checkFCD(arg) + SV * arg + PROTOTYPE: $ + ALIAS: + checkFCC = 1 + PREINIT: + UV uv, uvLead, uvTrail; + SV *src; + STRLEN srclen, retlen, canlen, canret; + U8 *s, *e, *p, curCC, preCC; + U8 *sCan, *pCan, *eCan; + bool isMAYBE; + CODE: + if (SvUTF8(arg)) { + src = arg; + } else { + src = sv_mortalcopy(arg); + sv_utf8_upgrade(src); + } + + s = (U8*)SvPV(src,srclen); + e = s + srclen; + + preCC = 0; + isMAYBE = FALSE; + for (p = s; p < e; p += retlen) { + uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (!retlen) + croak(ErrRetlenIsZero); + + sCan = (U8*) dec_canonical(uv); + + if (sCan) { + canlen = (STRLEN)strlen((char *) sCan); + uvLead = utf8n_to_uvuni(sCan, canlen, &canret, 0); + } + else { + uvLead = uv; + } + + curCC = getCombinClass(uvLead); + + if (curCC != 0 && curCC < preCC) /* canonical ordering violated */ + XSRETURN_NO; + + if (ix) { + if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) + XSRETURN_NO; + else if (isComp2nd(uv)) + isMAYBE = TRUE; + } + + if (sCan) { + eCan = sCan + canlen; + pCan = utf8_hop(eCan, -1); + if (pCan < sCan) + croak(ErrHopBeforeStart); + uvTrail = utf8n_to_uvuni(pCan, eCan - pCan, &canret, 0); + preCC = getCombinClass(uvTrail); + } + else { + preCC = curCC; + } + } + if (isMAYBE) + XSRETURN_UNDEF; + else + XSRETURN_YES; + + + U8 getCombinClass(uv) UV uv @@ -515,7 +616,7 @@ PROTOTYPE: $ ALIAS: isNFKD_NO = 1 - PPCODE: + CODE: if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv))) XSRETURN_YES; /* NFD_NO or NFKD_NO */ else @@ -530,7 +631,7 @@ ALIAS: isNFC_NO = 0 isNFKC_NO = 1 - PPCODE: + CODE: if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) XSRETURN_YES; /* NFC_NO or NFKC_NO */ else if (ix) { @@ -586,4 +687,41 @@ SvUTF8_on(RETVAL); OUTPUT: RETVAL + + +void +splitOnLastStarter(arg) + SV * arg + PREINIT: + UV uv; + SV *src, *svp; + STRLEN srclen, retlen; + U8 *s, *e, *p; + PPCODE: + if (SvUTF8(arg)) { + src = arg; + } else { + src = sv_mortalcopy(arg); + sv_utf8_upgrade(src); + } + + s = (U8*)SvPV(src,srclen); + e = s + srclen; + + for (p = e; s < p; ) { + p = utf8_hop(p, -1); + if (p < s) + croak(ErrHopBeforeStart); + uv = utf8n_to_uvuni(p, e - p, &retlen, 0); + if (getCombinClass(uv) == 0) /* Last Starter found */ + break; + } + + svp = sv_2mortal(newSVpvn((char*)s, p - s)); + SvUTF8_on(svp); + XPUSHs(svp); + + svp = sv_2mortal(newSVpvn((char*)p, e - p)); + SvUTF8_on(svp); + XPUSHs(svp); diff -ruN perl-5.8.1/ext/Unicode/Normalize/README AP807_source/ext/Unicode/Normalize/README --- perl-5.8.1/ext/Unicode/Normalize/README Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/Unicode/Normalize/README Thu Nov 6 16:06:58 2003 @@ -1,4 +1,4 @@ -Unicode/Normalize version 0.22 +Unicode/Normalize version 0.25 =================================== Unicode::Normalize - Unicode Normalization Forms @@ -24,35 +24,37 @@ INSTALLATION -Perl 5.6.1 or later +Perl 5.6.1 or later (Caution: Perl 5.6.0 is not recommended.) -To install this module type the following: +To install this module (XSUB: needs a C compiler), type the following: perl Makefile.PL make make test make install -If you have a C compiler and want to use the XS version, -type the following: +If you want to install pure Perl (i.e. no-XSUB), +type the following (!! "disableXS" must run before "Makefile.PL" !!): - perl Makefile.PL xs + perl disableXS + perl Makefile.PL make make test make install -If you decide to install the NoXS version after trying to build the XS, -type the following: +After building no-XSUB, if you decide to install XSUB, +type the following (!! "enableXS" must run before "Makefile.PL" !!): make clean - perl Makefile.PL noxs + perl enableXS + perl Makefile.PL make make test make install DEPENDENCIES -This module requires these other modules and libraries: +This module requires other modules and libraries following: Carp Exporter @@ -70,13 +72,16 @@ (2) After these unicore/*.* files are updated. - In the case of an XS version: + In the case of an XS edition: You must rebuild the module, as the data will be compiled on building. - In the case of a NoXS version: + In the case of a pure Perl edition: Rebuilding is not necessary, as the data will be read on requirement. + +(3) Pure Perl edition, Normalize.pmN, may work without any other file + in this distribution (it must be renamed Normalize.pm, though) COPYRIGHT AND LICENCE diff -ruN perl-5.8.1/ext/Unicode/Normalize/t/fcdc.t AP807_source/ext/Unicode/Normalize/t/fcdc.t --- perl-5.8.1/ext/Unicode/Normalize/t/fcdc.t Wed Dec 31 16:00:00 1969 +++ AP807_source/ext/Unicode/Normalize/t/fcdc.t Thu Nov 6 16:06:58 2003 @@ -0,0 +1,71 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Normalize " . + "cannot stringify a Unicode code point\n"; + exit 0; + } +} + +BEGIN { + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +######################### + +use Test; +use strict; +use warnings; +BEGIN { plan tests => 35 }; +use Unicode::Normalize qw(:all); +ok(1); # If we made it this far, we're ok. + +sub _pack_U { Unicode::Normalize::pack_U(@_) } +sub _unpack_U { Unicode::Normalize::unpack_U(@_) } +sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" } + +######################### + +ok(answer(checkFCD('')), 'YES'); +ok(answer(checkFCD('A')), 'YES'); +ok(answer(checkFCD("\x{030A}")), 'YES'); # 030A;COMBINING RING ABOVE +ok(answer(checkFCD("\x{0327}")), 'YES'); # 0327;COMBINING CEDILLA +ok(answer(checkFCD(_pack_U(0x00C5))), 'YES'); # A with ring above +ok(answer(checkFCD(_pack_U(0x41, 0x30A))), 'YES'); # A+ring +ok(answer(checkFCD(_pack_U(0x41, 0x327, 0x30A))), 'YES'); # A+cedilla+ring +ok(answer(checkFCD(_pack_U(0x41, 0x30A, 0x327))), 'NO'); # A+ring+cedilla +ok(answer(checkFCD(_pack_U(0xC5, 0x0327))), 'NO'); # A-ring+cedilla +ok(answer(checkNFC(_pack_U(0xC5, 0x0327))), 'MAYBE'); # NFC: A-ring+cedilla +ok(answer(check("FCD", _pack_U(0xC5, 0x0327))), 'NO'); +ok(answer(check("NFC", _pack_U(0xC5, 0x0327))), 'MAYBE'); +ok(answer(checkFCD("\x{AC01}\x{1100}\x{1161}")), 'YES'); # hangul +ok(answer(checkFCD("\x{212B}\x{F900}")), 'YES'); # compat + +ok(FCD(''), ""); +ok(FCC(''), ""); + +ok(FCD('A'), "A"); +ok(FCC('A'), "A"); + +ok(answer(checkFCD(_pack_U(0x1EA7, 0x05AE, 0x0315, 0x0062))), "NO"); +ok(answer(checkFCC(_pack_U(0x1EA7, 0x05AE, 0x0315, 0x0062))), "NO"); + +ok(FCC(_pack_U(0xC5, 0x327)), _pack_U(0x41, 0x327, 0x30A)); +ok(FCC(_pack_U(0x45, 0x304, 0x300)), _pack_U(0x1E14)); +ok(FCC("\x{1100}\x{1161}\x{1100}\x{1173}\x{11AF}"), "\x{AC00}\x{AE00}"); + +ok(answer(checkFCC('')), 'YES'); +ok(answer(checkFCC('A')), 'YES'); +ok(answer(checkFCC("\x{030A}")), 'MAYBE'); # 030A;COMBINING RING ABOVE +ok(answer(checkFCC("\x{0327}")), 'MAYBE'); # 0327;COMBINING CEDILLA +ok(answer(checkFCC(_pack_U(0x00C5))), 'YES'); # A with ring above +ok(answer(checkFCC(_pack_U(0x41, 0x30A))), 'MAYBE'); # A+ring +ok(answer(checkFCC(_pack_U(0x41, 0x327, 0x30A))), 'MAYBE'); # A+cedilla+ring +ok(answer(checkFCC(_pack_U(0x41, 0x30A, 0x327))), 'NO'); # A+ring+cedilla +ok(answer(checkFCC(_pack_U(0xC5, 0x0327))), 'NO'); # A-ring+cedilla +ok(answer(checkFCC("\x{AC01}\x{1100}\x{1161}")), 'MAYBE'); # hangul +ok(answer(checkFCC("\x{212B}\x{F900}")), 'NO'); # compat + diff -ruN perl-5.8.1/ext/Unicode/Normalize/t/form.t AP807_source/ext/Unicode/Normalize/t/form.t --- perl-5.8.1/ext/Unicode/Normalize/t/form.t Wed Dec 31 16:00:00 1969 +++ AP807_source/ext/Unicode/Normalize/t/form.t Thu Nov 6 16:06:58 2003 @@ -0,0 +1,71 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Normalize " . + "cannot stringify a Unicode code point\n"; + exit 0; + } +} + +BEGIN { + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +######################### + +use Test; +use strict; +use warnings; +BEGIN { plan tests => 37 }; +use Unicode::Normalize qw(:all); +ok(1); # If we made it this far, we're ok. + +sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" } + +######################### + +ok(NFD ("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); +ok(NFC ("\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); +ok(NFKD("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); +ok(NFKC("\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); + +ok(answer(checkNFD ("\x{304C}")), "NO"); +ok(answer(checkNFC ("\x{304C}")), "YES"); +ok(answer(checkNFKD("\x{304C}")), "NO"); +ok(answer(checkNFKC("\x{304C}")), "YES"); +ok(answer(checkNFD ("\x{FF76}")), "YES"); +ok(answer(checkNFC ("\x{FF76}")), "YES"); +ok(answer(checkNFKD("\x{FF76}")), "NO"); +ok(answer(checkNFKC("\x{FF76}")), "NO"); + +ok(normalize('D', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); +ok(normalize('C', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); +ok(normalize('KD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); +ok(normalize('KC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); + +ok(answer(check('D', "\x{304C}")), "NO"); +ok(answer(check('C', "\x{304C}")), "YES"); +ok(answer(check('KD',"\x{304C}")), "NO"); +ok(answer(check('KC',"\x{304C}")), "YES"); +ok(answer(check('D' ,"\x{FF76}")), "YES"); +ok(answer(check('C' ,"\x{FF76}")), "YES"); +ok(answer(check('KD',"\x{FF76}")), "NO"); +ok(answer(check('KC',"\x{FF76}")), "NO"); + +ok(normalize('NFD', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); +ok(normalize('NFC', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); +ok(normalize('NFKD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); +ok(normalize('NFKC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); + +ok(answer(check('NFD', "\x{304C}")), "NO"); +ok(answer(check('NFC', "\x{304C}")), "YES"); +ok(answer(check('NFKD',"\x{304C}")), "NO"); +ok(answer(check('NFKC',"\x{304C}")), "YES"); +ok(answer(check('NFD' ,"\x{FF76}")), "YES"); +ok(answer(check('NFC' ,"\x{FF76}")), "YES"); +ok(answer(check('NFKD',"\x{FF76}")), "NO"); +ok(answer(check('NFKC',"\x{FF76}")), "NO"); + diff -ruN perl-5.8.1/ext/Unicode/Normalize/t/proto.t AP807_source/ext/Unicode/Normalize/t/proto.t --- perl-5.8.1/ext/Unicode/Normalize/t/proto.t Wed Dec 31 16:00:00 1969 +++ AP807_source/ext/Unicode/Normalize/t/proto.t Thu Nov 6 16:06:58 2003 @@ -0,0 +1,75 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Normalize " . + "cannot stringify a Unicode code point\n"; + exit 0; + } +} + +BEGIN { + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +######################### + +use Test; +use strict; +use warnings; +BEGIN { plan tests => 42 }; +use Unicode::Normalize qw(:all); +ok(1); # If we made it this far, we're ok. + +######################### + +# unary op. RING-CEDILLA +ok( "\x{30A}\x{327}" ne "\x{327}\x{30A}"); +ok(NFD "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(NFC "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(NFKD "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(NFKC "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(FCD "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(FCC "\x{30A}\x{327}" eq "\x{327}\x{30A}"); +ok(reorder "\x{30A}\x{327}" eq "\x{327}\x{30A}"); + +ok(prototype \&normalize,'$$'); +ok(prototype \&NFD, '$'); +ok(prototype \&NFC, '$'); +ok(prototype \&NFKD, '$'); +ok(prototype \&NFKC, '$'); +ok(prototype \&FCD, '$'); +ok(prototype \&FCC, '$'); + +ok(prototype \&check, '$$'); +ok(prototype \&checkNFD, '$'); +ok(prototype \&checkNFC, '$'); +ok(prototype \&checkNFKD,'$'); +ok(prototype \&checkNFKC,'$'); +ok(prototype \&checkFCD, '$'); +ok(prototype \&checkFCC, '$'); + +ok(prototype \&decompose, '$;$'); +ok(prototype \&reorder, '$'); +ok(prototype \&compose, '$'); +ok(prototype \&composeContiguous, '$'); + +ok(prototype \&getCanon, '$'); +ok(prototype \&getCompat, '$'); +ok(prototype \&getComposite, '$$'); +ok(prototype \&getCombinClass,'$'); +ok(prototype \&isExclusion, '$'); +ok(prototype \&isSingleton, '$'); +ok(prototype \&isNonStDecomp, '$'); +ok(prototype \&isComp2nd, '$'); +ok(prototype \&isComp_Ex, '$'); + +ok(prototype \&isNFD_NO, '$'); +ok(prototype \&isNFC_NO, '$'); +ok(prototype \&isNFC_MAYBE, '$'); +ok(prototype \&isNFKD_NO, '$'); +ok(prototype \&isNFKC_NO, '$'); +ok(prototype \&isNFKC_MAYBE, '$'); + diff -ruN perl-5.8.1/ext/Unicode/Normalize/t/split.t AP807_source/ext/Unicode/Normalize/t/split.t --- perl-5.8.1/ext/Unicode/Normalize/t/split.t Wed Dec 31 16:00:00 1969 +++ AP807_source/ext/Unicode/Normalize/t/split.t Thu Nov 6 16:06:58 2003 @@ -0,0 +1,73 @@ + +BEGIN { + unless ("A" eq pack('U', 0x41)) { + print "1..0 # Unicode::Normalize " . + "cannot stringify a Unicode code point\n"; + exit 0; + } +} + +BEGIN { + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); + } +} + +######################### + +use Test; +use strict; +use warnings; +BEGIN { plan tests => 14 }; +use Unicode::Normalize qw(:all); +ok(1); # If we made it this far, we're ok. + +sub _pack_U { Unicode::Normalize::pack_U(@_) } +sub _unpack_U { Unicode::Normalize::unpack_U(@_) } + +######################### + +our $proc; # before the last starter +our $unproc; # the last starter and after +# If string has no starter, entire string is set to $unproc. + +# When you have $normalized string and $unnormalized string following, +# a simple concatenation +# C<$concat = $normalized . normalize($form, $unnormalized)> +# is wrong. Instead of it, like this: +# +# ($processed, $unprocessed) = splitOnLastStarter($normalized); +# $concat = $processed . normalize($form, $unprocessed.$unnormalized); + +($proc, $unproc) = splitOnLastStarter(""); +ok($proc, ""); +ok($unproc, ""); + +($proc, $unproc) = splitOnLastStarter("A"); +ok($proc, ""); +ok($unproc, "A"); + +($proc, $unproc) = splitOnLastStarter(_pack_U(0x41, 0x300, 0x327, 0x42)); +ok($proc, _pack_U(0x41, 0x300, 0x327)); +ok($unproc, "B"); + +($proc, $unproc) = splitOnLastStarter(_pack_U(0x4E00, 0x41, 0x301)); +ok($proc, _pack_U(0x4E00)); +ok($unproc, _pack_U(0x41, 0x301)); + +($proc, $unproc) = splitOnLastStarter(_pack_U(0x302, 0x301, 0x300)); +ok($proc, ""); +ok($unproc, _pack_U(0x302, 0x301, 0x300)); + +our $ka_grave = _pack_U(0x41, 0, 0x42, 0x304B, 0x300); +our $dakuten = _pack_U(0x3099); +our $ga_grave = _pack_U(0x41, 0, 0x42, 0x304C, 0x300); + +our ($p, $u) = splitOnLastStarter($ka_grave); +our $concat = $p . NFC($u.$dakuten); + +ok(NFC($ka_grave.$dakuten) eq $ga_grave); +ok(NFC($ka_grave).NFC($dakuten) ne $ga_grave); +ok($concat eq $ga_grave); + diff -ruN perl-5.8.1/ext/threads/shared/shared.xs AP807_source/ext/threads/shared/shared.xs --- perl-5.8.1/ext/threads/shared/shared.xs Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/threads/shared/shared.xs Thu Nov 6 16:06:58 2003 @@ -27,13 +27,29 @@ */ PerlInterpreter *PL_sharedsv_space; /* The shared sv space */ /* To access shared space we fake aTHX in this scope and thread's context */ -#define SHARED_CONTEXT PERL_SET_CONTEXT((aTHX = PL_sharedsv_space)) + +/* bug #24255: we include ENTER+SAVETMPS/FREETMPS+LEAVE with + * SHARED_CONTEXT/CALLER_CONTEXT macros, so that any mortals etc created + * while in the shared interpreter context don't languish */ + +#define SHARED_CONTEXT \ + STMT_START { \ + PERL_SET_CONTEXT((aTHX = PL_sharedsv_space)); \ + ENTER; \ + SAVETMPS; \ + } STMT_END /* So we need a way to switch back to the caller's context... */ /* So we declare _another_ copy of the aTHX variable ... */ #define dTHXc PerlInterpreter *caller_perl = aTHX + /* and use it to switch back */ -#define CALLER_CONTEXT PERL_SET_CONTEXT((aTHX = caller_perl)) +#define CALLER_CONTEXT \ + STMT_START { \ + FREETMPS; \ + LEAVE; \ + PERL_SET_CONTEXT((aTHX = caller_perl)); \ + } STMT_END /* * Only one thread at a time is allowed to mess with shared space. @@ -308,6 +324,8 @@ if (sv && SvTYPE(ssv) < SvTYPE(sv)) { SHARED_CONTEXT; sv_upgrade(ssv, SvTYPE(*psv)); + if (SvTYPE(ssv) == SVt_PVAV) /* #24061 */ + AvREAL_on(ssv); CALLER_CONTEXT; } @@ -600,9 +618,12 @@ sharedsv_elem_mg_DELETE(pTHX_ SV *sv, MAGIC *mg) { dTHXc; + MAGIC *shmg; shared_sv *shared = SV_to_sharedsv(aTHX_ mg->mg_obj); ENTER_LOCK; sharedsv_elem_mg_FETCH(aTHX_ sv, mg); + if ((shmg = mg_find(sv, PERL_MAGIC_shared_scalar))) + sharedsv_scalar_mg_get(aTHX_ sv, shmg); if (SvTYPE(SHAREDSvPTR(shared)) == SVt_PVAV) { SHARED_CONTEXT; av_delete((AV*) SHAREDSvPTR(shared), mg->mg_len, G_DISCARD); diff -ruN perl-5.8.1/ext/threads/t/thread.t AP807_source/ext/threads/t/thread.t --- perl-5.8.1/ext/threads/t/thread.t Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/threads/t/thread.t Thu Nov 6 16:06:58 2003 @@ -12,7 +12,7 @@ use ExtUtils::testlib; use strict; -BEGIN { $| = 1; print "1..25\n" }; +BEGIN { $| = 1; print "1..26\n" }; use threads; use threads::shared; @@ -153,5 +153,10 @@ ok((keys %rand == 25), "Check that rand works after a new thread"); } +# bugid #24165 + +run_perl(prog => + 'use threads; sub a{threads->new(shift)} $t = a sub{}; $t->tid; $t->join; $t->tid'); +is($?, 0, 'coredump in global destruction'); diff -ruN perl-5.8.1/ext/threads/threads.pm AP807_source/ext/threads/threads.pm --- perl-5.8.1/ext/threads/threads.pm Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/threads/threads.pm Thu Nov 6 16:06:58 2003 @@ -31,8 +31,6 @@ '==' => \&equal, 'fallback' => 1; -#use threads::Shared; - BEGIN { warn "Warning, threads::shared has already been loaded. ". "To enable shared variables for these modules 'use threads' ". @@ -55,15 +53,11 @@ our $VERSION = '1.00'; -sub equal { - return 1 if($_[0]->tid() == $_[1]->tid()); - return 0; -} +# || 0 to ensure compatibility with previous versions +sub equal { ($_[0]->tid == $_[1]->tid) || 0 } -sub async (&;@) { - my $cref = shift; - return threads->new($cref,@_); -} +# use "goto" trick to avoid pad problems from 5.8.1, should also be faster +sub async (&;@) { unshift @_,'threads'; goto &new } sub object { return undef unless @_ > 1; diff -ruN perl-5.8.1/ext/util/make_ext AP807_source/ext/util/make_ext --- perl-5.8.1/ext/util/make_ext Thu Nov 6 16:08:46 2003 +++ AP807_source/ext/util/make_ext Thu Nov 6 16:06:58 2003 @@ -92,7 +92,12 @@ dynamic) makeargs="LINKTYPE=dynamic"; target=all ;; -static) makeargs="LINKTYPE=static CCCDLFLAGS=" +static) case "$mname" in + # For Apache, DynaLoader needs the CCCDLFLAGS variable + # (+z/+Z/-fpic/-fPIC) to stick around + *DynaLoader*) makeargs="LINKTYPE=static" ;; + *) makeargs="LINKTYPE=static CCCDLFLAGS=" ;; + esac target=all ;; static_pic) makeargs="LINKTYPE=static" diff -ruN perl-5.8.1/hints/aix.sh AP807_source/hints/aix.sh --- perl-5.8.1/hints/aix.sh Thu Nov 6 16:08:46 2003 +++ AP807_source/hints/aix.sh Thu Nov 6 16:06:59 2003 @@ -213,6 +213,28 @@ # the required -bE:$installarchlib/CORE/perl.exp is added by # libperl.U (Configure) later. +case "$cc" in +*gcc*) ;; +cc*|xlc*) # cc should've been set by line 116 or so if empty. + if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then + case ":$PATH:" in + *:/usr/vac/bin:*) ;; + *) cat <&1 | grep gcc`" = X; then # Cify libswanted. - set `echo X "$libswanted "| sed -e 's/ c / C c /'` + set `echo X "$libswanted "| sed -e 's/ c / C c /'` shift libswanted="$*" # Cify lddlflags. - set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` + set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'` shift lddlflags="$*" fi diff -ruN perl-5.8.1/hints/darwin.sh AP807_source/hints/darwin.sh --- perl-5.8.1/hints/darwin.sh Thu Nov 6 16:08:46 2003 +++ AP807_source/hints/darwin.sh Thu Nov 6 16:06:59 2003 @@ -13,6 +13,12 @@ perl_subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h` version="${perl_revision}.${perl_version}.${perl_subversion}" +# Pretend that Darwin doesn't know about those system calls [perl #24122] +d_setregid='undef' +d_setreuid='undef' +d_setrgid='undef' +d_setruid='undef' + # This was previously used in all but causes three cases # (no -Ddprefix=, -Dprefix=/usr, -Dprefix=/some/thing/else) # but that caused too much grief. diff -ruN perl-5.8.1/hints/hpux.sh AP807_source/hints/hpux.sh --- perl-5.8.1/hints/hpux.sh Thu Nov 6 16:08:46 2003 +++ AP807_source/hints/hpux.sh Thu Nov 6 16:06:59 2003 @@ -5,6 +5,7 @@ # Determine the architecture type of this system. # Keep leading tab below -- Configure Black Magic -- RAM, 03/02/97 xxOsRevMajor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f1`; +if [ "X$archname" = "X" ]; then if [ "$xxOsRevMajor" -ge 10 ]; then # This system is running >= 10.x @@ -30,14 +31,15 @@ archname=`getcontext | tr ' ' '\012' | grep -v '[a-z]' | grep -v MC688 | sed -e 's/HP-//' -e 1q`; selecttype='int *' - fi +fi +fi # For some strange reason, the u32align test from Configure hangs in # HP-UX 10.20 since the December 2001 patches. So hint it to avoid # the test. if [ "$xxOsRevMajor" -le 10 ]; then d_u32align=$define - fi +fi echo "Archname is $archname" @@ -97,7 +99,7 @@ PA-RISC*) case "$ccflags" in *-mpa-risc*) ;; - *) ccflags="$ccflags -mpa-risc-2-0" ;; +# *) ccflags="$ccflags -mpa-risc-2-0" ;; esac ;; esac @@ -151,7 +153,11 @@ esac # When HP-UX runs a script with "#!", it sets argv[0] to the script name. +case "$toke_cflags" in +'') toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' + ;; +esac ### 64 BITNESS @@ -278,7 +284,10 @@ libc='/lib/libc.sl' ;; IA64*) loclibpth="$loclibpth /usr/lib/hpux32" - libc='/usr/lib/hpux32/libc.so' ;; + libc='/usr/lib/hpux32/libc.so' + # no odbm libs + i_dbm=$undef + ;; esac ;; esac @@ -338,14 +347,17 @@ $define|true|[Yy]) case "$optimize" in - "") optimize="-g -O" ;; + "") optimize="-O" ;; *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; esac - #ld="$cc" - ld=/usr/bin/ld + ld="$cc" + #ld=/usr/bin/ld cccdlflags='-fPIC' - #lddlflags='-shared' - lddlflags='-b' + lddlflags='-shared -static-libgcc -fPIC' + case "$ccflags" in + *-mlp64*) lddlflags="$lddlflags -mlp64" ;; + esac + #lddlflags='-b' case "$optimize" in *-g*-O*|*-O*-g*) # gcc without gas will not accept -g @@ -396,6 +408,25 @@ ;; esac +# -lc should be at the end, if present (cc wrappers always add it). +# If $ld is the same as $cc, we remove libc from $libswanted, as cc +# will normally add it to the end of the libs list. If that isn't +# the case, we need to move libc to the end of $libswanted. +case "$ld" in +"$cc") + set `echo " $libswanted " | sed -e 's@ c @ @'` + libswanted="$*" + ;; +*) + case " $libswanted " in + *" c "*) + set `echo " $libswanted " | sed -e 's@ c @ @'` + libswanted="$* c " + ;; + esac + ;; +esac + ## LARGEFILES #case "$uselargefiles-$ccisgcc" in @@ -595,9 +626,17 @@ else # 12 may want upping the _POSIX_C_SOURCE datestamp... ccflags=" -D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags" - set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` - shift - libswanted="$*" + case "$libswanted " in + *" pthread "*) ;; + *" c "*) + set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` + shift + libswanted="$*" + ;; + *) + libswanted="$libswanted pthread " + ;; + esac fi ;; @@ -607,7 +646,7 @@ # The mysterious io_xs memory corruption in 11.00 32bit seems to get # fixed by not using Perl's malloc. Flip side is performance loss. # So we want mymalloc for all situations possible -usemymalloc='y' +usemymalloc='n' case "$usethreads" in $define|true|[yY]*) usemymalloc='n' ;; *) case "$ccisgcc" in @@ -627,7 +666,7 @@ usemymalloc='n' case "$useperlio" in - $undef|false|[nN]*) usemymalloc='y' ;; + $undef|false|[nN]*) usemymalloc='n' ;; esac # fpclassify() is a macro, the library call is Fpclassify diff -ruN perl-5.8.1/hints/powerux.sh AP807_source/hints/powerux.sh --- perl-5.8.1/hints/powerux.sh Thu Nov 6 16:08:47 2003 +++ AP807_source/hints/powerux.sh Thu Nov 6 16:06:59 2003 @@ -52,11 +52,11 @@ # of perl (there are probably more of these that might be useful, but # for the extensions I build, this turned out to be enough). The -uldexp # makes sure the custom ldexp.o I add to archobjs actually gets pulled -# into perl from libperl.a +# into perl from libperl.a. The -unanosleep makes Timer::HiRes happy. # cc='/usr/ccs/bin/ec' cccdlflags='-Zpic' -ccdlflags='-Zlink=dynamic -Wl,-usys_nerr -Wl,-uldexp -Wl,-Bexport' +ccdlflags='-Zlink=dynamic -Wl,-usys_nerr -Wl,-uldexp -Wl,-unanosleep -Wl,-Bexport' lddlflags='-Zlink=so' # Sigh... Various versions of Power MAX went out with a broken ldexp runtime diff -ruN perl-5.8.1/hints/solaris_2.sh AP807_source/hints/solaris_2.sh --- perl-5.8.1/hints/solaris_2.sh Thu Nov 6 16:08:47 2003 +++ AP807_source/hints/solaris_2.sh Thu Nov 6 16:06:59 2003 @@ -334,20 +334,6 @@ fi fi -# Check to see if the selected compiler and linker -# support the -z ignore, -z lazyload and -z combreloc flags. -echo "int main() { return(0); } " > try.c - zflgs='' -for zf in ignore lazyload combreloc; do - if ${cc:-cc} -o try try.c -z $zf > /dev/null 2>&1; then - zflgs="$zflgs -z $zf" - fi -done -if test -n "$zflgs"; then - ccdlflags="$ccdlflags $zflgs" - lddlflags="$lddlflags -G $zflgs" -fi - # as --version or ld --version might dump core. rm -f try try.c core EOCBU @@ -357,7 +343,9 @@ # after it has prompted the user for whether to use threads. case "$usethreads" in $define|true|[yY]*) - ccflags="-D_REENTRANT $ccflags" + # -D_POSIX_C_SOURCE=199506L doesn't compile with gcc 2.95.2 :-( + #ccflags="-D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags" + ccflags="-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT $ccflags" sched_yield='yield' set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` diff -ruN perl-5.8.1/hints/svr4.sh AP807_source/hints/svr4.sh --- perl-5.8.1/hints/svr4.sh Thu Nov 6 16:08:47 2003 +++ AP807_source/hints/svr4.sh Thu Nov 6 16:06:59 2003 @@ -156,12 +156,14 @@ # libcrypt contains nothing libc wouldn't have. libswanted=`echo " $libswanted " | sed -e 's/ crypt / /'` # With the NCR High Performance C Compiler R3.0c, miniperl fails - # t/op/regexp.t test 461 unless we compile with optimize=-g. + # t/op/regexp.t test 461 unless we compile with optimize=-O0. # Volunteers are needed to determine just which files need special - # treatment. For now, use optimize=-g for everything. + # treatment. For now, use optimize=-O0 for everything. # + d_usleep='undef' + d_ualarm='undef' case "$optimize" in - '') optimize='-g' ;; + '') optimize='-O0' ;; esac fi diff -ruN perl-5.8.1/hv.c AP807_source/hv.c --- perl-5.8.1/hv.c Thu Nov 6 16:08:47 2003 +++ AP807_source/hv.c Thu Nov 6 16:06:59 2003 @@ -859,8 +859,8 @@ xhv->xhv_keys++; /* HvKEYS(hv)++ */ if (i) { /* initial entry? */ xhv->xhv_fill++; /* HvFILL(hv)++ */ - if (xhv->xhv_keys > (IV)xhv->xhv_max /* HvKEYS(hv) > HvMAX(hv) */) - hsplit(hv); + } else if (xhv->xhv_keys > (IV)xhv->xhv_max /* HvKEYS(hv) > HvMAX(hv) */) { + hsplit(hv); } return entry; @@ -2276,7 +2276,7 @@ xhv->xhv_keys++; /* HvKEYS(hv)++ */ if (i) { /* initial entry? */ xhv->xhv_fill++; /* HvFILL(hv)++ */ - if (xhv->xhv_keys > (IV)xhv->xhv_max /* HvKEYS(hv) > HvMAX(hv) */) + } else if (xhv->xhv_keys > (IV)xhv->xhv_max /* HvKEYS(hv) > HvMAX(hv) */) { hsplit(PL_strtab); } } diff -ruN perl-5.8.1/installperl AP807_source/installperl --- perl-5.8.1/installperl Thu Nov 6 16:08:47 2003 +++ AP807_source/installperl Thu Nov 6 16:06:59 2003 @@ -403,7 +403,7 @@ } else { # [als] hard-coded 'libperl' name... not good! - @corefiles = <*.h libperl*.*>; + @corefiles = <*.h *.inc libperl*.*>; # AIX needs perl.exp installed as well. push(@corefiles,'perl.exp') if $^O eq 'aix'; diff -ruN perl-5.8.1/intrpvar.h AP807_source/intrpvar.h --- perl-5.8.1/intrpvar.h Thu Nov 6 16:08:47 2003 +++ AP807_source/intrpvar.h Thu Nov 6 16:06:59 2003 @@ -527,11 +527,14 @@ PERLVAR(Isort_RealCmp, SVCOMPARE_t) +/* Iin_load_module moved here because it was already in build 806 */ +PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ + PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */ PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ -PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ +/* PERLVARI(Iin_load_module, int, 0) */ /* to prevent recursions in PerlIO_find_layer */ PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ @@ -566,4 +569,3 @@ * XSUB.h provides wrapper functions via perlapi.h that make this * irrelevant, but not all code may be expected to #include XSUB.h. */ - diff -ruN perl-5.8.1/iperlsys.h AP807_source/iperlsys.h --- perl-5.8.1/iperlsys.h Thu Nov 6 16:08:47 2003 +++ AP807_source/iperlsys.h Thu Nov 6 16:06:59 2003 @@ -810,7 +810,7 @@ /* Shared memory macros */ #ifdef NETWARE - #define PerlMemShared_malloc(size) \ +#define PerlMemShared_malloc(size) \ (*PL_Mem->pMalloc)(PL_Mem, (size)) #define PerlMemShared_realloc(buf, size) \ (*PL_Mem->pRealloc)(PL_Mem, (buf), (size)) diff -ruN perl-5.8.1/lib/CGI/Carp.pm AP807_source/lib/CGI/Carp.pm --- perl-5.8.1/lib/CGI/Carp.pm Thu Nov 6 16:08:47 2003 +++ AP807_source/lib/CGI/Carp.pm Thu Nov 6 16:07:00 2003 @@ -366,12 +366,16 @@ # The mod_perl package Apache::Registry loads CGI programs by calling -# eval. These evals don't count when looking at the stack backtrace. +# eval, as does PerlEx. These evals don't count when looking at the +# stack backtrace. sub _longmess { my $message = Carp::longmess(); - $message =~ s,eval[^\n]+(ModPerl|Apache)/Registry\w*\.pm.*,,s - if exists $ENV{MOD_PERL}; - return $message; + my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; + $message =~ s,eval[^\n]+((ModPerl|Apache)/Registry\w*\.pm|\s*PerlEx::Precompiler).*,,s + if $mod_perl or $plex; + return $message; } sub ineval { @@ -438,15 +442,17 @@ For help, please send mail to $wm, giving this error message and the time and date of the error. END - ; - my $mod_perl = exists $ENV{MOD_PERL}; + ; + my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; warningsToBrowser(1); # emit warnings before dying if ($CUSTOM_MSG) { if (ref($CUSTOM_MSG) eq 'CODE') { print STDOUT "Content-type: text/html\n\n" - unless $mod_perl; + unless $mod_perl || $plex; &$CUSTOM_MSG($msg); # nicer to perl 5.003 users return; } else { diff -ruN perl-5.8.1/lib/ExtUtils/Install.pm AP807_source/lib/ExtUtils/Install.pm --- perl-5.8.1/lib/ExtUtils/Install.pm Thu Nov 6 16:08:47 2003 +++ AP807_source/lib/ExtUtils/Install.pm Thu Nov 6 16:07:00 2003 @@ -205,7 +205,7 @@ if ($pack{'write'}) { $dir = install_rooted_dir(dirname($pack{'write'})); mkpath($dir,0,0755) unless $nonono; - print "Writing $pack{'write'}\n"; + print "Writing $pack{'write'}\n" if $verbose; $packlist->write(install_rooted_file($pack{'write'})) unless $nonono; } } @@ -370,7 +370,7 @@ } # if not verbose, we just say nothing } else { - print "Unlinking $targetfile (shadowing?)\n"; + print "Unlinking $targetfile (shadowing?)\n" if $verbose; forceunlink($targetfile); } } diff -ruN perl-5.8.1/lib/ExtUtils/MM_Unix.pm AP807_source/lib/ExtUtils/MM_Unix.pm --- perl-5.8.1/lib/ExtUtils/MM_Unix.pm Thu Nov 6 16:08:47 2003 +++ AP807_source/lib/ExtUtils/MM_Unix.pm Thu Nov 6 16:07:00 2003 @@ -1612,7 +1612,7 @@ my($ispod)=0; if (open(FH,"<$name")) { while () { - if (/^=head1\s+\w+/) { + if (/^=\w/) { $ispod=1; last; } @@ -3357,7 +3357,14 @@ } - $ppd_xml .= sprintf <<'PPD_OUT', $Config{archname}; + + my $archname = $Config{archname}; + if ($^V ge v5.8) { +# archname did not change from 5.6 to 5.8, but those versions may not be not binary compatible +# so now we append the part of the version that changes when binary compatibility may change + $archname .= "-". substr($Config{version},0,3); + } + $ppd_xml .= sprintf <<'PPD_OUT', $archname; PPD_OUT diff -ruN perl-5.8.1/lib/ExtUtils/t/basic.t AP807_source/lib/ExtUtils/t/basic.t --- perl-5.8.1/lib/ExtUtils/t/basic.t Thu Nov 6 16:08:47 2003 +++ AP807_source/lib/ExtUtils/t/basic.t Thu Nov 6 16:07:00 2003 @@ -96,7 +96,13 @@ ' ' ); like( $ppd_html, qr{^\s*}m, ' ' ); -like( $ppd_html, qr{^\s*}m, +my $archname = $Config{archname}; +if ($^V ge v5.8) { +# archname did not change from 5.6 to 5.8, but those versions may not be not binary compatible +# so now we append the part of the version that changes when binary compatibility may change + $archname .= "-". substr($Config{version},0,3); +} +like( $ppd_html, qr{^\s*}m, ' '); like( $ppd_html, qr{^\s*}m, ' '); like( $ppd_html, qr{^\s*}m, ' '); @@ -118,7 +124,7 @@ diag $test_out; -my $install_out = run("$make install"); +my $install_out = run("$make install VERBINST=1"); is( $?, 0, 'install' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -138,7 +144,7 @@ SKIP: { skip "VMS install targets do not preserve $(PREFIX)", 8 if $Is_VMS; - $install_out = run("$make install PREFIX=elsewhere"); + $install_out = run("$make install VERBINST=1 PREFIX=elsewhere"); is( $?, 0, 'install with PREFIX override' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -157,7 +163,7 @@ SKIP: { skip "VMS install targets do not preserve $(DESTDIR)", 10 if $Is_VMS; - $install_out = run("$make install PREFIX= DESTDIR=other"); + $install_out = run("$make install VERBINST=1 PREFIX= DESTDIR=other"); is( $?, 0, 'install with DESTDIR' ) || diag $install_out; like( $install_out, qr/^Installing /m ); @@ -197,7 +203,