diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-03-01 06:34:43 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-03-01 06:34:43 +0000 |
commit | 414a664e2b5f79af383cffac00205f7570368407 (patch) | |
tree | 3b8d782082585103ec40921b6fd0633d6dc0fb9b | |
parent | ca8cfa5475011a74e81458daa0cc5b23c374bc3a (diff) | |
parent | f3af6f93e0af75505d1e3ad6c2236ce64075726d (diff) | |
download | perl-414a664e2b5f79af383cffac00205f7570368407.tar.gz |
Integrate from mainperl.
p4raw-id: //depot/cfgperl@3047
-rw-r--r-- | Changes | 567 | ||||
-rw-r--r-- | INSTALL | 7 | ||||
-rw-r--r-- | MAINTAIN | 1 | ||||
-rw-r--r-- | MANIFEST | 2 | ||||
-rw-r--r-- | README.hpux | 193 | ||||
-rw-r--r-- | jpl/JNI/JNI.xs | 1 | ||||
-rw-r--r-- | lib/File/Compare.pm | 69 | ||||
-rw-r--r-- | lib/File/Spec.pm | 31 | ||||
-rw-r--r-- | lib/File/Spec/Functions.pm | 83 | ||||
-rw-r--r-- | lib/Getopt/Std.pm | 5 | ||||
-rw-r--r-- | lib/Pod/Html.pm | 2 | ||||
-rw-r--r-- | lib/Test/Harness.pm | 6 | ||||
-rw-r--r-- | op.c | 34 | ||||
-rw-r--r-- | patchlevel.h | 2 | ||||
-rw-r--r-- | perl.c | 3 | ||||
-rw-r--r-- | pod/perldelta.pod | 22 | ||||
-rw-r--r-- | pod/perlhist.pod | 1 | ||||
-rw-r--r-- | pod/perltodo.pod | 17 | ||||
-rw-r--r-- | pod/perlvar.pod | 48 | ||||
-rw-r--r-- | pod/pod2man.PL | 4 | ||||
-rw-r--r-- | proto.h | 2 | ||||
-rwxr-xr-x | t/base/lex.t | 67 | ||||
-rwxr-xr-x | t/op/eval.t | 52 | ||||
-rw-r--r-- | toke.c | 23 | ||||
-rw-r--r-- | win32/Makefile | 2 | ||||
-rw-r--r-- | win32/config_H.bc | 16 | ||||
-rw-r--r-- | win32/config_H.gc | 16 | ||||
-rw-r--r-- | win32/config_H.vc | 16 | ||||
-rw-r--r-- | win32/makefile.mk | 2 | ||||
-rw-r--r-- | win32/win32.c | 27 |
30 files changed, 1212 insertions, 109 deletions
@@ -75,7 +75,572 @@ indicator: ---------------- -Version 5.005_55 Development release working toward 5.006 +Version 5.005_56 Development release working toward 5.006 +---------------- + +____________________________________________________________________________ +[ 3045] By: gsar on 1999/03/01 03:32:30 + Log: destroy PL_svref_mutex in perl_destruct() + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 3044] By: gsar on 1999/03/01 00:38:50 + Log: up patchlevel &c. + Branch: perl + ! Changes patchlevel.h pod/perlhist.pod win32/Makefile + ! win32/config_H.bc win32/config_H.gc win32/config_H.vc + ! win32/makefile.mk +____________________________________________________________________________ +[ 3043] By: gsar on 1999/03/01 00:14:15 + Log: integrate cfgperl contents into mainline + Branch: perl + ! pod/perldelta.pod + !> Configure config_h.SH +____________________________________________________________________________ +[ 3042] By: gsar on 1999/02/28 23:55:08 + Log: slightly edited version of suggested patch + From: jan.dubois@ibm.net (Jan Dubois) + Date: Mon, 01 Mar 1999 00:32:05 +0100 + Message-ID: <36dbcf2c.12325433@smtp1.ibm.net> + Subject: Re: [PATCH 5.005_55] Cleanup of File::Spec module + Branch: perl + + lib/File/Spec/Functions.pm + ! MANIFEST lib/File/Spec.pm +____________________________________________________________________________ +[ 3041] By: gsar on 1999/02/28 22:47:19 + Log: fix subtle bug in eval'' testsuite + Branch: perl + ! t/op/eval.t +____________________________________________________________________________ +[ 3040] By: gsar on 1999/02/28 22:46:24 + Log: avoid literal control characters in change#3039 + Branch: perl + ! t/base/lex.t +____________________________________________________________________________ +[ 3039] By: gsar on 1999/02/28 21:47:18 + Log: todo item: permit extended control variables a la ${^Foo} (patch + courtesy Mark-Jason Dominus <mjd@plover.com>) + Branch: perl + ! op.c pod/perldelta.pod pod/perltodo.pod pod/perlvar.pod + ! t/base/lex.t toke.c +____________________________________________________________________________ +[ 3038] By: gsar on 1999/02/28 21:21:05 + Log: From: abigail@fnx.com + Date: Sun, 28 Feb 1999 10:59:16 -0500 (EST) + Message-ID: <19990228155916.14496.qmail@alexandra.wayne.fnx.com> + Subject: Recognize -> and => inside [A-Z]<> sequences. + Branch: perl + ! pod/pod2man.PL +____________________________________________________________________________ +[ 3037] By: gsar on 1999/02/28 21:12:22 + Log: fix longstanding bug: searches for lexicals originating within eval'' + weren't stopping at the subroutine boundary correctly + Branch: perl + ! op.c proto.h t/op/eval.t +____________________________________________________________________________ +[ 3036] By: gsar on 1999/02/28 20:02:29 + Log: revert parts of change#2990 to preserve predictable usage of Win32::Foo() + as stacked list values + From: jan.dubois@ibm.net (Jan Dubois) + Date: Sat, 27 Feb 1999 18:24:17 +0100 + Message-ID: <36e22849.36531259@smtp1.ibm.net> + Subject: Re: resend [PATCH 5.005_55] Various win32/win32.c cleanup + Branch: perl + ! win32/win32.c +____________________________________________________________________________ +[ 3035] By: gsar on 1999/02/28 19:48:54 + Log: remove superfluous stack_sp decl + Branch: perl + ! jpl/JNI/JNI.xs +____________________________________________________________________________ +[ 3034] By: gsar on 1999/02/28 19:34:58 + Log: s/print STDERR/warn/ suggested by abigail@fnx.com; add $VERSION + Branch: perl + ! lib/Getopt/Std.pm +____________________________________________________________________________ +[ 3033] By: gsar on 1999/02/28 19:23:41 + Log: add File::Compare::compare_text() + From: jan.dubois@ibm.net (Jan Dubois) + Date: Fri, 26 Feb 1999 00:20:41 +0100 + Message-ID: <36dcd8ab.20195659@smtp1.ibm.net> + Subject: Re: PodParser 1.07 (was: RE: C<stuff()> vs stuff()) + Branch: perl + ! lib/File/Compare.pm pod/perltodo.pod +____________________________________________________________________________ +[ 3032] By: gsar on 1999/02/28 19:01:33 + Log: add README.hpux + Branch: perl + + README.hpux + ! MAINTAIN MANIFEST +____________________________________________________________________________ +[ 3031] By: gsar on 1999/02/28 18:49:08 + Log: avoid escaping & et al multiple times (variant of fix suggested by + James Cromie <jcromie@fossil.uswc.uswest.com> + Branch: perl + ! lib/Pod/Html.pm +____________________________________________________________________________ +[ 3030] By: gsar on 1999/02/28 18:35:09 + Log: From: jan.dubois@ibm.net (Jan Dubois) + Date: Wed, 24 Feb 1999 22:34:56 +0100 + Message-ID: <36d86f1e.11495549@smtp1.ibm.net> + Subject: [PATCH 5.005_55] Test::Harness setting $ENV{HARNESS_ACTIVE} + Branch: perl + ! lib/Test/Harness.pm +____________________________________________________________________________ +[ 3029] By: gsar on 1999/02/28 18:28:18 + Log: add note about env pollution + Branch: perl + ! INSTALL pod/perltodo.pod +____________________________________________________________________________ +[ 3028] By: jhi on 1999/02/26 14:40:00 + Log: HP-UX 11 threads. + + From: Jeff Okamoto <okamoto@xfiles.intercon.hp.com> + To: perl5-porters@perl.org + Cc: jhi@cc.hut.fi + Subject: Maint 5 and _54 with threading on HP-UX 11.00 + Date: Wed, 3 Feb 1999 12:57:18 -0800 (PST) + Message-Id: <199902032057.MAA10218@xfiles.intercon.hp.com> + + NOTE from jhi: the hpux hints could still be more robust by + disabling gdbm when necessary. + + Currently if there's a libgdbm.sl (gdbm 1.7.3) which is pre-11, + linking -lgdbm -lpthread creates an executable that instantly + core dumps on a pthreads internal panic: + + ./gdpt + + Pthread internal error: message: __libc_reinit() failed, file: ../pthreads/pthread.c, line: 1096 + Return Pointer is 0xc082bf33 + 17639 quit (core dumped) ./gdpt + + You don't have to *use* either gdbm or pthreads in the executable, + just linking them together is enough. Workaround is to recompile + the GDBM under HP-UX 11, that makes the problem go away. + Branch: maint-5.005/perl + ! hints/hpux.sh thread.h +____________________________________________________________________________ +[ 3025] By: jhi on 1999/02/25 20:41:07 + Log: Temporary workaround for the config_h.SH versus + crosscompile and multiarch plus introduce 'rt' + to $libswanted: in UNIX98 sched_yield() lives there. + Branch: cfgperl + ! Configure config_h.SH +____________________________________________________________________________ +[ 3024] By: jhi on 1999/02/24 12:54:59 + Log: Integrate from mainperl. + Branch: cfgperl + +> t/lib/fatal.t + !> (integrate 44 files) +____________________________________________________________________________ +[ 3023] By: gsar on 1999/02/24 07:02:12 + Log: integrate cfgperl contents + Branch: perl + !> (integrate 30 files) +____________________________________________________________________________ +[ 3022] By: gsar on 1999/02/24 05:59:47 + Log: From: Daniel Grisinger <dgris@moiraine.dimensional.com> + Date: 23 Feb 1999 17:53:22 -0700 + Message-ID: <m3g17w62rh.fsf@moiraine.dimensional.com> + Subject: [PATCH: _55] perldoc -q broken + Branch: perl + ! utils/perldoc.PL +____________________________________________________________________________ +[ 3021] By: gsar on 1999/02/24 05:51:53 + Log: ansify perlio.c, fix PerlIO-ish typos + Branch: perl + ! ext/DynaLoader/dl_beos.xs ext/DynaLoader/dl_cygwin32.xs + ! iperlsys.h perlio.c +____________________________________________________________________________ +[ 3020] By: gsar on 1999/02/24 05:28:06 + Log: adjust a Perl_malloc() flag for NeXT + From: Hans Mulder <hansm@icgned.icgroup.nl> + Date: Tue, 23 Feb 99 00:26:25 +0100 + Message-Id: <9902222329.AA17516@icgned.icgroup.nl> + Subject: [PATCH for _55] MUTEX_INIT_CALLS_MALLOC no longer necessary + Branch: perl + ! perl.h +____________________________________________________________________________ +[ 3019] By: gsar on 1999/02/24 05:19:42 + Log: perltodo adjustments from Joshua Pritikin <joshua.pritikin@db.com> + Branch: perl + ! pod/perltodo.pod +____________________________________________________________________________ +[ 3018] By: gsar on 1999/02/24 04:15:18 + Log: From: Joshua Pritikin <joshua.pritikin@db.com> + Date: Mon, 22 Feb 1999 11:29:09 -0500 (EST) + Message-ID: <Pine.GSO.4.02.9902221128200.500-100000@eq1062.wks.na.deuba.com> + Subject: improved error message [PATCH _55] [RESEND] + Branch: perl + ! sv.c +____________________________________________________________________________ +[ 3017] By: gsar on 1999/02/24 03:50:34 + Log: From: Tom Christiansen <tchrist@jhereg.perl.com> + Date: Sun, 21 Feb 1999 20:02:18 -0700 + Message-Id: <199902220302.UAA09981@jhereg.perl.com> + Subject: perlfunc updates (against 55) + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 3016] By: gsar on 1999/02/24 03:17:05 + Log: testsuite adjustments + From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk> + Date: Sat, 20 Feb 1999 15:24:57 +0000 + Message-Id: <E10EEH3-0003Wf-00@taurus.cus.cam.ac.uk> + Subject: Not quite OK: perl5.005_55 on SunOS 4.1.3 / gcc + Branch: perl + ! t/lib/io_sock.t t/op/lex_assign.t +____________________________________________________________________________ +[ 3015] By: gsar on 1999/02/24 02:54:47 + Log: avoid modifying readonly values from qw() + Branch: perl + ! lib/ExtUtils/MM_Unix.pm +____________________________________________________________________________ +[ 3014] By: gsar on 1999/02/24 02:49:04 + Log: more "correct" utbuf for utime() + Branch: perl + ! doio.c +____________________________________________________________________________ +[ 3013] By: jhi on 1999/02/22 19:27:44 + Log: Fix MacPerl version, change PowerUX to PowerMAX. + + From: Chris Nandor <pudge@pobox.com> + To: jhi@iki.fi + Cc: perl5-porters@perl.org + Subject: Re: perl current availability as documented by perl.pod + Date: Sun, 21 Feb 1999 11:06:03 -0500 + Message-Id: <v04020a07b2f5df60c9e3@[192.168.0.77]> + + From: Tom Horsley <Tom.Horsley@mail.ccur.com> + To: jhi@iki.fi + Cc: perl5-porters@perl.org + Subject: Re: perl current availability as documented by perl.pod + Date: Mon, 22 Feb 1999 13:08:30 GMT + Message-Id: <199902221308.NAA19971@cleo.ccur.com> + Branch: cfgperl + ! pod/perl.pod + Branch: maint-5.005/perl + ! pod/perl.pod +____________________________________________________________________________ +[ 3012] By: jhi on 1999/02/22 10:26:11 + Log: Snapshot the cross-compilation/multiarchitecture stuff + (currently broken in next) + Branch: cfgperl + ! Configure config_h.SH pp.c +____________________________________________________________________________ +[ 3011] By: jhi on 1999/02/22 10:24:51 + Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess) + To: gsar@activestate.com (Gurusamy Sarathy) + Cc: perl5-porters@perl.org (Perl5 Porters) + Subject: [PATCH 5.005_55] DB_File 1.64 patch + Date: Mon, 22 Feb 1999 10:07:00 +0000 (GMT) + Message-Id: <9902221007.AA17751@claudius.bfsec.bt.co.uk> + Branch: cfgperl + ! ext/DB_File/Changes ext/DB_File/DB_File.pm + ! ext/DB_File/DB_File.xs ext/DB_File/typemap t/lib/db-recno.t +____________________________________________________________________________ +[ 3009] By: jhi on 1999/02/22 09:14:26 + Log: Scratch #3008 and introduce $crosscompile and $multiarch + also in non-Configure lands. + Branch: cfgperl + ! Configure config_h.SH hints/next_3.sh hints/next_3_0.sh + ! hints/next_4.sh vms/subconfigure.com win32/config.bc + ! win32/config.gc win32/config.vc win32/config_H.bc + ! win32/config_H.gc win32/config_H.vc +____________________________________________________________________________ +[ 3008] By: jhi on 1999/02/22 08:58:04 + Log: Add -DMULTIARCH (see change #3006). + Branch: cfgperl + ! hints/next_3.sh hints/next_3_0.sh hints/next_4.sh +____________________________________________________________________________ +[ 3007] By: jhi on 1999/02/22 08:54:06 + Log: Undo the references to local{lib,arch} introduced by #3006. + Branch: cfgperl + ! Configure config_h.SH +____________________________________________________________________________ +[ 3006] By: jhi on 1999/02/22 08:43:50 + Log: From: hansm@icgned.icgroup.nl + To: perlbug@perl.com + Subject: Not OK: perl 5.00555 on OPENSTEP-Mach-thread 4_2 (UNINSTALLED) + Date: Sun, 21 Feb 1999 22:58:55 +0100 + Reply-To: hansmu@xs4all.nl + Message-Id: <9902212201.AA13386@icgned.icgroup.nl> + + plus other Configure changes: prepare for cross-compilation/ + multiarchitecture builds. + Branch: cfgperl + ! Configure config_h.SH +____________________________________________________________________________ +[ 3005] By: jhi on 1999/02/22 08:35:30 + Log: Configure/Perl knew how to look for use Mach cthreads + but Configure didn't let them to be used ($osname 'next'). + Branch: cfgperl + ! Configure config_h.SH + Branch: maint-5.005/perl + ! Configure +____________________________________________________________________________ +[ 3004] By: jhi on 1999/02/21 15:46:02 + Log: Update Acorn AVAILABILITY. + Branch: cfgperl + ! pod/perl.pod + Branch: maint-5.005/perl + ! pod/perl.pod +____________________________________________________________________________ +[ 3003] By: jhi on 1999/02/21 14:50:42 + Log: From: rjk@linguist.dartmouth.edu (Ronald J. Kimball) + To: perl5-porters@perl.org (Perl 5 Porters) + Subject: PATCH: perlref.pod - symbolic ref example + Date: Sat, 20 Feb 1999 17:32:11 -0500 (EST) + Message-Id: <199902202232.RAA62306@linguist.dartmouth.edu> + Branch: cfgperl + ! pod/perlref.pod + Branch: maint-5.005/perl + ! pod/perlref.pod +____________________________________________________________________________ +[ 3002] By: jhi on 1999/02/21 14:35:22 + Log: Sync cfgperl with maint-5.005 change #3000. + Branch: cfgperl + ! pod/perlfunc.pod t/op/pack.t +____________________________________________________________________________ +[ 2999] By: gsar on 1999/02/20 22:48:30 + Log: From: John Bley <jbb6@acpub.duke.edu> + Date: Sat, 20 Feb 1999 16:02:34 EST + Message-Id: <Pine.SOL.3.91.990220155832.9913A-100000@soc11.acpub.duke.edu> + Subject: [PATCH]5.005_55 (CORE) Sparse intializer in regcomp.c + Branch: perl + ! regcomp.c +____________________________________________________________________________ +[ 2998] By: jhi on 1999/02/20 14:13:06 + Log: Enhanced the endianness description. + Branch: cfgperl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 2996] By: jhi on 1999/02/20 13:55:41 + Log: Glossary now mostly fixed. + Branch: cfgperl + ! Configure Porting/Glossary Porting/config.sh Porting/config_H + ! config_h.SH +____________________________________________________________________________ +[ 2994] By: jhi on 1999/02/20 11:58:33 + Log: Perldeltify GNU/Hurd. + Branch: cfgperl + ! pod/perldelta.pod +____________________________________________________________________________ +[ 2993] By: gsar on 1999/02/20 00:59:10 + Log: fix typo in Perl_sbrk() + From: hansm@icgned.icgroup.nl + Date: Fri, 19 Feb 1999 23:19:31 +0100 + Message-Id: <9902192221.AA07213@icgned.icgroup.nl> + Subject: Not OK: perl 5.00555 on OPENSTEP-Mach 4_2 (UNINSTALLED) + Branch: perl + ! malloc.c +____________________________________________________________________________ +[ 2992] By: gsar on 1999/02/20 00:51:08 + Log: integrate change#2980 from maint-5.005 + Branch: perl + !> utils/h2xs.PL +____________________________________________________________________________ +[ 2991] By: gsar on 1999/02/20 00:34:01 + Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk> + Date: Thu, 18 Feb 1999 18:51:38 +0000 + Message-Id: <199902181851.SAA14018@crypt.compulink.co.uk> + Subject: [PATCH 5.005_55] test failures with MIME-tools-4.122 and perl 5.005_55 + Branch: perl + ! pp_hot.c t/op/pat.t +____________________________________________________________________________ +[ 2990] By: gsar on 1999/02/20 00:30:48 + Log: From: jan.dubois@ibm.net (Jan Dubois) + Date: Thu, 18 Feb 1999 19:14:07 +0100 + Message-ID: <36d15809.40853323@smtp1.ibm.net> + Subject: resend [PATCH 5.005_55] Various win32/win32.c cleanup + Branch: perl + ! win32/win32.c +____________________________________________________________________________ +[ 2989] By: gsar on 1999/02/20 00:27:01 + Log: do poll() emulation unless HAS_POLL && I_POLL + Branch: perl + ! ext/IO/poll.h +____________________________________________________________________________ +[ 2988] By: gsar on 1999/02/19 23:52:12 + Log: tweak RE for NaNQ? recognition + Branch: perl + ! t/lib/bigfloatpm.t +____________________________________________________________________________ +[ 2987] By: gsar on 1999/02/19 23:29:59 + Log: mention C<use utf8> and C<use warning> in perldelta + Branch: perl + ! pod/perldelta.pod +____________________________________________________________________________ +[ 2985] By: jhi on 1999/02/19 20:43:19 + Log: pack/unpack better in (network-)short-non-16-bits and + (network-)long-non-32-bits systems such as Cray C90. + Branch: cfgperl + ! perl.h pp.c t/op/pack.t +____________________________________________________________________________ +[ 2984] By: jhi on 1999/02/19 20:38:54 + Log: Regen Configure. + Branch: cfgperl + ! Configure Porting/Glossary Porting/config.sh Porting/config_H + ! perl.c +____________________________________________________________________________ +[ 2982] By: jhi on 1999/02/19 19:51:49 + Log: Configure update: fstatvfs/fstafs/getmntent/hasmntopt were + not probed for and + + From: "Kurt D. Starsinic" <kstar@chapin.edu> + To: Chaim Frenkel <chaimf@pobox.com>, + Russ Allbery <rra@stanford.edu>, + Jarkko Hietaniemi <jhi@iki.fi>, + Gurusamy Sarathy <gsar@activestate.com>, + Graham Barr <gbarr@pobox.com> + Cc: bdensch@ameritech.net, perlbug@perl.com + Subject: [PATCH] Re: Solaris 7 for Intel + Message-ID: <19990219124404.A30182@O2.chapin.edu> + + Glossary is still missing some terms because + mkglossary is misbehaving (change #2981 updated + Glossary manually) + Branch: cfgperl + ! Configure Makefile.SH Porting/Glossary Porting/config.sh + ! Porting/config_H +____________________________________________________________________________ +[ 2980] By: gbarr on 1999/02/19 16:06:53 + Log: Make result of h2xs work when user adds C<use strict> + Branch: maint-5.005/perl + ! utils/h2xs.PL +____________________________________________________________________________ +[ 2979] By: gsar on 1999/02/19 05:24:29 + Log: doc for change#2978 + Branch: perl + ! pod/perlsub.pod +____________________________________________________________________________ +[ 2978] By: gsar on 1999/02/19 05:08:29 + Log: bring '*' prototype closer to how it behaves internally + Branch: perl + + t/lib/fatal.t + ! MANIFEST lib/Fatal.pm op.c t/comp/proto.t +____________________________________________________________________________ +[ 2977] By: gsar on 1999/02/19 02:50:31 + Log: stem leakage of perly.h #defines #ifndef PERL_CORE + Branch: perl + ! perly.h +____________________________________________________________________________ +[ 2975] By: gsar on 1999/02/18 21:41:57 + Log: distinguish eval'' from BEGIN|INIT|END CVs (fixes buggy propagation + of lexical searches in BEGIN|INIT|END) + Branch: perl + ! cop.h cv.h op.c perly.c perly.y pp_ctl.c t/op/misc.t + ! vms/perly_c.vms +____________________________________________________________________________ +[ 2974] By: gsar on 1999/02/18 21:03:06 + Log: missing PERL_POLLUTE_MALLOC + Branch: perl + ! ext/SDBM_File/sdbm/sdbm.h +____________________________________________________________________________ +[ 2973] By: gsar on 1999/02/18 17:10:49 + Log: From: Andy Dougherty <doughera@lafayette.edu> + Date: Wed, 17 Feb 1999 17:22:50 EST + Message-Id: <Pine.GSU.4.05.9902171720490.17243-100000@newton.phys> + Subject: [PATCH 5.005_xx] dotsh.pl triggers new warnings + Branch: perl + ! lib/dotsh.pl +____________________________________________________________________________ +[ 2972] By: gsar on 1999/02/18 17:04:12 + Log: s/#defined/#define/ + Branch: perl + ! ext/Data/Dumper/Dumper.xs +____________________________________________________________________________ +[ 2970] By: gsar on 1999/02/18 03:26:43 + Log: ensure is data malloc()ed by GDBM is free()d (not Perl_mfree()d) + Branch: perl + ! ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs + ! ext/GDBM_File/typemap +____________________________________________________________________________ +[ 2969] By: gsar on 1999/02/17 23:30:47 + Log: correct slurp mode doc + Branch: perl + ! pod/perlfunc.pod pod/perlop.pod +____________________________________________________________________________ +[ 2968] By: jhi on 1999/02/17 23:15:49 + Log: Ultrix hints update. + + From: Spider Boardman <spider@zk3.dec.com> + To: perlbug@perl.com + Subject: Not OK: perl 5.00555 on RISC-ultrix 4.4 (UNINSTALLED) + Date: Tue, 16 Feb 1999 23:04:28 -0500 + Message-Id: <9902170404.AA11036@abyss.zk3.dec.com> + Branch: cfgperl + ! hints/ultrix_4.sh +____________________________________________________________________________ +[ 2966] By: jhi on 1999/02/17 23:09:21 + Log: Change #2965 wiped out some Sarathy's _55 changes. + Now unwiped. + Branch: cfgperl + ! Configure pp.c t/op/pack.t +____________________________________________________________________________ +[ 2965] By: jhi on 1999/02/17 23:00:04 + Log: Configure tweaks. + + Fix the Unixware/SCO uname scan: + + From: Tom Hughes <thh@cyberscience.com> + To: perlbug@perl.com + Subject: Not OK: perl 5.00555 on i386-svr4 [actually Unixware 2.1] (UNINSTALLED) + Date: 17 Feb 1999 15:34:15 +0000 + Message-ID: <yekg185nix4.fsf@elva.cyberscience.com> + + AIX syscalls.exp scan: the syscall might be marked 32, 3264, or 64 + + From: Joe Buehler <jhpb@hekimian.com> + To: perl5-porters@perl.org + Subject: setsid not detected by perl 5.005_02 configure under AIX 4.3 + Date: 12 Feb 1999 11:25:21 -0500 + Message-ID: <yd3lni3613i.fsf@ganymede.hekimian.com> + + Make the pthreads joinable constant scan to output to fd 4, not 2. + Branch: cfgperl + ! Configure +____________________________________________________________________________ +[ 2964] By: gsar on 1999/02/17 21:30:07 + Log: From: Tom Christiansen <tchrist@jhereg.perl.com> + Date: Wed, 17 Feb 1999 06:53:13 -0700 + Message-Id: <199902171353.GAA15682@jhereg.perl.com> + Subject: PATCH: lib/Pod/Functions.pm for perl5.005_55 + Branch: perl + ! lib/Pod/Functions.pm +____________________________________________________________________________ +[ 2963] By: gsar on 1999/02/17 21:18:21 + Log: fix comppad handling for failures in eval 'qr/(?p{...})/' + From: Hugo van der Sanden <hv@crypt.compulink.co.uk> + Date: Wed, 17 Feb 1999 10:06:01 +0000 + Message-Id: <199902171006.KAA10204@crypt.compulink.co.uk> + Subject: Re: [5.005_53] panic: pad_free curpad + Branch: perl + ! regcomp.c regexec.c t/op/misc.t +____________________________________________________________________________ +[ 2962] By: gsar on 1999/02/16 21:26:28 + Log: NaNQ? tweak + Branch: perl + ! t/lib/bigfloatpm.t +____________________________________________________________________________ +[ 2961] By: jhi on 1999/02/16 19:26:38 + Log: Integrate from mainperl. + Branch: cfgperl + !> (integrate 37 files) +____________________________________________________________________________ +[ 2960] By: gsar on 1999/02/16 18:04:29 + Log: undo change#2465 (qw[] is a real list now) + Branch: perl + ! pod/perlop.pod +____________________________________________________________________________ +[ 2959] By: gsar on 1999/02/16 07:09:33 + Log: this was 5.005_55 + Branch: perl + ! Changes + +---------------- +Version 5.005_55 ---------------- ____________________________________________________________________________ @@ -833,6 +833,13 @@ shouldn't do that, but some might.) =over 4 +=item Environment variable clashes + +Configure uses a CONFIG variable that is reported to cause trouble on +ReliantUnix 5.44. If your system sets this variable, you can try +unsetting it before you run Configure. Configure should eventually +be fixed to avoid polluting the namespace of the environment. + =item Running Configure Interactively If Configure runs into trouble, remember that you can always run @@ -53,6 +53,7 @@ README.amiga amiga README.beos beos README.cygwin32 cygwin32 README.dos dos +README.hpux hpux README.lexwarn lexwarn README.mpeix mpeix README.os2 os2 @@ -36,6 +36,7 @@ README.amiga Notes about AmigaOS port README.beos Notes about BeOS port README.cygwin32 Notes about Cygwin32 port README.dos Notes about dos/djgpp port +README.hpux Notes about HP/UX port README.lexwarn Notes about lexical warnings README.mint Notes about Atari MiNT port README.mpeix Notes about MPE/iX port @@ -554,6 +555,7 @@ lib/File/DosGlob.pm Win32 DOS-globbing module lib/File/Find.pm Routines to do a find lib/File/Path.pm Do things like `mkdir -p' and `rm -r' lib/File/Spec.pm portable operations on file names +lib/File/Spec/Functions.pm Function interface to File::Spec object methods lib/File/Spec/Mac.pm portable operations on Mac file names lib/File/Spec/OS2.pm portable operations on OS2 file names lib/File/Spec/Unix.pm portable operations on Unix file names diff --git a/README.hpux b/README.hpux new file mode 100644 index 0000000000..1fda51a76d --- /dev/null +++ b/README.hpux @@ -0,0 +1,193 @@ +If you read this file _as_is_, just ignore the funny characters you +see. It is written in the POD format (see pod/perlpod.pod) which is +specially designed to be readable as is. + +=head1 NAME + +perlhpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems + +=head1 DESCRIPTION + +This document describes various features of HP's Unix operating system (HP-UX) +that will affect how Perl version 5 (hereafter just Perl) is compiled and/or +runs. + +=head2 Compiling Perl 5 on HP-UX + +When compiling Perl, the use of an ANSI C compiler is highly recommended. +The C compiler that ships with all HP-UX systems is a K&R compiler that +should only be used to build new kernels. + +Perl can be compiled with either HP's ANSI C compiler or with gcc. The +former is recommended, as not only can it compile Perl with no difficulty, +but also can take advantage of features listed later that require the use +of HP compiler-specific command-line flags. + +If you decide to use gcc, make sure your installation is recent and complete, +and be sure to read the Perl README file for more gcc-specific details. + +=head2 PA-RISC + +HP's current Unix systems run on its own Precision Architecture (PA-RISC) chip. +HP-UX used to run on the Motorola MC68000 family of chips, but any machine with +this chip in it is quite obsolete and this document will not attempt to address +issues for compiling Perl on the Motorola chipset. + +The most recent version of PA-RISC at the time of this document's last update +is 2.0. + +=head2 PA-RISC 1.0 + +The original version of PA-RISC, HP no longer sells any system with this chip. + +The following systems contain PA-RISC 1.0 chips: + + 600, 635, 645, 800, 808, 815, 822, 825, 832, 834, 835, 840, + 842, 845, 850, 852, 855, 860, 865, 870, 890 + +=head2 PA-RISC 1.1 + +An upgrade to the PA-RISC design, it shipped for many years in many different +system. + +The following systems contain with PA-RISC 1.1 chips: + + 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 743, 745, 747, 750, + 755, 770, 807S, 817S, 827S, 837S, 847S, 857S, 867S, 877S, 887S, 897S, + D200, D210, D220, D230, D250, D260, D310, D320, D330, D350, D360, D400, + E25, E35, E45, E55, F10, F20, F30, G30, G40, G50, G60, G70, H30, H40, + H50, H60, H70, I30, I40, I50, I60, I70, K100, K200, K210, K220, K400, + K410, K420, T500, T520 + + +=head2 PA-RISC 2.0 + +The most recent upgrade to the PA-RISC design, it added support for 64-bit +integer data. + +The following systems contain PA-RISC 2.0 chips: + + D270, D280, D370, D380, K250, K260, K370, K380, K450, K460, K570, K580, + T600, V2200 + +=head2 Portability Between PA-RISC Versions + +An executable compiled on a PA-RISC 2.0 platform will not execute on a +PA-RISC 1.1 platform, even if they are running the same version of HP-UX. +If you are building Perl on a PA-RISC 2.0 platform and want that Perl to +to also run on a PA-RISC 1.1, the compiler flag +DAportable should be used. + +It is no longer possible to compile PA-RISC 1.0 executables on either the +PA-RISC 1.1 and 2.0 platforms. + +=head2 Building Dynamic Extensions on HP-UX + +HP-UX supports dynamically loadable libraries (shared libraries). +Shared libraries end with the suffix .sl. + +Shared libraries created on a platform using a particular PA-RISC version +are not usable on platforms using an earlier PA-RISC version by default. +However, this backwards compatibility may be enabled using the same ++DAportable compiler flag (with the same PA-RISC 1.0 caveat mentioned above). + +To create a shared library, the following steps must be performed: + + 1. Compile source modules with +z or +Z flag to create a .o module + which contains Position-Independent Code (PIC). The linker will + tell you in the next step if +Z was needed. + + 2. Link the shared library using the -b flag. If the code calls + any functions in other system libraries (e.g., libm), it must + be included on this line. + +(Note that these steps are usually handled automatically by the extension's +Makefile). + +If these dependent libraries are not listed at shared library creation +time, you will get fatal "Unresolved symbol" errors at run time when the +library is loaded. + +You may create a shared library that referers to another library, which +may be either an archive library or a shared library. If it is a +shared library, this is called a "dependent library". +The dependent library's name is recorded in the main shared library, +but it is not linked into the shared library. +Instead, it is loaded when the main shared library is loaded. + +If the referred library is an archive library, then it is treated as a +simple collection of .o modules (all of which must contain PIC). These +modules are then linked into the shared library. + +Note that it is okay to create a library which contains a dependent library +that is already linked into perl. + +It is no longer possible to link PA-RISC 1.0 shared libraries. + +=head2 The HP ANSI C Compiler + +When using this compiler to build Perl, you should make sure that +the flag -Aa is added to the cpprun and cppstdin variables in the +config.sh file. + +=head2 Using Large Files with Perl + +Beginning with HP-UX version 10.10, files larger than 2GB (2^31) may be +created and manipulated. +Three separate methods of doing this are available. +The best method is to compile Perl using the -D_FILE_OFFSET_BITS=64 +compiler flag. +This causes Perl to be compiled using structures and functions in which +these are 64 bits wide, rather than 32 bits wide. + +There are only two drawbacks to this approach: +the first is that the seek and tell functions (both the builtin version +and the POSIX module's version) will not correctly +function for these large files +(POSIX declared the offset arguments in seek and tell as being of type long). +The second is that any extension which calls any file-manipulating C function +will need to be recompiled. + +=head2 Threaded Perl + +It is impossible to compile a version of threaded Perl on any version of +HP-UX before 10.30, and it is strongly suggested that you be running on +HP-UX 11.00 at least. + +To compile Perl with thread, add -Dusethreads to the arguments of Configure. +Ensure that the -D_POSIX_C_SOURCE=199506L compiler flag is automatically +added to the list of flags. Also make sure that -lpthread is listed before +-lc in the list of libraries to link Perl with. + +As of the date of this document, Perl threads are not fully supported on HP-UX. + +=head2 64-bit Perl + +Beginning with HP-UX 11.00, programs compiled under HP-UX can take advantage +of the LP64 programming environment (LP64 means Longs and Pointers are 64 bits +wide). + +Work is being performed on Perl to make it 64-bit compliant on all versions +of Unix. Once this is complete, scalar variables will be able to hold +numbers larger than 2^32 with complete precision. + +As of the date of this document, Perl is not 64-bit compliant on HP-UX. + +Should a user wish to experiment with compiling Perl in the LP64 environment, +the following steps must be taken: libraries must be searched only within +/lib/pa20_64, the compiler flag +DD64 must be used, and the C library is +now located at /lib/pa20_64/libc.sl. + +On the brighter side, the large file problem goes away, as longs are now +64 bits wide. + +=head1 AUTHOR + +Jeff Okamoto <okamoto@corp.hp.com> + +With much assistance regarding shared libraries from Marc Sabatella. + +=head1 DATE + +Version 0.1: 1999/2/22 + +=cut diff --git a/jpl/JNI/JNI.xs b/jpl/JNI/JNI.xs index 10eb2cf4ab..080e10f60c 100644 --- a/jpl/JNI/JNI.xs +++ b/jpl/JNI/JNI.xs @@ -12,7 +12,6 @@ #include <jni.h> #include <dlfcn.h> -extern SV** stack_sp; extern JNIEnv* jplcurenv; extern int jpldebug; diff --git a/lib/File/Compare.pm b/lib/File/Compare.pm index 2f9c45c4c6..0ee84bdba5 100644 --- a/lib/File/Compare.pm +++ b/lib/File/Compare.pm @@ -6,10 +6,10 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $Too_Big *FROM *TO); require Exporter; use Carp; -$VERSION = '1.1001'; +$VERSION = '1.1002'; @ISA = qw(Exporter); @EXPORT = qw(compare); -@EXPORT_OK = qw(cmp); +@EXPORT_OK = qw(cmp compare_text); $Too_Big = 1024 * 1024 * 2; @@ -22,13 +22,11 @@ sub compare { croak("Usage: compare( file1, file2 [, buffersize]) ") unless(@_ == 2 || @_ == 3); - my $from = shift; - my $to = shift; - my $closefrom=0; - my $closeto=0; - my ($size, $fromsize, $status, $fr, $tr, $fbuf, $tbuf); - local(*FROM, *TO); - local($\) = ''; + my ($from,$to,$size) = @_; + my $text_mode = defined($size) && $size < 0; + + my ($fromsize,$closefrom,$closeto); + local (*FROM, *TO); croak("from undefined") unless (defined $from); croak("to undefined") unless (defined $to); @@ -40,9 +38,11 @@ sub compare { *FROM = $from; } else { open(FROM,"<$from") or goto fail_open1; - binmode FROM; + unless ($text_mode) { + binmode FROM; + $fromsize = -s FROM; + } $closefrom = 1; - $fromsize = -s FROM; } if (ref($to) && @@ -52,32 +52,41 @@ sub compare { *TO = $to; } else { open(TO,"<$to") or goto fail_open2; - binmode TO; + binmode TO unless $text_mode; $closeto = 1; } - if ($closefrom && $closeto) { + if (!$text_mode && $closefrom && $closeto) { # If both are opened files we know they differ if their size differ goto fail_inner if $fromsize != -s TO; } - if (@_) { - $size = shift(@_) + 0; - croak("Bad buffer size for compare: $size\n") unless ($size > 0); - } else { - $size = $fromsize; - $size = 1024 if ($size < 512); - $size = $Too_Big if ($size > $Too_Big); + if ($text_mode) { + local $/ = "\n"; + my ($fline,$tline); + while (defined($fline = <FROM>)) { + unless (defined($tline = <TO>) && $fline eq $tline) { + goto fail_inner; + } + } + goto fail_inner if defined($tline = <TO>); } + else { + unless (defined($size) && $size > 0) { + $size = $fromsize; + $size = 1024 if $size < 512; + $size = $Too_Big if $size > $Too_Big; + } - $fbuf = ''; - $tbuf = ''; - while(defined($fr = read(FROM,$fbuf,$size)) && $fr > 0) { - unless (defined($tr = read(TO,$tbuf,$fr)) and $tbuf eq $fbuf) { - goto fail_inner; + my ($fr,$tr,$fbuf,$tbuf); + $fbuf = $tbuf = ''; + while(defined($fr = read(FROM,$fbuf,$size)) && $fr > 0) { + unless (defined($tr = read(TO,$tbuf,$fr)) && $tbuf eq $fbuf) { + goto fail_inner; + } } + goto fail_inner if defined($tr = read(TO,$tbuf,$size)) && $tr > 0; } - goto fail_inner if (defined($tr = read(TO,$tbuf,$size)) && $tr > 0); close(TO) || goto fail_open2 if $closeto; close(FROM) || goto fail_open1 if $closefrom; @@ -93,7 +102,7 @@ sub compare { fail_open2: if ($closefrom) { - $status = $!; + my $status = $!; $! = 0; close FROM; $! = $status unless $!; @@ -104,6 +113,9 @@ sub compare { *cmp = \&compare; +# Using a negative buffer size puts compare into text_mode +sub compare_text { compare(@_[0..1], -1) } + 1; __END__ @@ -129,6 +141,9 @@ from File::Compare by default. File::Compare::cmp is a synonym for File::Compare::compare. It is exported from File::Compare only by request. +File::Compare::compare_text does a line by line comparison of the two +files. It stops as soon as a difference is detected. + =head1 RETURN File::Compare::compare return 0 if the files are equal, 1 if the diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm index 9de9a8036f..b71e357cdc 100644 --- a/lib/File/Spec.pm +++ b/lib/File/Spec.pm @@ -3,7 +3,7 @@ package File::Spec; use strict; use vars qw(@ISA $VERSION); -$VERSION = '0.6'; +$VERSION = '0.8'; my %module = (MacOS => 'Mac', MSWin32 => 'Win32', @@ -23,11 +23,15 @@ File::Spec - portably perform operations on file names =head1 SYNOPSIS -C<use File::Spec;> + use File::Spec; -C<$x=File::Spec-E<gt>catfile('a','b','c');> + $x=File::Spec->catfile('a', 'b', 'c'); -which returns 'a/b/c' under Unix. +which returns 'a/b/c' under Unix. Or: + + use File::Spec::Functions; + + $x = catfile('a', 'b', 'c'); =head1 DESCRIPTION @@ -49,28 +53,31 @@ OS specific routines is available in a separate module, including: File::Spec::VMS The module appropriate for the current OS is automatically loaded by -File::Spec. Since some modules (like VMS) make use of OS specific -facilities, it may not be possible to load all modules under all operating -systems. +File::Spec. Since some modules (like VMS) make use of facilities available +only under that OS, it may not be possible to load all modules under all +operating systems. Since File::Spec is object oriented, subroutines should not called directly, as in: File::Spec::catfile('a','b'); - + but rather as class methods: File::Spec->catfile('a','b'); -For a reference of available functions, please consult L<File::Spec::Unix>, -which contains the entire set, and inherited by the modules for other -platforms. For further information, please see L<File::Spec::Mac>, +For simple uses, L<File::Spec::Functions> provides convenient functional +forms of these methods. + +For a list of available methods, please consult L<File::Spec::Unix>, +which contains the entire set, and which is inherited by the modules for +other platforms. For further information, please see L<File::Spec::Mac>, L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>. =head1 SEE ALSO File::Spec::Unix, File::Spec::Mac, File::Spec::OS2, File::Spec::Win32, -File::Spec::VMS, ExtUtils::MakeMaker +File::Spec::VMS, File::Spec::Functions, ExtUtils::MakeMaker =head1 AUTHORS diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm new file mode 100644 index 0000000000..77561abf09 --- /dev/null +++ b/lib/File/Spec/Functions.pm @@ -0,0 +1,83 @@ +package File::Spec::Functions; + +use File::Spec; +use strict; + +use vars qw(@ISA @EXPORT); + +require Exporter; + +@ISA = qw(Exporter); + +@EXPORT = qw( + canonpath + catdir + catfile + curdir + devnull + rootdir + tmpdir + updir + no_upwards + file_name_is_absolute + path + splitpath + splitdir + catpath + abs2rel + rel2abs +); + +foreach my $meth (@EXPORT) { + no strict 'refs'; + *{$meth} = File::Spec->can($meth); +} + + +1; +__END__ + +=head1 NAME + +File::Spec::Functions - portably perform operations on file names + +=head1 SYNOPSIS + + use File::Spec::Functions; + $x = catfile('a','b'); + +=head1 DESCRIPTION + +This module exports convenience functions for all of the class methods +provided by File::Spec. + +For a reference of available functions, please consult L<File::Spec::Unix>, +which contains the entire set, and which is inherited by the modules for +other platforms. For further information, please see L<File::Spec::Mac>, +L<File::Spec::OS2>, L<File::Spec::Win32>, or L<File::Spec::VMS>. + +=head2 Exports + +The following functions are exported by default. + + canonpath + catdir + catfile + curdir + devnull + rootdir + tmpdir + updir + no_upwards + file_name_is_absolute + path + splitpath + splitdir + catpath + abs2rel + rel2abs + +=head1 SEE ALSO + +File::Spec, File::Spec::Unix, File::Spec::Mac, File::Spec::OS2, +File::Spec::Win32, File::Spec::VMS, ExtUtils::MakeMaker diff --git a/lib/Getopt/Std.pm b/lib/Getopt/Std.pm index c2cd1234f4..390bf14e96 100644 --- a/lib/Getopt/Std.pm +++ b/lib/Getopt/Std.pm @@ -42,8 +42,7 @@ the argument or 1 if no argument is specified. @ISA = qw(Exporter); @EXPORT = qw(getopt getopts); - -# $RCSfile: getopt.pl,v $$Revision: 4.1 $$Date: 92/08/07 18:23:58 $ +$VERSION = $VERSION = '1.01'; # Process single-character switches with switch clustering. Pass one argument # which is a string containing all switches that take an argument. For each @@ -145,7 +144,7 @@ sub getopts ($;$) { } } else { - print STDERR "Unknown option: $first\n"; + warn "Unknown option: $first\n"; ++$errs; if($rest ne '') { $ARGV[0] = "-$rest"; diff --git a/lib/Pod/Html.pm b/lib/Pod/Html.pm index 9245315dbd..4fe7586025 100644 --- a/lib/Pod/Html.pm +++ b/lib/Pod/Html.pm @@ -1299,7 +1299,7 @@ WARN sub html_escape { my $rest = $_[0]; - $rest =~ s/&/&/g; + $rest =~ s/&(?!\w+;|#)/&/g; # XXX not bulletproof $rest =~ s/</</g; $rest =~ s/>/>/g; $rest =~ s/"/"/g; diff --git a/lib/Test/Harness.pm b/lib/Test/Harness.pm index 219ffb9a7c..738f36d4fc 100644 --- a/lib/Test/Harness.pm +++ b/lib/Test/Harness.pm @@ -13,6 +13,8 @@ $have_devel_corestack = 0; $VERSION = "1.1602"; +$ENV{HARNESS_ACTIVE} = 1; + # Some experimental versions of OS/2 build have broken $? my $ignore_exitcode = $ENV{HARNESS_IGNORE_EXITCODE}; @@ -458,6 +460,10 @@ If relative, directory name is with respect to the current directory at the moment runtests() was called. Putting absolute path into C<HARNESS_FILELEAK_IN_DIR> may give more predicatable results. +Harness sets C<HARNESS_ACTIVE> before executing the individual tests. +This allows the tests to determine if they are being executed through the +harness or by any other means. + =head1 SEE ALSO L<Test> for writing test scripts and also L<Benchmark> for the @@ -48,7 +48,7 @@ static OP *too_few_arguments _((OP *o, char* name)); static OP *too_many_arguments _((OP *o, char* name)); static void null _((OP* o)); static PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, - CV* startcv, I32 cx_ix, I32 saweval)); + CV* startcv, I32 cx_ix, I32 saweval, U32 flags)); static OP *newDEFSVOP _((void)); static OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp)); static void simplify_sort _((OP *o)); @@ -129,7 +129,21 @@ pad_allocmy(char *name) name[1] == '_' && (int)strlen(name) > 2)) { if (!isPRINT(name[1])) { - name[3] = '\0'; + /* 1999-02-27 mjd@plover.com */ + char *p; + p = strchr(name, '\0'); + /* The next block assumes the buffer is at least 205 chars + long. At present, it's always at least 256 chars. */ + if (p-name > 200) { + strcpy(name+200, "..."); + p = name+199; + } + else { + p[1] = '\0'; + } + /* Move everything else down one character */ + for (; p-name > 2; p--) + *p = *(p-1); name[2] = toCTRL(name[1]); name[1] = '^'; } @@ -176,8 +190,11 @@ pad_allocmy(char *name) return off; } +#define FINDLEX_NOSEARCH 1 /* don't search outer contexts */ + STATIC PADOFFSET -pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval) +pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, + U32 flags) { dTHR; CV *cv; @@ -272,6 +289,9 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s } } + if (flags & FINDLEX_NOSEARCH) + return 0; + /* Nothing in current lexical context--try eval's context, if any. * This is necessary to let the perldb get at lexically scoped variables. * XXX This will also probably interact badly with eval tree caching. @@ -283,7 +303,7 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s default: if (i == 0 && saweval) { seq = cxstack[saweval].blk_oldcop->cop_seq; - return pad_findlex(name, newoff, seq, PL_main_cv, -1, saweval); + return pad_findlex(name, newoff, seq, PL_main_cv, -1, saweval, 0); } break; case CXt_EVAL: @@ -306,7 +326,7 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s continue; } seq = cxstack[saweval].blk_oldcop->cop_seq; - return pad_findlex(name, newoff, seq, cv, i-1, saweval); + return pad_findlex(name, newoff, seq, cv, i-1, saweval,FINDLEX_NOSEARCH); } } @@ -366,7 +386,7 @@ pad_findmy(char *name) } /* See if it's in a nested scope */ - off = pad_findlex(name, 0, seq, outside, cxstack_ix, 0); + off = pad_findlex(name, 0, seq, outside, cxstack_ix, 0, 0); if (off) { /* If there is a pending local definition, this new alias must die */ if (pendoff) @@ -3666,7 +3686,7 @@ cv_clone2(CV *proto, CV *outside) char *name = SvPVX(namesv); /* XXX */ if (SvFLAGS(namesv) & SVf_FAKE) { /* lexical from outside? */ I32 off = pad_findlex(name, ix, SvIVX(namesv), - CvOUTSIDE(cv), cxstack_ix, 0); + CvOUTSIDE(cv), cxstack_ix, 0, 0); if (!off) PL_curpad[ix] = SvREFCNT_inc(ppad[ix]); else if (off != ix) diff --git a/patchlevel.h b/patchlevel.h index 2cfdec6b25..5ac8ca96ea 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -5,7 +5,7 @@ #define PERL_REVISION 5 /* age */ #define PERL_VERSION 5 /* epoch */ -#define PERL_SUBVERSION 55 /* generation */ +#define PERL_SUBVERSION 56 /* generation */ /* local_patches -- list of locally applied less-than-subversion patches. @@ -563,6 +563,9 @@ perl_destruct(register PerlInterpreter *sv_interp) MUTEX_DESTROY(&PL_eval_mutex); MUTEX_DESTROY(&PL_cred_mutex); COND_DESTROY(&PL_eval_cond); +#ifdef EMULATE_ATOMIC_REFCOUNTS + MUTEX_DESTROY(&PL_svref_mutex); +#endif /* EMULATE_ATOMIC_REFCOUNTS */ /* As the penultimate thing, free the non-arena SV for thrsv */ Safefree(SvPVX(PL_thrsv)); diff --git a/pod/perldelta.pod b/pod/perldelta.pod index d841d28b87..329b1d0a08 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -161,6 +161,28 @@ strings. See L<perlfunc/"pack">. The new format type modifer '_' is useful for packing and unpacking native shorts, ints, and longs. See L<perlfunc/"pack">. +=head2 $^X variables may now have names longer than one character + +Formerly, $^X was synonymous with ${"\cX"}, but $^XY was a syntax +error. Now variable names that begin with a control character may be +arbitrarily long. However, for compatibility reasons, these variables +I<must> be written with explicit braces, as C<${^XY}> for example. +C<${^XYZ}> is synonymous with ${"\cXYZ"}. Variable names with more +than one control character, such as C<${^XY^Z}>, are illegal. + +The old syntax has not changed. As before, the `^X' may either be a +literal control-X character or the two character sequence `caret' plus +`X'. When the braces are omitted, the variable name stops after the +control character. Thus C<"$^XYZ"> continues to be synonymous with +C<$^X . "YZ"> as before. + +As before, lexical variables may not have names beginning with control +characters. As before, variables whose names begin with a control +character are always forced to be in package `main'. These variables +are all reserved for future extensions, except the ones that begin +with C<^_>, which may be used by user programs and will not acquire a +special meaning in any future version of Perl. + =head1 Significant bug fixes =head2 E<lt>HANDLEE<gt> on empty files diff --git a/pod/perlhist.pod b/pod/perlhist.pod index 40aa83c1f2..b5bda55177 100644 --- a/pod/perlhist.pod +++ b/pod/perlhist.pod @@ -316,6 +316,7 @@ the strings?). 5.005_53 1998-Oct-31 5.005_54 1998-Nov-30 5.005_55 1999-Feb-16 + 5.005_56 1999-Mar-01 =head2 SELECTED RELEASE SIZES diff --git a/pod/perltodo.pod b/pod/perltodo.pod index fe339dec79..4b5a5063e3 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -117,11 +117,6 @@ Verify complete 64 bit support so that the value of sysseek, or C<-s>, or stat(), or tell can fit into a perl number without losing precision. Work with the perl-64bit mailing list on perl.org. -=head2 Figure a way out of $^(capital letter) - -Figure out a clean way to extend $^(capital letter) beyond -the 26 alphabets. (${^WORD} maybe?) - =head2 Prototypes =over 4 @@ -237,6 +232,7 @@ will be difficult. CPP-space: restrict CPP symbols exported from headers header-space: move into CORE/perl/ API-space: begin list of things that constitute public api + env-space: Configure should use PERL_CONFIG instead of CONFIG etc. =head2 MULTIPLICITY @@ -378,7 +374,9 @@ Make C<perldoc> tell users what they need to add to their .login or =head2 Install ALL Documentation Make the standard documentation kit include the VMS, OS/2, Win32, -Threads, etc information. +Threads, etc information. installperl and pod/Makefile should know +enough to copy README.foo to perlfoo.pod before building everything, +when appropriate. =head2 Outstanding issues to be documented @@ -839,6 +837,13 @@ Can we install modules as bytecode? =head1 Recently Finished Tasks +=head2 Figure a way out of $^(capital letter) + +Figure out a clean way to extend $^(capital letter) beyond +the 26 alphabets. (${^WORD} maybe?) + +Mark-Jason Dominus sent a patch which went into 5.005_56. + =head2 Filenames Make filenames in the distribution and in the standard module set diff --git a/pod/perlvar.pod b/pod/perlvar.pod index 2dafc1ca1a..5c851d9c15 100644 --- a/pod/perlvar.pod +++ b/pod/perlvar.pod @@ -1005,3 +1005,51 @@ pipe C<close>, overwriting the old value. For more details, see the individual descriptions at L<$@>, L<$!>, L<$^E>, and L<$?>. + + +=head2 Technical Note on the Syntax of Variable Names + +Variable names in Perl can have several formats. Usually, they must +begin with a letter or underscore, in which case they can be +arbitrarily long (up to an internal limit of 256 characters) and may +contain letters, digits, underscores, or the special sequence C<::>. +In this case the part before the last C<::> is taken to be a I<package +qualifier>; see L<perlmod>. + +Perl variable names may also be a sequence of digits or a single +punctuation or control character. These names are all reserved for +special uses by Perl; for example, the all-digits names are used to +hold backreferences after a regulare expression match. Perl has a +special syntax for the single-control-character names: It understands +C<^X> (caret C<X>) to mean the control-C<X> character. For example, +the notation C<$^W> (dollar-sign caret C<W>) is the scalar variable +whose name is the single character control-C<W>. This is better than +typing a literal control-C<W> into your program. + +Finally, new in Perl 5.006, Perl variable names may be alphanumeric +strings that begin with control characters. These variables must be +written in the form C<${^Foo}>; the braces are not optional. +C<${^Foo}> denotes the scalar variable whose name is a control-C<F> +followed by two C<o>'s. These variables are reserved for future +special uses by Perl, except for the ones that begin with C<^_> +(control-underscore). No control-character name that begins with +C<^_> will acquire a special meaning in any future version of Perl; +such names may therefore be used safely in programs. C<^_> itself, +however, I<is> reserved. + +All Perl variables that begin with digits, control characters, or +punctuation characters are exempt from the effects of the C<package> +declaration and are always forced to be in package C<main>. A few +other names are also exempt: + + ENV STDIN + INC STDOUT + ARGV STDERR + ARGVOUT + SIG + +In particular, the new special C<${^_XYZ}> variables are always taken +to be in package C<main> regardless of any C<package> declarations +presently in scope. + + diff --git a/pod/pod2man.PL b/pod/pod2man.PL index 3c55d6e29c..11bb74bd67 100644 --- a/pod/pod2man.PL +++ b/pod/pod2man.PL @@ -678,8 +678,8 @@ $indent = 0; $begun = ""; -# Unrolling [^A-Z>]|[A-Z](?!<) gives: // MRE pp 165. -my $nonest = '(?:[^A-Z>]*(?:[A-Z](?!<)[^A-Z>]*)*)'; +# Unrolling [^-=A-Z>]|[A-Z](?!<)|[-=][\x00-\xFF] gives: // MRE pp 165. +my $nonest = '(?:[^-=A-Z>]*(?:(?:[-=][\x00-\xFF]|[A-Z](?!<))[^-=A-Z>]*)*)'; while (<>) { if ($cutting) { @@ -814,7 +814,7 @@ OP *scalarboolean _((OP *o)); OP *too_few_arguments _((OP *o, char* name)); OP *too_many_arguments _((OP *o, char* name)); void null _((OP* o)); -PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval)); +PADOFFSET pad_findlex _((char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags)); OP *newDEFSVOP _((void)); char* gv_ename _((GV *gv)); CV *cv_clone2 _((CV *proto, CV *outside)); diff --git a/t/base/lex.t b/t/base/lex.t index 045cb22eb0..6bb39d0ae7 100755 --- a/t/base/lex.t +++ b/t/base/lex.t @@ -2,7 +2,7 @@ # $RCSfile: lex.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:04 $ -print "1..30\n"; +print "1..41\n"; $x = 'x'; @@ -117,3 +117,68 @@ $foo =~ s/^not /substr(<<EOF, 0, 0)/e; Ignored EOF print $foo; + +# Tests for new extended control-character variables +# MJD 19990227 + +{ my $CX = "\cX"; + my $CXY ="\cXY"; + $ {$CX} = 17; + $ {$CXY} = 23; + if ($ {^XY} != 23) { print "not " } + print "ok 31\n"; + +# Does the syntax where we use the literal control character still work? + if (eval "\$ {\cX}" != 17 or $@) { print "not " } + print "ok 32\n"; + + eval "\$\cN = 24"; # Literal control character + if ($@ or ${"\cN"} != 24) { print "not " } + print "ok 33\n"; + if ($^N != 24) { print "not " } # Control character escape sequence + print "ok 34\n"; + +# Does the old UNBRACED syntax still do what it used to? + if ("$^XY" ne "17Y") { print "not " } + print "ok 35\n"; + + sub XX () { 6 } + $ {"\cN\cXX"} = 119; + $^N = 5; # This should be an unused ^Var. + $N = 5; + # The second caret here should be interpreted as an xor + if (($^N^XX) != 3) { print "not " } + print "ok 36\n"; +# if (($N ^ XX()) != 3) { print "not " } +# print "ok 32\n"; + + # These next two tests are trying to make sure that + # $^FOO is always global; it doesn't make sense to `my' it. + # + eval 'my $^X;'; + print "not " unless index ($@, 'Can\'t use global $^X in "my"') > -1; + print "ok 37\n"; +# print "($@)\n" if $@; + + eval 'my $ {^XYZ};'; + print "not " unless index ($@, 'Can\'t use global $^XYZ in "my"') > -1; + print "ok 38\n"; +# print "($@)\n" if $@; + +# Now let's make sure that caret variables are all forced into the main package. + package Someother; + $^N = 'Someother'; + $ {^Nostril} = 'Someother 2'; + $ {^M} = 'Someother 3'; + package main; + print "not " unless $^N eq 'Someother'; + print "ok 39\n"; + print "not " unless $ {^Nostril} eq 'Someother 2'; + print "ok 40\n"; + print "not " unless $ {^M} eq 'Someother 3'; + print "ok 41\n"; + + +} + + diff --git a/t/op/eval.t b/t/op/eval.t index 498c63aaf3..dc163e9e8f 100755 --- a/t/op/eval.t +++ b/t/op/eval.t @@ -1,6 +1,6 @@ #!./perl -print "1..29\n"; +print "1..36\n"; eval 'print "ok 1\n";'; @@ -90,15 +90,46 @@ my $X = sub { my $x = 25; eval <<'EOT'; die if $@; - sub do_eval { + print "# $x\n"; # clone into eval's pad + sub do_eval1 { eval $_[0]; die if $@; } EOT -do_eval('print "ok $x\n"'); +do_eval1('print "ok $x\n"'); $x++; -do_eval('eval q[print "ok $x\n"]'); +do_eval1('eval q[print "ok $x\n"]'); $x++; -do_eval('sub { eval q[print "ok $x\n"] }->()'); +do_eval1('sub { eval q[print "ok $x\n"] }->()'); +$x++; + +# calls from within eval'' should clone outer lexicals + +eval <<'EOT'; die if $@; + sub do_eval2 { + eval $_[0]; die if $@; + } +do_eval2('print "ok $x\n"'); +$x++; +do_eval2('eval q[print "ok $x\n"]'); +$x++; +do_eval2('sub { eval q[print "ok $x\n"] }->()'); +$x++; +EOT + +# calls outside eval'' should NOT clone lexicals from called context + +$main::x = 'ok'; +eval <<'EOT'; die if $@; + # $x unbound here + sub do_eval3 { + eval $_[0]; die if $@; + } +EOT +do_eval3('print "$x ' . $x . '\n"'); +$x++; +do_eval3('eval q[print "$x ' . $x . '\n"]'); +$x++; +do_eval3('sub { eval q[print "$x ' . $x . '\n"] }->()'); $x++; # can recursive subroutine-call inside eval'' see its own lexicals? @@ -129,3 +160,14 @@ eval <<'EOT'; } EOT create_closure("ok $x\n")->(); +$x++; + +# does lexical search terminate correctly at subroutine boundary? +$main::r = "ok $x\n"; +sub terminal { eval 'print $r' } +{ + my $r = "not ok $x\n"; + eval 'terminal($r)'; +} +$x++; + @@ -74,6 +74,10 @@ static char ident_too_long[] = "Identifier too long"; ? isALNUM(*(p)) \ : isALNUM_utf8((U8*)p)) +/* In variables name $^X, these are the legal values for X. + * 1999-02-27 mjd-perl-patch@plover.com */ +#define isCONTROLVAR(x) (isUPPER(x) || strchr("[\\]^_?", (x))) + /* The following are arranged oddly so that the guard on the switch statement * can get by with a single comparison (if the compiler is smart enough). */ @@ -5160,7 +5164,7 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3 if (s < send) *d = *s++; d[1] = '\0'; - if (*d == '^' && *s && (isUPPER(*s) || strchr("[\\]^_?", *s))) { + if (*d == '^' && *s && isCONTROLVAR(*s)) { *d = toCTRL(*s); s++; } @@ -5188,8 +5192,10 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3 s = e; } else { - while (isALNUM(*s) || *s == ':') + while ((isALNUM(*s) || *s == ':') && d < e) *d++ = *s++; + if (d >= e) + croak(ident_too_long); } *d = '\0'; while (s < send && (*s == ' ' || *s == '\t')) s++; @@ -5206,6 +5212,19 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3 PL_lex_brackstack[PL_lex_brackets++] = XOPERATOR; return s; } + } + /* Handle extended ${^Foo} variables + * 1999-02-27 mjd-perl-patch@plover.com */ + else if (!isALNUM(*d) && !isPRINT(*d) /* isCTRL(d) */ + && isALNUM(*s)) + { + d++; + while (isALNUM(*s) && d < e) { + *d++ = *s++; + } + if (d >= e) + croak(ident_too_long); + *d = '\0'; } if (*s == '}') { s++; diff --git a/win32/Makefile b/win32/Makefile index d8094597ec..7daffb3d34 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -29,7 +29,7 @@ INST_TOP = $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER = \5.00555 +INST_VER = \5.00556 # # uncomment to enable threads-capabilities diff --git a/win32/config_H.bc b/win32/config_H.bc index cfa64748f3..7437cf6b92 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -34,8 +34,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is @@ -2021,7 +2021,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* DLSYM_NEEDS_UNDERSCORE: @@ -2292,8 +2292,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/ +#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/ /* SELECT_MIN_BITS: * This symbol holds the minimum number of bits operated by select. @@ -2317,7 +2317,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2333,8 +2333,8 @@ * This symbol contains the ~name expanded version of SITELIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/ +#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/ /* STARTPERL: * This variable contains the string to put in front of a perl diff --git a/win32/config_H.gc b/win32/config_H.gc index 0d30b29ce2..ddb8524fad 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -34,8 +34,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is @@ -2021,7 +2021,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* DLSYM_NEEDS_UNDERSCORE: @@ -2292,8 +2292,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/ +#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/ /* SELECT_MIN_BITS: * This symbol holds the minimum number of bits operated by select. @@ -2317,7 +2317,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2333,8 +2333,8 @@ * This symbol contains the ~name expanded version of SITELIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/ +#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/ /* STARTPERL: * This variable contains the string to put in front of a perl diff --git a/win32/config_H.vc b/win32/config_H.vc index 3b2185fd4e..4a8a097512 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -34,8 +34,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.00555\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.00556\\bin\\MSWin32-x86" /**/ /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is @@ -2021,7 +2021,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.00555\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.00556\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* DLSYM_NEEDS_UNDERSCORE: @@ -2292,8 +2292,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.00555\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.00555")) /**/ +#define PRIVLIB "c:\\perl\\5.00556\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.00556")) /**/ /* SELECT_MIN_BITS: * This symbol holds the minimum number of bits operated by select. @@ -2317,7 +2317,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.00555\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.00556\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2333,8 +2333,8 @@ * This symbol contains the ~name expanded version of SITELIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITELIB "c:\\perl\\site\\5.00555\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.00555")) /**/ +#define SITELIB "c:\\perl\\site\\5.00556\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.00556")) /**/ /* STARTPERL: * This variable contains the string to put in front of a perl diff --git a/win32/makefile.mk b/win32/makefile.mk index 127e1590d4..574fa6aa82 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -33,7 +33,7 @@ INST_TOP *= $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER *= \5.00555 +INST_VER *= \5.00556 # # uncomment to enable threads-capabilities diff --git a/win32/win32.c b/win32/win32.c index 4ed826715f..726c7c552e 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2234,13 +2234,13 @@ XS(w32_GetCwd) * then it worked, set PV valid, * else leave it 'undef' */ + EXTEND(SP,1); if (SvCUR(sv)) { SvPOK_on(sv); - EXTEND(SP,1); ST(0) = sv; XSRETURN(1); } - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static @@ -2261,15 +2261,16 @@ XS(w32_GetNextAvailDrive) dXSARGS; char ix = 'C'; char root[] = "_:\\"; + + EXTEND(SP,1); while (ix <= 'Z') { root[0] = ix++; if (GetDriveType(root) == 1) { root[2] = '\0'; - EXTEND(SP,1); XSRETURN_PV(root); } } - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static @@ -2296,13 +2297,13 @@ XS(w32_LoginName) dXSARGS; char *name = getlogin_buffer; DWORD size = sizeof(getlogin_buffer); + EXTEND(SP,1); if (GetUserName(name,&size)) { - EXTEND(SP,1); /* size includes NULL */ ST(0) = sv_2mortal(newSVpv(name,size-1)); XSRETURN(1); } - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static @@ -2311,13 +2312,13 @@ XS(w32_NodeName) dXSARGS; char name[MAX_COMPUTERNAME_LENGTH+1]; DWORD size = sizeof(name); + EXTEND(SP,1); if (GetComputerName(name,&size)) { - EXTEND(SP,1); /* size does NOT include NULL :-( */ ST(0) = sv_2mortal(newSVpv(name,size)); XSRETURN(1); } - XSRETURN_EMPTY; + XSRETURN_UNDEF; } @@ -2329,6 +2330,7 @@ XS(w32_DomainName) /* mingw32 (and Win95) don't have NetWksta*(), so do it the old way */ char name[256]; DWORD size = sizeof(name); + EXTEND(SP,1); if (GetUserName(name,&size)) { char sid[1024]; DWORD sidlen = sizeof(sid); @@ -2337,7 +2339,6 @@ XS(w32_DomainName) SID_NAME_USE snu; if (LookupAccountName(NULL, name, (PSID)&sid, &sidlen, dname, &dnamelen, &snu)) { - EXTEND(SP,1); XSRETURN_PV(dname); /* all that for this */ } } @@ -2348,6 +2349,7 @@ XS(w32_DomainName) char dname[256]; DWORD dnamelen = sizeof(dname); PWKSTA_INFO_100 pwi; + EXTEND(SP,1); if (NERR_Success == NetWkstaGetInfo(NULL, 100, (LPBYTE*)&pwi)) { if (pwi->wki100_langroup && *(pwi->wki100_langroup)) { WideCharToMultiByte(CP_ACP, NULL, pwi->wki100_langroup, @@ -2358,11 +2360,10 @@ XS(w32_DomainName) -1, (LPSTR)dname, dnamelen, NULL, NULL); } NetApiBufferFree(pwi); - EXTEND(SP,1); XSRETURN_PV(dname); } #endif - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static @@ -2436,7 +2437,7 @@ XS(w32_FormatMessage) msgbuf, sizeof(msgbuf)-1, NULL)) XSRETURN_PV(msgbuf); - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static @@ -2509,7 +2510,7 @@ XS(w32_GetShortPathName) ST(0) = shortpath; XSRETURN(1); } - XSRETURN_EMPTY; + XSRETURN_UNDEF; } static |