summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>1998-06-23 18:15:23 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>1998-06-23 18:15:23 +0000
commitba7e4437aa27a0775f31400cfe7bcaf273e14ef3 (patch)
tree9dd37616d934a5c958ddd16501d691dc025bf90a
parent4e61ee4d2394e4b120037f733150ee6041bf95f2 (diff)
parent9666903d92ab8cdd420a0bc714d5c94ce051cb2c (diff)
downloadperl-ba7e4437aa27a0775f31400cfe7bcaf273e14ef3.tar.gz
Integrate mainline c. 5.004_68 into ansiperl, mainly
so see what has changed... p4raw-id: //depot/ansiperl@1208
-rw-r--r--Changes11110
-rwxr-xr-xConfigure48
-rw-r--r--INSTALL52
-rw-r--r--MANIFEST31
-rw-r--r--Makefile.SH28
-rw-r--r--ObjXSub.h6
-rwxr-xr-xPorting/genlog118
-rw-r--r--Porting/makerel9
-rw-r--r--atomic.h87
-rw-r--r--av.c18
-rw-r--r--config_h.SH15
-rw-r--r--configure.com103
-rw-r--r--doop.c27
-rw-r--r--embed.h2
-rw-r--r--embedvar.h60
-rw-r--r--ext/B/B.pm3
-rw-r--r--ext/B/B/Asmdata.pm96
-rw-r--r--ext/Fcntl/Fcntl.pm63
-rw-r--r--ext/Fcntl/Fcntl.xs150
-rw-r--r--ext/POSIX/POSIX.pm2
-rw-r--r--ext/POSIX/POSIX.pod6
-rw-r--r--ext/POSIX/POSIX.xs27
-rw-r--r--ext/POSIX/typemap1
-rw-r--r--ext/SDBM_File/sdbm/Makefile.PL14
-rw-r--r--ext/util/make_ext6
-rw-r--r--global.sym2
-rw-r--r--gv.c4
-rw-r--r--hints/machten.sh72
-rw-r--r--hints/solaris_2.sh24
-rw-r--r--hv.c7
-rwxr-xr-xinstallperl35
-rw-r--r--interp.sym10
-rw-r--r--intrpvar.h200
-rw-r--r--ipdir.h60
-rw-r--r--ipenv.h21
-rw-r--r--iperlsys.h905
-rw-r--r--iplio.h41
-rw-r--r--ipmem.h20
-rw-r--r--ipproc.h56
-rw-r--r--ipsock.h64
-rw-r--r--ipstdio.h63
-rw-r--r--lib/AutoSplit.pm4
-rw-r--r--lib/English.pm4
-rw-r--r--lib/ExtUtils/MM_VMS.pm21
-rw-r--r--lib/ExtUtils/MM_Win32.pm6
-rw-r--r--lib/File/Spec.pm116
-rw-r--r--lib/File/Spec/Mac.pm230
-rw-r--r--lib/File/Spec/OS2.pm51
-rw-r--r--lib/File/Spec/Unix.pm197
-rw-r--r--lib/File/Spec/VMS.pm148
-rw-r--r--lib/File/Spec/Win32.pm104
-rw-r--r--lib/Math/BigFloat.pm2
-rw-r--r--malloc.c599
-rw-r--r--mg.h4
-rw-r--r--objpp.h6
-rw-r--r--op.c2
-rw-r--r--op.h4
-rw-r--r--patchlevel.h2
-rw-r--r--perl.c156
-rw-r--r--perl.h50
-rw-r--r--perl_exp.SH4
-rw-r--r--perldir.h34
-rw-r--r--perlenv.h19
-rw-r--r--perlio.c2
-rw-r--r--perlio.h251
-rw-r--r--perllio.h63
-rw-r--r--perlmem.h19
-rw-r--r--perlproc.h71
-rw-r--r--perlsock.h102
-rw-r--r--perlvars.h156
-rw-r--r--pod/Makefile2
-rw-r--r--pod/perldiag.pod14
-rw-r--r--pod/perlfunc.pod17
-rw-r--r--pod/perlop.pod202
-rw-r--r--pod/perlre.pod12
-rw-r--r--pod/perlrun.pod5
-rw-r--r--pod/perlvar.pod59
-rw-r--r--pp.c9
-rw-r--r--pp_ctl.c20
-rw-r--r--pp_hot.c24
-rw-r--r--pp_sys.c2
-rw-r--r--proto.h12
-rw-r--r--regcomp.c4
-rw-r--r--regcomp.h228
-rw-r--r--regcomp.pl98
-rw-r--r--regcomp.sym111
-rw-r--r--regexec.c7
-rw-r--r--regnodes.h250
-rw-r--r--sv.c10
-rw-r--r--sv.h4
-rwxr-xr-xt/lib/filecopy.t2
-rwxr-xr-xt/lib/filespec.t43
-rwxr-xr-xt/op/avhv.t7
-rwxr-xr-xt/op/defins.t14
-rwxr-xr-xt/op/ipcsem.t5
-rwxr-xr-xt/op/pat.t23
-rw-r--r--t/op/re_tests6
-rwxr-xr-xt/op/regexp.t25
-rwxr-xr-xt/op/taint.t2
-rw-r--r--thrdvar.h154
-rw-r--r--toke.c22
-rw-r--r--util.c53
-rw-r--r--utils/perldoc.PL12
-rw-r--r--vms/descrip_mms.template70
-rw-r--r--vms/gen_shrfls.pl26
-rw-r--r--vms/subconfigure.com111
-rw-r--r--vms/test.com2
-rw-r--r--vms/vms.c3
-rw-r--r--win32/GenCAPI.pl1
-rw-r--r--win32/Makefile135
-rw-r--r--win32/config.bc1
-rw-r--r--win32/config.gc1
-rw-r--r--win32/config.vc1
-rw-r--r--win32/config_H.bc31
-rw-r--r--win32/config_H.gc31
-rw-r--r--win32/config_H.vc31
-rw-r--r--win32/dl_win32.xs8
-rw-r--r--win32/makefile.mk132
-rw-r--r--win32/perlhost.h971
-rw-r--r--win32/pod.mak62
-rw-r--r--win32/runperl.c1006
-rw-r--r--win32/win32.c4
-rw-r--r--win32/win32.h49
123 files changed, 16924 insertions, 3303 deletions
diff --git a/Changes b/Changes
index fb511ceb35..2f0978fae1 100644
--- a/Changes
+++ b/Changes
@@ -51,12 +51,10309 @@ And, of course, the Author of Perl:
Larry Wall <larry@wall.org>
+
+NOTE: Each change entry shows the change number; who checked it into the
+repository; when; description of the change; which branch the change
+happened in; and the affected files. The file lists have a short symbolic
+indicator:
+
+ ! modified
+ + added
+ - deleted
+ +> branched (from elsewhere)
+ !> merged changes (from elsewhere)
+
+
+----------------
+Version 5.004_68 Developer release working toward 5.005
+----------------
+
+____________________________________________________________________________
+[ 1191] By: gsar on 1998/06/22 15:56:27
+ Log: tweak win32 makefiles for PERL_OBJECT build
+ Branch: perl
+ ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1190] By: gsar on 1998/06/22 04:06:02
+ Log: backout change#1178 as it was dependent on an unapplied patch,
+ fix filespec.t to know its @INC
+ Branch: perl
+ ! sv.c t/lib/filespec.t
+____________________________________________________________________________
+[ 1189] By: gsar on 1998/06/22 03:47:43
+ Log: eliminate use of tokenbuf in util.c
+ Branch: perl
+ ! util.c
+____________________________________________________________________________
+[ 1188] By: gsar on 1998/06/22 01:53:59
+ Log: add patch that generates regnodes.h via regcomp.pl
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806212038.QAA29797@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] regcomp.h regnodes cleanup
+ Date: Sun, 21 Jun 1998 16:38:21 -0400 (EDT)
+ Branch: perl
+ + regcomp.pl regcomp.sym regnodes.h
+ ! MANIFEST Makefile.SH regcomp.h
+____________________________________________________________________________
+[ 1187] By: gsar on 1998/06/22 01:42:21
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806210145.VAA21629@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Avoid temporaries on recursion
+ Date: Sat, 20 Jun 1998 21:45:03 -0400 (EDT)
+ Branch: perl
+ ! pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[ 1186] By: gsar on 1998/06/22 01:14:14
+ Log: merge relevant portions from maintbranch change#1155
+ Branch: perl
+ ! lib/Math/BigFloat.pm op.c pod/perlfunc.pod pod/perlop.pod
+ ! pod/perlrun.pod pp_hot.c
+____________________________________________________________________________
+[ 1185] By: gsar on 1998/06/22 00:59:28
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806210827.EAA26322@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Zero-length matching bug
+ Date: Sun, 21 Jun 1998 04:27:16 -0400 (EDT)
+ Branch: perl
+ ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[ 1184] By: gsar on 1998/06/22 00:57:27
+ Log: fix alignment issues in malloc.c on 64-bit platforms (via private mail)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806170844.EAA24584@monk.mps.ohio-state.edu>
+ Subject: Re: _67 not okay
+ Date: Wed, 17 Jun 1998 04:44:26 -0400 (EDT)
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 1183] By: gsar on 1998/06/22 00:53:37
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806210727.DAA24072@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Test study/re/
+ Date: Sun, 21 Jun 1998 03:27:13 -0400 (EDT)
+ Branch: perl
+ ! t/op/pat.t
+____________________________________________________________________________
+[ 1182] By: gsar on 1998/06/21 21:25:07
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806210430.AAA21818@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] $^R documented
+ Date: Sun, 21 Jun 1998 00:30:48 -0400 (EDT)
+ Branch: perl
+ ! pod/perlre.pod pod/perlvar.pod
+____________________________________________________________________________
+[ 1181] By: gsar on 1998/06/21 21:23:41
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806210111.VAA17752@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Re docs
+ Date: Sat, 20 Jun 1998 21:11:37 -0400 (EDT)
+ Branch: perl
+ ! pod/perlop.pod pod/perlre.pod
+____________________________________________________________________________
+[ 1180] By: gsar on 1998/06/21 21:22:16
+ Log: adapted contents of message into comments in malloc.c and INSTALL
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806162240.SAA23597@monk.mps.ohio-state.edu>
+ Subject: [5.004_67] malloc.c -Defines
+ Date: Tue, 16 Jun 1998 18:40:41 -0400 (EDT)
+ Branch: perl
+ ! INSTALL malloc.c
+____________________________________________________________________________
+[ 1179] By: gsar on 1998/06/21 07:26:35
+ Log: applied patch, with edits to the prose
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806201936.PAA17499@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Error variables compared
+ Date: Sat, 20 Jun 1998 15:36:14 -0400 (EDT)
+ Branch: perl
+ ! pod/perlvar.pod
+____________________________________________________________________________
+[ 1178] By: gsar on 1998/06/21 07:07:16
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806200104.VAA11343@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] print study /re/ broken
+ Date: Fri, 19 Jun 1998 21:04:54 -0400 (EDT)
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 1177] By: gsar on 1998/06/21 07:06:10
+ Log: applied patch, tweaked wording
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806200838.EAA13992@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Documentation patch for malloc
+ Date: Sat, 20 Jun 1998 04:38:07 -0400 (EDT)
+ Branch: perl
+ ! malloc.c pod/perldiag.pod
+____________________________________________________________________________
+[ 1176] By: gsar on 1998/06/21 07:00:30
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806200829.EAA13974@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Cosmetic malloc patch
+ Date: Sat, 20 Jun 1998 04:29:00 -0400 (EDT)
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 1175] By: gsar on 1998/06/21 06:58:37
+ Log: Message-Id: <3.0.5.32.19980619160057.032e7480@ous.edu>
+ Date: Fri, 19 Jun 1998 16:00:57 -0700
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH 5.004_67] fixup patches for VMS
+ Branch: perl
+ ! ext/SDBM_File/sdbm/Makefile.PL t/lib/filecopy.t t/op/defins.t
+ ! t/op/taint.t vms/test.com vms/vms.c
+____________________________________________________________________________
+[ 1174] By: gsar on 1998/06/21 06:55:18
+ Log: applied VMS patch from Dan Sugalski
+ Date: Fri, 19 Jun 1998 15:36:34 -0700
+ From: SYSTEM@cedar.osshe.edu
+ Message-Id: <980619153634.2063ee12@cedar.osshe.edu>
+ Subject: [PATCH 5.004_67] Enhancements to the VMS configuration procedures
+ Branch: perl
+ ! configure.com lib/ExtUtils/MM_VMS.pm perl.h
+ ! vms/descrip_mms.template vms/gen_shrfls.pl
+ ! vms/subconfigure.com
+____________________________________________________________________________
+[ 1173] By: gsar on 1998/06/21 06:51:38
+ Log: applied patch, modified logic to avoid reentering lexer at compile-time
+ Message-ID: <19980619113104.S9711@asic.sc.ti.com>
+ Date: Fri, 19 Jun 1998 11:31:04 -0500
+ From: Graham Barr <gbarr@ti.com>
+ Subject: Re: [PATCH perl5.004_67] Add Errno in ext/
+ Branch: perl
+ ! Configure MANIFEST Makefile.SH ext/util/make_ext gv.c
+ ! lib/English.pm
+____________________________________________________________________________
+[ 1172] By: gsar on 1998/06/21 06:27:57
+ Log: applied patch, along with many changes:
+ - ipfoo.h headers have been coalesced along with perlfoo.h into
+ iperlsys.h
+ - win32/cp*.h have been combined in perlhost.h
+ - CPerlObj::PerlParse() takes an extra xsinit arg
+ - tweaks to get dl_win32.xs compiling again w/ PERL_OBJECT
+ From: "Douglas Lankshear" <dougl@ActiveState.com>
+ Message-Id: <000001bd9b8c$0417fe90$a32fa8c0@tau.Active>
+ Subject: RE: [PATCH 5.004_67] Fixes for broken MS compiler
+ Date: Fri, 19 Jun 1998 10:59:50 -0700
+ Branch: perl
+ + iperlsys.h win32/perlhost.h
+ - ipdir.h ipenv.h iplio.h ipmem.h ipproc.h ipsock.h ipstdio.h
+ - perldir.h perlenv.h perlio.h perllio.h perlmem.h perlproc.h
+ - perlsock.h
+ ! MANIFEST mg.h op.h perl.h perlio.c proto.h util.c
+ ! win32/Makefile win32/dl_win32.xs win32/makefile.mk
+ ! win32/runperl.c win32/win32.h
+____________________________________________________________________________
+[ 1171] By: gsar on 1998/06/21 00:44:42
+ Log: Date: Fri, 19 Jun 1998 07:55:19 -0600 (MDT)
+ From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Subject: Re: PATCH _67 (Doc) perlop.pod
+ Message-ID: <Pine.LNX.3.96.980619075203.13326A-100000@perrin.dimensional.com>
+ Branch: perl
+ ! pod/perlop.pod
+____________________________________________________________________________
+[ 1170] By: gsar on 1998/06/21 00:43:06
+ Log: a tweaked version of:
+ From: "Douglas Lankshear" <dougl@ActiveState.com>
+ Subject: [PATCH 5.004_67] Win32 using PerlCRT.dll
+ Date: Wed, 17 Jun 1998 20:25:51 -0700
+ Message-ID: <001b01bd9a68$cb752410$a32fa8c0@tau.Active>
+ Branch: perl
+ ! lib/ExtUtils/MM_Win32.pm win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1169] By: gsar on 1998/06/21 00:10:18
+ Log: added patch, regen headers
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806190227.WAA07371@monk.mps.ohio-state.edu>
+ Subject: Re: Ilya's patches
+ Date: Thu, 18 Jun 1998 22:27:31 -0400 (EDT)
+ Branch: perl
+ ! ObjXSub.h embedvar.h interp.sym intrpvar.h toke.c
+____________________________________________________________________________
+[ 1168] By: gsar on 1998/06/21 00:05:01
+ Log: Date: Thu, 18 Jun 1998 23:37:32 -0700 (PDT)
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Subject: [PATCH] docs creating files via open
+ Message-ID: <Pine.GSO.3.96.980618231856.17544S-100000@user2.teleport.com>
+ Branch: perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 1167] By: gsar on 1998/06/21 00:03:34
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806172151.RAA28441@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_67] Better version of malloc improver
+ Date: Wed, 17 Jun 1998 17:51:54 -0400 (EDT)
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 1166] By: gsar on 1998/06/20 23:59:23
+ Log: enhance perlre.pod to say C<)> can't appear in a (?#...) comment
+ Branch: perl
+ ! pod/perlre.pod
+____________________________________________________________________________
+[ 1165] By: gsar on 1998/06/20 23:47:09
+ Log: added patch, tweaked missed files, excised comment that doesn't really
+ belong in the sources
+ From: joshua.pritikin@db.com
+ Date: Mon, 15 Jun 1998 10:03:37 -0400
+ Message-Id: <H00000e500072c63@MHS>
+ Subject: [PATCH 5.004_57] tied hash slice & do_kv cleanup
+ Branch: perl
+ ! ObjXSub.h av.c doop.c embed.h global.sym objpp.h pp.c proto.h
+ ! t/op/avhv.t
+____________________________________________________________________________
+[ 1164] By: gsar on 1998/06/20 23:29:09
+ Log: add File-Spec-0.6 from CPAN
+ Branch: perl
+ + lib/File/Spec.pm lib/File/Spec/Mac.pm lib/File/Spec/OS2.pm
+ + lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm
+ + lib/File/Spec/Win32.pm t/lib/filespec.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 1163] By: gsar on 1998/06/20 23:15:41
+ Log: tweaks to allow both mingw32{gcc-2.8.1,egcs-1.0.2} build and test
+ Branch: perl
+ ! ext/POSIX/POSIX.xs win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1162] By: gsar on 1998/06/20 21:48:32
+ Log: manual integration of all outstanding ansi branch stuff into mainline
+ Branch: perl
+ ! ext/POSIX/POSIX.xs lib/ExtUtils/MM_Win32.pm t/op/ipcsem.t
+ ! win32/config.gc win32/dl_win32.xs win32/makefile.mk
+ ! win32/win32.h
+____________________________________________________________________________
+[ 1161] By: gsar on 1998/06/20 21:12:01
+ Log: undo goofed change 1157 (backed out the fix instead of keeping it)
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 1160] By: nick on 1998/06/20 21:05:51
+ Log: Patches to build with EGCS-1.0.2 Mingw32 port.
+ Branch: ansiperl
+ ! ext/POSIX/POSIX.xs win32/config.gc win32/config_H.gc
+ ! win32/dl_win32.xs win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[ 1159] By: gsar on 1998/06/20 02:51:35
+ Log: cleanup installation of utilities on win32
+ Branch: perl
+ ! installperl pod/Makefile win32/Makefile win32/makefile.mk
+ ! win32/pod.mak
+____________________________________________________________________________
+[ 1158] By: gsar on 1998/06/20 02:50:35
+ Log: intuit @INC pathnames from exe location only if dll location
+ is unknown (ensures that multiple executables will coexist)
+ Branch: perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 1157] By: gsar on 1998/06/20 02:48:34
+ Log: make perldoc ignore null files (it tried to open() them)
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 1156] By: gsar on 1998/06/19 21:18:47
+ Log: fix perldoc to ignore unfound null filenames
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 1155] By: TimBunce on 1998/06/19 18:47:57
+ Log: Assorted patches:
+
+ ------ BUILD PROCESS ------
+
+ Title: "Clarify varargs issues in INSTALL docs"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980603125427.8559C-100000@newton.phys>
+ Files: INSTALL
+
+ ------ CORE LANGUAGE ------
+
+ Title: "Further fixes for updated SysV IPC support"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199805211644.TAA15139@alpha.hut.fi>
+ Files: Configure perl.h doio.c
+
+ Title: "Fixed SEGV caused by bug in pp_hot.c:pp_sassign()"
+ From: Andrew Bettison <andrewb@zip.com.au>
+ Msg-ID: <m0ykMQx-000OQCC@headroom.zip.com.au>
+ Files: pp_hot.c
+
+ Title: "Invalidate method cache on C<local *subname>"
+ From: Chip Salzenberg <chip@perl.org>
+ Msg-ID: <19980604134731.D24343@perlsupport.com>
+ Files: scope.c t/op/method.t
+
+ Title: "fix uninitialized cv variable in op.c"
+ From: joshua.pritikin@db.com
+ Msg-ID: <H00000e50005af05@MHS>
+ Files: op.c
+
+ Title: "fix for undef as last arg to setsockopt"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <19980603112219.B7638@asic.sc.ti.com>
+ Files: pp_sys.c
+
+ Title: "Fix -i when @ARGV is empty"
+ From: Chip Salzenberg <chip@perl.org>, Gurusamy Sarathy
+ <gsar@engin.umich.edu>, Ilya Zakharevich
+ <ilya@math.ohio-state.edu>, Tim.Bunce@ig.co.uk (Tim Bunce)
+ Msg-ID: <19980606184942.A4583@perlsupport.com>,
+ <199806070029.UAA18709@monk.mps.ohio-state.edu>,
+ <199806071817.OAA28141@aatma.engin.umich.edu>,
+ <199806191549.QAA16376@toad.ig.co.uk>
+ Files: pp_hot.c
+
+ ------ DOCUMENTATION ------
+
+ Title: "Discrepancy between perlop.pod and m// operator docs"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980526092614.27437B-100000@user2.teleport.com>
+ Files: pod/perlop.pod
+
+ Title: "Doc addition for perlfunc entry for system()"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>, Mike Fletcher
+ <fletch@phydeaux.org>
+ Msg-ID: <199806011908.PAA31069@dewdrop2.mindspring.com>,
+ <199806012057.QAA26830@monk.mps.ohio-state.edu>
+ Files: pod/perlfunc.pod
+
+ Title: "Clarify effects of using quotes with m operator"
+ From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Msg-ID: <Pine.LNX.3.96.980617111641.25631B-100000@perrin.dimensional.com>
+ Files: pod/perlop.pod
+
+ Title: "Document -i with STDIN"
+ From: joshua.pritikin@db.com
+ Msg-ID: <H00000e50006a84a@MHS>
+ Files: pod/perlrun.pod
+
+ ------ EXTENSIONS ------
+
+ Title: "Fix Liblist.pm to tolerate backslashen in paths"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199806011954.PAA10900@aatma.engin.umich.edu>
+ Files: lib/ExtUtils/Liblist.pm
+
+ ------ LIBRARY ------
+
+ Title: "Typo fix for Math::BogFloat"
+ From: Mike Stok <mike@stok.co.uk>
+ Msg-ID: <Pine.LNX.3.96.980605101623.982F-100000@stok.co.uk>
+ Files: lib/Math/BigFloat.pm
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Add docs about types of diff to Porting/patching.pod"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199806090105.VAA20005@aatma.engin.umich.edu>
+ Files: Porting/patching.pod
+
+ Title: "Set dont_use_nlink for PowerMAX OS 4.2"
+ From: Tom Horsley <Tom.Horsley@mail.ccur.com>
+ Msg-ID: <199806161354.NAA21316@cleo.ssd.hcsc.com>
+ Files: hints/powerux.sh
+
+ Title: "Assorted improvements to hints/solaris_2.sh"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980527135845.26608K-100000@newton.phys>
+ Files: hints/solaris_2.sh
+ Branch: maint-5.004/perl
+ ! Configure INSTALL Porting/patching.pod doio.c hints/powerux.sh
+ ! hints/solaris_2.sh lib/ExtUtils/Liblist.pm
+ ! lib/Math/BigFloat.pm op.c perl.h pod/perlfunc.pod
+ ! pod/perlop.pod pod/perlrun.pod pp_hot.c pp_sys.c scope.c
+ ! t/op/method.t
+____________________________________________________________________________
+[ 1154] By: gsar on 1998/06/19 17:22:23
+ Log: update repository copy of Asmdata.pm after `perl bytecode.pl`
+ Branch: perl
+ ! ext/B/B/Asmdata.pm regcomp.c
+____________________________________________________________________________
+[ 1153] By: nick on 1998/06/19 17:21:21
+ Log: Use libxxx.a for -lxxx with GCC
+ Branch: ansiperl
+ ! lib/ExtUtils/MM_Win32.pm win32/config.gc win32/config_H.gc
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 1152] By: TimBunce on 1998/06/19 17:08:18
+ Log: Title: Tom's jumbo doc patch
+ From: Tom Christiansen <tchrist@chthon.perl.com>
+ Msg-Id: <199806140419.WAA20549@chthon.perl.com>
+ Files: pod/perl.pod pod/perlbook.pod pod/perldata.pod pod/perldsc.pod
+ pod/perlfaq.pod pod/perlfaq1.pod pod/perlfaq2.pod
+ pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+ pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+ pod/perlfaq9.pod pod/perlform.pod pod/perlfunc.pod
+ pod/perlipc.pod pod/perllocale.pod pod/perllol.pod
+ pod/perlmod.pod pod/perlmodlib.pod pod/perlobj.pod
+ pod/perlop.pod pod/perlre.pod pod/perlref.pod
+ pod/perlrun.pod pod/perlsec.pod pod/perlsub.pod
+ pod/perlsyn.pod pod/perltie.pod pod/perltoot.pod
+ pod/perlvar.pod
+ Branch: maint-5.004/perl
+ ! pod/perl.pod pod/perlbook.pod pod/perldata.pod pod/perldsc.pod
+ ! pod/perlfaq.pod pod/perlfaq1.pod pod/perlfaq2.pod
+ ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+ ! pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+ ! pod/perlfaq9.pod pod/perlform.pod pod/perlfunc.pod
+ ! pod/perlipc.pod pod/perllocale.pod pod/perllol.pod
+ ! pod/perlmod.pod pod/perlmodlib.pod pod/perlobj.pod
+ ! pod/perlop.pod pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlsec.pod pod/perlsub.pod pod/perlsyn.pod
+ ! pod/perltie.pod pod/perltoot.pod pod/perlvar.pod
+____________________________________________________________________________
+[ 1151] By: nick on 1998/06/19 15:38:28
+ Log: Resolve latest
+ Branch: ansiperl
+ !> av.c embed.h embedvar.h ext/Socket/Socket.xs global.sym
+ !> hints/powerux.sh mg.c perl.h pod/perlsub.pod pp_ctl.c proto.h
+ !> sv.c t/TEST
+____________________________________________________________________________
+[ 1150] By: gsar on 1998/06/18 20:43:07
+ Log: Date: Tue, 16 Jun 1998 13:54:17 GMT
+ Message-Id: <199806161354.NAA21316@cleo.ssd.hcsc.com>
+ From: Tom Horsley <Tom.Horsley@mail.ccur.com>
+ Subject: [PATCH] perl5.004 hints file (maint and dev paths)
+ Branch: perl
+ ! hints/powerux.sh
+____________________________________________________________________________
+[ 1149] By: gsar on 1998/06/18 20:41:30
+ Log: hand apply whitespace-mutiliated patch
+ From: joshua.pritikin@db.com
+ Date: Mon, 15 Jun 1998 09:21:36 -0400
+ Message-Id: <H00000e50007289b@MHS>
+ Subject: [PATCH 5.004_67] SvREADONLY for av_clear
+ Branch: perl
+ ! av.c
+____________________________________________________________________________
+[ 1148] By: gsar on 1998/06/18 20:33:59
+ Log: hand apply whitespace-mutiliated and reversed patch
+ Date: Tue, 16 Jun 1998 16:31:40 -0400
+ From: Les Peters <lpeters@aol.net>
+ Message-Id: <199806162031.QAA08202@ds9>
+ Subject: [PATCH 5.004_67] Socket.xs tweak for IRIX 6.3
+ Branch: perl
+ ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[ 1147] By: gsar on 1998/06/18 20:26:59
+ Log: close child pipe in t/TEST, other cosmetic tweaks
+ Branch: perl
+ ! t/TEST
+____________________________________________________________________________
+[ 1146] By: gsar on 1998/06/18 19:37:41
+ Log: back out problematic change#1105, tweak perlsub.pod
+ Branch: perl
+ ! embed.h embedvar.h global.sym mg.c perl.h pod/perlsub.pod
+ ! pp_ctl.c proto.h sv.c
+____________________________________________________________________________
+[ 1145] By: nick on 1998/06/18 19:31:07
+ Log: Integrate and resolve -at mainline to ansiperl prior to Ming32 hacking
+ Branch: ansiperl
+ +> configure.com ext/DB_File/dbinfo
+ +> ext/DynaLoader/DynaLoader_pm.PL t/base/rs.t
+ +> t/op/regexp_noamp.t vms/descrip_mms.template vms/munchconfig.c
+ +> vms/subconfigure.com
+ - ext/DynaLoader/DynaLoader.pm.PL vms/config.vms vms/descrip.mms
+ - vms/fndvers.com
+ !> (integrate 499 files)
+____________________________________________________________________________
+[ 1144] By: gsar on 1998/06/18 16:35:11
+ Log: fix spurious cxstack_max init that trampled memory
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 1143] By: gsar on 1998/06/18 16:33:01
+ Log: fix memory leaks and uninitialized memory accesses found by Purify
+ Branch: perl
+ ! doio.c perl.c regexec.c sv.c
+____________________________________________________________________________
+[ 1142] By: gsar on 1998/06/18 16:28:48
+ Log: fix off-by-one that trampled memory in re_croak2()
+ Branch: perl
+ ! regcomp.c
+____________________________________________________________________________
+[ 1141] By: gsar on 1998/06/18 16:26:59
+ Log: fix AutoLoader to do the right thing when there are relative paths
+ in @INC
+ Branch: perl
+ ! lib/AutoLoader.pm
+____________________________________________________________________________
+[ 1140] By: gsar on 1998/06/18 16:22:47
+ Log: fix Makefile.SH typo
+ Branch: perl
+ ! Makefile.SH
+____________________________________________________________________________
+[ 1139] By: gsar on 1998/06/17 18:06:16
+ Log: 5.004_67 niggles
+ Branch: perl
+ ! Makefile.SH op.c
+
+----------------
+Version 5.004_67
+----------------
+
+____________________________________________________________________________
+[ 1138] By: gsar on 1998/06/15 10:09:27
+ Log: up patchlevel.h to 67, other small tweaks
+ Branch: perl
+ ! patchlevel.h pod/perlhist.pod pod/perltoc.pod vms/perly_c.vms
+ ! win32/Makefile win32/config_H.bc win32/config_H.gc
+ ! win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[ 1137] By: gsar on 1998/06/15 09:08:57
+ Log: tweaks to get PERL_OBJECT building again; passes tests
+ Branch: perl
+ ! ObjXSub.h objpp.h proto.h
+____________________________________________________________________________
+[ 1136] By: gsar on 1998/06/15 08:51:54
+ Log: back out previous change (it breaks PERL_OBJECT)
+ Branch: perl
+ ! ObjXSub.h cc_runtime.h embed.h embedvar.h global.sym
+ ! interp.sym intrpvar.h objpp.h perl.c perl.h pod/perldiag.pod
+ ! pod/perlguts.pod pp_ctl.c proto.h scope.c scope.h util.c
+____________________________________________________________________________
+[ 1135] By: gsar on 1998/06/15 05:32:01
+ Log: added patch, fixed typo, reworked documentation
+ Message-Id: <H00000e500071aa3@MHS>
+ Date: Sun, 14 Jun 1998 14:03:15 EDT
+ From: joshua.pritikin@db.com
+ Subject: [PATCH 5.004_66] JMPENV!
+ Branch: perl
+ ! ObjXSub.h cc_runtime.h embed.h embedvar.h global.sym
+ ! interp.sym intrpvar.h objpp.h perl.c perl.h pod/perldiag.pod
+ ! pod/perlguts.pod pp_ctl.c proto.h scope.c scope.h util.c
+____________________________________________________________________________
+[ 1134] By: gsar on 1998/06/15 04:07:18
+ Log: various win32 odds and ends
+ - added support for waitpid(), open2/open3, and a bugfix for kill()
+ from Ronald Schmidt <RonaldWS@aol.com>
+ - tweak testsuite mods of above
+ - regenerate win32/config_H.?c
+ - change kill() to win32_kill() and export it
+ - coalesce common code in win32.c
+ - add PerlProc_waitpid() and export win32_waitpid()
+ result builds and passes on the three win32 compilers
+ Branch: perl
+ ! ipproc.h lib/IPC/Open3.pm perlproc.h t/lib/open2.t
+ ! t/lib/open3.t util.c win32/config.bc win32/config.gc
+ ! win32/config.vc win32/config_H.bc win32/config_H.gc
+ ! win32/config_H.vc win32/makedef.pl win32/runperl.c
+ ! win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[ 1133] By: gsar on 1998/06/15 01:39:13
+ Log: newer Getopt/Long.pm from public distribution cited in:
+ Message-Id: <m2n2bgm8en.fsf@phoenix.squirrel.nl>
+ Date: 14 Jun 1998 15:15:28 +0200
+ From: Johan Vromans <jvromans@squirrel.nl>
+ Subject: Getopt::Long version 2.17 released
+ Branch: perl
+ ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[ 1132] By: gsar on 1998/06/15 01:37:12
+ Log: documentation update from tchrist
+ Message-Id: <199806140419.WAA20549@chthon.perl.com>
+ Date: Sat, 13 Jun 1998 22:19:32 MDT
+ From: Tom Christiansen <tchrist@chthon.perl.com>
+ Subject: doc patches
+ Branch: perl
+ ! pod/perl.pod pod/perlbook.pod pod/perldata.pod pod/perldsc.pod
+ ! pod/perlfaq.pod pod/perlfaq1.pod pod/perlfaq2.pod
+ ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+ ! pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+ ! pod/perlfaq9.pod pod/perlform.pod pod/perlfunc.pod
+ ! pod/perlipc.pod pod/perllocale.pod pod/perllol.pod
+ ! pod/perlmod.pod pod/perlmodlib.pod pod/perlobj.pod
+ ! pod/perlop.pod pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlsec.pod pod/perlsub.pod pod/perlsyn.pod
+ ! pod/perltie.pod pod/perltoot.pod pod/perlvar.pod
+____________________________________________________________________________
+[ 1131] By: gsar on 1998/06/14 19:33:36
+ Log: Message-ID: <pz3edaedog.fsf@eeyore.ibcinc.com>
+ From: Roderick Schertler <roderick@argon.org>
+ Subject: [PATCH] Re: Exceptions in IPC::Open2
+ Date: 12 Jun 1998 13:24:15 -0400
+ Branch: perl
+ ! lib/IPC/Open3.pm
+____________________________________________________________________________
+[ 1130] By: gsar on 1998/06/14 19:32:25
+ Log: fixup MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 1129] By: gsar on 1998/06/14 18:51:53
+ Log: various win32 fixes
+ - fixes that silence VC noises about dup exports, non-default libs, and
+ unsupported *.def file directives
+ - s/inplace/inplace_label/ malloc.c
+ - update Config{usemymalloc} based on d_mymalloc
+ - export Perl_*Vars
+ - fix makefiles to not build miniperl.exe twice, and to make it properly
+ when defaults are changed
+ Branch: perl
+ ! lib/ExtUtils/MM_Win32.pm lib/ExtUtils/Mksymlists.pm malloc.c
+ ! win32/Makefile win32/config_sh.PL win32/makedef.pl
+ ! win32/makefile.mk win32/perllib.c win32/win32.h
+____________________________________________________________________________
+[ 1128] By: gsar on 1998/06/14 01:38:39
+ Log: remove unused global `scrgv'
+ Branch: perl
+ ! ObjXSub.h cygwin32/cw32imp.h embedvar.h perlvars.h
+____________________________________________________________________________
+[ 1127] By: nick on 1998/06/13 08:39:07
+ Log: Move specialsv_list to embed.sym, regen embed*.h
+ Branch: win32/perl
+ ! embed.h embedvar.h global.sym interp.sym
+____________________________________________________________________________
+[ 1126] By: gsar on 1998/06/12 07:23:06
+ Log: From: jan.dubois@ibm.net (Jan Dubois)
+ Subject: Re: execv in toke.c [PATCH]: win32 wrapper for _66
+ Date: Thu, 11 Jun 1998 21:13:31 +0200
+ Message-ID: <35842ac5.7883075@smtp1.ibm.net>
+ Branch: perl
+ ! win32/makedef.pl win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[ 1125] By: gsar on 1998/06/12 07:21:29
+ Log: added patch, undo earlier workaround
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Subject: Re: Why does saferealloc(NULL,size) croak? [PATCH] against _66
+ Date: Thu, 11 Jun 1998 20:28:36 +0200
+ Message-ID: <35831f69.4975644@smtp1.ibm.net>
+ Branch: perl
+ ! perl.c util.c
+____________________________________________________________________________
+[ 1124] By: gsar on 1998/06/12 07:16:12
+ Log: hand-applied patch with wrapped lines
+ From: "Douglas Lankshear" <dougl@ActiveState.com>
+ Subject: [PATCH 5.004_66] Win32::Reg... bloat in Win32
+ Date: Thu, 11 Jun 1998 11:06:33 -0700
+ Message-ID: <000101bd9563$aae0c4c0$a32fa8c0@tau.Active>
+ Branch: perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 1123] By: gsar on 1998/06/12 07:07:25
+ Log: Date: Thu, 11 Jun 1998 12:40:05 -0400 (EDT)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH 5.004_66] Config_66-01-02.diff
+ Message-Id: <Pine.SUN.3.96.980611123857.18493K-100000@newton.phys>
+ Branch: perl
+ ! Configure
+____________________________________________________________________________
+[ 1122] By: gsar on 1998/06/12 07:06:02
+ Log: Message-Id: <Pine.SUN.3.96.980611122249.18493J-100000@newton.phys>
+ Date: Thu, 11 Jun 1998 12:27:15 -0400 (EDT)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: Re: [PATCH for _66] Makefile.SH problem on dos/djgpp
+ Branch: perl
+ ! pod/checkpods.PL pod/pod2html.PL pod/pod2latex.PL
+ ! pod/pod2man.PL utils/c2ph.PL utils/h2ph.PL utils/h2xs.PL
+ ! utils/perlbug.PL utils/perlcc.PL utils/perldoc.PL
+ ! utils/pl2pm.PL utils/splain.PL x2p/find2perl.PL x2p/s2p.PL
+____________________________________________________________________________
+[ 1121] By: gsar on 1998/06/12 07:01:20
+ Log: a tweaked version of:
+ Message-Id: <l03130300b1a6143078cd@[194.222.64.89]>
+ Date: Fri, 12 Jun 1998 01:26:53 +0200
+ From: Hugo van der Sanden <hv@crypt0.demon.co.uk>
+ Subject: Re: Misparsing s///x
+ Branch: perl
+ ! pod/perlre.pod
+____________________________________________________________________________
+[ 1120] By: gsar on 1998/06/12 06:51:08
+ Log: applied patch, with indentation tweaks
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806110803.EAA09149@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_66] Remove REG_ALIGN junk
+ Date: Thu, 11 Jun 1998 04:03:58 -0400 (EDT)
+ Branch: perl
+ ! regcomp.c regcomp.h regexec.c
+____________________________________________________________________________
+[ 1119] By: gsar on 1998/06/11 17:42:07
+ Log: make REG_INFTY default to something saner when sizeof(short) > 2
+ Message-Id: <Pine.SUN.3.96.980611114241.18493H-100000@newton.phys>
+ Date: Thu, 11 Jun 1998 11:50:07 EDT
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: Re: [PATCH for tests] Regexp fails on long string
+ Branch: perl
+ ! regcomp.h
+____________________________________________________________________________
+[ 1118] By: gsar on 1998/06/11 07:09:06
+ Log: regen embedvar.h
+ Branch: perl
+ ! embedvar.h
+____________________________________________________________________________
+[ 1117] By: gsar on 1998/06/11 06:45:52
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806100751.DAA05441@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_66] Bugs with (?{}), $^R and many-to-many subst
+ Date: Wed, 10 Jun 1998 03:51:47 -0400 (EDT)
+ Branch: perl
+ ! interp.sym intrpvar.h op.c op.h perl.c regcomp.c regcomp.h
+ ! regexec.c regexp.h t/op/pat.t t/op/subst.t
+____________________________________________________________________________
+[ 1116] By: gsar on 1998/06/11 06:35:54
+ Log: misc win32 fixes
+ From: "Douglas Lankshear" <dougl@ActiveState.com>
+ Subject: [PATCH 5.004_66]
+ Date: Wed, 10 Jun 1998 11:28:27 -0700
+ Message-ID: <001a01bd949d$8fd18050$a32fa8c0@tau.Active>
+ Branch: perl
+ ! ObjXSub.h perl.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1115] By: gsar on 1998/06/11 06:33:21
+ Log: Message-ID: <19980610005325.D162@cdata.tvnet.hu>
+ Date: Wed, 10 Jun 1998 00:53:25 +0200
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Subject: [PATCH for _66] Makefile.SH problem on dos/djgpp
+ Branch: perl
+ ! Makefile.SH
+____________________________________________________________________________
+[ 1114] By: gsar on 1998/06/11 06:31:34
+ Log: back out change#1111 and add alternative patch:
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806101538.LAA07293@monk.mps.ohio-state.edu>
+ Subject: Re: PATCH for study/foo/
+ Date: Wed, 10 Jun 1998 11:38:58 -0400 (EDT)
+ Branch: perl
+ ! pp.c sv.c
+____________________________________________________________________________
+[ 1113] By: gsar on 1998/06/11 02:59:23
+ Log: fix outdated bytecode.pl
+ Branch: perl
+ ! bytecode.h bytecode.pl byterun.c byterun.h
+____________________________________________________________________________
+[ 1112] By: gsar on 1998/06/10 07:56:06
+ Log: Added patch, regenerated perly.c and perly.c.diff
+ Message-Id: <m0ygCL8-000Eb3C@alias-2.pr.mcs.net>
+ Date: Sun, 31 May 1998 12:56:14 -0500 (CDT)
+ From: Stephen McCamant <alias@mcs.com>
+ Subject: [PATCH] too many RV2GVs in *foo{THING}
+ Branch: perl
+ ! perly.c perly.c.diff perly.y t/op/gv.t
+____________________________________________________________________________
+[ 1111] By: gsar on 1998/06/10 07:40:30
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806100309.XAA04974@monk.mps.ohio-state.edu>
+ Subject: Re: PATCH for study/foo/
+ Date: Tue, 9 Jun 1998 23:09:55 -0400 (EDT)
+ Branch: perl
+ ! pp.c
+____________________________________________________________________________
+[ 1110] By: gsar on 1998/06/10 07:37:04
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806100219.WAA04865@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_66] -DL and PERL_DEBUG_MSTATS unravelled
+ Date: Tue, 9 Jun 1998 22:19:02 -0400 (EDT)
+ Branch: perl
+ ! pod/perldebug.pod
+____________________________________________________________________________
+[ 1109] By: gsar on 1998/06/10 07:35:29
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806100302.XAA04958@monk.mps.ohio-state.edu>
+ Subject: Re: [PATCH 5.004_66] REG_INFTY patch corrected
+ Date: Tue, 9 Jun 1998 23:02:52 -0400 (EDT)
+ Branch: perl
+ ! regcomp.h
+____________________________________________________________________________
+[ 1108] By: gsar on 1998/06/10 07:31:25
+ Log: Added patch, tweaked other places affected by name change
+ Message-ID: <19980610005417.G162@cdata.tvnet.hu>
+ Date: Wed, 10 Jun 1998 00:54:17 +0200
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Subject: [PATCH] file name DynaLoader.pm.PL is 8.3 unfriendly
+ Branch: perl
+ +> ext/DynaLoader/DynaLoader_pm.PL
+ - ext/DynaLoader/DynaLoader.pm.PL
+ ! MANIFEST ext/DynaLoader/Makefile.PL win32/Makefile
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 1107] By: gsar on 1998/06/10 07:24:20
+ Log: Message-ID: <19980610005342.E162@cdata.tvnet.hu>
+ Date: Wed, 10 Jun 1998 00:53:42 +0200
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Subject: [PATCH for _66] new version of README.dos
+ Branch: perl
+ ! README.dos
+____________________________________________________________________________
+[ 1106] By: gsar on 1998/06/10 07:22:31
+ Log: Message-ID: <19980610005404.F162@cdata.tvnet.hu>
+ Date: Wed, 10 Jun 1998 00:54:04 +0200
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Subject: [PATCH for _66] op/taint.t problem on dos/djgpp
+ Branch: perl
+ ! t/op/taint.t
+____________________________________________________________________________
+[ 1105] By: gsar on 1998/06/10 07:21:21
+ Log: Applied patch, followed by tweaks to *.sym and `perl embed.pl`
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806090216.WAA02041@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_66] Resend of RE cache patch (modified)
+ Date: Mon, 8 Jun 1998 22:16:56 -0400 (EDT)
+ Branch: perl
+ ! embed.h embedvar.h global.sym intrpvar.h mg.c perl.h
+ ! perlvars.h pp_ctl.c proto.h sv.c
+____________________________________________________________________________
+[ 1104] By: gsar on 1998/06/10 07:06:01
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806090210.WAA02027@monk.mps.ohio-state.edu>
+ Subject: Lost chunk of RE jumbo patch
+ Date: Mon, 8 Jun 1998 22:10:52 -0400 (EDT)
+ Branch: perl
+ + t/op/regexp_noamp.t
+____________________________________________________________________________
+[ 1103] By: gsar on 1998/06/10 07:04:20
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Message-Id: <199806090207.WAA02015@monk.mps.ohio-state.edu>
+ Subject: [PATCH 5.004_66] Combined OS/2 support
+ Date: Mon, 8 Jun 1998 22:07:48 -0400 (EDT)
+ Branch: perl
+ ! os2/Changes os2/diff.configure os2/os2.c
+____________________________________________________________________________
+[ 1102] By: gsar on 1998/06/10 07:00:08
+ Log: Message-Id: <199803140103.UAA04839@monk.mps.ohio-state.edu>
+ Date: Fri, 13 Mar 1998 20:03:52 EST
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: [PATCH 5.004_62 5_004_04m1] pod2html again
+ Branch: perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 1101] By: gsar on 1998/06/10 06:55:20
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: Re: 5.004_65 uninitialized variable regexec.c (2)
+ Date: Thu, 28 May 1998 01:28:54 -0400 (EDT)
+ Branch: perl
+ ! regexec.c
+____________________________________________________________________________
+[ 1100] By: gsar on 1998/06/10 06:52:50
+ Log: updated MANIFEST for previous change
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 1099] By: gsar on 1998/06/10 06:51:08
+ Log: Mangled patch, needed hand-tweaks, along with binmode for rs.t:
+ Message-Id: <3.0.5.32.19980605110840.009e12b0@ous.edu>
+ Date: Fri, 05 Jun 1998 11:08:40 -0700
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: Re: [PATCH 5.004_66]Add record read capability to <>
+ Branch: perl
+ + t/base/rs.t
+ ! perl.h pod/perlvar.pod sv.c
+____________________________________________________________________________
+[ 1098] By: gsar on 1998/06/10 06:36:59
+ Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Message-Id: <9806042022.AA10418@claudius.bfsec.bt.co.uk>
+ Subject: [PATCH fror 5.004_66] DB_File-1.60
+ Date: Thu, 4 Jun 1998 21:22:35 +0100 (BST)
+ Branch: perl
+ + ext/DB_File/dbinfo
+ ! MANIFEST ext/DB_File/Changes ext/DB_File/DB_File.pm
+ ! ext/DB_File/DB_File.xs ext/DB_File/typemap t/lib/db-btree.t
+ ! t/lib/db-hash.t t/lib/db-recno.t
+____________________________________________________________________________
+[ 1097] By: gsar on 1998/06/10 06:33:16
+ Log: Message-ID: <19980604134731.D24343@perlsupport.com>
+ Date: Thu, 4 Jun 1998 13:47:31 -0400
+ From: Chip Salzenberg <chip@perl.org>
+ Subject: [PATCH] Invalidate method cache on C<local *subname>
+ Branch: perl
+ ! scope.c t/op/method.t
+____________________________________________________________________________
+[ 1096] By: gsar on 1998/06/10 06:30:51
+ Log: From: Norton Allen <allen@huarp.harvard.edu>
+ Message-Id: <199806031908.PAA04183@bottesini.harvard.edu>
+ Subject: [PATCH] _66 MM_Unix.pm for QNX
+ Date: Wed, 3 Jun 1998 15:08:33 -0400 (edt)
+ Branch: perl
+ ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 1095] By: gsar on 1998/06/10 06:29:21
+ Log: From: Norton Allen <allen@huarp.harvard.edu>
+ Message-Id: <199806031909.PAA04358@bottesini.harvard.edu>
+ Subject: [PATCH] _66 proto.h
+ Date: Wed, 3 Jun 1998 15:09:14 -0400 (edt)
+ Branch: perl
+ ! proto.h
+____________________________________________________________________________
+[ 1094] By: gsar on 1998/06/10 06:26:39
+ Log: Applied relevant parts of:
+ From: Paul Johnson <pjcj@transeda.com>
+ Date: Wed, 3 Jun 1998 19:07:55 +0100 (BST)
+ Message-Id: <199806031807.TAA04100@west-tip.transeda.com>
+ Subject: [PATCH] Enhancing xsubpp's support for C++
+ Branch: perl
+ ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[ 1093] By: gsar on 1998/06/10 06:22:54
+ Log: Message-ID: <19980603112219.B7638@asic.sc.ti.com>
+ Date: Wed, 3 Jun 1998 11:22:19 -0500
+ From: Graham Barr <gbarr@ti.com>
+ Subject: [PATCH perl5.004_04-m4] fix for undef as last arg to setsockopt
+ Branch: perl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 1092] By: gsar on 1998/06/10 06:20:44
+ Log: Message-Id: <199806030919.KAA03527@sale-wts>
+ Date: Wed, 3 Jun 1998 10:20:06 +0100 (BST)
+ From: Alan Burlison <Alan.Burlison@UK.Sun.com>
+ Subject: [PATCH 5.004_66] ExtUtils::Installed.pm and ExtUtils::Packlist.pm
+ Branch: perl
+ ! lib/ExtUtils/Installed.pm lib/ExtUtils/Packlist.pm
+____________________________________________________________________________
+[ 1091] By: gsar on 1998/06/10 06:18:42
+ Log: Message-Id: <3.0.5.32.19980601122229.00a58420@ous.edu>
+ Date: Mon, 01 Jun 1998 12:22:29 -0700
+ From: SYSTEM@cedar.osshe.edu (by way of Dan Sugalski <sugalskd@ous.edu>)
+ Subject: [PATCH 5.004_66] proto.h change to make byterun() visible to VMS
+ Branch: perl
+ ! proto.h
+____________________________________________________________________________
+[ 1090] By: gsar on 1998/06/10 06:14:24
+ Log: A tweaked version of:
+ Date: Mon, 1 Jun 1998 12:05:47 -0700
+ From: SYSTEM@cedar.osshe.edu
+ Message-Id: <980601120547.20617d54@cedar.osshe.edu>
+ Subject: [PATCH 5.004_66] Fix problem with SDBM makefile on VMS
+ Branch: perl
+ ! ext/SDBM_File/sdbm/Makefile.PL
+____________________________________________________________________________
+[ 1089] By: gsar on 1998/06/10 05:58:00
+ Log: Message-Id: <m0yfdd4-000Eb2C@alias-2.pr.mcs.net>
+ Date: Fri, 29 May 1998 23:52:26 -0500 (CDT)
+ From: Stephen McCamant <alias@mcs.com>
+ Subject: [PATCH] Re: Uninitialised error from -M()
+ Branch: perl
+ ! op.c t/op/stat.t
+____________________________________________________________________________
+[ 1088] By: gsar on 1998/06/10 05:55:24
+ Log: Date: Sat, 30 May 1998 08:07:01 -0400
+ From: lvirden@cas.org (Larry Virden)
+ Message-Id: <199805301207.IAA08856@cas.org>
+ Subject: PATCH for pod and warning notice
+ Branch: perl
+ ! pod/perlguts.pod
+____________________________________________________________________________
+[ 1087] By: gsar on 1998/06/10 05:52:05
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Date: Mon, 8 Jun 1998 14:45:36 -0400 (EDT)
+ Message-Id: <Pine.SUN.3.96.980608144437.13972A-100000@newton.phys>
+ Subject: [PATCH 5.004_66] Config_66-01
+ Branch: perl
+ ! Configure MANIFEST Porting/Glossary Porting/config.sh
+ ! Porting/config_H config_h.SH
+____________________________________________________________________________
+[ 1086] By: gsar on 1998/06/10 05:46:38
+ Log: Message-Id: <3.0.5.32.19980608161314.00a0a880@ous.edu>
+ Date: Mon, 08 Jun 1998 16:13:14 -0700
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH 5.004_66] Documentation patch for Semaphore.pm
+ Branch: perl
+ ! ext/Thread/Thread/Semaphore.pm
+____________________________________________________________________________
+[ 1085] By: gsar on 1998/06/10 05:44:44
+ Log: Message-Id: <3.0.5.32.19980608161002.00a64a70@ous.edu>
+ Date: Mon, 08 Jun 1998 16:10:02 -0700
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH 5.004_66]Doc & feature patch for Thread::Queue
+ Branch: perl
+ - vms/descrip.mms
+ ! ext/Thread/Thread/Queue.pm
+____________________________________________________________________________
+[ 1084] By: gsar on 1998/06/10 05:38:11
+ Log: Message-Id: <3.0.5.32.19980608153828.00a81ea0@ous.edu>
+ Date: Mon, 08 Jun 1998 15:38:28 -0700
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH POINTER 5.004_66]A configuration system for VMS perl
+ Branch: perl
+ + configure.com vms/descrip_mms.template vms/munchconfig.c
+ + vms/subconfigure.com
+ - vms/config.vms vms/fndvers.com
+ ! MANIFEST README.vms lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[ 1083] By: gsar on 1998/06/10 05:07:04
+ Log: xsubpp enhancements ($CPAN/authors/id/ILYAZ/patches/diff_xsubpp_65), a
+ variant of:
+ Message-Id: <199712131231.HAA04125@monk.mps.ohio-state.edu>
+ Date: Sat, 13 Dec 1997 07:31:02 EST
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: 5.004_55: xsubpp: new keywords INTERFACE C_ARGS
+ Branch: perl
+ ! XSUB.h lib/ExtUtils/xsubpp pod/perlxs.pod
+____________________________________________________________________________
+[ 1082] By: gsar on 1998/06/10 04:52:26
+ Log: add newer malloc.c from Ilya Zakharevich <ilya@math.ohio-state.edu>
+ (from $CPAN/authors/id/ILYAZ/patches/diff_malloc_65)
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 1081] By: gsar on 1998/06/10 03:45:10
+ Log: reverse integrate contents of win32 branch into mainline
+ Branch: perl
+ !> (integrate 44 files)
+____________________________________________________________________________
+[ 1080] By: gsar on 1998/06/09 17:37:55
+ Log: `p4 integrate -b ASPerl && p4 resolve -at`
+ Branch: asperl
+ !> (integrate 43 files)
+____________________________________________________________________________
+[ 1079] By: gsar on 1998/06/09 00:59:06
+ Log: add examples of diff(1) usage
+ Branch: win32/perl
+ ! Porting/patching.pod
+____________________________________________________________________________
+[ 1078] By: gsar on 1998/06/09 00:52:23
+ Log: undo change#1077
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 1077] By: gsar on 1998/06/06 16:47:32
+ Log: make sv_setsv() treat freed SVs like SVt_NULL
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 1076] By: gsar on 1998/06/05 19:03:14
+ Log: delete undiscussed AS changes for PPD (broke .packlist
+ mechanism)
+ Branch: win32/perl
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[ 1075] By: gsar on 1998/06/05 18:18:44
+ Log: add AS patch#26 (rename THIS to PERL_OBJEC_THIS to avoid clash
+ with the xsubpp-generated symbol)
+ Branch: win32/perl
+ ! ObjXSub.h perl.c perl.h pp_ctl.c pp_hot.c toke.c
+ ! win32/dl_win32.xs
+____________________________________________________________________________
+[ 1074] By: gsar on 1998/06/04 22:45:18
+ Log: add AS patch#25 (allow B build with -DPERL_OBJECT)
+ Branch: win32/perl
+ ! ObjXSub.h byterun.h embed.h embedvar.h ext/B/B.xs intrpvar.h
+ ! objpp.h proto.h util.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1073] By: nick on 1998/06/04 17:18:14
+ Log: resolve -at win32 branch into ansiperl
+ Branch: ansiperl
+ +> ObjXSub.h XSLock.h ipdir.h ipenv.h iplio.h ipmem.h ipproc.h
+ +> ipsock.h ipstdio.h objpp.h t/lib/h2ph.h t/lib/h2ph.pht
+ +> t/lib/h2ph.t win32/GenCAPI.pl
+ !> (integrate 127 files)
+____________________________________________________________________________
+[ 1072] By: gsar on 1998/06/04 01:49:24
+ Log: document CORE::GLOBAL:: and global overriding, fix up
+ File::DosGlob, testsuited and all
+ Branch: win32/perl
+ ! lib/File/DosGlob.pm pod/perlsub.pod t/lib/dosglob.t
+____________________________________________________________________________
+[ 1071] By: gsar on 1998/06/03 22:12:55
+ Log: add AS patch#24, remove one other instance of error_no
+ that was missed (patch#23 was intentionally skipped)
+ Branch: win32/perl
+ ! embedvar.h globals.c perlvars.h win32/makedef.pl
+ ! win32/runperl.c
+____________________________________________________________________________
+[ 1070] By: gsar on 1998/06/01 19:42:06
+ Log: fix Liblist.pm to tolerate backslashen in paths
+ Branch: win32/perl
+ ! lib/ExtUtils/Liblist.pm
+____________________________________________________________________________
+[ 1069] By: gsar on 1998/06/01 07:43:02
+ Log: @INC construction on win32 cleaned up
+ - perl.dll location based paths should be much more reliable now
+ - registry stuff unchanged
+ - Config.pm now has all the installfoolib entries for MakeMaker et al
+ Branch: win32/perl
+ ! win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/config_h.PL win32/config_sh.PL win32/makefile.mk
+ ! win32/runperl.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 1068] By: gsar on 1998/05/31 21:52:18
+ Log: semctl tweak
+ Message-Id: <199805312127.QAA06750@gbarr.connect.net>
+ Date: Sun, 31 May 1998 16:27:33 CDT
+ From: Graham Barr <gbarr@pobox.com>
+ Subject: Not OK: perl 5.00466 on i586-linux-thread 2.0.31
+ Branch: win32/perl
+ ! doio.c
+____________________________________________________________________________
+[ 1067] By: gsar on 1998/05/31 21:07:44
+ Log: minimal fix to enable compiling with -DMULTIPLICITY
+ (non-threadsafe regcomp.c globals need revisiting)
+ Branch: win32/perl
+ ! ObjXSub.h embedvar.h interp.sym intrpvar.h regcomp.c
+ ! win32/GenCAPI.pl win32/makedef.pl
+____________________________________________________________________________
+[ 1066] By: gsar on 1998/05/30 21:35:37
+ Log: integrate mainline changes (ASPerl branch is identical to
+ win32 branch as of this change)
+ Branch: asperl
+ !> MANIFEST Todo.5.005 embed.h ext/POSIX/POSIX.xs global.sym
+ !> lib/ExtUtils/Mksymlists.pm pod/perldelta.pod pp_sys.c
+ !> t/op/ipcmsg.t t/op/ipcsem.t win32/Makefile win32/config.bc
+ !> win32/config.gc win32/config.vc win32/config_H.bc
+ !> win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[ 1065] By: gsar on 1998/05/30 21:13:06
+ Log: change#1060 was inexplicably missing some of the "ensure
+ AS stuff does no harm" fixes
+ Branch: win32/perl
+ ! embed.h global.sym win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1064] By: gsar on 1998/05/30 21:10:27
+ Log: integrate mainline to pick up trivial changes
+ Branch: win32/perl
+ !> MANIFEST pp_sys.c
+
+----------------
+Version 5.004_66
+----------------
+
+____________________________________________________________________________
+[ 1063] By: mbeattie on 1998/05/29 15:19:55
+ Log: Remove duplicate win32/TEST line from MANIFEST.
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 1062] By: mbeattie on 1998/05/29 15:18:33
+ Log: Add missing ";" to pp_umask (spotted by Jarkko Hietaniemi).
+ Branch: perl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 1061] By: mbeattie on 1998/05/29 12:02:17
+ Log: Integrate from win32 branch into mainline (this now pulls in the
+ asperl stuff).
+ Branch: perl
+ +> ObjXSub.h XSLock.h ipdir.h ipenv.h iplio.h ipmem.h ipproc.h
+ +> ipsock.h ipstdio.h objpp.h t/lib/h2ph.h t/lib/h2ph.pht
+ +> t/lib/h2ph.t win32/GenCAPI.pl
+ !> (integrate 104 files)
+____________________________________________________________________________
+[ 1060] By: gsar on 1998/05/29 11:05:50
+ Log: reverse integrate asperl branch contents (phew!)
+ - various fixups to ensure AS stuff does no harm
+ - adjust win32/makefiles for the new directory layout (new layout
+ looks rather a muddle--needs rework)
+ - verified build & test on NT and Solaris/gcc
+ Branch: win32/perl
+ +> ObjXSub.h XSLock.h ipdir.h ipenv.h iplio.h ipmem.h ipproc.h
+ +> ipsock.h ipstdio.h objpp.h win32/GenCAPI.pl
+ ! ext/POSIX/POSIX.xs lib/ExtUtils/Mksymlists.pm win32/Makefile
+ ! win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/makefile.mk
+ !> (integrate 77 files)
+____________________________________________________________________________
+[ 1059] By: gsar on 1998/05/29 08:33:56
+ Log: asperl branch verified to build w/o PERL_OBJECT on Solaris and NT
+ Branch: asperl
+ ! util.c
+____________________________________________________________________________
+[ 1058] By: gsar on 1998/05/29 08:31:09
+ Log: type xtext for *.t that were missing it
+ Branch: asperl
+ ! t/lib/thread.t t/op/nothread.t
+____________________________________________________________________________
+[ 1057] By: gsar on 1998/05/29 08:28:46
+ Log: stray t/op/ipc*.t fixups
+ Branch: win32/perl
+ ! t/op/ipcmsg.t t/op/ipcsem.t
+____________________________________________________________________________
+[ 1056] By: gsar on 1998/05/29 07:41:49
+ Log: fixups to make it build and pass tests under both compilers
+ Branch: asperl
+ ! ObjXSub.h objpp.h proto.h
+____________________________________________________________________________
+[ 1055] By: gsar on 1998/05/29 07:22:51
+ Log: integrate mainline changes
+ Branch: asperl
+ +> t/lib/h2ph.h t/lib/h2ph.pht t/lib/h2ph.t
+ !> (integrate 69 files)
+ Branch: win32/perl
+ ! Todo.5.005 pod/perldelta.pod
+____________________________________________________________________________
+[ 1054] By: gsar on 1998/05/29 05:04:03
+ Log: add a txt_compare() routine to t/h2ph.t for DOSISH sanity
+ Branch: win32/perl
+ ! t/lib/h2ph.t
+____________________________________________________________________________
+[ 1053] By: gsar on 1998/05/29 05:01:54
+ Log: misc changes
+ - remove code that works around lack of I_STDARG (we're a happy ANSI family)
+ - leave dump_foo() stubs when not -DDEBUGGING for consistent symbol exports
+ Branch: win32/perl
+ ! deb.c dump.c ext/DynaLoader/dlutils.c ext/POSIX/POSIX.xs
+ ! perl.h perlio.c proto.h regcomp.c run.c scope.c sv.c util.c
+ ! x2p/util.c x2p/util.h
+____________________________________________________________________________
+[ 1052] By: gsar on 1998/05/29 02:31:44
+ Log: merge changes#1014,1038 from maintbranch
+ Branch: win32/perl
+ + t/lib/h2ph.h t/lib/h2ph.pht t/lib/h2ph.t
+ ! MANIFEST Makefile.SH doio.c ext/POSIX/POSIX.xs gv.c
+ ! lib/Benchmark.pm lib/ExtUtils/MM_Unix.pm pod/perldebug.pod
+ ! pod/perldiag.pod pod/perlfunc.pod pod/perlop.pod
+ ! pod/perlre.pod pod/perltie.pod pod/perltrap.pod sv.c
+ ! t/io/pipe.t utils/h2ph.PL
+____________________________________________________________________________
+[ 1051] By: gsar on 1998/05/29 01:38:51
+ Log: regenerate win32/config_H.?c
+ Branch: win32/perl
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[ 1050] By: gsar on 1998/05/29 01:32:41
+ Log: integrate mainline
+ Branch: win32/perl
+ ! win32/Makefile win32/makefile.mk
+ !> Configure INSTALL MANIFEST Porting/Glossary Porting/config.sh
+ !> Porting/config_H Porting/patching.pod config_h.SH doio.c
+ !> ext/POSIX/hints/sunos_4.pl hints/bsdos.sh hints/openbsd.sh
+ !> hints/solaris_2.sh hints/sunos_4_1.sh hints/svr4.sh
+ !> lib/FileHandle.pm patchlevel.h perl.h plan9/config.plan9
+ !> vms/config.vms win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 1049] By: gsar on 1998/05/29 00:57:05
+ Log: fix various shenanigans with C<environ>, BC and VC builds now pass
+ all tests
+ Branch: asperl
+ ! globals.c win32/Makefile win32/makefile.mk win32/runperl.c
+ ! win32/win32.h win32/win32iop.h
+____________________________________________________________________________
+[ 1048] By: mbeattie on 1998/05/28 18:07:24
+ Log: Integrated win32 branch into mainline. The changes to t/op/ipc*.t
+ in change 1043 clashed badly with changes made in the win32
+ branch. I did an accept on the win32 branch version for now.
+ Branch: perl
+ +> t/op/die.t
+ !> (integrate 52 files)
+____________________________________________________________________________
+[ 1047] By: mbeattie on 1998/05/28 17:59:18
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH 5.004_65] Config_65-02-03.diff: SunOS and Solaris hints
+ Date: Thu, 28 May 1998 13:27:25 -0400 (EDT)
+ Subject: [PATCH 5.004_65] Config_65-03-04.diff: semctl probing
+ Date: Thu, 28 May 1998 13:28:21 -0400 (EDT)
+ Branch: perl
+ ! Configure MANIFEST Porting/Glossary Porting/config.sh
+ ! Porting/config_H config_h.SH doio.c ext/POSIX/hints/sunos_4.pl
+ ! hints/solaris_2.sh hints/sunos_4_1.sh perl.h vms/config.vms
+ ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 1046] By: mbeattie on 1998/05/28 17:55:48
+ Log: Back out change 1043 since Andy's forthcoming Config patch
+ includes a modified version.
+ Branch: perl
+ ! Configure config_h.SH doio.c perl.h
+____________________________________________________________________________
+[ 1045] By: mbeattie on 1998/05/28 17:52:40
+ Log: Bump patchlevel.h to 66.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 1044] By: mbeattie on 1998/05/28 17:51:49
+ Log: From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Subject: [PATCH] _04m2 <DOC> perlfunc.pod (fwd)
+ Date: Fri, 15 May 1998 16:18:26 -0600 (MDT)
+ (above minus the t/system.t test pending checking)
+ Subject: [PATCH] 5.004[04|65] <DOC> FileHandle.pm
+ Date: Wed, 20 May 1998 19:50:50 -0600 (MDT)
+ Subject: [PATCH] _65 and _04 <DOC> patching.pod
+ Date: Thu, 21 May 1998 16:33:03 -0600 (MDT)
+ Branch: perl
+ ! Porting/patching.pod lib/FileHandle.pm pod/perlfunc.pod
+____________________________________________________________________________
+[ 1043] By: mbeattie on 1998/05/28 17:42:21
+ Log: This change really is:
+ Subject: [PATCH] 5.004_65: the infamous semctl()
+ Date: Sun, 24 May 1998 16:13:21 +0300 (EET DST)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+
+ Change 1041 claimed to be this patch but was really:
+ Subject: [PATCH] 5.004_65: t/op/ipc*.t
+ Date: Sat, 16 May 1998 00:52:39 +0300 (EET DST)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! Configure config_h.SH doio.c perl.h
+____________________________________________________________________________
+[ 1042] By: mbeattie on 1998/05/28 17:36:57
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH 5.004_65] Config_65-01: lchown() detection.
+ Date: Thu, 28 May 1998 13:25:21 -0400 (EDT)
+ Subject: [PATCH 5.004_65] Config_65-01-02.diff: INSTALL and hints fixes
+ Date: Thu, 28 May 1998 13:26:18 -0400 (EDT)
+ Branch: perl
+ ! Configure INSTALL Porting/Glossary Porting/config.sh
+ ! Porting/config_H config_h.SH doio.c hints/bsdos.sh
+ ! hints/openbsd.sh hints/svr4.sh plan9/config.plan9
+ ! vms/config.vms win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 1041] By: mbeattie on 1998/05/28 17:34:26
+ Log: Subject: [PATCH] 5.004_65: the infamous semctl()
+ Date: Sun, 24 May 1998 16:13:21 +0300 (EET DST)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! t/op/ipcmsg.t t/op/ipcsem.t
+____________________________________________________________________________
+[ 1040] By: gsar on 1998/05/28 02:06:47
+ Log: tweaks to enable Borland build
+ Branch: asperl
+ ! win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[ 1039] By: gsar on 1998/05/27 23:29:22
+ Log: remove C<#define index strchr> from win32.h (unused, and the
+ pollution causes spurious variable name changes in extensions)
+ Branch: win32/perl
+ ! win32/win32.h
+____________________________________________________________________________
+[ 1038] By: TimBunce on 1998/05/27 17:29:15
+ Log: Assorted patches:
+
+ ------ BUILD PROCESS ------
+
+ Title: "add utilities to make test dependencies"
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ Msg-ID: <2607.9805211303@tempest.cise.npl.co.uk>
+ Files: Makefile.SH
+
+ Title: "Add 'make nok' complement to 'make ok'"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0ycRDf-0005Wh-00@taurus.cus.cam.ac.uk>
+ Files: Makefile.SH
+
+ Title: "further h2ph patches (add enum support)"
+ From: Billy <wdconsta@cs.adelaide.edu.au>
+ Msg-ID: <Pine.SV4.3.93.980521025541.14577A-100000@xenon.teaching.cs.adelaide.edu.au>
+ Files: MANIFEST t/lib/h2ph.pht t/lib/h2ph.t utils/h2ph.PL
+
+ ------ CORE LANGUAGE ------
+
+ Title: "Fix %! error spelling and add perldiag.pod entry"
+ From: Graham Barr <gbarr@pobox.com>, Tim Bunce
+ Msg-ID: <19980524193101.A573@pobox.com>
+ Files: pod/perldiag.pod gv.c
+
+ Title: "Remove obsolete Win32 uppercasing ENV code"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805201510.LAA28676@aatma.engin.umich.edu>
+ Files: perl.c
+
+ Title: "Don't mung $! on implicit close"
+ From: Chip Salzenberg <chip@perl.org>
+ Msg-ID: <19980525113309.A15845@perlsupport.com>
+ Files: doio.c
+
+ Title: "Maint trial 3 fails on SunOS 4.1.3 with Sun cc"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980527113114.26608D-100000@newton.phys>
+ Files: doio.c
+
+ ------ DOCUMENTATION ------
+
+ Title: "doc patch: you canna return an array ( list context: || vs or)"
+ From: Jarkko Hietaniemi <jhi@cc.hut.fi>
+ Msg-ID: <oeeemxguf5h.fsf_-_@alpha.hut.fi>
+ Files: pod/perldebug.pod pod/perlfunc.pod pod/perltie.pod pod/perltrap.pod
+
+ Title: "doc patch: @ needs escaping in m/\Q\E/ environment"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0yecim-0002qr-00@taurus.cus.cam.ac.uk>
+ Files: pod/perlop.pod pod/perlre.pod
+
+ Title: "Discrepancy between perlop.pod and m// operator", "Doc fix: Only
+ with /g does list context get matches without parens"
+ From: Greg Chapman <glc@well.com>, Tom Christiansen
+ <tchrist@jhereg.perl.com>, Tom Phoenix
+ <rootbeer@teleport.com>
+ Msg-ID: <000201bd865e$f3bf72e0$1f04400c@assigned.well.com>,
+ <199805231559.JAA21316@jhereg.perl.com>,
+ <Pine.GSO.3.96.980523084947.22348I-100000@user2.teleport.com>
+ Files: pod/perlop.pod
+
+ Title: "Documenting last/next/redo even further"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Tom Phoenix
+ <rootbeer@teleport.com>
+ Msg-ID: <E0yec2h-0000B9-00@taurus.cus.cam.ac.uk>,
+ <Pine.GSO.3.96.980526111426.27437K-100000@user2.teleport.com>
+ Files: pod/perlfunc.pod
+
+ Title: "Documenting last/next/redo within continue block"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980525214558.7133H-100000@user2.teleport.com>
+ Files: pod/perlfunc.pod
+
+ Title: "Document stat return in scalar context"
+ From: Mark-Jason Dominus <mjd@plover.com>
+ Files: pod/perlfunc.pod
+
+ ------ EXTENSIONS ------
+
+ Title: "Better LD_RUN_PATH handling on IRIX"
+ From: "W. Phillip Moore" <wpm@ms.com>
+ Msg-ID: <199805212206.SAA07504@zappa.morgan.com>
+ Files: lib/ExtUtils/MM_Unix.pm
+
+ Title: "Dealing with <unistd.h> in POSIX and SunOS"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980527115256.26608F-100000@newton.phys>
+ Files: ext/POSIX/hints/sunos_4.pl hints/sunos_4_1.sh ext/POSIX/POSIX.xs
+
+ ------ LIBRARY ------
+
+ Title: "Fix FileHandle.pm example bug"
+ From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Msg-ID: <Pine.LNX.3.96.980520194825.10845C-100000@perrin.dimensional.com>
+ Files: lib/FileHandle.pm
+
+ Title: "Add zero/negative $count docs for Benchmark.pm"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0ydEAr-0006NV-00@taurus.cus.cam.ac.uk>
+ Files: lib/Benchmark.pm
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Add test suite recommendations to Porting/patching.pod"
+ From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Msg-ID: <Pine.LNX.3.96.980521162925.3568B-100000@perrin.dimensional.com>
+ Files: Porting/patching.pod
+
+ ------ TESTS ------
+
+ Title: "Fix looping bug in t/io/pipe.t"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0yc737-0006fB-00@taurus.cus.cam.ac.uk>
+ Files: t/io/pipe.t
+ Branch: maint-5.004/perl
+ ! MANIFEST Makefile.SH Porting/patching.pod doio.c
+ ! ext/POSIX/POSIX.xs ext/POSIX/hints/sunos_4.pl gv.c
+ ! hints/sunos_4_1.sh lib/Benchmark.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/FileHandle.pm perl.c pod/perldebug.pod pod/perldiag.pod
+ ! pod/perlfunc.pod pod/perlop.pod pod/perlre.pod pod/perltie.pod
+ ! pod/perltrap.pod t/io/pipe.t t/lib/h2ph.pht t/lib/h2ph.t
+ ! utils/h2ph.PL
+____________________________________________________________________________
+[ 1037] By: gsar on 1998/05/27 16:18:30
+ Log: add AS patch#22 (fix to make die_exit.t pass)
+ Branch: asperl
+ ! win32/runperl.c
+____________________________________________________________________________
+[ 1036] By: gsar on 1998/05/27 12:50:34
+ Log: add AS patch#21 (misc. fixes)
+ Branch: asperl
+ ! ObjXSub.h lib/ExtUtils/MM_Unix.pm objpp.h perl.h
+ ! win32/GenCAPI.pl win32/Makefile win32/makefile.mk
+ ! win32/win32.c win32/win32sck.c
+____________________________________________________________________________
+[ 1035] By: gsar on 1998/05/26 17:26:17
+ Log: more changes to satisfy non-debug VC build (C-API doesn't
+ build, and the testsuite still won't run)
+ Branch: asperl
+ ! ObjXSub.h deb.c dump.c ext/POSIX/POSIX.xs globals.c proto.h
+ ! regcomp.c run.c scope.c sv.c util.c win32/GenCAPI.pl
+____________________________________________________________________________
+[ 1034] By: gsar on 1998/05/26 17:20:22
+ Log: remove doubled hunk (perforce auto-integrate oddity)
+ Branch: win32/perl
+ ! pod/perldiag.pod
+____________________________________________________________________________
+[ 1033] By: gsar on 1998/05/26 13:39:14
+ Log: tweaks to make it build with the Borland compiler. Won't run
+ testsuite because @INC intuition from location of perlcore.dll seems
+ to be broken. Also, system() and qx// seem broken as well.
+ Branch: asperl
+ ! ObjXSub.h doio.c embedvar.h ext/POSIX/POSIX.xs interp.sym
+ ! intrpvar.h objpp.h perl.c perl.h perlvars.h proto.h regcomp.c
+ ! regexec.c toke.c
+____________________________________________________________________________
+[ 1032] By: gsar on 1998/05/24 23:13:05
+ Log: tweak Benchmark.pm to restore old timestr() behavior--show wall secs
+ Branch: win32/perl
+ ! lib/Benchmark.pm
+____________________________________________________________________________
+[ 1031] By: gsar on 1998/05/24 05:36:44
+ Log: tweak makefiles
+ Branch: asperl
+ ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 1030] By: gsar on 1998/05/23 18:58:23
+ Log: merge changes#1016,1018 from maintbranch (1017 is n/a)
+ Branch: win32/perl
+ ! pp_sys.c t/op/die.t
+____________________________________________________________________________
+[ 1029] By: gsar on 1998/05/23 18:55:13
+ Log: merge change#1015 from maintbranch (must revisit 1014 later, is
+ incomplete)
+ Branch: win32/perl
+ ! embed.h global.sym op.c pp.c proto.h sv.c
+____________________________________________________________________________
+[ 1028] By: gsar on 1998/05/23 18:25:14
+ Log: merge change#1013 from maintbranch (1012 is n/a)
+ Branch: win32/perl
+ ! toke.c
+____________________________________________________________________________
+[ 1027] By: gsar on 1998/05/23 18:02:21
+ Log: merge change#1011 from maintbranch
+ Branch: win32/perl
+ ! perl.c pod/perldiag.pod pod/perlfunc.pod pp_ctl.c
+ ! utils/perlbug.PL
+____________________________________________________________________________
+[ 1026] By: nick on 1998/05/23 08:45:04
+ Log: Ids of msgs and sems can be zero, so change || die to a defined() test
+ Branch: win32/perl
+ ! t/op/ipcmsg.t t/op/ipcsem.t
+____________________________________________________________________________
+[ 1025] By: nick on 1998/05/23 08:36:36
+ Log: Resolve win32 into ansiperl
+ Branch: ansiperl
+ +> t/op/die.t
+ !> (integrate 42 files)
+____________________________________________________________________________
+[ 1024] By: gsar on 1998/05/21 21:11:12
+ Log: more mingw32 tweaks
+ Branch: win32/perl
+ ! ext/POSIX/POSIX.xs t/pragma/locale.t
+____________________________________________________________________________
+[ 1023] By: gsar on 1998/05/21 19:15:02
+ Log: fix problematic change#965 from maintbranch
+ Message-Id: <199805162145.RAA02552@monk.mps.ohio-state.edu>
+ Date: Sat, 16 May 1998 17:45:22 EDT
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: Re: Not OK (after all) : perl 5.00404 +MAINT_TRIAL_3 on sun4-solaris 2.5
+ Branch: win32/perl
+ ! gv.c op.c t/comp/proto.t
+____________________________________________________________________________
+[ 1022] By: gsar on 1998/05/21 01:37:04
+ Log: fix POSIX for mingw32
+ Branch: win32/perl
+ ! ext/POSIX/POSIX.xs win32/config.gc win32/config_H.gc
+____________________________________________________________________________
+[ 1021] By: gsar on 1998/05/20 15:02:21
+ Log: remove strupr() from perl.c
+ Branch: win32/perl
+ ! perl.c
+____________________________________________________________________________
+[ 1020] By: TimBunce on 1998/05/19 22:41:40
+ Log: Title: "fix up descrepancy in h2ph test"
+ From: Tim Bunce
+ Files: t/lib/h2ph.pht
+ Branch: maint-5.004/perl
+ ! t/lib/h2ph.pht
+____________________________________________________________________________
+[ 1019] By: TimBunce on 1998/05/19 22:17:15
+ Log: Title: "add a test to check return value from successful s/// (there was none!)"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805161759.NAA12995@aatma.engin.umich.edu>
+ Files: t/op/subst.t
+
+ Title: "fix up descrepancy in h2ph test"
+ From: Tim Bunce
+ Files: t/lib/h2ph.t
+ Branch: maint-5.004/perl
+ ! t/lib/h2ph.t t/op/subst.t
+____________________________________________________________________________
+[ 1018] By: TimBunce on 1998/05/19 21:56:32
+ Log: Title: "fix mem leak and core dump from change 1016"
+ From: Tim Bunce
+ Files: pp_sys.c
+ Branch: maint-5.004/perl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 1017] By: TimBunce on 1998/05/19 21:26:03
+ Log: Title: "qsort, Win32 "POSIX" plus other devel changes for patch-compatibility"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Files: MANIFEST cflags.SH pod/perlembed.pod pod/perlfunc.pod
+ pod/perlguts.pod pod/perlref.pod pod/perlrun.pod
+ pod/perlxstut.pod av.h embed.h hv.h op.h perl.h pp.h
+ proto.h Todo av.c cygwin32/perlgcc cygwin32/perlld deb.c
+ doio.c doop.c ext/ODBM_File/ODBM_File.xs
+ ext/POSIX/Makefile.PL ext/POSIX/POSIX.pm ext/POSIX/POSIX.xs
+ gv.c hv.c interp.sym lib/AutoSplit.pm lib/Cwd.pm
+ lib/FindBin.pm lib/strict.pm lib/ExtUtils/Command.pm
+ lib/ExtUtils/Liblist.pm lib/ExtUtils/MakeMaker.pm
+ lib/ExtUtils/Manifest.pm lib/File/Basename.pm
+ lib/File/Find.pm lib/File/Path.pm lib/Getopt/Long.pm
+ lib/Getopt/Std.pm lib/Net/Ping.pm lib/Pod/Html.pm
+ lib/Pod/Text.pm lib/Term/Cap.pm lib/Test/Harness.pm mg.c
+ op.c perl.c pod/pod2latex.PL pod/pod2man.PL pp.c pp_ctl.c
+ pp_hot.c pp_sys.c scope.c sv.c t/lib/posix.t
+ t/pragma/locale.t utils/perldoc.PL win32/win32.h toke.c
+ universal.c util.c win32/Makefile win32/config_H.bc
+ win32/config_H.vc win32/dl_win32.xs win32/makedef.pl
+ win32/makefile.mk win32/perlglob.c win32/runperl.c
+ win32/win32.c win32/win32sck.c x2p/s2p.PL
+ Branch: maint-5.004/perl
+ ! MANIFEST Todo av.c av.h cflags.SH cygwin32/perlgcc
+ ! cygwin32/perlld deb.c doio.c doop.c embed.h
+ ! ext/ODBM_File/ODBM_File.xs ext/POSIX/Makefile.PL
+ ! ext/POSIX/POSIX.pm ext/POSIX/POSIX.xs gv.c hv.c hv.h
+ ! interp.sym lib/AutoSplit.pm lib/Cwd.pm lib/ExtUtils/Command.pm
+ ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MakeMaker.pm
+ ! lib/ExtUtils/Manifest.pm lib/File/Basename.pm lib/File/Find.pm
+ ! lib/File/Path.pm lib/FindBin.pm lib/Getopt/Long.pm
+ ! lib/Getopt/Std.pm lib/Net/Ping.pm lib/Pod/Html.pm
+ ! lib/Pod/Text.pm lib/Term/Cap.pm lib/Test/Harness.pm
+ ! lib/strict.pm mg.c op.c op.h perl.c perl.h pod/perlembed.pod
+ ! pod/perlfunc.pod pod/perlguts.pod pod/perlref.pod
+ ! pod/perlrun.pod pod/perlxstut.pod pod/pod2latex.PL
+ ! pod/pod2man.PL pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c proto.h
+ ! scope.c sv.c t/lib/posix.t t/pragma/locale.t toke.c
+ ! universal.c util.c utils/perldoc.PL win32/Makefile
+ ! win32/config_H.bc win32/config_H.vc win32/dl_win32.xs
+ ! win32/makedef.pl win32/makefile.mk win32/perlglob.c
+ ! win32/runperl.c win32/win32.c win32/win32.h win32/win32sck.c
+ ! x2p/s2p.PL
+____________________________________________________________________________
+[ 1016] By: TimBunce on 1998/05/19 20:37:42
+ Log: Title: "eval { die $obj }; die; calls $obj->PROPAGATE"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <3561D147.7F3E0C88@ti.com>
+ Files: pp_sys.c t/op/die.t
+ Branch: maint-5.004/perl
+ ! pp_sys.c t/op/die.t
+____________________________________________________________________________
+[ 1015] By: TimBunce on 1998/05/19 20:07:01
+ Log: Title: "loosen const sub re-defined warnings"
+ From: Doug MacEachern <dougm@pobox.com>
+ Msg-ID: <355F713B.6A4C0F04@pobox.com>
+ Files: proto.h global.sym op.c pp.c sv.c
+ Branch: maint-5.004/perl
+ ! global.sym op.c pp.c proto.h sv.c
+____________________________________________________________________________
+[ 1014] By: TimBunce on 1998/05/19 19:48:18
+ Log: Title: "s/FORMLINE/FORMAT/ in sv.c"
+ From: Hugo van der Sanden <hv@crypt0.demon.co.uk>
+ Msg-ID: <l03130303b1837a243670@[194.222.64.89]>
+ Files: sv.c
+
+ Title: "Further h2ph patches (including a test suite)"
+ From: Billy <wdconsta@cs.adelaide.edu.au>
+ Msg-ID: <Pine.SV4.3.93.980516234652.2100A-100000@xenon.teaching.cs.adelaide.edu.au>
+ Files: MANIFEST t/lib/h2ph.h t/lib/h2ph.pht t/lib/h2ph.t utils/h2ph.PL
+ Branch: maint-5.004/perl
+ + t/lib/h2ph.h t/lib/h2ph.pht t/lib/h2ph.t
+ ! MANIFEST sv.c utils/h2ph.PL
+____________________________________________________________________________
+[ 1013] By: TimBunce on 1998/05/19 19:14:13
+ Log: Title: "Remove change 673 (Allow empty BLOCK in code)"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>, Ilya Zakharevich
+ <ilya@math.ohio-state.edu>
+ Msg-ID: <199805151857.OAA29586@monk.mps.ohio-state.edu>,
+ <199805151931.PAA23086@aatma.engin.umich.edu>,
+ <19980129002112Z13378-6931+226@scapa.cs.ualberta.ca>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 1012] By: TimBunce on 1998/05/19 19:03:32
+ Log: Title: "Further SysV sem/msg fixes and removal of non-portable tests"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>, Jarkko Hietaniemi
+ <jhi@iki.fi>
+ Msg-ID: <199805182028.XAA15717@alpha.hut.fi>,
+ <Pine.SUN.3.96.980518133606.17488A-100000@newton.phys>
+ Files: MANIFEST Configure config_h.SH perl.h doio.c t/op/ipcmsg.t
+ t/op/ipcsem.t
+ Branch: maint-5.004/perl
+ ! Configure MANIFEST config_h.SH doio.c perl.h t/op/ipcmsg.t
+ ! t/op/ipcsem.t
+____________________________________________________________________________
+[ 1011] By: TimBunce on 1998/05/19 17:55:38
+ Log: Title: "interp.sym is missing C<e_script> after -e fix"
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Msg-ID: <355d460d.7621669@smtp1.ibm.net>
+ Files: embed.h interp.sym
+
+ Title: "Undo changed error message which breaks Tk"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805161557.LAA08106@aatma.engin.umich.edu>
+ Files: pp_ctl.c
+
+ Title: "Minor fixups to new -e script code"
+ From: Tim Bunce
+ Files: perl.c
+
+ Title: "Remove old diags not relevant after -e fix"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>, Gurusamy Sarathy
+ <gsar@engin.umich.edu>, Tim.Bunce@ig.co.uk (Tim Bunce)
+ Msg-ID: <199805172143.RAA07896@aatma.engin.umich.edu>,
+ <199805181335.OAA07008@toad.ig.co.uk>,
+ <Pine.SUN.3.96.980517104819.16183B-100000@newton.phys>
+ Files: pod/perldiag.pod
+
+ Title: "more examples for vec()"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980518093728.28732P-100000@user2.teleport.com>
+ Files: pod/perlfunc.pod
+
+ Title: ""make ok" (perlbug -ok) should not be interactive"
+ From: Hugo van der Sanden <hv@crypt0.demon.co.uk>, Jarkko Hietaniemi
+ <jhi@iki.fi>
+ Msg-ID: <199805160942.MAA20171@alpha.hut.fi>,
+ <l03130300b1834f9732a0@[194.222.64.89]>
+ Files: utils/perlbug.PL
+ Branch: maint-5.004/perl
+ ! embed.h interp.sym perl.c pod/perldiag.pod pod/perlfunc.pod
+ ! pp_ctl.c utils/perlbug.PL
+____________________________________________________________________________
+[ 1010] By: gsar on 1998/05/18 09:40:58
+ Log: integrate mainline changes (untested)
+ Branch: asperl
+ +> Porting/Contract Porting/patching.pod README.beos beos/nm.c
+ +> ext/DynaLoader/DynaLoader.pm.PL ext/POSIX/hints/bsdos.pl
+ +> ext/POSIX/hints/freebsd.pl ext/POSIX/hints/netbsd.pl
+ +> ext/POSIX/hints/openbsd.pl hints/beos.sh hints/openbsd.sh
+ +> pod/perldelta4.pod t/op/defins.t t/op/die.t t/op/die_exit.t
+ +> t/op/ipcmsg.t t/op/ipcsem.t t/op/pos.t utils/perlcc.PL
+ - ext/DynaLoader/DynaLoader.pm
+ ! win32/win32.c
+ !> (integrate 234 files)
+____________________________________________________________________________
+[ 1009] By: gsar on 1998/05/18 07:51:19
+ Log: more whitespace tweaks from maintbranch
+ Branch: win32/perl
+ ! av.c perl.c pp_ctl.c pp_sys.c toke.c
+____________________________________________________________________________
+[ 1008] By: gsar on 1998/05/17 22:37:20
+ Log: sundry whitespace cleanups from maintbranch
+ Branch: win32/perl
+ ! Porting/Contract XSUB.h av.c gv.c mg.c perl.c
+____________________________________________________________________________
+[ 1007] By: gsar on 1998/05/16 21:59:46
+ Log: integrate mainline
+ Branch: win32/perl
+ !> INSTALL doio.c lib/strict.pm perl.c perl.h pod/perldebug.pod
+ !> t/op/ipcmsg.t t/op/ipcsem.t
+____________________________________________________________________________
+[ 1006] By: gsar on 1998/05/16 21:54:23
+ Log: merge changes#996,998,999 from maintbranch
+ Branch: win32/perl
+ ! Changes5.004 Porting/makerel t/base/lex.t toke.c
+____________________________________________________________________________
+[ 1005] By: gsar on 1998/05/16 21:49:47
+ Log: merge change#995 from maintbranch, tweak interp.sym and
+ run embed.pl
+ Branch: win32/perl
+ ! embedvar.h interp.sym intrpvar.h perl.c
+____________________________________________________________________________
+[ 1004] By: gsar on 1998/05/16 21:27:18
+ Log: merge changes#989,990,992 from maintbranch
+ Branch: win32/perl
+ + t/op/die.t
+ ! MANIFEST installperl pod/perldiag.pod pp_ctl.c t/op/ipcmsg.t
+____________________________________________________________________________
+[ 1003] By: gsar on 1998/05/16 21:16:47
+ Log: sync config*.gc with others, and verify that nothing from
+ change#986 needs to be merged
+ Branch: win32/perl
+ ! win32/config.gc win32/config_H.gc
+____________________________________________________________________________
+[ 1002] By: gsar on 1998/05/16 21:04:04
+ Log: merge change#985 from maintbranch
+ Branch: win32/perl
+ ! lib/AutoSplit.pm lib/ExtUtils/Manifest.pm pp_ctl.c pp_sys.c
+ ! util.c
+____________________________________________________________________________
+[ 1001] By: gsar on 1998/05/16 17:53:16
+ Log: add a test to check return value from successful s/// (there was none!)
+ Branch: win32/perl
+ ! t/op/subst.t
+____________________________________________________________________________
+[ 1000] By: gsar on 1998/05/16 17:42:34
+ Log: fix misplaced SPAGAIN that caused successful s/// to fail to
+ return a value on the stack
+ Branch: win32/perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 999] By: TimBunce on 1998/05/15 23:04:30
+ Log: Title: "Update Porting/makerel script for perforce dir structure"
+ From: Tim Bunce
+ Files: Porting/makerel
+ Branch: maint-5.004/perl
+ ! Porting/makerel
+____________________________________________________________________________
+[ 998] By: TimBunce on 1998/05/15 22:49:55
+ Log: Title: "Updated Changes file for trial 3"
+ From: Tim Bunce
+ Files: Changes
+ Branch: maint-5.004/perl
+ ! Changes
+____________________________________________________________________________
+[ 997] By: gsar on 1998/05/15 22:21:41
+ Log: merge changes#982,984 from maintbranch
+ Branch: win32/perl
+ ! gv.c lib/English.pm perl.c pod/perlfunc.pod t/io/pipe.t
+ ! t/op/exec.t t/op/ipcsem.t util.c utils/h2ph.PL utils/h2xs.PL
+____________________________________________________________________________
+[ 996] By: TimBunce on 1998/05/15 22:19:32
+ Log: Title: "Negative array subscript unrecognized in regex"
+ From: Mark-Jason Dominus <mjd@plover.com>,
+ h.sanden@elsevier.nl (Hugo van der Sanden)
+ Msg-ID: <19980425040819.13828.qmail@plover.com>,
+ <199805151514.RAA04121@dorlas.elsevier.nl>
+ Files: t/base/lex.t toke.c
+
+ Title: "Remove e_fp from toke.c after change 955"
+ From: Tim Bunce
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! t/base/lex.t toke.c
+____________________________________________________________________________
+[ 995] By: TimBunce on 1998/05/15 22:08:32
+ Log: Title: "Fix -e security hole (no longer uses temp file)"
+ From: Tim Bunce
+ Files: embed.h perl.h perl.c
+ Branch: maint-5.004/perl
+ ! embed.h perl.c perl.h
+____________________________________________________________________________
+[ 994] By: gsar on 1998/05/15 22:08:17
+ Log: merge change#981 from maintbranch, add XXX comment about
+ supporting %! for usethreads case
+ Branch: win32/perl
+ ! gv.c op.c
+____________________________________________________________________________
+[ 992] By: TimBunce on 1998/05/15 22:01:32
+ Log: Title: "install non-backwards compatible .pm files into archlib"
+ From: Tim Bunce
+ Files: installperl
+
+ Title: "revert "Can't locate" message to original for maintenance"
+ From: Tim Bunce
+ Msg-ID: <199804240047.SAA24155@den-mdev1.co.csgsystems.com>
+ Files: pod/perldiag.pod pp_ctl.c
+ Branch: maint-5.004/perl
+ ! installperl pod/perldiag.pod pp_ctl.c
+____________________________________________________________________________
+[ 991] By: gsar on 1998/05/15 21:35:00
+ Log: reverse integrate ansiperl (all except the
+ C<attrs qw(package locked)> stuff, and the duplicate hunks)
+ i.e. prototype fixes, perldoc.PL enhancements, and s/comment/comment_t/g
+ Branch: win32/perl
+ !> bytecode.h byterun.c cv.h ext/attrs/attrs.pm
+ !> ext/attrs/attrs.xs pod/perlop.pod pp_hot.c sv.c toke.c
+ !> utils/perldoc.PL
+____________________________________________________________________________
+[ 990] By: TimBunce on 1998/05/15 16:54:18
+ Log: Title: "Add tests for die $ref"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <355C6297.121B576B@ti.com>
+ Files: MANIFEST t/op/die.t
+ Branch: maint-5.004/perl
+ + t/op/die.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 989] By: TimBunce on 1998/05/15 16:38:19
+ Log: Title: "Fix t/op/ipcmsg.t for Digital UNIX"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199805151337.QAA01174@alpha.hut.fi>
+ Files: t/op/ipcmsg.t
+ Branch: maint-5.004/perl
+ ! t/op/ipcmsg.t
+____________________________________________________________________________
+[ 988] By: mbeattie on 1998/05/15 16:28:08
+ Log: Patch from Sarathy to fix up win32 integration. Patch from Jarkko
+ (manually applied and tweaked) to fix up SysV IPC semaphores for
+ Solaris and Linux (pre-glibc and glibc). Fix up t/op/ipcmsg.t and
+ t/op/ipcsem.t for platforms which wanted to skip test. Completely
+ disable ipcsem.t since it doesn't seem to work properly even when
+ not skipped. This is _65.
+ Branch: perl
+ ! INSTALL doio.c lib/strict.pm perl.c perl.h pod/perldebug.pod
+ ! t/op/ipcmsg.t t/op/ipcsem.t
+____________________________________________________________________________
+[ 987] By: nick on 1998/05/15 16:03:35
+ Log: Integrate win32
+ Branch: ansiperl
+ +> Porting/Contract Porting/patching.pod README.beos beos/nm.c
+ +> ext/DynaLoader/DynaLoader.pm.PL ext/POSIX/hints/bsdos.pl
+ +> ext/POSIX/hints/freebsd.pl ext/POSIX/hints/netbsd.pl
+ +> ext/POSIX/hints/openbsd.pl hints/beos.sh hints/openbsd.sh
+ +> pod/perldelta4.pod t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t
+ +> t/op/pos.t utils/perlcc.PL
+ - ext/DynaLoader/DynaLoader.pm
+ !> (integrate 208 files)
+____________________________________________________________________________
+[ 986] By: TimBunce on 1998/05/15 15:28:45
+ Log: Title: "Patches for BeOS port of Perl, courtesy of Tom Spindler"
+ From: Jarkko Hietaniemi <jhi@iki.fi>, Tom Spindler
+ Msg-ID: <199805042312.CAA09025@alpha.hut.fi>
+ Files: MANIFEST Configure config_h.SH hints/beos.sh pod/perlfunc.pod
+ Porting/Glossary README.beos beos/nm.c lib/Term/ReadLine.pm
+ plan9/config.plan9 pp_sys.c t/io/pipe.t vms/config.vms
+ win32/config.bc win32/config.vc win32/config_H.bc
+ win32/config_H.vc
+ Branch: maint-5.004/perl
+ + README.beos beos/nm.c hints/beos.sh
+ ! Configure MANIFEST Porting/Glossary config_h.SH
+ ! lib/Term/ReadLine.pm plan9/config.plan9 pod/perlfunc.pod
+ ! pp_sys.c t/io/pipe.t vms/config.vms win32/config.bc
+ ! win32/config.vc win32/config_H.bc win32/config_H.vc
+____________________________________________________________________________
+[ 985] By: TimBunce on 1998/05/15 15:02:43
+ Log: Title: "allow die $ref"
+ From: Graham Barr <gbarr@ti.com>, Tim.Bunce@ig.co.uk (Tim Bunce)
+ Msg-ID: <199805151351.OAA01985@toad.ig.co.uk>, <355C3E67.AF25B9F7@ti.com>
+ Files: pp_ctl.c pp_sys.c util.c
+
+ Title: "ExtUtils::Manifest could truncate files during "make dist""
+ From: "James E Jurach Jr." <muaddib@arrakis.int.ein.cz>,
+ koenig@kulturbox.de (Andreas J. Koenig)
+ Msg-ID: <199805111048.MAA02573@arrakis.int.ein.cz>,
+ <sfc90o8bgie.fsf@dubravka.in-berlin.de>
+ Files: lib/ExtUtils/Manifest.pm
+
+ Title: "Autosplit doesn't like upper case letters in sub names on VMS"
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Msg-ID: <3.0.5.32.19980330152332.009cb130@osshe.edu>
+ Files: lib/AutoSplit.pm
+
+ Title: "AutoSplit/AutoLoaded subs: give useful line numbers in warnings etc"
+ From: "Jesse N. Glick" <jglick@sig.bsh.com>, koenig@anna.mind.de (Andreas
+ J. Koenig), larry@wall.org (Larry Wall)
+ Msg-ID: <199709292015.NAA09627@wall.org>, <342FCDDF.23534195@sig.bsh.com>,
+ <sfc202c9jsb.fsf@anna.in-berlin.de>,
+ <sfc3efg5rhg.fsf@dubravka.in-berlin.de>
+ Files: lib/AutoSplit.pm
+ Branch: maint-5.004/perl
+ ! lib/AutoSplit.pm lib/ExtUtils/Manifest.pm pp_ctl.c pp_sys.c
+ ! util.c
+____________________________________________________________________________
+[ 984] By: TimBunce on 1998/05/15 14:18:52
+ Log: ------ CORE LANGUAGE ------
+
+ Title: "Fix close pipe returning status from wrong child"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, kstar@chapin.edu@ig.co.uk ()
+ Msg-ID: <199805142313.TAA02684@chapin.edu>,
+ <E0yZ8ah-0005d8-00@taurus.cus.cam.ac.uk>
+ Files: t/io/pipe.t util.c
+
+ Title: "Avoid English.pm triggering load of Errno.pm"
+ From: Tim Bunce
+ Files: gv.c lib/English.pm
+
+ ------ DOCUMENTATION ------
+
+ Title: "Document child exit cause a parent sleep to end early"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0yZwMK-0000D9-00@taurus.cus.cam.ac.uk>
+ Files: pod/perlfunc.pod
+
+ ------ EXTENSIONS ------
+
+ Title: "BSD Platforms need STRUCT_TM_HASZONE for POSIX"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980512095524.8158C-100000@newton.phys>
+ Files: MANIFEST ext/POSIX/hints/bsdos.pl ext/POSIX/hints/freebsd.pl
+ ext/POSIX/hints/netbsd.pl ext/POSIX/hints/openbsd.pl
+
+ Title: "MM_VMS.pm fixes for building external library"
+ From: Dan Sugalski <sugalskd@ous.edu>
+ Msg-ID: <3.0.5.32.19980511160542.009dd480@ous.edu>
+ Files: lib/ExtUtils/MM_VMS.pm
+
+ Title: "Appease picky DEC compiler in POSIX.xs"
+ From: Dan Sugalski <sugalskd@ous.edu>
+ Msg-ID: <3.0.5.32.19980511161434.009f8bb0@ous.edu>
+ Files: ext/POSIX/POSIX.xs
+
+ ------ TESTS ------
+
+ Title: "Fix constant detection in t/op/ipcsem.t for Digit UNIX"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199805121212.PAA15351@alpha.hut.fi>
+ Files: t/op/ipcsem.t
+
+ Title: "Fix doc bug for system() return value"
+ From: Daniel Grisinger <dgris@perrin.dimensional.com>
+ Msg-ID: <Pine.LNX.3.96.980514165608.4062A-100000@perrin.dimensional.com>
+ Files: pod/perlfunc.pod t/op/exec.t
+
+ ------ UTILITIES ------
+
+ Title: "Avoid possible constant autoload loop"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Graham Barr <gbarr@ti.com>, Ilya
+ Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199805141910.PAA26994@monk.mps.ohio-state.edu>,
+ <355B475A.C5AD4B90@ti.com>,
+ <E0ya11X-0000hm-00@taurus.cus.cam.ac.uk>
+ Files: utils/h2xs.PL
+
+ Title: "Further improvements to h2ph.PL"
+ From: kstar@chapin.edu
+ Msg-ID: <199805130241.WAA25459@chapin.edu>
+ Files: utils/h2ph.PL
+ Branch: maint-5.004/perl
+ + ext/POSIX/hints/bsdos.pl ext/POSIX/hints/freebsd.pl
+ + ext/POSIX/hints/netbsd.pl ext/POSIX/hints/openbsd.pl
+ ! MANIFEST ext/POSIX/POSIX.xs gv.c lib/English.pm
+ ! lib/ExtUtils/MM_VMS.pm pod/perlfunc.pod t/io/pipe.t
+ ! t/op/exec.t t/op/ipcsem.t util.c utils/h2ph.PL utils/h2xs.PL
+
+----------------
+Version 5.004_64
+----------------
+
+____________________________________________________________________________
+[ 983] By: mbeattie on 1998/05/15 14:04:17
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ +> Porting/patching.pod t/op/defins.t
+ !> (integrate 107 files)
+____________________________________________________________________________
+[ 982] By: TimBunce on 1998/05/15 12:33:26
+ Log: Title: "comment init_postdump_symbols issues"
+ From: Tim Bunce
+ Files: perl.c
+
+ Title: "Improve sort docs re SUBNAME"
+ From: circle@azstarnet.com
+ Msg-ID: <199804281828.LAA22737@andromeda.azstarnet.com>
+ Files: pod/perlfunc.pod
+ Branch: maint-5.004/perl
+ ! perl.c pod/perlfunc.pod
+____________________________________________________________________________
+[ 981] By: TimBunce on 1998/05/15 11:47:28
+ Log: Title: "Add hook to tie %! to external Errno.pm module (not included)"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <355080CD.1111BC81@ti.com>
+ Files: gv.c
+ Branch: maint-5.004/perl
+ ! gv.c
+____________________________________________________________________________
+[ 980] By: gsar on 1998/05/15 06:16:13
+ Log: add doc for C<+{}> vs. C<{;}> disambiguation
+ Branch: win32/perl
+ ! pod/perlref.pod
+____________________________________________________________________________
+[ 979] By: gsar on 1998/05/15 04:59:47
+ Log: tweaks to win32 makefiles. This version builds and passes all
+ tests on Solaris/gcc, win32/[bv]c. Looks all set to go.
+ Branch: win32/perl
+ ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 978] By: gsar on 1998/05/15 02:41:58
+ Log: merge changes#922,944,949,965,970 from maintbranch
+ Branch: win32/perl
+ + Porting/patching.pod t/op/defins.t
+ ! MANIFEST Porting/makerel ext/POSIX/POSIX.pod gv.c gv.h hv.c
+ ! lib/File/Find.pm op.c pod/Makefile pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlop.pod pod/pod2man.PL
+ ! t/lib/filefind.t t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t
+ ! utils/perlbug.PL
+____________________________________________________________________________
+[ 977] By: gsar on 1998/05/15 02:15:25
+ Log: merge changes#906,907,909,910 from maintbranch
+ Branch: win32/perl
+ ! MANIFEST doio.c doop.c embed.h embedvar.h global.sym
+ ! keywords.h lib/Carp.pm lib/File/Basename.pm mg.c opcode.h
+ ! perl.c perl.h pod/perldiag.pod pp.c pp_hot.c proto.h sv.c
+ ! util.c
+____________________________________________________________________________
+[ 976] By: gsar on 1998/05/15 01:34:53
+ Log: merge change#905 from maintbranch, minor fixes to get
+ clean build+test on Solaris
+ Branch: win32/perl
+ ! doop.c dump.c embed.h embedvar.h lib/strict.pm mg.c op.h
+ ! opcode.h pod/perlop.pod pod/perlre.pod pp_ctl.c pp_hot.c
+ ! regcomp.c sv.c t/op/taint.t toke.c
+____________________________________________________________________________
+[ 975] By: gsar on 1998/05/14 23:34:26
+ Log: merge change#904 from maintbranch
+ Branch: win32/perl
+ ! doop.c ext/DynaLoader/dl_aix.xs ext/IO/lib/IO/Socket.pm
+ ! ext/NDBM_File/NDBM_File.pm lib/strict.pm lib/subs.pm
+ ! lib/vars.pm op.c perl.c pod/perldiag.pod pod/perlembed.pod
+ ! pod/perlfunc.pod pod/perlsec.pod pp_ctl.c sv.c utils/h2ph.PL
+ ! vms/descrip.mms
+____________________________________________________________________________
+[ 974] By: gsar on 1998/05/14 23:11:05
+ Log: merge change#897 from maintbranch
+ Branch: win32/perl
+ ! Porting/Contract Todo doio.c emacs/ptags embed.h ext/IO/IO.pm
+ ! ext/Opcode/Opcode.pm lib/Carp.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/Pod/Html.pm lib/Term/ReadLine.pm lib/chat2.pl opcode.h
+ ! opcode.pl perl.c pod/perlapio.pod pod/perlcall.pod
+ ! pod/perldebug.pod pod/perldelta.pod pod/perldelta4.pod
+ ! pod/perldiag.pod pod/perlembed.pod pod/perlfaq2.pod
+ ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+ ! pod/perlfaq7.pod pod/perlfaq8.pod pod/perlform.pod
+ ! pod/perlfunc.pod pod/perlguts.pod pod/perlhist.pod
+ ! pod/perlipc.pod pod/perllocale.pod pod/perlmodlib.pod
+ ! pod/perlop.pod pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlstyle.pod pod/perlsub.pod pod/perlsyn.pod
+ ! pod/perltoot.pod pod/perlvar.pod pod/perlxs.pod pod/pod2man.PL
+ ! pod/roffitall pp.c pp_sys.c t/TEST t/op/gv.t t/op/hashwarn.t
+ ! t/op/substr.t vms/vms.c win32/config.bc win32/config.vc
+ ! win32/config_H.bc win32/config_H.vc win32/win32.c
+ ! x2p/find2perl.PL
+____________________________________________________________________________
+[ 973] By: gsar on 1998/05/14 22:24:26
+ Log: integrate mainline
+ Branch: win32/perl
+ + Porting/Contract
+ +> README.beos beos/nm.c ext/POSIX/hints/bsdos.pl
+ +> ext/POSIX/hints/freebsd.pl ext/POSIX/hints/netbsd.pl
+ +> ext/POSIX/hints/openbsd.pl hints/beos.sh pod/perldelta4.pod
+ +> utils/perlcc.PL
+ ! MANIFEST Todo doio.c emacs/ptags embed.h ext/IO/IO.pm
+ ! ext/Opcode/Opcode.pm ext/Socket/Socket.xs hints/irix_5.sh
+ ! hints/netbsd.sh hv.c lib/Benchmark.pm lib/Carp.pm
+ ! lib/ExtUtils/Install.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/Pod/Html.pm lib/Term/ReadLine.pm lib/chat2.pl opcode.h
+ ! opcode.pl perl.c perl.h pod/perlapio.pod pod/perlcall.pod
+ ! pod/perldebug.pod pod/perldelta.pod pod/perldiag.pod
+ ! pod/perlembed.pod pod/perlfaq2.pod pod/perlfaq3.pod
+ ! pod/perlfaq4.pod pod/perlfaq5.pod pod/perlfaq7.pod
+ ! pod/perlfaq8.pod pod/perlform.pod pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlhist.pod pod/perlipc.pod
+ ! pod/perllocale.pod pod/perlmodlib.pod pod/perlop.pod
+ ! pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlstyle.pod pod/perlsub.pod pod/perlsyn.pod
+ ! pod/perltoot.pod pod/perlvar.pod pod/perlxs.pod pod/pod2man.PL
+ ! pod/roffitall pp.c pp_hot.c pp_sys.c sv.c t/TEST t/op/gv.t
+ ! t/op/hashwarn.t t/op/substr.t vms/vms.c win32/config.bc
+ ! win32/config.vc win32/config_H.bc win32/config_H.vc
+ ! win32/win32.c x2p/find2perl.PL
+ !> (integrate 59 files)
+____________________________________________________________________________
+[ 972] By: nick on 1998/05/14 18:09:01
+ Log: Changes to allow compiler with gcc-2.8.1 in C++ mode,
+ Remove K&R style functions, avoid struct/typedef clash.
+ Branch: ansiperl
+ ! bytecode.h byterun.c sv.c toke.c
+____________________________________________________________________________
+[ 971] By: TimBunce on 1998/05/14 16:52:19
+ Log:
+ Title: "fix C<print "foo ${\()}"> (pp_refgen fumbles when G_SCALAR, no args)"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805070402.AAA02858@aatma.engin.umich.edu>
+ Files: pp.c
+ Branch: maint-5.004/perl
+ ! pp.c
+____________________________________________________________________________
+[ 970] By: TimBunce on 1998/05/14 16:18:06
+ Log:
+ Title: "perlbug reformatted"
+ From: Dominic Dunlop <domo@vo.lu>, Hugo van der Sanden
+ <hv@crypt0.demon.co.uk>
+ Msg-ID: <199805110954.LAA20367@dorlas.elsevier.nl>,
+ <l03130300b17cebcb6d33@[194.222.64.89]>,
+ <v03110702b17ccbab6824@[195.95.102.67]>
+ Files: utils/perlbug.PL
+ Branch: maint-5.004/perl
+ ! utils/perlbug.PL
+____________________________________________________________________________
+[ 969] By: mbeattie on 1998/05/14 16:15:09
+ Log: Integrate win32 branch into mainline
+ Branch: perl
+ +> ext/DynaLoader/DynaLoader.pm.PL hints/openbsd.sh
+ +> t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t t/op/pos.t
+ - ext/DynaLoader/DynaLoader.pm
+ !> (integrate 118 files)
+____________________________________________________________________________
+[ 968] By: mbeattie on 1998/05/14 16:05:57
+ Log: Bump patchlevel to 65
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 967] By: mbeattie on 1998/05/14 16:05:19
+ Log: Another fixup of MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 966] By: mbeattie on 1998/05/14 16:02:20
+ Log: Add missing files to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 965] By: TimBunce on 1998/05/14 16:00:11
+ Log:
+ Title: "Sub declaration cost reduced from ~500 to ~100 bytes"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199805050607.CAA02050@monk.mps.ohio-state.edu>
+ Files: gv.h gv.c op.c
+ Branch: maint-5.004/perl
+ ! gv.c gv.h op.c
+____________________________________________________________________________
+[ 964] By: mbeattie on 1998/05/14 15:58:01
+ Log: Subject: [PATCH] Using Getopts::* with strict vars
+ Date: Wed, 29 Apr 1998 22:48:16 -0700 (PDT)
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Branch: perl
+ ! lib/Getopt/Long.pm lib/Getopt/Std.pm lib/strict.pm
+____________________________________________________________________________
+[ 963] By: mbeattie on 1998/05/14 15:56:53
+ Log: Subject: [ PATCH 5.004_64 ] Integrated regression tests for compiler
+ Date: Wed, 29 Apr 1998 21:02:36 -0600 (MDT)
+ From: epeschko@den-mdev1 (Ed Peschko)
+ Branch: perl
+ + utils/perlcc.PL
+ ! MANIFEST Makefile.SH installperl lib/Test/Harness.pm
+ ! pod/Makefile t/TEST t/harness utils/Makefile x2p/Makefile.SH
+____________________________________________________________________________
+[ 962] By: mbeattie on 1998/05/14 15:45:28
+ Log: From: Dan Sugalski <sugalskd@ous.edu>
+ Subject: [PATCH 5.004_64] Final (I hope) doc patch for Thread.pm
+ Date: Wed, 08 Apr 1998 17:08:48 -0700
+ Subject: [PATCH 5.004_64] Revised second Thread.PM doc patch
+ Date: Fri, 08 May 1998 10:49:16 -0700
+ Branch: perl
+ ! ext/Thread/Thread.pm
+____________________________________________________________________________
+[ 961] By: mbeattie on 1998/05/14 15:43:39
+ Log: Subject: Consolidated patch to 5.004_64
+ Date: Wed, 08 Apr 1998 19:44:34 -0400 (EDT)
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Branch: perl
+ ! ext/B/byteperl.c lib/ExtUtils/MM_Unix.pm
+ ! lib/ExtUtils/MM_VMS.pm lib/chat2.pl perl.c pod/perlsub.pod
+ ! vms/config.vms vms/descrip.mms vms/genconfig.pl
+ ! vms/perlvms.pod
+____________________________________________________________________________
+[ 960] By: mbeattie on 1998/05/14 15:41:41
+ Log: Subject: Re: ANNOUNCE: Perl 5.005b1t3 (a.k.a. perl5.004_64) is available
+ Date: 07 Apr 1998 18:31:21 +0200
+ From: JVromans@Squirrel.nl (Johan Vromans)
+ Branch: perl
+ ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[ 959] By: mbeattie on 1998/05/14 15:39:29
+ Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+ Subject: Re: [PATCH] 5.004_04 or 5.004_64: Benchmark.pm: add run-for-some-time
+ Date: Wed, 8 Apr 1998 09:47:45 +0300 (EET DST)
+ Subject: [PATCH] perl 5.004_64+Config_04
+ Date: Thu, 14 May 1998 12:14:07 +0300 (EET DST)
+ Branch: perl
+ ! lib/Benchmark.pm pod/perlfunc.pod
+____________________________________________________________________________
+[ 958] By: mbeattie on 1998/05/14 15:36:30
+ Log: From: kstar@chapin.edu
+ Subject: [PATCH] hints for Irix 6
+ Date: Mon, 6 Apr 1998 15:14:14 -0400 (EDT)
+ Subject: [PATCH 5.004_64] Threads - an easy way for dual installation
+ Date: Wed, 29 Apr 1998 15:39:46 -0400 (EDT)
+ Branch: perl
+ ! INSTALL hints/irix_6.sh installperl
+____________________________________________________________________________
+[ 957] By: mbeattie on 1998/05/14 15:33:48
+ Log: Subject: [PATCH] Install extensions with bootstrap (again) in $archlib
+ Date: Mon, 06 Apr 1998 21:09:24 +0200
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Branch: perl
+ ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[ 956] By: mbeattie on 1998/05/14 15:32:39
+ Log: Subject: [PATCH] Config: Irix 5 hints
+ Date: Mon, 6 Apr 1998 13:12:47 -0400 (EDT)
+ From: kstar@O2.chapin.edu
+ Branch: perl
+ ! hints/irix_5.sh
+____________________________________________________________________________
+[ 955] By: mbeattie on 1998/05/14 15:31:12
+ Log: Subject: PATCH: h2ph produces incorrect code
+ Date: Mon, 6 Apr 1998 23:52:13 +0930 (CST)
+ From: Billy <wdconsta@cs.adelaide.edu.au>
+ Branch: perl
+ ! utils/h2ph.PL
+____________________________________________________________________________
+[ 954] By: mbeattie on 1998/05/14 15:29:27
+ Log: Subject: [PATCH] perldebug.pod
+ Date: Mon, 6 Apr 1998 00:36:57 -0600
+ From: jason stewart <jasons@sandy-home.arc.unm.edu>
+ Branch: perl
+ ! pod/perldebug.pod
+____________________________________________________________________________
+[ 953] By: mbeattie on 1998/05/14 15:28:00
+ Log: From: Dominic Dunlop <domo@vo.lu>
+ Subject: [PATCH 5.004_64]: hints/machten.sh: disable semctl()
+ Date: Wed, 6 May 1998 14:39:32 +0000
+ Subject: [PATCH] Not OK: perl 5.00464 on powerpc-machten 4.1 (hashwarn @INC problem)
+ Date: Sat, 4 Apr 1998 19:44:34 +0000
+ Branch: perl
+ ! hints/machten.sh t/op/hashwarn.t
+____________________________________________________________________________
+[ 952] By: mbeattie on 1998/05/14 15:23:19
+ Log: New pod/perldelta.pod (previous one branched in last change):
+ Subject: [PATCH 5.004_64] Start new perldelta
+ Date: Thu, 23 Apr 1998 12:12:38 -0400 (EDT)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ + pod/perldelta.pod
+____________________________________________________________________________
+[ 951] By: mbeattie on 1998/05/14 15:20:43
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH for 5.004_04 and 5.004_64] (Was: Obsoleted svr4.sh)
+ Date: Thu, 23 Apr 1998 11:10:15 -0400 (EDT)
+ Subject: [PATCH 5.004_64] Start new perldelta
+ Date: Thu, 23 Apr 1998 12:12:38 -0400 (EDT)
+ (above branched perldelta -> perldelta4, new perldelta will be
+ created/added next change)
+ Subject: [PATCH] BSD Platforms need STRUCT_TM_HASZONE
+ Date: Tue, 12 May 1998 09:58:49 -0400 (EDT)
+ Branch: perl
+ + ext/POSIX/hints/bsdos.pl ext/POSIX/hints/freebsd.pl
+ + ext/POSIX/hints/netbsd.pl ext/POSIX/hints/openbsd.pl
+ +> pod/perldelta4.pod
+ - pod/perldelta.pod
+ ! MANIFEST hints/svr4.sh
+____________________________________________________________________________
+[ 949] By: TimBunce on 1998/05/14 15:11:30
+ Log:
+ Title: "while($x=<>) no longer warns (implicit defined added)"
+ From: Nick Ing-Simmons <nik@tiuk.ti.com>
+ Msg-ID: <199805051035.LAA27365@pluto.tiuk.ti.com>
+ Files: MANIFEST op.c t/op/defins.t
+ Branch: maint-5.004/perl
+ + t/op/defins.t
+ ! MANIFEST op.c
+____________________________________________________________________________
+[ 948] By: mbeattie on 1998/05/14 15:09:51
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH for 5.004_64] Configure patch Config_64-01
+ Date: Tue, 14 Apr 1998 13:04:58 -0400 (EDT)
+ Subject: [PATCH for 5.004_64] Configure patch Config_64-01-02.diff
+ Date: Fri, 17 Apr 1998 11:01:13 -0400 (EDT)
+ Subject: [PATCH for 5.004_64] Configure patch Config_64-02-03.diff
+ Date: Thu, 23 Apr 1998 15:03:20 -0400 (EDT)
+ Subject: [PATCH 5.004_64] Config_64-03-04.diff
+ Date: Wed, 13 May 1998 14:33:30 -0400 (EDT)
+ Branch: perl
+ + README.beos beos/nm.c hints/beos.sh
+ ! Configure INSTALL MANIFEST Makefile.SH Policy_sh.SH
+ ! Porting/Glossary Porting/config.sh Porting/config_H
+ ! Porting/pumpkin.pod Todo cflags.SH config_h.SH
+ ! djgpp/djgppsed.sh doop.c handy.h hints/dos_djgpp.sh
+ ! hints/netbsd.sh hints/solaris_2.sh hints/unicos.sh
+ ! hints/unicosmk.sh hv.h lib/Term/ReadLine.pm perl.h
+ ! plan9/config.plan9 pod/perlfunc.pod pp.c pp_sys.c sv.h
+ ! t/io/pipe.t thread.h vms/config.vms win32/config.bc
+ ! win32/config.vc win32/config_H.bc win32/config_H.vc
+____________________________________________________________________________
+[ 946] By: TimBunce on 1998/05/14 15:07:06
+ Log:
+ Title: "Fix PERL_DESTRUCT_LEVEL core dumps"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805062301.TAA24599@aatma.engin.umich.edu>
+ Files: perl.c sv.c t/op/misc.t
+ Branch: maint-5.004/perl
+ ! perl.c sv.c t/op/misc.t
+____________________________________________________________________________
+[ 945] By: mbeattie on 1998/05/14 15:00:31
+ Log: Subject: Perl Social Contract
+ Date: 13 Apr 1998 06:16:59 -0700
+ From: Russ Allbery <rra@stanford.edu>
+ Branch: perl
+ + Porting/Contract
+____________________________________________________________________________
+[ 944] By: TimBunce on 1998/05/14 14:59:37
+ Log:
+ Title: "5.004_04-m2 Cleanup of test failures"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805070416.AAA03082@aatma.engin.umich.edu>
+ Files: t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t t/op/taint.t
+ win32/config.bc win32/config.vc
+ Branch: maint-5.004/perl
+ ! t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t t/op/taint.t
+ ! win32/config.bc win32/config.vc
+____________________________________________________________________________
+[ 943] By: mbeattie on 1998/05/14 14:58:13
+ Log: From: Joshua.Pritikin@NewYork2.dmg.deuba.com
+ Subject: [PATCH 5.004_64] Test.pm update
+ Date: Sat, 4 Apr 1998 08:33:50 -0500
+ Subject: [PATCH 5.004_64] modcount + comments
+ Date: Fri, 17 Apr 1998 16:07:35 -0400
+ Branch: perl
+ ! lib/Test.pm op.c thrdvar.h
+____________________________________________________________________________
+[ 942] By: mbeattie on 1998/05/14 14:49:43
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: [PATCH 5.004_64] newSV
+ Date: Wed, 8 Apr 1998 03:21:03 -0400 (EDT)
+ Subject: [PATCH 5.004_64] Cryptic error from B::CC
+ Date: Sat, 11 Apr 1998 19:52:25 -0400 (EDT)
+ Branch: perl
+ ! ext/B/B/CC.pm handy.h proto.h sv.c
+____________________________________________________________________________
+[ 941] By: mbeattie on 1998/05/14 14:47:29
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: [PATCH 5.004_64] anydbm.t
+ Date: Sat, 4 Apr 1998 01:39:03 -0500 (EST)
+ Subject: [PATCH 5.004_64] threads on OS/2
+ Date: Sat, 4 Apr 1998 01:44:29 -0500 (EST)
+ Subject: [PATCH 5.004_64] Better handling of Perl DLLs under OS/2
+ Date: Sat, 4 Apr 1998 01:47:58 -0500 (EST)
+ Subject: [PATCH 5.004_64] Immediate stop in debugger
+ Date: Sat, 11 Apr 1998 19:50:58 -0400 (EDT)
+ Subject: [PATCH 5.005_64] ptags broken
+ Date: Sat, 11 Apr 1998 22:08:21 -0400 (EDT)
+ Subject: [PATCH 5.004_64] Document switch syntax via RE
+ Date: Sun, 12 Apr 1998 01:12:33 -0400 (EDT)
+ Branch: perl
+ ! emacs/ptags lib/ExtUtils/MM_OS2.pm lib/ExtUtils/Mksymlists.pm
+ ! lib/perl5db.pl os2/Changes os2/Makefile.SHs os2/os2.c
+ ! os2/os2thread.h pod/perlsyn.pod t/lib/anydbm.t
+____________________________________________________________________________
+[ 940] By: mbeattie on 1998/05/14 14:38:44
+ Log: Subject: [PATCH 5.004_64] Build Stdio and DCLSym modules as part of normal VMS perl build
+ Date: Fri, 03 Apr 1998 16:01:57 -0800
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Branch: perl
+ ! vms/descrip.mms vms/ext/DCLsym/Makefile.PL
+ ! vms/ext/Stdio/Makefile.PL vms/ext/Stdio/Stdio.xs
+____________________________________________________________________________
+[ 939] By: mbeattie on 1998/05/14 14:35:42
+ Log: Subject: [PATCH 5.004_64] perl dies in perl_construct when compiled with MULTIPLICITY
+ Date: Fri, 03 Apr 1998 13:58:15 -0800
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 938] By: gsar on 1998/05/14 10:53:55
+ Log: merge change#896 from maintbranch
+ Branch: win32/perl
+ ! doio.c ext/Socket/Socket.xs lib/Class/Struct.pm lib/Cwd.pm
+ ! lib/File/Find.pm lib/Math/BigInt.pm lib/lib.pm lib/strict.pm
+ ! op.c pod/perldiag.pod pod/perlfunc.pod pp.c pp_ctl.c sv.c
+ ! t/op/gv.t t/op/misc.t t/op/pack.t
+____________________________________________________________________________
+[ 937] By: gsar on 1998/05/14 09:31:34
+ Log: merge change#887 from maintbranch
+ Branch: win32/perl
+ + t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t
+ ! MANIFEST doio.c lib/File/CheckTree.pm lib/Getopt/Long.pm
+ ! lib/Math/BigFloat.pm lib/Text/ParseWords.pm lib/Text/Wrap.pm
+ ! lib/base.pm perl.c pod/perlre.pod t/lib/io_sock.t
+ ! t/lib/io_udp.t t/lib/parsewords.t t/lib/timelocal.t
+ ! t/op/stat.t toke.c utils/h2xs.PL
+____________________________________________________________________________
+[ 936] By: gsar on 1998/05/14 09:06:18
+ Log: merge change#886 from maintbranch
+ Branch: win32/perl
+ ! README.os2 README.vms cop.h ext/DynaLoader/dl_hpux.xs
+ ! ext/POSIX/POSIX.xs ext/POSIX/hints/linux.pl global.sym
+ ! hints/aix.sh hints/bsdos.sh hints/dec_osf.sh hints/hpux.sh
+ ! hints/linux.sh hints/netbsd.sh hints/os2.sh hints/svr4.sh
+ ! lib/ExtUtils/MM_OS2.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/File/Basename.pm lib/File/Path.pm op.c os2/Makefile.SHs
+ ! os2/os2.c os2/perl2cmd.pl perl.c perl.h pod/perlguts.pod
+ ! pod/pod2man.PL pp_ctl.c pp_hot.c pp_sys.c proto.h
+ ! t/lib/filecopy.t util.c utils/perldoc.PL vms/config.vms
+ ! vms/descrip.mms vms/ext/Filespec.pm vms/ext/filespec.t
+ ! vms/test.com
+____________________________________________________________________________
+[ 935] By: gsar on 1998/05/14 07:00:02
+ Log: merge changes#872,873 from maintbranch
+ Branch: win32/perl
+ ! Changes5.004 INSTALL lib/ExtUtils/MakeMaker.pm
+ ! lib/FileHandle.pm lib/Tie/Hash.pm lib/constant.pm
+ ! lib/integer.pm pod/perl.pod pod/perlbook.pod pod/perldsc.pod
+ ! pod/perlfunc.pod pod/perlguts.pod pod/perlhist.pod
+ ! pod/perlop.pod pod/perlre.pod pod/perlrun.pod pod/perlsec.pod
+ ! pod/perltrap.pod pod/perlvar.pod pod/pod2latex.PL
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 934] By: gsar on 1998/05/14 06:24:38
+ Log: merge changes#755..759,763,764 from maintbranch
+ Branch: win32/perl
+ + hints/openbsd.sh
+ ! MANIFEST Porting/patchls perl.c perlsdio.h pod/perlfunc.pod
+ ! t/op/pos.t utils/perldoc.PL
+____________________________________________________________________________
+[ 933] By: gsar on 1998/05/14 06:07:31
+ Log: merge change#754 from maintbranch
+ Branch: win32/perl
+ ! perl.c
+____________________________________________________________________________
+[ 932] By: gsar on 1998/05/14 06:03:50
+ Log: merge changes#752,753 from maintbranch
+ Branch: win32/perl
+ + t/op/pos.t
+ ! README ext/GDBM_File/GDBM_File.pm
+ ! ext/SDBM_File/sdbm/Makefile.PL pod/perlsyn.pod
+____________________________________________________________________________
+[ 931] By: gsar on 1998/05/14 05:51:19
+ Log: merge change#745 from maintbranch
+ Branch: win32/perl
+ + ext/DynaLoader/DynaLoader.pm.PL
+ - ext/DynaLoader/DynaLoader.pm
+ ! MANIFEST ext/DynaLoader/Makefile.PL
+____________________________________________________________________________
+[ 930] By: nick on 1998/05/13 20:39:59
+ Log: resolve -at //depot/win32 into ansiperl for C++ testing.
+ Branch: ansiperl
+ ! utils/perldoc.PL
+ !> MANIFEST ext/Fcntl/Fcntl.pm hv.c lib/ExtUtils/Liblist.pm op.c
+ !> perl.c pod/perlfunc.pod pod/perlguts.pod pp.c pp_ctl.c
+ !> regcomp.c regcomp.h regexec.c t/op/hashwarn.t t/op/runlevel.t
+ !> win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ !> win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[ 929] By: gsar on 1998/05/13 10:13:36
+ Log: merge change#687 from maintbranch
+ Branch: win32/perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 928] By: gsar on 1998/05/13 10:08:13
+ Log: merge change#683 from maintbranch
+ Branch: win32/perl
+ ! pod/perlguts.pod
+____________________________________________________________________________
+[ 927] By: gsar on 1998/05/13 09:51:43
+ Log: merge change#681 from maintbranch
+ Branch: win32/perl
+ ! ext/Fcntl/Fcntl.pm
+____________________________________________________________________________
+[ 926] By: gsar on 1998/05/13 09:47:11
+ Log: merge change#664 from maint branch
+ Branch: win32/perl
+ ! regcomp.c regcomp.h regexec.c
+____________________________________________________________________________
+[ 925] By: gsar on 1998/05/13 08:55:28
+ Log: merge missing part of change#663 from maint branch
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 924] By: gsar on 1998/05/12 18:50:04
+ Log: remove x586 code gen switch (-5) for Borland, it is non-generic,
+ and seems to generate problematic code for PII.
+ Branch: win32/perl
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 923] By: gsar on 1998/05/12 16:24:02
+ Log: fix test failure
+ Message-Id: <199805120940.KAA01252@pluto.tiuk.ti.com>
+ Date: Tue, 12 May 1998 10:40:57 BST
+ From: Nick.Ing-Simmons@tiuk.ti.com
+ Subject: test buglet
+ Branch: win32/perl
+ ! t/op/hashwarn.t
+____________________________________________________________________________
+[ 922] By: TimBunce on 1998/05/11 20:58:58
+ Log: Assorted patches:
+
+ ------ CORE LANGUAGE ------
+
+ Title: "incorrect return value for hv_iterinit"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805031848.OAA20618@aatma.engin.umich.edu>
+ Files: pod/perlguts.pod hv.c
+
+ ------ DOCUMENTATION ------
+
+ Title: "perlvar.pod buglet E<EVMSERR>"
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9805041415.AA22185@o09.xray.mpe.mpg.de>
+ Files: pod/perlvar.pod
+
+ Title: "Improve docs for warning about code after an exec()"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Chaim Frenkel
+ <chaimf@concentric.net>
+ Msg-ID: <E0yYUit-0003yb-00@taurus.cus.cam.ac.uk>,
+ <m3ra22qn1z.fsf@chany-p100.emwp.com>
+ Files: pod/perlfunc.pod
+
+ Title: "Remove dead code from pod2man"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0yXmuT-0006Ll-00@ursa.cus.cam.ac.uk>
+ Files: pod/pod2man.PL
+
+ Title: "tweak doc for C<do FILENAME>"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199805090017.UAA06888@aatma.engin.umich.edu>
+ Files: pod/perlfunc.pod
+
+ Title: "Document integer pragma effect on % operator"
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <m3yawjmzhx.fsf@furu.g.aas.no>
+ Files: pod/perlop.pod
+
+ Title: "Reduce rm command line length in pod/Makefile"
+ From: Hugo van der Sanden <h.sanden@elsevier.nl>
+ Msg-ID: <199805041423.QAA13199@dorlas.elsevier.nl>
+ Files: pod/Makefile
+
+ ------ EXTENSIONS ------
+
+ Title: "Clarify Termios usage in POSIX.pod"
+ From: Rocco Caputo <troc@netrus.net>
+ Msg-ID: <199805101952.PAA12738@ns.netrus.net>
+ Files: ext/POSIX/POSIX.pod
+
+ ------ LIBRARY ------
+
+ Title: "Fix File::Find::finddepth typo in trial 2 release"
+ From: koenig@kulturbox.de (Andreas J. Koenig)
+ Msg-ID: <sfcbttflsjz.fsf@dubravka.in-berlin.de>
+ Files: lib/File/Find.pm t/lib/filefind.t
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Add Porting/patching.pod document"
+ From: Daniel Grisinger <dgris@tdrenterprises.com>
+ Msg-ID: <199805030305.XAA16147@relay.pair.com>
+ Files: MANIFEST Porting/patching.pod
+
+ Title: "hints/machten.sh: disable semctl(), align with devel version"
+ From: Dominic Dunlop <domo@vo.lu>
+ Msg-ID: <v03110701b175fc029eb1@[195.95.102.115]>
+ Files: hints/machten.sh
+
+ Title: "Add VMS specifics to Porting/makerel"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01IWDK1LONRQ0026P0@cor.newman.upenn.edu>,
+ <199804271732.SAA13762@toad.ig.co.uk>,
+ <9804250212.AA27695@forte.com>
+ Files: Porting/makerel
+ Branch: maint-5.004/perl
+ + Porting/patching.pod
+ ! MANIFEST Porting/makerel ext/POSIX/POSIX.pod hints/machten.sh
+ ! hv.c lib/File/Find.pm pod/Makefile pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlop.pod pod/perlvar.pod pod/pod2man.PL
+ ! t/lib/filefind.t
+____________________________________________________________________________
+[ 921] By: gsar on 1998/05/10 02:28:03
+ Log: various tweaks to makefiles
+ Branch: win32/perl
+ ! win32/Makefile win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[ 920] By: gsar on 1998/05/10 02:27:19
+ Log: fix ExtUtils::Liblist mishandling paths with spaces
+ Branch: win32/perl
+ ! lib/ExtUtils/Liblist.pm
+____________________________________________________________________________
+[ 919] By: gsar on 1998/05/09 17:10:15
+ Log: minor cleanup
+ Branch: win32/perl
+ ! MANIFEST perl.c
+____________________________________________________________________________
+[ 918] By: gsar on 1998/05/09 17:09:09
+ Log: protect sortcop from C<sort { sort { ... } ... } ...>
+ Message-Id: <199805082333.TAA06287@aatma.engin.umich.edu>
+ Date: Fri, 08 May 1998 19:33:44 EDT
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: [PATCH] Re: double recursion in sort
+ Branch: win32/perl
+ ! pp_ctl.c t/op/runlevel.t
+____________________________________________________________________________
+[ 917] By: gsar on 1998/05/09 17:05:55
+ Log: c
+ Branch: win32/perl
+ ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 916] By: gsar on 1998/05/07 03:40:15
+ Log: fix C<print "foo ${\()}"> (pp_refgen fumbles when G_SCALAR, no args)
+ Branch: win32/perl
+ ! pp.c
+____________________________________________________________________________
+[ 915] By: mbeattie on 1998/05/06 13:08:29
+ Log: Speed up pp_entersub for usethreads with only 1 thread running.
+ Branch: perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 914] By: gsar on 1998/05/03 18:44:38
+ Log: make hv_iterinit() return HvKEYS()
+ Message-Id: <3.0.1.32.19980502162922.009e6320@www.syncad.com>
+ Date: Sat, 02 May 1998 16:29:22 EDT
+ From: "SynaptiCAD, Inc." <sales@syncad.com>
+ Subject: incorrect return value for hv_iterinit
+ Branch: win32/perl
+ ! hv.c pod/perlguts.pod
+____________________________________________________________________________
+[ 913] By: TimBunce on 1998/05/01 22:38:38
+ Log: Update MANIFEST for trial 2.
+ (Porting/Contract lib/Tie/Handle.pm t/op/tiehandle.t)
+ Branch: maint-5.004/perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 912] By: TimBunce on 1998/05/01 22:30:29
+ Log: Add t/op/tiehandle.t as xtext to repository (see change 911)
+ Branch: maint-5.004/perl
+ + t/op/tiehandle.t
+____________________________________________________________________________
+[ 911] By: TimBunce on 1998/05/01 21:35:03
+ Log:
+ Title: "Add ERRSV, ERRHV, DEFSV and SAVE_DEFSV for XS 5.005 compatibility"
+ From: timbo@ig.co.uk (Tim Bunce)
+ Msg-ID: <199804200854.JAA01482@toad.ig.co.uk>
+ Files: perl.h
+
+ Title: "Add WRITE & CLOSE to TIEHANDLE"
+ From: Graham Barr <gbarr@pobox.com>
+ Msg-ID: <34F63DC8.CA95670F@pobox.com>
+ Files: pod/perltie.pod lib/Tie/Handle.pm pp_sys.c t/op/tiehandle.t
+ Branch: maint-5.004/perl
+ + lib/Tie/Handle.pm
+ ! perl.h pod/perltie.pod pp_sys.c
+____________________________________________________________________________
+[ 910] By: TimBunce on 1998/05/01 20:47:47
+ Log:
+ Title: "Add warning for Illegal hex digit"
+ From: Stephen P Potter <spp@spp.users.ds.net>, Stephen Potter
+ <spp@psasolar.colltech.com>, Tim.Bunce@ig.co.uk (Tim Bunce)
+ Msg-ID: <199804232219.SAA02267@spp.users.ds.net>,
+ <199804271409.PAA12819@toad.ig.co.uk>,
+ <199804280307.WAA12332@psasolar.psa.pencom.com>
+ Files: pod/perldiag.pod util.c
+
+ Title: "perl_call_method() bug fix (corrupt op pointer)"
+ From: "Alterman, Eugene" <Eugene.Alterman@bremer-inc.com>
+ Msg-ID: <510415F72ECFD111A31700A0C9B3CCDE3098@efx98digmasa.bremer-inc.com>
+ Files: perl.c
+
+ Title: "Fix printf segmentation fault"
+ From: Hugo van der Sanden <hv@crypt0.demon.co.uk>
+ Msg-ID: <l03130300b16bebdbc314@[194.222.64.89]>
+ Files: pp_hot.c
+
+ Title: "Document changed local($a[$i],$b{$j}) behaviour re delete/splice"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01IVMVIHNZ36001NKH@cor.newman.upenn.edu>
+ Files: pod/perlsub.pod
+ Branch: maint-5.004/perl
+ ! perl.c pod/perldiag.pod pod/perlsub.pod pp_hot.c util.c
+____________________________________________________________________________
+[ 909] By: TimBunce on 1998/05/01 19:44:47
+ Log:
+ Title: "Change Ilya's do_binmode to K&R prototype and move to doio.c"
+ Files: doio.c util.c
+ Branch: maint-5.004/perl
+ ! doio.c util.c
+____________________________________________________________________________
+[ 908] By: gsar on 1998/05/01 19:21:02
+ Log: add AS patch#20 (exposes more global constants)
+ Branch: asperl
+ ! ObjXSub.h byterun.h embed.h embedvar.h global.sym globals.c
+ ! interp.sym ipsock.h ipstdio.h objpp.h perlio.h perlsock.h
+ ! proto.h util.c win32/GenCAPI.pl win32/runperl.c
+____________________________________________________________________________
+[ 907] By: TimBunce on 1998/05/01 17:50:46
+ Log:
+ Title: "Runtime Carp verbosity without aliasing"
+ From: Joshua.Pritikin@NewYork2.dmg.deuba.com, Tim Bunce
+ Msg-ID: <H00000e50003936c@MHS>
+ Files: lib/Carp.pm
+
+ Title: "Fix File::Basename to not untaint results (using new //t flag)"
+ From: Eric Hammond <erich@finity.citysearch.com>, Tom Phoenix
+ <rootbeer@teleport.com>
+ Msg-ID: <199710070515.WAA00682@finity.citysearch.com>,
+ <Pine.GSO.3.96.971007074114.14211J-100000@usertest.teleport.com>
+ Files: lib/File/Basename.pm
+ Branch: maint-5.004/perl
+ ! lib/Carp.pm lib/File/Basename.pm
+____________________________________________________________________________
+[ 906] By: TimBunce on 1998/04/28 11:04:49
+ Log:
+ ------ CORE LANGUAGE ------
+
+ Title: "5.004_04m5t1: Fix dangling references in LVs", "Fix dangling
+ references in LVs"
+ From: Spider Boardman <spider@orb.nashua.nh.us>
+ Msg-ID: <199804010541.AAA32615@Orb.Nashua.NH.US>,
+ <19980422164037.D29222@perl.org>
+ Files: embed.h keywords.h opcode.h perl.h proto.h doop.c global.sym mg.c
+ pp.c sv.c
+
+ Title: "Fix SvGMAGIC typo in change 904"
+ Files: doop.c
+ Branch: maint-5.004/perl
+ ! doop.c embed.h global.sym keywords.h mg.c opcode.h perl.h pp.c
+ ! proto.h sv.c
+____________________________________________________________________________
+[ 905] By: TimBunce on 1998/04/28 10:32:20
+ Log: Regexp patches
+
+ Title: "New regex flag //t to leave $1 etc. tainted"
+ From: Chip Salzenberg <chip@pobox.com>, Tim Bunce <Tim.Bunce@ig.co.uk>
+ Msg-ID: <19980310192640.37826@cyprus>
+ Files: pod/perlop.pod pod/perlre.pod op.h dump.c mg.c pp_hot.c sv.c
+ t/op/taint.t toke.c
+
+ Title: "Don't accidentally untaint target of s///"
+ From: Chip Salzenberg <chip@pobox.com>
+ Msg-ID: <19980310151756.24767@cyprus>
+ Files: pp_ctl.c pp_hot.c t/op/taint.t
+
+ Title: "Allow but ignore embedded /...(?o).../ in regexp"
+ From: h.sanden@elsevier.nl (Hugo van der Sanden)
+ Msg-ID: <199804201243.OAA08244@dorlas.elsevier.nl>
+ Files: regcomp.c
+ Branch: maint-5.004/perl
+ ! dump.c mg.c op.h pod/perlop.pod pod/perlre.pod pp_ctl.c
+ ! pp_hot.c regcomp.c sv.c t/op/taint.t toke.c
+____________________________________________________________________________
+[ 904] By: TimBunce on 1998/04/27 20:20:21
+ Log: Assorted patches:
+
+ ------ CORE LANGUAGE ------
+
+ Title: "Protect join() against double reads on undef and SvGMAGICALs"
+ From: Chip Salzenberg <chip@perlsupport.com>, Tim Bunce
+ <Tim.Bunce@ig.co.uk>
+ Msg-ID: <19980424080630.D13985@perl.org>
+ Files: doop.c
+
+ Title: "Better error message for require failure"
+ From: epeschko@den-mdev1 (Ed Peschko)
+ Msg-ID: <199804240047.SAA24155@den-mdev1.co.csgsystems.com>
+ Files: pod/perldiag.pod pp_ctl.c
+
+ Title: "fixes for various noises under PERL_DESTRUCT_LEVEL"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199804231926.PAA23969@aatma.engin.umich.edu>
+ Files: perl.c
+
+ Title: "Fix nice_chunk memory leak"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199804052347.TAA15699@aatma.engin.umich.edu>
+ Files: sv.c
+
+ Title: "-2.0 vs. -2 (was Number representations)"
+ From: Chip Salzenberg <chip@pobox.com>
+ Msg-ID: <19980309185652.11231@cyprus>
+ Files: op.c
+
+ Title: "perl.c fixes for -DUNEXEC"
+ From: Matt Wette <mwette@mr-ed.jpl.nasa.gov>, Matthew R Wette
+ <mwette@mr-ed.jpl.nasa.gov>
+ Msg-ID: <199710152146.OAA07283@mr-ed.jpl.nasa.gov>
+ Files: perl.c
+
+ ------ DOCUMENTATION ------
+
+ Title: "perlcall is Perl from C, not C from Perl"
+ From: Steve A Fink <sfink@cs.berkeley.edu>
+ Files: pod/perlembed.pod
+
+ Title: "Clarify require "Foo::Bar" non-bareword issue"
+ From: Dominique Dumont <domi@ss7serv.grenoble.hp.com>
+ Msg-ID: <199804231527.AA153445256@ss7serv.grenoble.hp.com>
+ Files: pod/perlfunc.pod
+
+ Title: "(repost) new text for perlsec", "new text for perlsec"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980423161605.5518N-100000@user2.teleport.com>
+ Files: pod/perlsec.pod
+
+ ------ EXTENSIONS ------
+
+ Title: "IO::Socket->socketpair broken (typo)"
+ From: Olaf Titz <olaf@bigred.inka.de>
+ Msg-ID: <19980425224535.2807.qmail@bigred.inka.de>
+ Files: ext/IO/lib/IO/Socket.pm
+
+ Title: "NDBM_File man page needs Fcntl"
+ From: "Danny R. Faught" <faught@mailhost.rsn.hp.com>
+ Msg-ID: <199707011500.IAA00601@palrel3.hp.com>
+ Files: ext/NDBM_File/NDBM_File.pm
+
+ ------ LIBRARY ------
+
+ Title: "Documentation discrepancy: pragmatic modules"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, h.sanden@elsevier.nl (Hugo van der Sanden)
+ Msg-ID: <199804221525.RAA12695@dorlas.elsevier.nl>,
+ <E0ySPhk-00034f-00@taurus.cus.cam.ac.uk>
+ Files: lib/strict.pm lib/subs.pm lib/vars.pm
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Updated hints file for svr4"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980423110522.26621A-100000@newton.phys>
+ Files: hints/svr4.sh
+
+ Title: "Pumpkin update -- shared libperl.so location"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980424115837.6222A-100000@newton.phys>
+ Files: Porting/pumpkin.pod
+
+ Title: "perl compile fix for AIX 4.3"
+ From: Jens-Uwe Mager <jum@helios.de>
+ Msg-ID: <199804261611.SAA34728@ans.helios.de>
+ Files: ext/DynaLoader/dl_aix.xs
+
+ Title: "Dynaloader build on VMS",
+ From: pvhp@forte.com (Peter Prymmer), timbo@ig.co.uk (Tim Bunce)
+ Msg-ID: <199804271732.SAA13762@toad.ig.co.uk>, <9804250212.AA27695@forte.com>
+ Files: vms/descrip.mms
+
+ ------ UTILITIES ------
+
+ Title: "Major update to h2ph.PL"
+ From: Billy <wdconsta@cs.adelaide.edu.au>
+ Msg-ID: <Pine.SV4.3.93.980424031837.20782A-200000@ermintrude.teaching.cs.adelaide.edu.au>
+ Files: utils/h2ph.PL
+ Branch: maint-5.004/perl
+ ! Porting/pumpkin.pod doop.c ext/DynaLoader/dl_aix.xs
+ ! ext/IO/lib/IO/Socket.pm ext/NDBM_File/NDBM_File.pm
+ ! hints/svr4.sh lib/strict.pm lib/subs.pm lib/vars.pm op.c
+ ! perl.c pod/perldiag.pod pod/perlembed.pod pod/perlfunc.pod
+ ! pod/perlsec.pod pp_ctl.c sv.c utils/h2ph.PL vms/descrip.mms
+____________________________________________________________________________
+[ 903] By: gsar on 1998/04/25 22:27:19
+ Log: add AS patch#19 (adds socket layer generation to GenCAPI.pl)
+ Branch: asperl
+ ! win32/GenCAPI.pl
+____________________________________________________________________________
+[ 902] By: nick on 1998/04/25 16:35:08
+ Log: Case sensitive tweak to perldoc.PL
+ Branch: ansiperl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 901] By: nick on 1998/04/25 15:16:54
+ Log: Implement use attrs qw(locked package);
+ Passes all tests except posix (hangs/dies) in sigaction test after
+ printing "ok 9".
+ Branch: ansiperl
+ ! cv.h ext/attrs/attrs.pm ext/attrs/attrs.xs pp_hot.c
+____________________________________________________________________________
+[ 900] By: nick on 1998/04/25 13:58:17
+ Log: Auto-insert defined() test in while when test expression is
+ readline (i.e. <>), glob, readdir, or each.
+ Branch: ansiperl
+ + t/op/defins.t
+ ! op.c pod/perlop.pod
+____________________________________________________________________________
+[ 899] By: nick on 1998/04/25 13:14:52
+ Log: Resolve ansiperl against win32 branch
+ Branch: ansiperl
+ +> (branch 53 files)
+ - config_H
+ !> (integrate 227 files)
+____________________________________________________________________________
+[ 898] By: gsar on 1998/04/24 17:01:05
+ Log: add AS patch#18
+ Branch: asperl
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/xsubpp win32/GenCAPI.pl
+____________________________________________________________________________
+[ 897] By: TimBunce on 1998/04/23 19:49:22
+ Log: Assorted patches:
+
+ ------ CORE LANGUAGE ------
+
+ Title: "fix for "Unbalanced string table refcount""
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199804042251.RAA25527@aatma.engin.umich.edu>
+ Files: sv.c
+
+ Title: "Allow more lenient switch processing"
+ From: "John L. Allen" <allen@grumman.com>
+ Msg-ID: <199803251638.LAA22664@gateway.grumman.com>
+ Files: perl.c
+
+ Title: "Add fourth arg to substr: substr EXPR,OFFSET,LEN,REPLACEMENT"
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <m3g1jglqtm.fsf@furu.g.aas.no>
+ Files: pod/perlfunc.pod Todo opcode.pl pp.c t/op/substr.t
+
+ Title: "Odd number of elements in hash list."
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980328151929.29336D-100000@user2.teleport.com>
+ Files: MANIFEST pod/perldiag.pod pp.c pp_hot.c t/op/hashwarn.t
+
+ Title: "another destruct_level fix"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199804030105.UAA04400@aatma.engin.umich.edu>
+ Files: hv.c
+
+ Title: "bidirectional pipe warning blues"
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Msg-ID: <9804082151.AA20399@claudius.bfsec.bt.co.uk>
+ Files: doio.c
+
+ Title: "stale pointers after realloc (MEXTEND in pp_print and pp_prtf)"
+ From: Malcolm Beattie <mbeattie@sable.ox.ac.uk>
+ Msg-ID: <199801191107.LAA17979@sable.ox.ac.uk>
+ Files: pp_hot.c pp_sys.c
+
+ Title: "unimplemented umask() should return undef not die"
+ From: kstar@chapin.edu (Kurt D. Starsinic)
+ Msg-ID: <199803120515.VAA08660@chapin.edu>
+ Files: pod/perlfunc.pod pp_sys.c
+
+ Title: "warning for: bless $foo, """
+ From: Joshua.Pritikin@NewYork2.dmg.deuba.com
+ Msg-ID: <H00000e5000378a0@MHS>
+ Files: pod/perldiag.pod pp.c
+
+ ------ DOCUMENTATION ------
+
+ Title: "Mention SWIG in perlxs.pod"
+ From: Steve A Fink <sfink@cs.berkeley.edu>
+ Msg-ID: <Pine.HPP.3.96.980408154956.20990K-100000@brooksie.CS.Berkeley.EDU>
+ Files: pod/perlxs.pod
+
+ Title: "fix-up of previous perlre.pod patch"
+ From: Ted Ashton <ashted@southern.edu>
+ Msg-ID: <199803031540.KAA09388@ns.southern.edu>
+ Files: pod/perlre.pod
+
+ Title: "long list of man page nitpicks"
+ From: Greg Bacon <gbacon@mickey.cs.uah.edu>, Tom Christiansen
+ <tchrist@jhereg.perl.com>
+ Msg-ID: <199804221844.NAA08338@pluto.cs.uah.edu>,
+ <199804222204.QAA20805@jhereg.perl.com>
+ Files: pod/perlapio.pod pod/perlcall.pod pod/perldebug.pod pod/perldelta.pod
+ pod/perldiag.pod pod/perlembed.pod pod/perlfaq2.pod
+ pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+ pod/perlfaq7.pod pod/perlfaq8.pod pod/perlform.pod
+ pod/perlfunc.pod pod/perlguts.pod pod/perlipc.pod
+ pod/perllocale.pod pod/perlmodlib.pod pod/perlop.pod
+ pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ pod/perlstyle.pod pod/perlsub.pod pod/perlsyn.pod
+ pod/perltoot.pod pod/perlvar.pod pod/perlxs.pod
+ pod/pod2man.PL
+
+ Title: "document that system() does not set $! when it fails"
+ From: "Mark R. Levinson" <mrl@isc.upenn.edu>
+ Msg-ID: <199803011946.OAA31942@anaximander.dccs.upenn.edu>
+ Files: pod/perlfunc.pod
+
+ Title: "Fix pod/roffitall execute permission"
+ From: lvirden@cas.org
+ Msg-ID: <1997Nov17.132031.2589892@cor.newman>
+ Files: pod/roffitall
+
+ Title: "document when split ignores trailing empty fields"
+ From: Hugo van der Sanden <hv@crypt0.demon.co.uk>
+ Msg-ID: <l03130300b14fac832b77@[194.222.64.89]>
+ Files: pod/perlfunc.pod
+
+ ------ EXTENSIONS ------
+
+ Title: "Buglet in Opcode.pm documentation"
+ From: Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
+ Msg-ID: <199804170349.XAA32445@sleipnir.valparaiso.cl>
+ Files: ext/Opcode/Opcode.pm
+
+ Title: "Failure to append to perllocal.pod should not be fatal"
+ From: koenig@kulturbox.de (Andreas J. Koenig)
+ Msg-ID: <sfciuogy67x.fsf@dubravka.in-berlin.de>
+ Files: lib/ExtUtils/MM_Unix.pm
+
+ Title: "Document that IO.pm does not load IO::Select etc"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <353B48F1.64E35A63@ti.com>
+ Files: ext/IO/IO.pm
+
+ Title: "Install extensions with bootstrap (again) in $archlib"
+ From: Achim Bohnet <ach@mpe.mpg.de>, koenig@kulturbox.de (Andreas J.
+ Koenig)
+ Msg-ID: <9804061909.AA12675@o09.xray.mpe.mpg.de>,
+ <sfc90oxc0uj.fsf@dubravka.in-berlin.de>
+ Files: lib/ExtUtils/Install.pm
+
+ Title: "glibc2.0.6 missing MSG_* <sys/socket.h> defines."
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980406113950.3166L-100000@newton.phys>
+ Files: ext/Socket/Socket.xs
+
+ ------ LIBRARY ------
+
+ Title: "Benchmark.pm: add run-for-some-time mode"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199804080647.JAA15136@alpha.hut.fi>
+ Files: lib/Benchmark.pm
+
+ Title: "Comments added to Carp.pm"
+ From: Andy Wardley <abw@cre.canon.co.uk>, Chip Salzenberg
+ <chip@perlsupport.com>, Tom Christiansen
+ <tchrist@jhereg.perl.com>
+ Msg-ID: <19980422164242.E29222@perl.org>,
+ <199804222033.OAA17959@jhereg.perl.com>,
+ <980409182357.ZM21638@bandanna>
+ Files: lib/Carp.pm
+
+ Title: "chat2.pl fix"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01IVMVF507PO001NKH@cor.newman.upenn.edu>
+ Files: lib/chat2.pl
+
+ Title: "lib/Pod/Html.pm"
+ From: d-lewart@uiuc.edu (Daniel S. Lewart)
+ Msg-ID: <199710170718.DAA25472@staff1.cso.uiuc.edu>,
+ <199710180417.AAA19778@staff2.cso.uiuc.edu>
+ Files: lib/Pod/Html.pm
+
+ Title: "ormaments method in Term/ReadLine.pm causes warning with string
+ arg."
+ From: hiroo.hayashi@computer.org
+ Msg-ID: <199804061519.AAA21907@mail.fb3.so-net.ne.jp>
+ Files: lib/Term/ReadLine.pm
+
+ ------ OTHER CHANGES ------
+
+ Title: "ptags broken"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199804120208.WAA29264@monk.mps.ohio-state.edu>
+ Files: emacs/ptags
+
+ ------ PORTABILITY - WIN32 ------
+
+ Title: "win32 tweaks (signals and crypt support)"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199804170505.BAA06413@aatma.engin.umich.edu>
+ Files: perl.h win32/config.bc win32/config.vc win32/config_H.bc
+ win32/config_H.vc win32/win32.c
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Add Social Contract (2nd Draft) as Porting/Contract"
+ From: Russ Allbery <rra@stanford.edu>
+ Msg-ID: <m3btw66n8i.fsf@windlord.Stanford.EDU>
+ Files: Porting/Contract
+
+ Title: "Config: Irix 5 hints"
+ From: kstar@O2.chapin.edu
+ Msg-ID: <199804061712.NAA22823@O2.chapin.edu>
+ Files: hints/irix_5.sh
+
+ Title: "VMS patches to 5.004_03"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01IVYJS0L8D200209B@cor.newman.upenn.edu>
+ Files: vms/vms.c
+
+ Title: "hints/netbsd.sh - enable vfork"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980417110749.19327B-100000@newton.phys>
+ Files: hints/netbsd.sh
+
+ ------ UTILITIES ------
+
+ Title: "support find2perl -follow"
+ From: Billy <wdconsta@cs.adelaide.edu.au>
+ Msg-ID: <Pine.SV4.3.93.980408005903.24081A-100000@ermintrude.teaching.cs.adelaide.edu.au>
+ Files: x2p/find2perl.PL
+ Branch: maint-5.004/perl
+ + Porting/Contract t/op/hashwarn.t
+ ! MANIFEST Todo doio.c emacs/ptags embed.h ext/IO/IO.pm
+ ! ext/Opcode/Opcode.pm ext/Socket/Socket.xs hints/irix_5.sh
+ ! hints/netbsd.sh hv.c lib/Benchmark.pm lib/Carp.pm
+ ! lib/ExtUtils/Install.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/Pod/Html.pm lib/Term/ReadLine.pm lib/chat2.pl opcode.h
+ ! opcode.pl perl.c perl.h pod/perlapio.pod pod/perlcall.pod
+ ! pod/perldebug.pod pod/perldelta.pod pod/perldiag.pod
+ ! pod/perlembed.pod pod/perlfaq2.pod pod/perlfaq3.pod
+ ! pod/perlfaq4.pod pod/perlfaq5.pod pod/perlfaq7.pod
+ ! pod/perlfaq8.pod pod/perlform.pod pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlhist.pod pod/perlipc.pod
+ ! pod/perllocale.pod pod/perlmodlib.pod pod/perlop.pod
+ ! pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlstyle.pod pod/perlsub.pod pod/perlsyn.pod
+ ! pod/perltoot.pod pod/perlvar.pod pod/perlxs.pod pod/pod2man.PL
+ ! pod/roffitall pp.c pp_hot.c pp_sys.c sv.c t/TEST t/op/gv.t
+ ! t/op/substr.t vms/vms.c win32/config.bc win32/config.vc
+ ! win32/config_H.bc win32/config_H.vc win32/win32.c
+ ! x2p/find2perl.PL
+____________________________________________________________________________
+[ 896] By: TimBunce on 1998/04/22 11:49:24
+ Log: Assorted patches:
+
+ ------ CORE LANGUAGE ------
+
+ Title: "Additional regex-cache patch"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Msg-ID: <19980305104831.38100@cyprus>
+ Files: pp_ctl.c
+
+ Title: "Conservative C<*x = undef> patch"
+ From: Chip Salzenberg <chip@atlantic.net>
+ Msg-ID: <19980310163310.48509@cyprus>
+ Files: pod/perldiag.pod pod/perlfunc.pod pp.c sv.c t/op/gv.t
+
+ Title: "Consider @ARGV to be plain files if inplace (-i)"
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Msg-ID: <199802042106.QAA04082@nielsenmedia.com>
+ Files: doio.c
+
+ Title: "Fix semctl for Linux, Sun and SVR4"
+ From: Graham Barr <gbarr@ti.com>, lvirden@cas.org (Larry W. Virden, x2487)
+ Msg-ID: <3484247D.BB036D39@ti.com>, <9712021313.AA11495@cas.org>
+ Files: doio.c
+
+ Title: "C<dSP> entails using C<SP>, not C<sp>"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199803070149.UAA12217@aatma.engin.umich.edu>
+ Files: pod/perlcall.pod pod/perlembed.pod pod/perlguts.pod pod/perlxs.pod
+ doio.c doop.c ext/DB_File/DB_File.xs
+ ext/DynaLoader/dl_dld.xs ext/Opcode/Opcode.xs
+ ext/POSIX/POSIX.xs ext/Socket/Socket.xs gv.c
+ lib/ExtUtils/typemap mg.c os2/OS2/REXX/REXX.xs
+ win32/win32.c
+
+ Title: "Make autouse -w-safe"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199803030236.VAA13244@monk.mps.ohio-state.edu>
+ Files: lib/autouse.pm op.c sv.c
+
+ Title: "Misleading error on close of unopened handle"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0y4R07-0003PH-00@ursa.cus.cam.ac.uk>
+ Files: doio.c
+
+ Title: "Confusing error from perl -e "x'""
+ From: Hans Mulder <hansmu@xs4all.nl>
+ Msg-ID: <1998Mar25.174320.2866352@cor.newman.upenn.edu>
+ Files: toke.c
+
+ Title: "Add HAS_GNULIBC define"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980305115202.9180K-100000@newton.phys>
+ Files: config_H config_h.SH
+
+ Title: "h_errno might not be an int"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980325165059.22255D-100000@newton.phys>
+ Files: pp_sys.c
+
+ Title: "Revised taint hole closer", "Revised taint hole closer"
+ From: Chip Salzenberg <chip@atlantic.net>, Ilya Zakharevich
+ <ilya@math.ohio-state.edu>
+ Msg-ID: <19980310222127.09350@cyprus>,
+ <199803110554.AAA29157@monk.mps.ohio-state.edu>
+ Files: doio.c
+
+ Title: "SEGV compiling localised lexical in perl5.004_05t1"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>, h.sanden@elsevier.nl (Hugo
+ van der Sanden)
+ Msg-ID: <199803171530.QAA24053@dorlas.elsevier.nl>,
+ <199803171727.MAA05234@aatma.engin.umich.edu>
+ Files: op.c t/op/misc.t
+
+ Title: "Stale SP in pp_substr"
+ From: Stephen McCamant <alias@mcs.com>
+ Msg-ID: <m0yFsTS-000EZpC@alias-2.pr.mcs.net>
+ Files: pp.c
+
+ Title: "Statement unlikely to be reached warning"
+ From: Hans Mulder <hansm@icgned.nl>
+ Msg-ID: <1997Dec24.171511.2683516@cor.newman>
+ Files: op.c
+
+ Title: "Tainting propagates from nowhere"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199803140411.XAA09343@aatma.engin.umich.edu>
+ Files: pp.c
+
+ Title: "two trivial tweaks to 5.004m5t1"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199803060553.AAA28461@aatma.engin.umich.edu>
+ Files: proto.h win32/Makefile
+
+ Title: "unpacking negatives on Alpha"
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9710201503.AA24797@o09.xray.mpe.mpg.de>
+ Files: pp.c t/op/pack.t
+
+ ------ LIBRARY AND EXTENSIONS ------
+
+ Title: "Cwd.pm: abs_path() and fast_abs_path() plus code merge"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <3482F365.4A0486BA@ti.com>
+ Files: lib/Cwd.pm
+
+ Title: "Math/BigInt.pm, fixed use of undefined value."
+ From: abigail@fnx.com
+ Msg-ID: <19980313052452.27365.qmail@betelgeuse.wayne.fnx.com>
+ Files: lib/Math/BigInt.pm
+
+ Title: "File::Find rewrite"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199803052344.SAA01008@monk.mps.ohio-state.edu>
+ Files: lib/File/Find.pm
+
+ Title: "efficient version of strict.pm"
+ From: koenig@anna.mind.de (Andreas J. Koenig)
+ Msg-ID: <sfcpvonhdnc.fsf@anna.in-berlin.de>
+ Files: lib/strict.pm
+
+ Title: "Socket occasional SEGV in pack_sockaddr_un"
+ From: Trevor Blackwell <tlb@viaweb.com>
+ Msg-ID: <199710281804.NAA09632@wagg.viaweb.com>
+ Files: ext/Socket/Socket.xs
+
+ Title: "Warning on mis-use of 'use lib'"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, Tom Phoenix
+ <rootbeer@teleport.com>, chip@atlantic.net
+ Msg-ID: <199801270435.XAA14147@cyprus.atlantic.net>,
+ <E0xx9x4-0006jc-00@ursa.cus.cam.ac.uk>,
+ <Pine.GSO.3.96.980126192445.22284N-100000@user2.teleport.com>
+ Files: lib/lib.pm
+
+ Title: "bug in Class::Struct"
+ From: Tom Christiansen <tchrist@toy.perl.com>
+ Msg-ID: <199803290814.KAA05699@toy.perl.com>
+ Files: lib/Class/Struct.pm
+
+ Title: "Allow POSIX to export nice()"
+ From: bkeelerx@iwa.dp.intel.com (Bruce J. Keeler)
+ Msg-ID: <eclg1kf5yf0.fsf@ws010.dp.intel.com>
+ Files: ext/POSIX/POSIX.pm
+
+ Title: "'use Env' on WinNT/95 fails"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199803280511.AAA15933@aatma.engin.umich.edu>
+ Files: lib/Env.pm
+
+ ------ OTHER CHANGES ------
+
+ Title: "mv-if-diff"
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ Msg-ID: <14572.9803271806@tempest.cise.npl.co.uk>
+ Files: mv-if-diff
+
+ ------ PORTABILITY - WIN32 ------
+
+ Title: "fix various problems with backticks on win32"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199803070705.CAA15945@aatma.engin.umich.edu>
+ Files: win32/config_h.PL win32/win32.c
+
+ ------ TESTS ------
+
+ Title: "Fix bug in locale.t"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199801042148.XAA08599@alpha.hut.fi>
+ Files: t/pragma/locale.t
+ Branch: maint-5.004/perl
+ ! config_H config_h.SH doio.c doop.c ext/DB_File/DB_File.xs
+ ! ext/DynaLoader/dl_dld.xs ext/Opcode/Opcode.xs
+ ! ext/POSIX/POSIX.pm ext/POSIX/POSIX.xs ext/Socket/Socket.xs
+ ! gv.c lib/Class/Struct.pm lib/Cwd.pm lib/Env.pm
+ ! lib/ExtUtils/typemap lib/File/Find.pm lib/Math/BigInt.pm
+ ! lib/autouse.pm lib/lib.pm lib/strict.pm mg.c mv-if-diff op.c
+ ! os2/OS2/REXX/REXX.xs pod/perlcall.pod pod/perldiag.pod
+ ! pod/perlembed.pod pod/perlfunc.pod pod/perlguts.pod
+ ! pod/perlxs.pod pp.c pp_ctl.c pp_sys.c proto.h sv.c t/op/gv.t
+ ! t/op/misc.t t/op/pack.t t/pragma/locale.t toke.c
+ ! win32/Makefile win32/config_h.PL win32/win32.c
+____________________________________________________________________________
+[ 895] By: gsar on 1998/04/22 03:13:19
+ Log: intern -> sys_intern
+ Branch: win32/perl
+ ! embedvar.h interp.sym intrpvar.h win32/win32.h
+____________________________________________________________________________
+[ 894] By: gsar on 1998/04/22 02:42:20
+ Log: hand-applied patch along with small tweaks
+ Message-Id: <35400e2a.13538517@smtp1.ibm.net>
+ Date: Tue, 21 Apr 1998 23:31:06 +0200
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Subject: Re: Per-Interpreter variables for win32.c
+ Branch: win32/perl
+ ! embedvar.h interp.sym intrpvar.h perl.c perl.h proto.h
+ ! win32/makedef.pl win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 893] By: gsar on 1998/04/21 03:42:21
+ Log: add AS patch#17
+ Branch: asperl
+ + win32/GenCAPI.pl
+ ! MANIFEST XSUB.h cv.h ipstdio.h lib/ExtUtils/MM_Unix.pm
+ ! lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MakeMaker.pm
+ ! lib/ExtUtils/Mksymlists.pm lib/ExtUtils/xsubpp op.c perl.h
+ ! pp_ctl.c pp_hot.c proto.h sv.h thread.h win32/Makefile
+ ! win32/dl_win32.xs win32/makefile.mk win32/runperl.c
+ ! win32/win32.c
+____________________________________________________________________________
+[ 892] By: gsar on 1998/04/20 20:51:50
+ Log: add AS patch#16
+ Branch: asperl
+ ! globals.c ipdir.h perl.h perlvars.h regcomp.h win32/Makefile
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 891] By: gsar on 1998/04/19 23:50:34
+ Log: tweak doc for C<do FILENAME>
+ Branch: win32/perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 890] By: gsar on 1998/04/19 01:08:11
+ Log: use a pidtable that grows dynamically for popen()
+ Message-Id: <3539f434.44835409@smtp1.ibm.net>
+ Date: Sat, 18 Apr 1998 21:01:27 +0200
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Subject: Re: [PATCH] for bug in 5.004_64 when compiled with MSC++ 4.2
+ Branch: win32/perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 889] By: gsar on 1998/04/17 02:13:58
+ Log: support POSIX, enable more locale tests
+ Branch: win32/perl
+ ! ext/POSIX/Makefile.PL ext/POSIX/POSIX.pm ext/POSIX/POSIX.xs
+ ! t/lib/posix.t t/pragma/locale.t win32/Makefile
+ ! win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[ 888] By: mbeattie on 1998/04/14 16:22:51
+ Log: CC did "<<" instead of ">>" for right-shift on ints.
+ Branch: perl
+ ! ext/B/B/CC.pm
+____________________________________________________________________________
+[ 887] By: TimBunce on 1998/04/10 17:44:55
+ Log: Assorted patches:
+
+ ------ CORE LANGUAGE ------
+
+ Title: "Re: die exits with 0"
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ Files: perl.c t/op/die_exit.t
+
+ Title: "More toke.c commentary; fix oddity"
+ From: h.sanden@elsevier.nl (Hugo van der Sanden)
+ Msg-ID: <199803251022.LAA01308@dorlas.elsevier.nl>
+ Files: toke.c
+
+ Title: "for semctl on solaris"
+ From: Graham Barr <gbarr@ti.com>
+ Msg-ID: <34624B80.C014E841@ti.com>
+ Files: doio.c t/op/ipcmsg.t t/op/ipcsem.t
+
+ ------ DOCUMENTATION ------
+
+ Title: "Add more 'see also's to perlre.pod.", "Perl regexp /g modifier bug"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>, epeschko@den-mdev1 (Ed
+ Peschko), pjr@watcher.telstra.com.au (Peter Richardson)
+ Msg-ID: <199803050000.LAA11476@watcher.telecom.com.au>,
+ <199803050231.VAA19128@monk.mps.ohio-state.edu>,
+ <199803050605.XAA09785@den-mdev1.co.csgsystems.com>
+ Files: pod/perlre.pod
+
+ ------ LIBRARY AND EXTENSIONS ------
+
+ Title: "BigFloat - small neagtive numbers cause panic"
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199711201325.NAA09732@crypt.compulink.co.uk>
+ Files: lib/Math/BigFloat.pm
+
+ Title: "Update Getopt::Long to 2.16"
+ From: JVromans@Squirrel.nl (Johan Vromans), Johan Vromans
+ <jvromans@squirrel.nl>
+ Msg-ID: <13571.48089.726787.147769@plume.nl.compuware.com>,
+ <13572.6847.863219.973795@phoenix.squirrel.nl>
+ Files: lib/Getopt/Long.pm
+
+ Title: "New Text::ParseWords"
+ From: pomeranz@netcom.com (Hal Pomeranz)
+ Msg-ID: <199710162118.OAA06275@netcom7.netcom.com>
+ Files: lib/Text/ParseWords.pm t/lib/parsewords.t
+
+ Title: "Fixed Text/Wrap.pm bugs (2)"
+ From: Jacqui Caren <Jacqui.Caren@ig.co.uk>
+ Msg-ID: <199709291548.QAA08645@toad.ig.co.uk>
+ Files: lib/Text/Wrap.pm
+
+ Title: "Very *evil* File::CheckTree behavior! (now uses warn/die not
+ print/exit)"
+ From: Eryq <eryq@zeegee.com>, Randal Schwartz <merlyn@stonehenge.com>
+ Msg-ID: <34B542FD.190A@zeegee.com>, <8cen2i9k6f.fsf@gadget.cscaper.com>
+ Files: lib/File/CheckTree.pm
+
+ ------ OTHER CHANGES ------
+
+ Title: "Add ./emacs/ptags"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199803150847.DAA08196@monk.mps.ohio-state.edu>
+ Files: emacs/ptags
+
+ ------ TESTS ------
+
+ Title: "Avoid stat test failure from build in /tmp (tmpfs)", "Build in /tmp"
+ From: Andy Dougherty <doughera@newton.phys.lafayette.edu>, Greg Bacon
+ <gbacon@adtran.com>, pudge@pobox.com (Chris Nandor)
+ Msg-ID: <199710171616.LAA13435@crp-201.adtran.com>,
+ <Pine.SUN.3.96.971017171023.2349A-100000@newton.phys>,
+ <v02130515b06be80f1486@[205.228.240.16]>
+ Files: t/op/stat.t
+
+ Title: "for failure with lib/timelocal"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>, jan.dubois@ibm.net (Jan Dubois)
+ Msg-ID: <34c78f61.2529827@smtp1.ibm.net>,
+ <E0xvdfI-00057d-00@ursa.cus.cam.ac.uk>
+ Files: t/lib/timelocal.t
+
+ Title: "Make "localhost" related failures more clear"
+ From: Paul Hoffman <phoffman@proper.com>
+ Msg-ID: <199801201859.KAA05686@mail.proper.com>
+ Files: t/lib/io_sock.t t/lib/io_udp.t
+
+ ------ UTILITIES ------
+
+ Title: "Let h2xs read multiple header files"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>, Benjamin Sugars
+ <bsugars@canoe.ca>
+ Msg-ID: <Pine.SOL.3.95.980310091946.25236A-100000@interact>,
+ <Pine.SUN.3.96.980310145455.638A-100000@newton.phys>
+ Files: utils/h2xs.PL
+ Branch: maint-5.004/perl
+ + emacs/ptags t/op/die_exit.t t/op/ipcmsg.t t/op/ipcsem.t
+ ! MANIFEST doio.c lib/File/CheckTree.pm lib/Getopt/Long.pm
+ ! lib/Math/BigFloat.pm lib/Text/ParseWords.pm lib/Text/Wrap.pm
+ ! lib/base.pm perl.c pod/perlre.pod t/lib/io_sock.t
+ ! t/lib/io_udp.t t/lib/parsewords.t t/lib/timelocal.t
+ ! t/op/stat.t toke.c utils/h2xs.PL vms/perly_h.vms
+____________________________________________________________________________
+[ 886] By: TimBunce on 1998/04/10 14:35:34
+ Log: Changes relating primarily to portability.
+
+ ------ CORE LANGUAGE ------
+
+ Title: "5.004_55: Another round of OS/2 patches"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199803050945.EAA20153@monk.mps.ohio-state.edu>
+ Files: hints/os2.sh pod/perlguts.pod cop.h perl.h proto.h README.os2
+ global.sym lib/ExtUtils/MM_OS2.pm lib/File/Path.pm op.c
+ os2/Changes os2/Makefile.SHs os2/os2.c os2/perl2cmd.pl
+ perl.c pod/pod2man.PL pp_ctl.c pp_hot.c pp_sys.c
+ t/lib/filecopy.t util.c utils/perldoc.PL
+
+ Title: "VMS: chdir() with empty arg list"
+ From: lane@duphy4.drexel.edu (Charles Lane)
+ Msg-ID: <980317125556.222041c7@DUPHY4.Physics.Drexel.Edu>
+ Files: pp_sys.c
+
+ ------ LIBRARY AND EXTENSIONS ------
+
+ Title: "ExtUtils/MM_Unix.pm changed to use ld -rpath on IRIX"
+ From: "W. Phillip Moore" <wpm@ms.com>
+ Msg-ID: <199712011738.MAA21139@zappa.morgan.com>
+ Files: lib/ExtUtils/MM_Unix.pm
+
+ Title: "[Linux] POSIX::_[PS]C_.+ bug (add HINT_SC_EXIST)"
+ From: Yutaka OIWA <oiwa@is.s.u-tokyo.ac.jp>
+ Msg-ID: <199712251923.EAA08260@tjms1f.is.s.u-tokyo.ac.jp>
+ Files: ext/POSIX/hints/linux.pl ext/POSIX/POSIX.xs
+
+ Title: "5.004_04-m1] Use HAS_GNULIBC in POSIX.xs"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980305115517.9180L-100000@newton.phys>
+ Files: ext/POSIX/POSIX.xs
+
+ Title: ""ODBM_File.c", line 275: NULL undefined"
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Msg-ID: <9803091310.AA23264@claudius.bfsec.bt.co.uk>
+ Files: ext/ODBM_File/ODBM_File.xs
+
+ ------ OTHER CHANGES ------
+ Files:
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "5.004_04 QNX getcwd"
+ From: Norton Allen <allen@huarp.harvard.edu>
+ Msg-ID: <199802121838.NAA20452@dolores.harvard.edu>,
+ <199803061511.KAA22346@bottesini.harvard.edu>
+ Files: hints/qnx.sh lib/Cwd.pm t/op/magic.t
+
+ Title: "hints/netbsd.sh d_setrgid d_setruid"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199802281435.QAA10866@alpha.hut.fi>
+ Files: hints/netbsd.sh
+
+ Title: "osname=unixware, osvers=2.03, archname=i386-unixware
+ d_casti32=undef"
+ From: Tom Hughes <tom@compton.demon.co.uk>
+ Msg-ID: <465398da47%tom@compton.demon.co.uk>
+ Files: hints/svr4.sh
+
+ Title: "hints/bsdos.sh patch for BSDI 3.1"
+ From: Jan-Pieter Cornet <johnpc@xs4all.nl>
+ Msg-ID: <6fbip6$3cp$1@xs1.xs4all.nl>
+ Files: hints/bsdos.sh
+
+ Title: "Remove BIND_NOSTART from DynaLoader for HP"
+ From: Keong Lim <Keong.Lim@sr.com.au>
+ Msg-ID: <01BD1D03.53B65E90@sieplan2.sr.com.au>
+ Files: ext/DynaLoader/dl_hpux.xs
+
+ Title: "Building Perl on AIX 4+ with shared libraries and dynamic loading"
+ From: Juan Gallego <Little.Boss@physics.mcgill.ca>
+ Msg-ID: <Pine.SGI.3.91.971022084517.17052F-100000@nazgul.physics.mcgill.ca>
+ Files: hints/aix.sh
+
+ Title: "alpha-dec_osf 5.0"
+ From: Spider Boardman <spider@Orb.Nashua.NH.US>
+ Msg-ID: <199712232305.SAA08359@Orb.Nashua.NH.US>
+ Files: hints/dec_osf.sh
+
+ Title: "Off-by-one error with OS2::PrfDB"
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199710170920.FAA00390@monk.mps.ohio-state.edu>
+ Files: os2/OS2/PrfDB/PrfDB.xs
+
+ Title: "5.004_04-m1] Allow overrides in hints/openbsd.sh"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980305115956.9180N-100000@newton.phys>
+ Files: hints/openbsd.sh
+
+ Title: "5.004_04-m1] Linux shouldn't use -lnet"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980305115843.9180M-100000@newton.phys>
+ Files: hints/linux.sh
+
+ Title: "5.004_(04|63)] Close VMS security hole"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01IV6LRJCSSC0009C4@cor.newman.upenn.edu>
+ Files: vms/vms.c
+
+ Title: "Re: Perl online documentation on OpenVMS"
+ From: pvhp@forte.com (Peter Prymmer)
+ Msg-ID: <9803192143.AA28120@forte.com>
+ Files: README.vms
+
+ Title: "Perl5.004_04m4t4 *almost* makes it for VMS", "Updated
+ vms/perly_c.vms and vms/perly_h.vms"
+ From: Andy Dougherty <doughera@newton.phys.lafayette.edu>, Dan Sugalski
+ <sugalskd@osshe.edu>, larry@wall.org (Larry Wall)
+ Msg-ID: <199710151650.JAA29185@wall.org>,
+ <3.0.3.32.19971014150404.02fdef78@osshe.edu>,
+ <Pine.SUN.3.96.971015121704.28456F-100000@newton.phys>
+ Files: vms/perly_c.vms
+
+ Title: "Updated, non-wordwrapped, patch to README.VMS"
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Msg-ID: <3.0.5.32.19980213133828.0092c870@osshe.edu>
+ Files: README.vms
+
+ Title: "VMS patches to 5.004_03 (excluding installperl and timelocal.t)"
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Msg-ID: <01INZT9G2LZS0006YW@cor.newman.upenn.edu>
+ Files: lib/File/Basename.pm lib/File/Path.pm vms/config.vms vms/descrip.mms
+ vms/genconfig.pl vms/test.com vms/vms.c vms/ext/Filespec.pm
+ vms/ext/filespec.t
+
+ Title: "Re: VMSperl crashes on -Mblib argument"
+ From: bailey@newman.upenn.edu (Charles Bailey)
+ Msg-ID: <1997Dec10.004439.2635060@cor.newman>
+ Files: lib/blib.pm vms/vms.c
+
+ Title: "hints/linux.sh (MkLinux / PPC)"
+ From: pudge@pobox.com (Chris Nandor)
+ Msg-ID: <v0213050cb06c19682a25@[205.228.240.28]>
+ Files: hints/linux.sh
+
+ Title: "hpux.sh hints file clarification suggestion"
+ From: root@qad.com
+ Msg-ID: <199802192351.QAA09096@jhereg.perl.com>
+ Files: hints/hpux.sh
+
+ Title: "new hints/solaris_2.sh"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0xw80h-0005SV-00@ursa.cus.cam.ac.uk>
+ Files: hints/solaris_2.sh
+ Branch: maint-5.004/perl
+ ! README.os2 README.vms cop.h ext/DynaLoader/dl_hpux.xs
+ ! ext/ODBM_File/ODBM_File.xs ext/POSIX/POSIX.xs
+ ! ext/POSIX/hints/linux.pl global.sym hints/aix.sh
+ ! hints/bsdos.sh hints/dec_osf.sh hints/hpux.sh hints/linux.sh
+ ! hints/netbsd.sh hints/openbsd.sh hints/os2.sh hints/qnx.sh
+ ! hints/solaris_2.sh hints/svr4.sh lib/Cwd.pm
+ ! lib/ExtUtils/MM_OS2.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/File/Basename.pm lib/File/Path.pm lib/blib.pm op.c
+ ! os2/Changes os2/Makefile.SHs os2/OS2/PrfDB/PrfDB.xs os2/os2.c
+ ! os2/perl2cmd.pl perl.c perl.h pod/perlguts.pod pod/pod2man.PL
+ ! pp_ctl.c pp_hot.c pp_sys.c proto.h t/lib/filecopy.t
+ ! t/op/magic.t util.c utils/perldoc.PL vms/config.vms
+ ! vms/descrip.mms vms/ext/Filespec.pm vms/ext/filespec.t
+ ! vms/genconfig.pl vms/perly_c.vms vms/perly_h.vms vms/test.com
+ ! vms/vms.c
+____________________________________________________________________________
+[ 885] By: gsar on 1998/04/08 01:14:29
+ Log: small tweaks to make it compile (doesn't run)
+ Branch: asperl
+ ! objpp.h win32/Makefile win32/config.bc win32/config.gc
+ ! win32/config.vc win32/makefile.mk
+____________________________________________________________________________
+[ 884] By: gsar on 1998/04/08 00:14:13
+ Log: integrate mainline changes
+ Branch: asperl
+ +> Changes5.004 ext/Thread/Thread/Signal.pm
+ +> lib/ExtUtils/Installed.pm lib/ExtUtils/Packlist.pm
+ +> lib/ExtUtils/inst t/op/hashwarn.t
+ ! ObjXSub.h embedvar.h interp.sym intrpvar.h objpp.h
+ !> (integrate 127 files)
+____________________________________________________________________________
+[ 883] By: gsar on 1998/04/06 20:21:20
+ Log: make old DomainName() implementation the default (so Win95
+ is happy)
+ Branch: win32/perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 882] By: gsar on 1998/04/05 23:32:33
+ Log: fix memory leaks in offer_nice_chunk()
+ Branch: win32/perl
+ ! perl.h sv.c
+____________________________________________________________________________
+[ 881] By: gsar on 1998/04/04 23:11:52
+ Log: set up PUSHSTACK for __DIE__ and __WARN__ hooks also
+ Branch: win32/perl
+ ! cop.h util.c
+____________________________________________________________________________
+[ 880] By: gsar on 1998/04/04 22:35:54
+ Log: fix refcounting of GvSTASH() when glob becomes nought
+ (this takes care of the "unbalanced strtab refcount" problem)
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 879] By: gsar on 1998/04/04 21:16:17
+ Log: change 866 was incomplete
+ Branch: win32/perl
+ ! hv.c
+____________________________________________________________________________
+[ 878] By: gsar on 1998/04/04 20:31:56
+ Log: fixes for various noises under PERL_DESTRUCT_LEVEL
+ Branch: win32/perl
+ ! cop.h perl.c pp_ctl.c
+____________________________________________________________________________
+[ 877] By: gsar on 1998/04/04 17:55:30
+ Log: integrate mainline
+ Branch: win32/perl
+ +> Changes5.004
+ !> Changes MANIFEST sv.c t/op/misc.t
+____________________________________________________________________________
+[ 876] By: gsar on 1998/04/04 17:26:32
+ Log: remove __declspec kludge in sdbm.h in favor of setting a
+ flag for static symbols
+ Branch: win32/perl
+ ! EXTERN.h ext/SDBM_File/sdbm/Makefile.PL
+ ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[ 875] By: gsar on 1998/04/04 01:11:57
+ Log: fix order of init
+ Message-Id: <3.0.5.32.19980403135815.009d2440@osshe.edu>
+ Date: Fri, 03 Apr 1998 13:58:15 PST
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH 5.004_64] perl dies in perl_construct when compiled
+ with MULTIPLICITY
+ Branch: win32/perl
+ ! perl.c
+____________________________________________________________________________
+[ 874] By: gsar on 1998/04/04 00:34:59
+ Log: the EXTCONST in sdbm.h breaks SDBM on Borland, since
+ the declared symbol is not in a DLL (so kludge it)
+ Branch: win32/perl
+ ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[ 873] By: TimBunce on 1998/04/03 22:17:40
+ Log: Title: "FileHandle Documentation patch"
+ From: "Darren/Torin/Who Ever..." <torin@daft.com>
+ Msg-ID: <87emzqo49g.fsf@perv.daft.com>
+ Files: lib/FileHandle.pm
+ Branch: maint-5.004/perl
+ ! lib/FileHandle.pm
+____________________________________________________________________________
+[ 872] By: TimBunce on 1998/04/03 22:01:03
+ Log: Documentation and documentation related patches:
+
+ ------ BUILD PROCESS ------
+
+ Title: "Docs re /usr/bin/perl quasi-standard location"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.971117080737.12318C-100000@usertest.teleport.com>
+ Files: INSTALL pod/perlrun.pod
+
+ ------ DOCUMENTATION ------
+
+ Title: "/RFC|RFC-1305/ non-greedy"
+ From: Jan-Pieter Cornet <johnpc@xs4all.nl>
+ Msg-ID: <6epo02$c4r$1@xs1.xs4all.nl>
+ Files: pod/perlre.pod
+
+ Title: "5.004_04: perlhist.pod, buildtoc, perltoc.pod"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199802191543.RAA29231@alpha.hut.fi>
+ Files: pod/perl.pod pod/perlhist.pod pod/perltoc.pod pod/buildtoc
+
+ Title: "5.004_04: pod/perlfunc.pod: i18n example for localtime()"
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199711141555.RAA18875@alpha.hut.fi>
+ Files: pod/perlfunc.pod
+
+ Title: "typo-fix and suggestion for perlguts.pod"
+ From: h.sanden@elsevier.nl (Hugo van der Sanden)
+ Msg-ID: <199803051543.QAA03097@dorlas.elsevier.nl>
+ Files: pod/perlguts.pod
+
+ Title: "perlfunc/syscall curiosity"
+ From: Roderick Schertler <roderick@argon.org>, Tkil
+ <tkil@reptile.scrye.com>
+ Msg-ID: <199711302259.PAA02134@reptile.scrye.com>,
+ <pziut8snva.fsf@eeyore.ibcinc.com>
+ Files: pod/perlfunc.pod
+
+ Title: "Document sprintf %#x behaviour for zero value"
+ From: ilya@math.ohio-state.edu (Ilya Zakharevich)
+ Msg-ID: <1997Nov5.185959.2539604@cor.newman>
+ Files: pod/perlfunc.pod
+
+ Title: "NUL termination (was Re: STOP THE PRESSES)"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0xsn5M-0002gw-00@ursa.cus.cam.ac.uk>
+ Files: pod/perlguts.pod
+
+ Title: "Typo fix."
+ From: abigail@fnx.com
+ Msg-ID: <19971101120114.1030.qmail@betelgeuse.wayne.fnx.com>
+ Files: pod/perlop.pod pod/perlvar.pod
+
+ Title: "5.004_63 perlrun.pod: _DEBUG_MSTATS"
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9803181940.AA22587@o09.xray.mpe.mpg.de>
+ Files: pod/perlrun.pod
+
+ Title: "Re: Conservative C<*x = undef> patch"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0yCjHT-0005Dt-00@ursa.cus.cam.ac.uk>
+ Files: pod/perltrap.pod
+
+ Title: "perlfunc.pod for flock()"
+ From: "Jeremy D. Zawodny" <jzawodn@wcnet.org>
+ Msg-ID: <3.0.5.32.19971118203119.00a723e0@woody.wcnet.org>
+ Files: pod/perlfunc.pod
+
+ Title: "buglet: 'perltoc' not mentioned in perl.pod"
+ From: Tkil <tkil@scrye.com>
+ Msg-ID: <19971127035036.17668.qmail@scrye.com>
+ Files: pod/perl.pod
+
+ Title: "for() and map() peculiarity"
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0y4YAa-0003Qu-00@ursa.cus.cam.ac.uk>
+ Files: pod/perlsyn.pod
+
+ Title: "Re: new text for perlsec"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.980328100418.22321T-100000@user2.teleport.com>
+ Files: pod/perlsec.pod
+
+ Title: "perldsc's debugger x command"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <10669.878352893@eeyore.ibcinc.com>
+ Files: pod/perldsc.pod
+
+ Title: "perlre.pod"
+ From: Ted Ashton <ashted@southern.edu>
+ Msg-ID: <199802271501.KAA09279@ns.southern.edu>
+ Files: pod/perlre.pod
+
+ Title: "Re: printf and $\", "printf and $\"
+ From: Roderick Schertler <roderick@argon.org>, Tom Phoenix
+ <rootbeer@teleport.com>, nag <nick@flirble.org>
+ Msg-ID: <199711141918.TAA08096@flirble.org>,
+ <Pine.GSO.3.96.971117085421.12318J-100000@usertest.teleport
+ .com>, <pzyb2ncr42.fsf@eeyore.ibcinc.com>
+ Files: pod/perlfunc.pod
+
+ Title: "recv() typo"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <12064.877012073@eeyore.ibcinc.com>
+ Files: pod/perlfunc.pod
+
+ Title: "truncate return value"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <5490.878337883@eeyore.ibcinc.com>
+ Files: pod/perlfunc.pod
+
+ Title: "update to perlbook.pod"
+ From: "Nathan V. Patwardhan" <nvp@mediaone.net>, Randal Schwartz
+ <merlyn@stonehenge.com>, Stephen Potter
+ <spp@psasolar.colltech.com>, Tom Phoenix
+ <rootbeer@teleport.com>
+ Msg-ID: <199803241354.HAA23938@psasolar.psa.pencom.com>,
+ <199803241441.OAA01261@mediaone.net>,
+ <8clnu0i05k.fsf@gadget.cscaper.com>,
+ <Pine.GSO.3.96.980324111957.15753C-100000@user1.teleport.com>
+ Files: pod/perlbook.pod
+
+ Title: "utime documentation"
+ From: "Brandon S. Allbery KF8NH" <bsa@kf8nh.apk.net>, "M.J.T. Guy"
+ <mjtg@cus.cam.ac.uk>
+ Msg-ID: <199802180256.VAA11369@speaker.kf8nh.apk.net>,
+ <E0y4qd6-0000P6-00@ursa.cus.cam.ac.uk>
+ Files: pod/perlfunc.pod
+
+ Title: "(well, doc patch) use of // requires successful match"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <pz7mb4bips.fsf@eeyore.ibcinc.com>
+ Files: pod/perlop.pod
+
+ ------ LIBRARY AND EXTENSIONS ------
+
+ Title: "MakeMaker PM doc patch and a DIR buglet"
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9711101050.AA13868@o09.xray.mpe.mpg.de>
+ Files: lib/ExtUtils/MakeMaker.pm
+
+ Title: "bareword clarification for constant.pm"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <6460.878143077@eeyore.ibcinc.com>
+ Files: lib/constant.pm
+
+ Title: "integer rand - bug or feature?"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <pzhg8lvgta.fsf@eeyore.ibcinc.com>
+ Files: lib/integer.pm
+
+ ------ OTHER CHANGES ------
+
+ Title: "FileHandle Documentation patch"
+ From: "Darren/Torin/Who Ever..." <torin@daft.com>
+ Msg-ID: <87emzqo49g.fsf@perv.daft.com>
+
+ Title: "perl5.004_61 myconfig updates"
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980305150629.11530G-100000@newton.phys>
+ Files: myconfig
+
+ Title: "small fixups in pod2latex.PL"
+ From: "Darren/Torin/Who Ever..." <torin@daft.com>
+ Msg-ID: <873eg6o3v2.fsf@perv.daft.com>
+
+ ------ PORTABILITY - GENERAL ------
+
+ Title: "Misc doc fixes for README.VMS"
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Msg-ID: <3.0.5.32.19980121113134.00924a20@osshe.edu>
+ Files: README.vms
+
+ Title: "moved DynaLib"
+ From: John Tobey <jtobey@channel1.com>
+ Msg-ID: <199710182332.XAA21630@remote212>
+ Files: ext/DynaLoader/DynaLoader.pm.PL
+
+ ------ UTILITIES ------
+
+ Title: "Searching for FAQs (patch to perldoc)"
+ From: Piers Cawley <pdcawley@bofh.org.uk>, Russ Allbery <rra@stanford.edu>
+ Msg-ID: <m3d8gsb8uk.fsf@windlord.Stanford.EDU>,
+ <m3iuqkfmiq.fsf@tower.bofh.org.uk>
+ Files: utils/perldoc.PL
+
+ Title: "perldoc"
+ From: Ted Ashton <ashted@southern.edu>
+ Msg-ID: <199802271510.KAA10506@ns.southern.edu>
+ Files: utils/perldoc.PL
+
+ Title: "perldoc -f not using pod2man"
+ From: Russ Allbery <rra@stanford.edu>
+ Msg-ID: <m3hg4f9vyy.fsf@windlord.Stanford.EDU>
+ Files: utils/perldoc.PL
+
+ Title: "perldoc -m should not require pod"
+ From: Robin Houston <robin@nml.guardian.co.uk>
+ Msg-ID: <199803241319.NAA24777@stringfellow.guardian.co.uk>
+ Files: utils/perldoc.PL
+
+ Title: "small fix for perldoc in perl 5.004_04"
+ From: Julian Yip <julian@imoney.com>
+ Msg-ID: <Roam.SIMC.2.0.6.884805579.5280.julian@imoney.com>
+ Files: utils/perldoc.PL
+ Branch: maint-5.004/perl
+ - ext/DynaLoader/DynaLoader.pm
+ ! Changes Configure INSTALL README.vms
+ ! ext/DynaLoader/DynaLoader.pm.PL ext/Socket/Socket.pm
+ ! lib/ExtUtils/MakeMaker.pm lib/Tie/Hash.pm lib/constant.pm
+ ! lib/integer.pm myconfig pod/buildtoc pod/checkpods.PL
+ ! pod/perl.pod pod/perlbook.pod pod/perldelta.pod
+ ! pod/perldiag.pod pod/perldsc.pod pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlhist.pod pod/perllocale.pod
+ ! pod/perlmod.pod pod/perlop.pod pod/perlre.pod pod/perlrun.pod
+ ! pod/perlsec.pod pod/perlstyle.pod pod/perlsyn.pod
+ ! pod/perltoc.pod pod/perltrap.pod pod/perlvar.pod
+ ! pod/pod2latex.PL toke.c utils/perldoc.PL
+
+----------------
+Version 5.004_64
+----------------
+
+____________________________________________________________________________
+[ 871] By: mbeattie on 1998/04/03 13:38:59
+ Log: Update Changes5.004 and Changes, fix MANIFEST
+ Branch: perl
+ + Changes
+ ! Changes5.004 MANIFEST
+____________________________________________________________________________
+[ 870] By: mbeattie on 1998/04/03 13:36:29
+ Log: Rename Changes to Changes5.004 (via an integrate)
+ Branch: perl
+ +> Changes5.004
+ - Changes
+____________________________________________________________________________
+[ 869] By: mbeattie on 1998/04/03 11:53:00
+ Log: Subject: [PATCH] Perl 5.005b1t2/perl5.004_63 (resend)
+ Date: Wed, 18 Mar 1998 01:24:20 +0100 (MET)
+ From: Jan-Pieter Cornet <johnpc@xs4all.net>
+ Branch: perl
+ ! sv.c t/op/misc.t
+____________________________________________________________________________
+[ 868] By: mbeattie on 1998/04/03 11:16:26
+ Log: Integrate win32 branch into mainline
+ Branch: perl
+ !> (integrate 31 files)
+____________________________________________________________________________
+[ 867] By: gsar on 1998/04/03 08:47:55
+ Log: config.* fixes
+ Branch: win32/perl
+ ! win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 866] By: gsar on 1998/04/03 07:22:50
+ Log: fixup hv_free_ent() to not fail on null HeVAL()
+ Branch: win32/perl
+ ! hv.c perl.c
+____________________________________________________________________________
+[ 865] By: gsar on 1998/04/03 07:06:12
+ Log: integrate mainline
+ Branch: win32/perl
+ +> ext/Thread/Thread/Signal.pm t/op/hashwarn.t
+ !> (integrate 71 files)
+____________________________________________________________________________
+[ 864] By: gsar on 1998/04/03 06:59:37
+ Log: implement stack-of-stacks so that magic invocations don't
+ invalidate local stack pointer
+ Branch: win32/perl
+ ! av.c cop.h deb.c embed.h embedvar.h global.sym gv.c interp.sym
+ ! intrpvar.h mg.c op.c perl.c pp.h pp_ctl.c pp_sys.c proto.h
+ ! scope.c sv.c t/op/runlevel.t thrdvar.h util.c
+____________________________________________________________________________
+[ 863] By: gsar on 1998/04/03 01:26:09
+ Log: add AS patch#15
+ Branch: asperl
+ ! ipenv.h lib/ExtUtils/MM_Unix.pm perl.c perlenv.h
+ ! win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/config_h.PL win32/config_sh.PL win32/runperl.c
+ ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 862] By: mbeattie on 1998/04/02 17:08:43
+ Log: Subject: [PATCH for 5.004_63] Config_63-04-05.diff
+ Date: Thu, 2 Apr 1998 11:56:51 -0500 (EST)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ ! Configure ext/Socket/Socket.xs myconfig
+____________________________________________________________________________
+[ 861] By: mbeattie on 1998/04/02 16:32:53
+ Log: Change 854 added { NULL, 0 } to sdbm.h which needs to be {0, 0}
+ since appropriate headers aren't included.
+ Branch: perl
+ ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[ 860] By: mbeattie on 1998/04/02 16:17:11
+ Log: Bumped patchlevel.h to 64
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 859] By: mbeattie on 1998/04/02 16:16:26
+ Log: Subject: Re: [PATCH] 5.004_63: UNICOS 9
+ Date: Fri, 20 Mar 1998 19:39:28 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! hints/unicos.sh regcomp.h
+____________________________________________________________________________
+[ 858] By: mbeattie on 1998/04/02 16:13:24
+ Log: Subject: [PATCH] Re: Odd number of elements in hash list.
+ Date: Sat, 28 Mar 1998 15:26:46 -0800 (PST)
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Branch: perl
+ + t/op/hashwarn.t
+ ! MANIFEST pod/perldiag.pod pp.c pp_hot.c
+____________________________________________________________________________
+[ 857] By: mbeattie on 1998/04/02 16:08:43
+ Log: Subject: [PATCH 5.004_(04|63)] Close VMS security hole
+ Date: Sat, 28 Mar 1998 02:05:03 -0500 (EST)
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Branch: perl
+ ! vms/vms.c
+____________________________________________________________________________
+[ 856] By: mbeattie on 1998/04/02 16:07:44
+ Log: Subject: [PATCH] mv-if-diff
+ Date: Fri, 27 Mar 98 18:06:11 GMT
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ Branch: perl
+ ! mv-if-diff
+____________________________________________________________________________
+[ 855] By: mbeattie on 1998/04/02 16:06:54
+ Log: From: Jan-Pieter Cornet <johnpc@xs4all.net>
+ Subject: Re: [PATCH] [BUG 5.004_63] define/set of PERL_DESTRUCT_LEVEL
+ Date: Fri, 27 Mar 1998 02:11:21 +0100 (MET)
+ Subject: [PATCH] another destruct_level fix
+ Date: Mon, 30 Mar 1998 23:48:12 +0200 (MET DST)
+ Branch: perl
+ ! perl.c sv.c
+____________________________________________________________________________
+[ 854] By: mbeattie on 1998/04/02 16:03:37
+ Log: Subject: Next wave of _63 VMS patches
+ Date: Thu, 26 Mar 1998 15:11:50 -0500 (EST)
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Branch: perl
+ ! EXTERN.h INTERN.h ext/SDBM_File/Makefile.PL
+ ! ext/SDBM_File/sdbm/Makefile.PL ext/SDBM_File/sdbm/dba.c
+ ! ext/SDBM_File/sdbm/dbd.c ext/SDBM_File/sdbm/dbu.c
+ ! ext/SDBM_File/sdbm/hash.c ext/SDBM_File/sdbm/pair.c
+ ! ext/SDBM_File/sdbm/sdbm.c ext/SDBM_File/sdbm/sdbm.h
+ ! ext/Thread/io.t installperl lib/ExtUtils/MM_VMS.pm
+ ! lib/Net/Ping.pm perldir.h perlsdio.h t/lib/english.t
+ ! vms/config.vms vms/descrip.mms vms/ext/Filespec.pm
+ ! vms/ext/Stdio/0README.txt vms/ext/Stdio/Stdio.pm
+ ! vms/ext/Stdio/Stdio.xs vms/ext/Stdio/test.pl
+ ! vms/ext/filespec.t vms/genconfig.pl vms/perly_c.vms vms/vms.c
+ ! vms/vmsish.h
+____________________________________________________________________________
+[ 853] By: mbeattie on 1998/04/02 15:55:46
+ Log: Subject: [PATCH 5.00463] Confusing error from perl -e "x'"
+ Date: Wed, 25 Mar 1998 17:43:17 -0500 (EST)
+ From: Hans Mulder <hansmu@xs4all.nl>
+ Branch: perl
+ ! toke.c
+____________________________________________________________________________
+[ 852] By: mbeattie on 1998/04/02 15:54:24
+ Log: Subject: [PATCH] small fixups in pod2latex.PL
+ Date: 25 Mar 1998 13:30:25 -0800
+ From: "Darren/Torin/Who Ever..." <torin@daft.com>
+ Branch: perl
+ ! pod/pod2latex.PL
+____________________________________________________________________________
+[ 851] By: mbeattie on 1998/04/02 15:50:58
+ Log: Subject: [PATCH] hints/irix_6.sh with GCC
+ Date: Tue, 24 Mar 1998 12:25:10 -0800 (EST)
+ From: kstar@chapin.edu (Kurt D. Starsinic)
+ Branch: perl
+ ! hints/irix_6.sh
+____________________________________________________________________________
+[ 850] By: mbeattie on 1998/04/02 15:45:33
+ Log: Subject: [PATCH] perldoc -m
+ Date: Tue, 24 Mar 1998 13:19:38 GMT
+ From: Robin Houston <robin@nml.guardian.co.uk>
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 849] By: mbeattie on 1998/04/02 15:42:52
+ Log: Subject: [PATCH for 5.004_63] dos-djgpp update
+ Date: Mon, 23 Mar 1998 14:13:46 +0100
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Branch: perl
+ ! djgpp/config.over hints/dos_djgpp.sh
+____________________________________________________________________________
+[ 848] By: mbeattie on 1998/04/02 15:38:19
+ Log: Subject: [PATCH] Stale SP in pp_substr
+ Date: Thu, 19 Mar 1998 21:28:02 -0600 (CST)
+ From: Stephen McCamant <alias@mcs.com>
+ Branch: perl
+ ! pp.c
+____________________________________________________________________________
+[ 847] By: mbeattie on 1998/04/02 15:36:33
+ Log: Add missing export of "nice" to ext/POSIX/POSIX.pm (Phil Tait)
+ Branch: perl
+ ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[ 846] By: mbeattie on 1998/04/02 15:34:36
+ Log: Subject: [PATCH] 5.004_63: further -e patching
+ Date: Wed, 18 Mar 1998 23:21:08 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! perl.c pod/perldiag.pod
+____________________________________________________________________________
+[ 845] By: mbeattie on 1998/04/02 15:25:18
+ Log: Andy Dougherty's configuration patches (Config_63-01 up to 04).
+ Branch: perl
+ ! Configure INSTALL Policy_sh.SH Porting/Glossary
+ ! Porting/config.sh Porting/config_H config_h.SH
+ ! ext/POSIX/POSIX.xs handy.h hints/hpux.sh myconfig perlsock.h
+ ! pp.c pp_sys.c regexec.c
+____________________________________________________________________________
+[ 844] By: mbeattie on 1998/04/02 14:28:17
+ Log: Subject: [PATCH 5.004_63] perlrun.pod: PERL_DEBUG_MSTATS
+ Date: Wed, 18 Mar 1998 20:40:19 +0100
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Branch: perl
+ ! pod/perlrun.pod
+____________________________________________________________________________
+[ 843] By: mbeattie on 1998/04/02 14:26:52
+ Log: From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: 5.004_63 picky compiler fixes [PATCH]
+ Date: Wed, 18 Mar 1998 09:36:32 -0800
+ Subject: [PATCH 5.004_63] Fix function prototype with long doubles
+ Date: Wed, 18 Mar 1998 14:48:19 -0800
+ Branch: perl
+ ! ext/POSIX/POSIX.xs ext/Thread/Thread.xs vms/vms.c
+____________________________________________________________________________
+[ 842] By: mbeattie on 1998/04/02 14:22:41
+ Log: From: Stephen Potter <spp@psasolar.colltech.com>
+ Subject: Re: doc: perlrun typo
+ Date: Wed, 18 Mar 1998 10:06:55 -0600
+ Subject: Re: [PATCH 5.004_63] PerlLIO abstraction cleanup
+ Date: Tue, 24 Mar 1998 21:20:51 -0600
+ Branch: perl
+ ! mg.c perl.c pod/perlrun.pod pp_hot.c pp_sys.c util.c
+____________________________________________________________________________
+[ 841] By: mbeattie on 1998/04/02 14:17:31
+ Log: Subject: [PATCH] Add "Full 64 bit support" to Todo; document Todo in pumpkin.pod
+ Date: Wed, 18 Mar 1998 12:44:58 +0100
+ From: Dominic Dunlop <domo@vo.lu>
+ Branch: perl
+ ! Porting/pumpkin.pod Todo
+____________________________________________________________________________
+[ 840] By: mbeattie on 1998/04/02 14:14:22
+ Log: Subject: [PATCH] Configure hints/ patches
+ Date: Wed, 18 Mar 1998 02:47:38 +0100 (MET)
+ From: Jan-Pieter Cornet <johnpc@xs4all.net>
+ Branch: perl
+ ! hints/linux.sh hints/qnx.sh
+____________________________________________________________________________
+[ 839] By: mbeattie on 1998/04/02 14:13:13
+ Log: Remove duplicate code in cygwin32/perlgcc (Blair Zajac)
+ Branch: perl
+ ! cygwin32/perlgcc
+____________________________________________________________________________
+[ 838] By: gsar on 1998/03/28 05:01:57
+ Log: fix Env.pm to weed out illegal names
+ Branch: win32/perl
+ ! lib/Env.pm
+____________________________________________________________________________
+[ 837] By: gsar on 1998/03/28 04:39:43
+ Log: fix typo in makefile.mk
+ Branch: win32/perl
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 836] By: gsar on 1998/03/23 17:40:15
+ Log: add file: to installhtml URLs
+ Branch: win32/perl
+ ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 835] By: mbeattie on 1998/03/18 11:03:11
+ Log: Add Thread::Signal to run signal handlers reliably in a new thread
+ Branch: perl
+ + ext/Thread/Thread/Signal.pm
+ ! MANIFEST ext/Thread/Thread.xs
+
+----------------
+Version 5.004_63
+----------------
+
+____________________________________________________________________________
+[ 834] By: mbeattie on 1998/03/17 16:19:10
+ Log: Policy_sh.SH had extra $ in pager=$pager comment (Hallvard B Furuseth)
+ Branch: perl
+ ! Policy_sh.SH
+____________________________________________________________________________
+[ 833] By: mbeattie on 1998/03/17 16:11:02
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ !> regcomp.c win32/config.bc win32/config.gc win32/config.vc
+ !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ !> win32/win32.c
+____________________________________________________________________________
+[ 832] By: gsar on 1998/03/17 14:32:39
+ Log: propagate bugfix @ change831 from asperl
+ Branch: win32/perl
+ ! regcomp.c
+____________________________________________________________________________
+[ 831] By: gsar on 1998/03/17 14:02:51
+ Log: fix buggy order of free() in regcomp.c (from AS)
+ Branch: asperl
+ ! regcomp.c
+____________________________________________________________________________
+[ 830] By: gsar on 1998/03/17 01:10:54
+ Log: add a part of AS patch#14, backout incomplete variable
+ name changes for gcc. Builds and tests under VC/BC once again.
+ Branch: asperl
+ ! bytecode.h mg.c pp.c pp_ctl.c pp_hot.c toke.c
+____________________________________________________________________________
+[ 829] By: gsar on 1998/03/16 23:49:18
+ Log: stray tweak to win32.c
+ Branch: win32/perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 828] By: gsar on 1998/03/16 22:06:03
+ Log: update win32/config* files
+ Branch: win32/perl
+ ! win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[ 827] By: gsar on 1998/03/16 19:09:30
+ Log: trivial integrate of mainline
+ Branch: win32/perl
+ +> lib/ExtUtils/Installed.pm lib/ExtUtils/Packlist.pm
+ +> lib/ExtUtils/inst
+ !> (integrate 61 files)
+____________________________________________________________________________
+[ 826] By: mbeattie on 1998/03/16 16:39:23
+ Log: newCONSTSUB had private MY_start_subparse.
+ Branch: perl
+ ! op.c
+____________________________________________________________________________
+[ 825] By: mbeattie on 1998/03/16 16:36:55
+ Log: Missing dTHR in hv_fetch_ent when statics moved to thread struct.
+ Branch: perl
+ ! hv.c
+____________________________________________________________________________
+[ 824] By: mbeattie on 1998/03/16 16:27:43
+ Log: Added missing entry for lib/ExtUtils/Packlist.pm to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 823] By: mbeattie on 1998/03/16 16:26:02
+ Log: Missed p4 add of lib/ExtUtils/Packlist.pm in change 814.
+ Branch: perl
+ + lib/ExtUtils/Packlist.pm
+____________________________________________________________________________
+[ 822] By: mbeattie on 1998/03/16 16:22:58
+ Log: Bump patchlevel.h to 63.
+ Branch: perl
+ ! ext/IO/IO.xs patchlevel.h
+ !> (integrate 41 files)
+____________________________________________________________________________
+[ 821] By: mbeattie on 1998/03/16 16:18:35
+ Log: newCONSTSUB added (XSUB equivalent for inlinable sub () { 123 }).
+ Subject: Bundling builtin.pm and newCONSTSUB with the core?
+ From: jan.dubois@ibm.net (Jan Dubois)
+ Date: Sun, 15 Mar 1998 19:09:05 +0100
+ Branch: perl
+ ! embed.h global.sym op.c pod/perlguts.pod proto.h
+____________________________________________________________________________
+[ 820] By: mbeattie on 1998/03/16 16:02:50
+ Log: Subject: [PATCH] STRESS_REALLOC
+ Date: Fri, 13 Mar 1998 22:28:19 -0600 (CST)
+ From: Stephen McCamant <alias@mcs.com>
+ Branch: perl
+ ! malloc.c perl.c scope.c
+____________________________________________________________________________
+[ 819] By: mbeattie on 1998/03/16 16:01:06
+ Log: Subject: [BUG+PATCH] _62 with -DDEBUGGING and -Duseperlio
+ Date: Fri, 13 Mar 1998 23:21:25 +0100
+ From: Jan-Pieter Cornet <john@pc.xs4all.nl>
+ Branch: perl
+ ! perly.c
+____________________________________________________________________________
+[ 818] By: mbeattie on 1998/03/16 15:59:16
+ Log: Subject: [Configure PATCH] for OS/2
+ Date: Fri, 13 Mar 1998 16:18:12 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ [Two hunks to Configure failed to apply due to clashes]
+ Branch: perl
+ ! Configure hints/os2.sh
+____________________________________________________________________________
+[ 817] By: mbeattie on 1998/03/16 15:55:28
+ Log: Subject: [PATCH 5.004_62] VMS updates (direct)
+ Date: Thu, 12 Mar 1998 16:02:29 -0500 (EST)
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ [Needed manual tweaks on vms/config.vms since it clashed with other
+ patches. I may have got it wrong.]
+ Branch: perl
+ ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_VMS.pm
+ ! lib/ExtUtils/Mksymlists.pm perl.h pp.c pp_hot.c regcomp.c
+ ! regcomp.h utils/perldoc.PL vms/config.vms vms/descrip.mms
+ ! vms/ext/Stdio/Stdio.pm vms/ext/filespec.t vms/fndvers.com
+ ! vms/gen_shrfls.pl vms/genconfig.pl vms/sockadapt.h
+ ! vms/test.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[ 816] By: mbeattie on 1998/03/16 15:26:04
+ Log: Subject: [PATCH] Let h2xs read multiple header files
+ Date: Tue, 10 Mar 1998 09:35:42 -0500 (EST)
+ From: Benjamin Sugars <bsugars@canoe.ca>
+ Branch: perl
+ ! utils/h2xs.PL
+____________________________________________________________________________
+[ 815] By: mbeattie on 1998/03/16 15:24:12
+ Log: Subject: Re: Almost OK: Perl 5.004_62 on VMS 7.1
+ Date: Mon, 09 Mar 1998 09:18:56 -0800
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Branch: perl
+ ! vms/config.vms
+____________________________________________________________________________
+[ 814] By: mbeattie on 1998/03/16 13:17:14
+ Log: Subject: PATCH for 5.004_62 : Add .packlist handling classes to ExtUtils
+ Date: Sun, 08 Mar 1998 12:50:23 +0000
+ From: Alan Burlison <alan.burlison@UK.Sun.COM>
+ plus manual update of MANIFEST
+ Branch: perl
+ + lib/ExtUtils/Installed.pm lib/ExtUtils/inst
+ ! MANIFEST installman installperl lib/ExtUtils/Install.pm
+ ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 813] By: mbeattie on 1998/03/16 13:08:55
+ Log: From: Blair Zajac <blair@gps.caltech.edu>
+ Subject: PATCH: util.c and util.h function declarations do not match
+ Date: Fri, 6 Mar 1998 10:29:29 -0800 (PST)
+ Subject: PATCH: cgywin32 patch for perlgcc
+ Date: Fri, 6 Mar 1998 11:15:36 -0800 (PST)
+ Subject: PATCH: perl5.004_62 on cygwin32
+ Date: Fri, 6 Mar 1998 11:57:35 -0800 (PST)
+ Branch: perl
+ ! Configure cygwin32/perlgcc cygwin32/perlld pp_sys.c x2p/util.c
+____________________________________________________________________________
+[ 812] By: mbeattie on 1998/03/16 12:55:39
+ Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Subject: [PATCH 5.004_62} Config_62-01 patch available.
+ Date: Mon, 9 Mar 1998 15:23:33 -0500 (EST)
+ Subject: [PATCH 5.004_62] Tiny hint file updates
+ Date: Mon, 9 Mar 1998 13:21:46 -0500 (EST)
+ Branch: perl
+ ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+ ! config_h.SH ext/ODBM_File/ODBM_File.xs handy.h hints/aix.sh
+ ! hints/dec_osf.sh hints/dos_djgpp.sh hints/freebsd.sh
+ ! hints/irix_6.sh hints/irix_6_0.sh hints/irix_6_1.sh
+ ! hints/os2.sh hints/solaris_2.sh patchlevel.h perl.c perl.h
+ ! perllio.h pod/perldiag.pod pp_sys.c vms/config.vms
+____________________________________________________________________________
+[ 811] By: mbeattie on 1998/03/16 12:13:55
+ Log: DOS djgpp updates:
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Subject: [PATCH for 5.004_61] dos-djgpp update
+ Date: Fri, 6 Mar 1998 10:41:01 +0100
+ Subject: [PATCH 5.004_62] dos-djgpp update
+ Date: Thu, 12 Mar 1998 13:34:51 +0100
+ Branch: perl
+ ! djgpp/config.over hints/dos_djgpp.sh
+____________________________________________________________________________
+[ 810] By: gsar on 1998/03/16 08:48:17
+ Log: integrate mainline
+ Branch: win32/perl
+ !> pp_sys.c
+____________________________________________________________________________
+[ 809] By: gsar on 1998/03/16 08:44:37
+ Log: various changes to get asperl working under Borland
+ (passes all tests when built under PERL_OBJECT)
+ Branch: asperl
+ ! ObjXSub.h ext/Opcode/Opcode.xs globals.c mg.c objpp.h op.c
+ ! perl.h perly.c perly.c.diff pp.c pp_ctl.c pp_hot.c pp_sys.c
+ ! proto.h scope.h sv.c toke.c win32/Makefile win32/config_H.bc
+ ! win32/config_H.gc win32/config_H.vc win32/makedef.pl
+ ! win32/makefile.mk win32/runperl.c win32/win32.c win32/win32.h
+ ! win32/win32sck.c
+____________________________________________________________________________
+[ 808] By: gsar on 1998/03/12 19:50:20
+ Log: set sockets to nonoverlapped mode for every thread
+ Message-Id: <35081FE4.965A484D@enteract.com>
+ Date: Thu, 12 Mar 1998 11:48:20 CST
+ From: Steve Nielsen <spn@enteract.com>
+ Subject: [PATCH 5.004_62] win32: set sockopt on a per-thread basis
+ Branch: win32/perl
+ ! win32/win32.h win32/win32sck.c
+____________________________________________________________________________
+[ 807] By: gsar on 1998/03/12 19:26:54
+ Log: add AS patch#13
+ Branch: asperl
+ ! win32/Makefile
+____________________________________________________________________________
+[ 806] By: gsar on 1998/03/12 00:51:08
+ Log: added AS patch#12 with minor changes
+ Branch: asperl
+ ! ObjXSub.h bytecode.h byterun.c doio.c iplio.h
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+ ! lib/ExtUtils/Mksymlists.pm lib/ExtUtils/xsubpp objpp.h perl.c
+ ! perllio.h proto.h regcomp.c win32/Makefile win32/config_h.PL
+ ! win32/runperl.c
+____________________________________________________________________________
+[ 805] By: gsar on 1998/03/10 20:35:10
+ Log: reinstate some standard sig_names to avoid noise from
+ modules (and in hopes of making them _do_ something in future)
+ Branch: win32/perl
+ ! win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[ 804] By: gsar on 1998/03/10 20:33:05
+ Log: mingw32 tweaks
+ Branch: win32/perl
+ ! win32/makefile.mk win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 803] By: gsar on 1998/03/09 20:56:07
+ Log: tweak Win32::DomainName() implementation
+ Branch: win32/perl
+ ! win32/Makefile win32/win32.c
+____________________________________________________________________________
+[ 802] By: gsar on 1998/03/09 03:51:01
+ Log: merge C<local $tied{foo}> patch, also moved statics in
+ [ah]v.c to thrdvar.h
+ Branch: win32/perl
+ ! av.c embedvar.h hv.c scope.c t/op/local.t thrdvar.h
+____________________________________________________________________________
+[ 801] By: gsar on 1998/03/09 02:38:35
+ Log: minor win32 support fixes
+ - add a better implementation of Win32::DomainName() (as
+ suggested by Jutta M. Klebe <jmk@exc.bybyte.de>)
+ - fix opendir() emulation was unsafe what given long paths
+ Branch: win32/perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 800] By: nick on 1998/03/07 09:36:41
+ Log: There has been a 'thaw' in config.h (the ICE has gone ;-))
+ So pp_sys.c needs tweaking otherwise it does not believe getservby*()
+ exist. (Breaks libnet).
+ Branch: perl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 799] By: gsar on 1998/03/07 07:51:28
+ Log: integrate mainline changes
+ Branch: asperl
+ !> (integrate 111 files)
+____________________________________________________________________________
+[ 798] By: gsar on 1998/03/07 07:01:55
+ Log: integrate mainline
+ Branch: win32/perl
+ !> myconfig patchlevel.h
+____________________________________________________________________________
+[ 797] By: gsar on 1998/03/07 06:49:49
+ Log: provide our own popen()/pclose() to fix problems with qx//:
+ - qx// used to always invoke the shell, now does so only when needed
+ - qx// didn't respect PERL5SHELL, now does
+ Branch: win32/perl
+ ! lib/ExtUtils/typemap win32/config_h.PL win32/win32.c
+____________________________________________________________________________
+[ 796] By: gsar on 1998/03/07 01:37:10
+ Log: a missed s/sp/SP/
+ Branch: win32/perl
+ ! lib/ExtUtils/typemap pod/perlcall.pod
+____________________________________________________________________________
+[ 795] By: gsar on 1998/03/07 01:05:21
+ Log: change all 'sp' to 'SP' in code and in the docs. Explicitly
+ mention that local stack pointer should be called SP. This makes the
+ API safer from source incompatibilities down the line.
+ Branch: win32/perl
+ ! av.c doio.c doop.c ext/DB_File/DB_File.xs
+ ! ext/DynaLoader/dl_dld.xs ext/Opcode/Opcode.xs
+ ! ext/POSIX/POSIX.xs ext/Socket/Socket.xs ext/Thread/Thread.xs
+ ! gv.c mg.c op.c os2/OS2/REXX/REXX.xs perl.c pod/perlcall.pod
+ ! pod/perlembed.pod pod/perlguts.pod pod/perlxs.pod pp.c
+ ! pp_ctl.c pp_hot.c pp_sys.c util.c
+
+----------------
+Version 5.004_62
+----------------
+
+____________________________________________________________________________
+[ 794] By: mbeattie on 1998/03/06 09:38:08
+ Log: Subject: [PATCH] perl5.004_61 myconfig updates
+ Date: Thu, 5 Mar 1998 15:10:54 -0500 (EST)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ ! myconfig
+____________________________________________________________________________
+[ 793] By: mbeattie on 1998/03/06 09:36:37
+ Log: Bump patchlevel.h to 62.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 792] By: mbeattie on 1998/03/06 09:35:57
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ !> bytecode.h op.c proto.h scope.c win32/Makefile win32/config.bc
+ !> win32/config.gc win32/config.vc win32/config_H.bc
+ !> win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[ 791] By: gsar on 1998/03/06 06:00:08
+ Log: various
+ - s/PerlIO_fread/PerlIO_read/, the former doesn't exist
+ - add missing prototypes
+ - regenerate win32/config*.?c
+ Branch: win32/perl
+ ! bytecode.h proto.h win32/config.bc win32/config.gc
+ ! win32/config.vc win32/config_H.bc win32/config_H.gc
+ ! win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[ 790] By: gsar on 1998/03/06 03:19:23
+ Log: fix typo in Makefile
+ Branch: win32/perl
+ ! win32/Makefile
+____________________________________________________________________________
+[ 789] By: gsar on 1998/03/05 22:55:53
+ Log: integrate mainline
+ Branch: win32/perl
+ !> (integrate 47 files)
+____________________________________________________________________________
+[ 788] By: gsar on 1998/03/05 20:02:09
+ Log: added AS patch#11
+ Message-Id: <01BD4820.AFC70110.dougl@ActiveState.com>
+ Date: Thu, 05 Mar 1998 10:23:04 PST
+ From: Douglas Lankshear <dougl@ActiveState.com>
+
+ This patch fixes a bug I introduced removing duplicate code.
+ -- Doug
+ Branch: asperl
+ ! ObjXSub.h objpp.h win32/runperl.c
+____________________________________________________________________________
+[ 787] By: gsar on 1998/03/05 19:56:17
+ Log: add Nick's dTHR fixes
+ Branch: win32/perl
+ ! op.c scope.c
+____________________________________________________________________________
+[ 786] By: gsar on 1998/03/05 19:54:49
+ Log: maintpatch
+ Message-Id: <199803050749.CAA15206@Orb.Nashua.NH.US>
+ Date: Thu, 05 Mar 1998 02:49:46 EST
+ From: Spider Boardman <spider@orb.nashua.nh.us>
+ Subject: [PATCH] 5.004_04 +MAINT_TRIAL_1 broken when sizeof(int) != sizeof(void
+ Branch: win32/perl
+ ! scope.c
+____________________________________________________________________________
+[ 785] By: mbeattie on 1998/03/05 19:12:14
+ Log: Subject: [5.004_61 PATCH] Make incompatible changes to RE engine NOW
+ Date: Wed, 4 Mar 1998 23:55:54 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! op.c proto.h regcomp.c regexp.h util.c
+____________________________________________________________________________
+[ 784] By: mbeattie on 1998/03/05 19:11:09
+ Log: Subject: [PATCH] Re: perl 5.0061 unable to build on sparc 5 Sol2.5.1 threads.
+ Date: Wed, 4 Mar 1998 10:18:03 GMT
+ From: Nick Ing-Simmons <nik@tiuk.ti.com>
+ Branch: perl
+ ! atomic.h
+____________________________________________________________________________
+[ 783] By: mbeattie on 1998/03/05 19:09:16
+ Log: Subject: Configure patches -01 and -02 for 5.004_61.
+ Date: Tue, 3 Mar 1998 16:41:16 -0500 (EST)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ ! Configure INSTALL Policy_sh.SH Porting/Glossary
+ ! Porting/config.sh Porting/config_H Porting/pumpkin.pod
+ ! config_h.SH handy.h hints/README.hints hints/aix.sh
+ ! hints/linux.sh hints/solaris_2.sh hints/unicos.sh
+ ! makedepend.SH myconfig pp_sys.c
+____________________________________________________________________________
+[ 782] By: mbeattie on 1998/03/05 19:05:23
+ Log: Subject: [PATCH] Compiling with OP_IN_REGISTER
+ Date: 03 Mar 1998 18:05:07 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! perl.h pp_ctl.c
+____________________________________________________________________________
+[ 781] By: mbeattie on 1998/03/05 19:04:34
+ Log: Subject: [PATCH] Make autouse -w-safe
+ Date: Mon, 2 Mar 1998 21:36:02 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! lib/autouse.pm op.c sv.c
+____________________________________________________________________________
+[ 780] By: mbeattie on 1998/03/05 19:02:50
+ Log: Subject: [PATCH] External symbol re_croak2
+ Date: 02 Mar 1998 13:00:45 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! regcomp.c regcomp.h
+____________________________________________________________________________
+[ 779] By: mbeattie on 1998/03/05 19:01:25
+ Log: Subject: [PATCH 5.004_61] Miscellaneous minor fixes
+ Date: Mon, 02 Mar 1998 01:48:27 -0500 (EST)
+ From: bailey@newman.upenn.edu (Charles Bailey)
+ Branch: perl
+ ! bytecode.h embedvar.h ext/B/Makefile.PL ext/B/byteperl.c
+ ! ext/Thread/Makefile.PL lib/File/Path.pm patchlevel.h perldir.h
+ ! sv.h
+____________________________________________________________________________
+[ 778] By: mbeattie on 1998/03/05 18:53:13
+ Log: Subject: [PATCH 5.004_61] USHRT range limit macros
+ Date: Mon, 02 Mar 1998 01:41:41 -0500 (EST)
+ From: bailey@newman.upenn.edu (Charles Bailey)
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 777] By: mbeattie on 1998/03/05 18:50:25
+ Log: Subject: [PATCH 5.004_61] File::Basename taint fix (revised)
+ Date: Mon, 02 Mar 1998 01:39:47 -0500 (EST)
+ From: bailey@newman.upenn.edu (Charles Bailey)
+ Branch: perl
+ ! lib/File/Basename.pm
+____________________________________________________________________________
+[ 776] By: mbeattie on 1998/03/05 18:49:15
+ Log: Subject: [PATCH] Take out version number in perlguts (perl5.004_61)
+ Date: 01 Mar 1998 15:16:03 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! pod/perlguts.pod
+____________________________________________________________________________
+[ 775] By: mbeattie on 1998/03/05 18:48:05
+ Log: Subject: Re: [PATCH] 5.004_61: Makefile.SH (Re: 5.004_61: annoyingly missing patch)
+ Date: Sun, 1 Mar 1998 12:14:44 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! Makefile.SH perl_exp.SH
+____________________________________________________________________________
+[ 774] By: mbeattie on 1998/03/05 18:46:32
+ Log: Subject: Almost OK: 5.004_61 (threads, perlio)
+ Date: Sun, 1 Mar 1998 02:02:47 -0500
+ From: Spider Boardman <spider@orb.nashua.nh.us>
+ Branch: perl
+ ! bytecode.h bytecode.pl byterun.c byterun.h perlsdio.h
+____________________________________________________________________________
+[ 773] By: mbeattie on 1998/03/05 18:43:57
+ Log: Subject: [PATCH 5.004_61] print sort {-1} 1..10; hangs
+ Date: Sat, 28 Feb 1998 15:51:14 -0500 (EST)
+ From: Hans Mulder <hansmu@xs4all.nl>
+ Branch: perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 772] By: mbeattie on 1998/03/05 18:39:25
+ Log: Subject: [PATCH] 5.004_61: Makefile.SH: 'ok' target needs perlbug...
+ Date: Sat, 28 Feb 1998 17:06:41 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! Makefile.SH
+____________________________________________________________________________
+[ 771] By: mbeattie on 1998/03/05 18:38:32
+ Log: Subject: [PATCH] 5.004_61: hints/netbsd.sh
+ Date: Sat, 28 Feb 1998 16:35:32 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! hints/netbsd.sh
+____________________________________________________________________________
+[ 770] By: mbeattie on 1998/03/05 18:36:50
+ Log: Add byterun.c to cflags.SH (Dominic Dunlop <domo@vo.lu>)
+ Branch: perl
+ ! cflags.SH
+____________________________________________________________________________
+[ 769] By: mbeattie on 1998/03/05 18:34:35
+ Log: Change getc/fread to PerlIO_getc/fread in bytecode.h:
+ Subject: [PATCH 5.004_61] bunch of small patches
+ Date: Fri, 27 Feb 1998 20:03:29 -0500 (EST)
+ From: Andrew Cohen <cohen@andy.bu.edu>
+ Branch: perl
+ ! bytecode.h
+____________________________________________________________________________
+[ 768] By: mbeattie on 1998/03/05 18:13:06
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ !> (integrate 53 files)
+____________________________________________________________________________
+[ 767] By: TimBunce on 1998/03/05 11:48:09
+ Log: Update to change 744.
+ Branch: maint-5.004/perl
+ ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[ 765] By: TimBunce on 1998/03/05 11:24:24
+ Log: Update embed.h after make regen_headers.
+ Branch: maint-5.004/perl
+ ! embed.h
+____________________________________________________________________________
+[ 764] By: TimBunce on 1998/03/05 11:05:13
+ Log: APPLLIB_EXP now has arch and version dirs added to @INC
+ Branch: maint-5.004/perl
+ ! perl.c
+____________________________________________________________________________
+[ 763] By: TimBunce on 1998/03/05 11:01:38
+ Log: Added hints/openbsd.sh and t/op/pos.t to MANIFEST
+ Added MAINT_TRIAL_1 local patch label to patchlevel.h
+ Removed win32/win32io.c and win32/win32io.h from repository
+ Branch: maint-5.004/perl
+ - win32/win32io.c win32/win32io.h
+ ! MANIFEST patchlevel.h
+____________________________________________________________________________
+[ 762] By: TimBunce on 1998/03/05 10:05:34
+ Log: Title: "5.004_04 +MAINT_TRIAL_1 broken when sizeof(int) != sizeof(void)"
+ From: Spider Boardman <spider@orb.nashua.nh.us>
+ Files: scope.c
+ Branch: maint-5.004/perl
+ ! scope.c
+____________________________________________________________________________
+[ 761] By: TimBunce on 1998/03/05 10:03:10
+ Log: Title: "properly refcount localization, fix C<local $tied{foo}>"
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802191207.MAA10742@toad.ig.co.uk>
+ Files: av.c hv.c scope.c t/op/local.t
+ Branch: maint-5.004/perl
+ ! av.c hv.c scope.c t/op/local.t
+____________________________________________________________________________
+[ 760] By: gsar on 1998/03/04 20:58:21
+ Log: added AS patch#10
+ Message-Id: <01BD4691.963D1670.dougl@ActiveState.com>
+ Date: Tue, 03 Mar 1998 10:46:13 PST
+ From: Douglas Lankshear <dougl@ActiveState.com>
+ Subject: [PATCH]
+
+ Here's a patch to win32/dl_win32.xs that is a fix for the lookup of statically
+ linked modules.
+
+ -- Doug
+ Branch: asperl
+ ! win32/dl_win32.xs
+____________________________________________________________________________
+[ 759] By: TimBunce on 1998/03/04 18:46:41
+ Log: Update patchls utility
+ Branch: maint-5.004/perl
+ ! Porting/patchls
+____________________________________________________________________________
+[ 758] By: TimBunce on 1998/03/04 17:07:06
+ Log: perldoc -f now uses pager if text is too long for screen
+ Branch: maint-5.004/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 757] By: TimBunce on 1998/03/04 16:57:04
+ Log: Added OpenBSD hint file from <Todd.Miller@courtesan.com>
+ Document 'warn with no args' behaviour, from <johnpc@xs4all.net>
+ Branch: maint-5.004/perl
+ + hints/openbsd.sh
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 756] By: TimBunce on 1998/03/04 16:48:40
+ Log: Fix for new gnulibc stdio.h when using sfio+perlio
+ Branch: maint-5.004/perl
+ ! perlsdio.h
+____________________________________________________________________________
+[ 755] By: TimBunce on 1998/03/04 16:47:08
+ Log: Fixed typo in vms/ext/Stdio/Stdio.pm AUTOLOAD
+ Added details of split in scalar context to perlfunc.pod
+ Branch: maint-5.004/perl
+ ! pod/perlfunc.pod vms/ext/Stdio/Stdio.pm
+____________________________________________________________________________
+[ 754] By: TimBunce on 1998/03/04 16:35:58
+ Log: Updated perl -v info to include reference to docs and home page.
+ Branch: maint-5.004/perl
+ ! perl.c
+____________________________________________________________________________
+[ 753] By: TimBunce on 1998/03/04 16:31:29
+ Log: Updated hints/bsdos.sh for BSD/OS 3.1
+ Fixed typo in pod/perlsyn.pod
+ Added workaround for old gmake in ext/SDBM_File/sdbm/Makefile.PL
+ Fixed typo in ext/GDBM_File/GDBM_File.pm
+ Branch: maint-5.004/perl
+ ! ext/GDBM_File/GDBM_File.pm ext/SDBM_File/sdbm/Makefile.PL
+ ! hints/bsdos.sh pod/perlsyn.pod
+____________________________________________________________________________
+[ 752] By: TimBunce on 1998/03/04 15:49:19
+ Log: Changed bug address in README to perlbug@perl.com
+ Changed Copyright in perl.c to 1998
+ Added op/pos.t test from Robin Houston <robin@oneworld.org>
+ Branch: maint-5.004/perl
+ + t/op/pos.t
+ ! README perl.c
+____________________________________________________________________________
+[ 751] By: TimBunce on 1998/03/04 14:47:15
+ Log: Make t/comp/require.t and t/lib/ph.t executable in repository
+ Branch: maint-5.004/perl
+ ! t/comp/require.t t/lib/ph.t
+____________________________________________________________________________
+[ 750] By: TimBunce on 1998/03/04 13:29:58
+ Log: Added dTHR definition to ease backwards compatibility for XS
+ source code from 5.005.
+ Branch: maint-5.004/perl
+ ! perl.h
+____________________________________________________________________________
+[ 749] By: TimBunce on 1998/03/04 12:19:19
+ Log: Title: "rename local 'op' variables to 'o'", #F114
+ From: Gurusamy Sarathy
+ Files: op.h opcode.h proto.h dump.c op.c opcode.pl pp_ctl.c run.c scope.c
+ toke.c
+ Branch: maint-5.004/perl
+ ! dump.c op.c op.h opcode.h opcode.pl pp_ctl.c proto.h run.c
+ ! scope.c toke.c
+____________________________________________________________________________
+[ 748] By: TimBunce on 1998/03/04 12:12:27
+ Log: Title: "consolidated win32 patch", #F112
+ From: Gurusamy Sarathy
+ Files: MANIFEST pod/perlfaq2.pod pod/perlrun.pod win32/include/sys/socket.h
+ EXTERN.h INTERN.h dosish.h lib/ExtUtils/Command.pm
+ lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Win32.pm
+ lib/ExtUtils/Mksymlists.pm lib/File/DosGlob.pm t/TEST
+ t/harness win32/win32.h win32/win32iop.h README.win32
+ doio.c installhtml installperl pp_sys.c win32/Makefile
+ win32/config.bc win32/config.vc win32/config_H.bc
+ win32/config_H.vc win32/config_h.PL win32/config_sh.PL
+ win32/dl_win32.xs win32/makedef.pl win32/makefile.mk
+ win32/perllib.c win32/runperl.c win32/win32.c
+ win32/win32sck.c win32/bin/perlglob.pl x2p/a2p.h x2p/a2p.c
+ x2p/a2py.c
+ Branch: maint-5.004/perl
+ + win32/bin/perlglob.pl
+ ! EXTERN.h INTERN.h MANIFEST README.win32 doio.c dosish.h
+ ! installhtml installperl lib/ExtUtils/Command.pm
+ ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Win32.pm
+ ! lib/ExtUtils/Mksymlists.pm lib/File/DosGlob.pm
+ ! pod/perlfaq2.pod pod/perlrun.pod pp_sys.c t/TEST t/harness
+ ! win32/Makefile win32/config.bc win32/config.vc
+ ! win32/config_H.bc win32/config_H.vc win32/config_h.PL
+ ! win32/config_sh.PL win32/dl_win32.xs
+ ! win32/include/sys/socket.h win32/makedef.pl win32/makefile.mk
+ ! win32/perllib.c win32/runperl.c win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32sck.c x2p/a2p.c x2p/a2p.h
+ ! x2p/a2py.c
+____________________________________________________________________________
+[ 747] By: TimBunce on 1998/03/04 11:59:57
+ Log: Title: "initialize @INC in ph.t, and fix up MANIFEST", #F111
+ From: Gurusamy Sarathy
+ Files: MANIFEST t/lib/ph.t
+ Branch: maint-5.004/perl
+ ! MANIFEST t/lib/ph.t
+____________________________________________________________________________
+[ 746] By: TimBunce on 1998/03/04 11:47:43
+ Log: Title: "properly save STDOUT during system() in debugger", #F110
+ From: Jason Smith <smithj4@rpi.edu>
+ Files: lib/perl5db.pl
+ Branch: maint-5.004/perl
+ ! lib/perl5db.pl
+____________________________________________________________________________
+[ 745] By: TimBunce on 1998/03/04 11:40:19
+ Log: Title: "generate DynaLoader.pm at build time", #F109
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9802111938.AA26224@o09.xray.mpe.mpg.de>
+ Files: MANIFEST ext/DynaLoader/DynaLoader.pm.PL ext/DynaLoader/Makefile.PL
+ Branch: maint-5.004/perl
+ + ext/DynaLoader/DynaLoader.pm.PL
+ ! MANIFEST ext/DynaLoader/Makefile.PL
+____________________________________________________________________________
+[ 744] By: TimBunce on 1998/03/04 11:34:09
+ Log: Title: "Install extensions with bootstrap in $archlib", #F108
+ From: koenig@anna.mind.de (Andreas J. Koenig), koenig@kulturbox.de (Andreas
+ J. Koenig)
+ Msg-ID: <sfcra9fqx0n.fsf@anna.in-berlin.de>
+ Files: lib/ExtUtils/Install.pm
+ Branch: maint-5.004/perl
+ ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[ 743] By: TimBunce on 1998/03/04 10:45:05
+ Log: Title: "Pod::Html trips over "C<0>"", #F107
+ From: Chip Salzenberg
+ Files: lib/Pod/Html.pm
+ Branch: maint-5.004/perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 742] By: TimBunce on 1998/03/04 10:12:54
+ Log: Title: "5.004_58 | _04: pod2*,perlpod: L<show this|man/section>", #F106
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Msg-ID: <9802111629.AA00595@o09.xray.mpe.mpg.de>
+ Files: pod/perlpod.pod lib/Pod/Html.pm lib/Pod/Text.pm pod/pod2man.PL
+ Branch: maint-5.004/perl
+ ! lib/Pod/Html.pm lib/Pod/Text.pm pod/perlpod.pod pod/pod2man.PL
+____________________________________________________________________________
+[ 741] By: TimBunce on 1998/03/04 10:08:31
+ Log: Title: "New patch for $^E==GetLastError() under Win32", #F105
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>, Tye McQueen
+ <tye@metronet.com>, ilya@math.ohio-state.edu (Ilya
+ Zakharevich)
+ Msg-ID: <199801040630.AA29298@metronet.com>,
+ <199801041826.NAA11568@aatma.engin.umich.edu>,
+ <1998Jan4.130412.2719461@cor.newman>
+ Files: pod/perlfunc.pod pod/perlvar.pod doio.c lib/dumpvar.pl lib/perl5db.pl
+ win32/win32.h mg.c util.c win32/makedef.pl win32/win32.c
+ Branch: maint-5.004/perl
+ ! doio.c lib/dumpvar.pl lib/perl5db.pl mg.c pod/perlfunc.pod
+ ! pod/perlvar.pod util.c win32/makedef.pl win32/win32.c
+ ! win32/win32.h
+____________________________________________________________________________
+[ 740] By: TimBunce on 1998/03/04 09:55:57
+ Log: Title: "5.004_56: Patch to Tie::Hash and docs", #F104
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199801120134.UAA05437@monk.mps.ohio-state.edu>
+ Files: pod/perlfunc.pod lib/Tie/Hash.pm
+ Branch: maint-5.004/perl
+ ! lib/Tie/Hash.pm pod/perlfunc.pod
+____________________________________________________________________________
+[ 739] By: TimBunce on 1998/03/04 09:26:01
+ Log: Title: "more doc for perldoc", #F103
+ From: Gurusamy Sarathy
+ Files: utils/perldoc.PL
+ Branch: maint-5.004/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 738] By: TimBunce on 1998/03/04 09:23:16
+ Log: Title: "Make perldoc look for an index file ", #F102
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <199801221220.NAA22902@furu.g.aas.no>
+ Files: utils/perldoc.PL
+ Branch: maint-5.004/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 737] By: TimBunce on 1998/03/04 09:21:15
+ Log: Title: "perldoc -F filename", #F101
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199712120037.TAA00176@math.mps.ohio-state.edu>
+ Files: utils/perldoc.PL
+ Branch: maint-5.004/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 736] By: TimBunce on 1998/03/04 09:16:20
+ Log: Title: "sv_grow can fail for HAS_64K_LIMIT systems", #F100
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <m3iuqsl3oq.fsf@furu.g.aas.no>
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 735] By: TimBunce on 1998/03/04 09:08:51
+ Log: Title: "Benchmark.pm: timethese corrupts $_", #F099
+ From: abigail@fnx.com
+ Msg-ID: <19980201114609.7779.qmail@betelgeuse.wayne.fnx.com>
+ Files: lib/Benchmark.pm
+ Branch: maint-5.004/perl
+ ! lib/Benchmark.pm
+____________________________________________________________________________
+[ 734] By: TimBunce on 1998/03/04 08:59:58
+ Log: Title: "STRANGE_MALLOC should test failed alloc", #F098
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <199802021406.PAA03285@furu.g.aas.no>
+ Files: hv.c
+ Branch: maint-5.004/perl
+ ! hv.c
+____________________________________________________________________________
+[ 733] By: TimBunce on 1998/03/04 08:35:19
+ Log: Title: "support caseless %ENV", #F097
+ From: Gurusamy Sarathy
+ Files: hv.c t/op/magic.t win32/win32.h
+ Branch: maint-5.004/perl
+ ! hv.c t/op/magic.t win32/win32.h
+____________________________________________________________________________
+[ 732] By: TimBunce on 1998/03/04 08:33:58
+ Log: Title: "newer cperl-mode.el (from 5.004_60)", #F096
+ From: Ilya Zakharevich
+ Files: emacs/cperl-mode.el
+ Branch: maint-5.004/perl
+ ! emacs/cperl-mode.el
+____________________________________________________________________________
+[ 731] By: TimBunce on 1998/03/04 08:26:23
+ Log: Title: "Handle set magic on xsub OUTPUT args, add API functions that handle
+ magic", #F095
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199801190409.XAA26710@aatma.engin.umich.edu>
+ Files: pod/perlguts.pod pod/perlxs.pod embed.h proto.h sv.h global.sym
+ lib/ExtUtils/xsubpp sv.c
+ Branch: maint-5.004/perl
+ ! embed.h global.sym lib/ExtUtils/xsubpp pod/perlguts.pod
+ ! pod/perlxs.pod proto.h sv.c sv.h
+____________________________________________________________________________
+[ 730] By: TimBunce on 1998/03/04 08:20:52
+ Log: Title: "Fix flawed cleanup when signal handlers are not defined", #F094
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199710290106.UAA11485@aatma.engin.umich.edu>
+ Files: mg.c
+ Branch: maint-5.004/perl
+ ! mg.c
+____________________________________________________________________________
+[ 729] By: TimBunce on 1998/03/04 08:18:02
+ Log: Title: "Tests for C<sort 'foo','bar'>", #F093
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199711021247.MAA01743@crypt.compulink.co.uk>
+ Files: t/op/sort.t
+ Branch: maint-5.004/perl
+ ! t/op/sort.t
+____________________________________________________________________________
+[ 728] By: TimBunce on 1998/03/04 08:17:07
+ Log: Title: "Make search.pl work on win32", #F092
+ From: Gurusamy Sarathy
+ Files: win32/bin/search.pl
+ Branch: maint-5.004/perl
+ ! win32/bin/search.pl
+____________________________________________________________________________
+[ 727] By: gsar on 1998/03/04 04:13:23
+ Log: missing s/op/o/ from one of the mainpatches
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 726] By: gsar on 1998/03/04 02:12:13
+ Log: maintpatches #102 and #103 to perldoc.PL
+ Branch: win32/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 725] By: gsar on 1998/03/04 02:00:15
+ Log: renumber some tests to match maint branch
+ Branch: win32/perl
+ ! t/op/local.t
+____________________________________________________________________________
+[ 724] By: gsar on 1998/03/04 01:25:50
+ Log: maintpatch
+ #70: "Fix random whitespace errors in docs"
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <12726.877706444@eeyore.ibcinc.com>
+ Date: Fri, 24 Oct 1997 11:20:44 -0400
+ Files: pod/checkpods.PL pod/perlfunc.pod
+ Branch: win32/perl
+ ! pod/checkpods.PL
+____________________________________________________________________________
+[ 723] By: gsar on 1998/03/04 01:04:37
+ Log: sync maintpatch
+ #76: "Fix infinite loop on unlink() failure in File::Path::rmtree()
+ From: Chip Salzenberg
+ Files: lib/File/Path.pm
+ Branch: win32/perl
+ ! lib/File/Path.pm
+____________________________________________________________________________
+[ 722] By: gsar on 1998/03/04 00:46:46
+ Log: remove redundancy in File::Find
+ Branch: win32/perl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 721] By: TimBunce on 1998/03/03 20:06:41
+ Log: Title: "Fix spurious perldoc warnings on DOSISH platforms", #F091
+ From: Molnar Laszlo <molnarl@cdata.tvnet.hu>
+ Msg-ID: <34475659.1AA69855@cdata.tvnet.hu>
+ Files: utils/perldoc.PL
+ Branch: maint-5.004/perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 720] By: TimBunce on 1998/03/03 20:03:59
+ Log: Title: "Make ExtUtils::MM_Unix::fixin() do something meaningful on win32",
+ #F090
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199801070016.TAA17766@aatma.engin.umich.edu>
+ Files: lib/ExtUtils/MM_Unix.pm
+ Branch: maint-5.004/perl
+ ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 719] By: TimBunce on 1998/03/03 20:02:06
+ Log: Title: "Fix inconsistent case $ENV{Path} (vs $ENV{PATH})", #F089
+ From: Gurusamy Sarathy
+ Files: lib/FindBin.pm
+ Branch: maint-5.004/perl
+ ! lib/FindBin.pm
+____________________________________________________________________________
+[ 718] By: TimBunce on 1998/03/03 20:00:26
+ Log: Title: "Fix File::Find's longstanding confusion about win32 being like VMS",
+ #F088
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802020459.XAA04964@aatma.engin.umich.edu>
+ Files: lib/File/Find.pm
+ Branch: maint-5.004/perl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 717] By: TimBunce on 1998/03/03 19:59:38
+ Log: Title: "do_postponed breaks with multiple interpreters", #F087
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199710290316.WAA15888@aatma.engin.umich.edu>
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 716] By: TimBunce on 1998/03/03 19:57:17
+ Log: Title: "Make warning on C<Nosuch::> optional, add to perl{diag,delta}.pod",
+ #F086
+ From: Gurusamy Sarathy
+ Files: pod/perldelta.pod pod/perldiag.pod toke.c
+ Branch: maint-5.004/perl
+ ! pod/perldelta.pod pod/perldiag.pod toke.c
+____________________________________________________________________________
+[ 715] By: TimBunce on 1998/03/03 19:51:33
+ Log: Title: "Pod::Html bug and fix: missing </UL> in index", #F085
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802192314.SAA23326@aatma.engin.umich.edu>
+ Files: lib/Pod/Html.pm
+ Branch: maint-5.004/perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 714] By: TimBunce on 1998/03/03 19:50:28
+ Log: Title: "New pod: perlhist", #F084
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199802191556.RAA09578@alpha.hut.fi>
+ Files: MANIFEST pod/perl.pod pod/perlhist.pod pod/perltoc.pod pod/buildtoc
+ Branch: maint-5.004/perl
+ + pod/perlhist.pod
+ ! MANIFEST pod/buildtoc pod/perl.pod pod/perltoc.pod
+____________________________________________________________________________
+[ 713] By: TimBunce on 1998/03/03 19:47:13
+ Log: Title: "Fix restoration of locals on scope unwinding", #F083
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802110515.AAA23700@aatma.engin.umich.edu>
+ Files: pp_ctl.c t/op/local.t
+ Branch: maint-5.004/perl
+ ! pp_ctl.c t/op/local.t
+____________________________________________________________________________
+[ 712] By: TimBunce on 1998/03/03 19:45:56
+ Log: Title: "after an eval-ed bad require, requiring a string ref SEGVs", #F082
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802102349.SAA16001@aatma.engin.umich.edu>
+ Files: pp_ctl.c
+ Branch: maint-5.004/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 711] By: TimBunce on 1998/03/03 19:44:41
+ Log: Title: "Fix seg fault on eval/require and syntax errors", #F081
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199802102321.SAA15346@aatma.engin.umich.edu>
+ Files: MANIFEST scope.h op.c pp_ctl.c scope.c t/comp/require.t toke.c
+ Branch: maint-5.004/perl
+ + t/comp/require.t
+ ! MANIFEST op.c pp_ctl.c scope.c scope.h toke.c
+____________________________________________________________________________
+[ 710] By: TimBunce on 1998/03/03 19:36:34
+ Log: Title: "5.004_58: the locale.t problem in IRIX", #F080
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199802091747.TAA01735@alpha.hut.fi>
+ Files: t/pragma/locale.t
+ Branch: maint-5.004/perl
+ ! t/pragma/locale.t
+____________________________________________________________________________
+[ 709] By: TimBunce on 1998/03/03 19:32:30
+ Log: Title: "sv_setnv will upgrade SVt_NV to SVt_PVNV", #F079
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <m3g1lwl3bq.fsf@furu.g.aas.no>
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 708] By: TimBunce on 1998/03/03 19:28:06
+ Log: Title: "Eliminate double warnings under C<package;>", #F077
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0y0paq-0000Ov-00@ursa.cus.cam.ac.uk>
+ Files: gv.c op.c toke.c
+ Branch: maint-5.004/perl
+ ! gv.c op.c toke.c
+____________________________________________________________________________
+[ 707] By: TimBunce on 1998/03/03 19:13:17
+ Log: Title: "Fix infinite loop on unlink() failure in File::Path::rmtree()",
+ #F076
+ From: Murray Nesbitt <mjn@pathcom.com>, Tim Bunce <Tim.Bunce@ig.co.uk>
+ Msg-ID: <199802061100.LAA16423@toad.ig.co.uk>
+ Files: lib/File/Path.pm
+ Branch: maint-5.004/perl
+ ! lib/File/Path.pm
+____________________________________________________________________________
+[ 706] By: TimBunce on 1998/03/03 19:08:45
+ Log: Title: "Update of h2ph", #F075
+ From: kstar@www.chapin.edu (Kurt D. Starsinic)
+ Msg-ID: <199802051354.FAA11452@www.chapin.edu>
+ Files: t/lib/ph.t utils/h2ph.PL
+ Branch: maint-5.004/perl
+ + t/lib/ph.t
+ ! utils/h2ph.PL
+____________________________________________________________________________
+[ 705] By: TimBunce on 1998/03/03 18:56:59
+ Log: Title: "Fix AutoLoader for deep packages", #F074
+ From: Zachary Miller <zcmiller@zappy.er.usgs.gov>
+ Msg-ID: <199710092348.SAA02108@zappy.er.usgs.gov>
+ Files: lib/AutoLoader.pm
+ Branch: maint-5.004/perl
+ ! lib/AutoLoader.pm
+____________________________________________________________________________
+[ 704] By: TimBunce on 1998/03/03 18:35:36
+ Log: Title: "Fix order of warnings for misplaced subscripts", #F073
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199710131023.LAA16796@crypt.compulink.co.uk>
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 703] By: TimBunce on 1998/03/03 18:32:28
+ Log: Title: "Make recursive lexical analysis more robust", #F072
+ From: Ilya Zakharevich and Chip Salzenberg
+ Msg-ID: <199710160102.VAA28817@monk.mps.ohio-state.edu>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 702] By: TimBunce on 1998/03/03 18:18:10
+ Log: Title: "Fix random whitespace errors in docs", #F070
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <12726.877706444@eeyore.ibcinc.com>
+ Files: pod/perlfunc.pod pod/checkpods.PL
+ Branch: maint-5.004/perl
+ ! pod/checkpods.PL pod/perlfunc.pod
+____________________________________________________________________________
+[ 701] By: TimBunce on 1998/03/03 18:13:54
+ Log: Title: "Fix line numbers after here documents in eval STRING", #F069
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199710241745.NAA08166@monk.mps.ohio-state.edu>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 700] By: TimBunce on 1998/03/03 18:11:20
+ Log: Title: "Fix SEGV from combining caller and C<package;>", #F068
+ From: James Duncan <jduncan@epitome.hawk.igs.net>, Nicholas Clark
+ <nick@flirble.org>
+ Msg-ID: <199710241248.NAA00163@flirble.org>,
+ <Pine.LNX.3.96.971024135912.12197A-100000@epitome.hawk.igs.
+ net>
+ Files: pp_ctl.c sv.c
+ Branch: maint-5.004/perl
+ ! pp_ctl.c sv.c
+____________________________________________________________________________
+[ 699] By: TimBunce on 1998/03/03 18:06:59
+ Log: Title: "Don't fold string comparison under C<use locale>", #F067
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199711151506.RAA26287@alpha.hut.fi>
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 698] By: TimBunce on 1998/03/03 18:04:51
+ Log: Title: "Fix SEGV on constant at end of sort block", #F066
+ From: Administration <fadmin@informatics.muni.cz>
+ Msg-ID: <199711170838.JAA26073@thetis.fi.muni.cz>
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 697] By: TimBunce on 1998/03/03 18:02:54
+ Log: Title: "Allow C<last()> to mean C<last>", #F065
+ From: Chip Salzenberg
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 696] By: TimBunce on 1998/03/03 17:58:12
+ Log: Title: "Fix extension version mismatch message", #F064
+ From: Chip Salzenberg
+ Files: XSUB.h
+ Branch: maint-5.004/perl
+ ! XSUB.h
+____________________________________________________________________________
+[ 695] By: TimBunce on 1998/03/03 17:53:04
+ Log: Title: "Better handle and test struct tm of Linux and SunOS", #F063
+ From: Andy Dougherty <doughera@newton.phys.lafayette.edu>
+ Msg-ID: <Pine.SUN.3.96.980205134340.15567B-100000@newton.phys>
+ Files: MANIFEST ext/POSIX/hints/linux.pl ext/POSIX/hints/sunos_4.pl
+ hints/linux.sh hints/sunos_4_1.sh t/lib/posix.t
+ Branch: maint-5.004/perl
+ + ext/POSIX/hints/linux.pl ext/POSIX/hints/sunos_4.pl
+ ! MANIFEST hints/linux.sh hints/sunos_4_1.sh t/lib/posix.t
+____________________________________________________________________________
+[ 694] By: TimBunce on 1998/03/03 17:40:47
+ Log: Title: "Fix doc bug in getservbyname() examples", #F062
+ From: Tom Christiansen
+ Files: ext/Socket/Socket.pm
+ Branch: maint-5.004/perl
+ ! ext/Socket/Socket.pm
+____________________________________________________________________________
+[ 693] By: TimBunce on 1998/03/03 17:32:57
+ Log: Title: "Kill warning about parameter type", #F061
+ From: Chip Salzenberg
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 692] By: TimBunce on 1998/03/03 17:11:07
+ Log: Title: "Socket occasional SEGV", #F060
+ From: Trevor Blackwell <tlb@viaweb.com>
+ Msg-ID: <199710281804.NAA09632@wagg.viaweb.com>
+ Files: ext/Socket/Socket.xs
+ Branch: maint-5.004/perl
+ ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[ 691] By: TimBunce on 1998/03/03 17:09:51
+ Log: Title: "Avoid SEGV from local($@)", #F059
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199710290251.VAA14362@aatma.engin.umich.edu>
+ Files: pp_ctl.c
+ Branch: maint-5.004/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 690] By: TimBunce on 1998/03/03 17:08:21
+ Log: Title: "Don't use broken pad_reset() (was Re: Perl bug in 5.004_03 )", #F058
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199710300036.TAA01004@aatma.engin.umich.edu>
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 689] By: TimBunce on 1998/03/03 17:05:57
+ Log: Title: "Use STMT_{START,END} in XSRETURN", #F057
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199710300245.VAA04244@aatma.engin.umich.edu>
+ Files: XSUB.h
+ Branch: maint-5.004/perl
+ ! XSUB.h
+____________________________________________________________________________
+[ 688] By: TimBunce on 1998/03/03 17:04:15
+ Log: Title: "Re: Sort grammar bug", #F056
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199711011946.OAA18882@aatma.engin.umich.edu>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 687] By: TimBunce on 1998/03/03 17:01:32
+ Log: Title: "Document indirect object cases for exec(), system()", #F055
+ From: Dominic Dunlop <domo@slipper.ip.lu>
+ Msg-ID: <v03110700b084e89234a7@[194.51.248.90]>
+ Files: pod/perlfunc.pod
+ Branch: maint-5.004/perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 686] By: TimBunce on 1998/03/03 16:56:44
+ Log: Title: "Update docs on tr///", #F054
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.971103071602.10568C-100000@usertest.teleport.com>
+ Files: pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ pod/perllocale.pod pod/perlmod.pod pod/perlop.pod
+ pod/perlstyle.pod toke.c
+ Branch: maint-5.004/perl
+ ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ ! pod/perllocale.pod pod/perlmod.pod pod/perlop.pod
+ ! pod/perlstyle.pod toke.c
+____________________________________________________________________________
+[ 685] By: TimBunce on 1998/03/03 16:38:50
+ Log: Title: "Re: perlop bitwise & | ^ documentation", #F053
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.971106073858.29771O-100000@usertest.teleport.com>
+ Files: pod/perlop.pod
+ Branch: maint-5.004/perl
+ ! pod/perlop.pod
+____________________________________________________________________________
+[ 684] By: TimBunce on 1998/03/03 16:37:00
+ Log: Title: "Fix SEGV on C<*glob{'SCALAR','ARRAY'}>", #F052
+ From: "Joseph N. Hall" <joseph@cscaper.com>
+ Msg-ID: <199711110552.WAA12613@gadget.cscaper.com>
+ Files: perly.c perly.c.diff perly.y vms/perly_c.vms
+ Branch: maint-5.004/perl
+ ! perly.c perly.c.diff perly.y vms/perly_c.vms
+____________________________________________________________________________
+[ 683] By: TimBunce on 1998/03/03 16:31:15
+ Log: Title: "for perlguts.pod: document sv_derived_from, sv_vcatpfn and
+ sv_vsetpfn", #F051
+ From: jan.dubois@ibm.net (Jan Dubois) and Chip Salzenberg
+ Msg-ID: <346ae970.7444534@smtp1.ibm.net>
+ Files: pod/perlguts.pod
+ Branch: maint-5.004/perl
+ ! pod/perlguts.pod
+____________________________________________________________________________
+[ 682] By: TimBunce on 1998/03/03 16:28:30
+ Log: Title: "5.004_04: locale startup failure (at last) documented", #F050
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199711172054.WAA08261@alpha.hut.fi>
+ Files: INSTALL pod/perldiag.pod pod/perllocale.pod
+ Branch: maint-5.004/perl
+ ! INSTALL pod/perldiag.pod pod/perllocale.pod
+____________________________________________________________________________
+[ 681] By: TimBunce on 1998/03/03 16:24:12
+ Log: Title: "Cope with lack of args in Fcntl::AUTOLOAD", #F049
+ From: Jerome Abela <abela@hsc.fr>
+ Msg-ID: <19971120183248.23588@coredump.hsc.fr>
+ Files: ext/Fcntl/Fcntl.pm
+ Branch: maint-5.004/perl
+ ! ext/Fcntl/Fcntl.pm
+____________________________________________________________________________
+[ 680] By: TimBunce on 1998/03/03 16:23:20
+ Log: Title: "Commenting toke.c", #F048
+ From: gnat@frii.com
+ Msg-ID: <199801082138.OAA14186@prometheus.frii.com>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 679] By: TimBunce on 1998/03/03 16:18:32
+ Log: Title: "Re: 5.004_04 vec() fails with 32-bit values", #F047
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Msg-ID: <E0xsnr8-0007SS-00@taurus.cus.cam.ac.uk>
+ Files: pod/perlguts.pod pp.c t/op/vec.t
+ Branch: maint-5.004/perl
+ ! pod/perlguts.pod pp.c t/op/vec.t
+____________________________________________________________________________
+[ 678] By: TimBunce on 1998/03/03 16:15:44
+ Log: Title: "A few perl5.004_03 bugs", #F046
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199801221211.MAA05315@crypt.compulink.co.uk>
+ Files: mg.c t/op/magic.t
+ Branch: maint-5.004/perl
+ ! mg.c t/op/magic.t
+____________________________________________________________________________
+[ 677] By: TimBunce on 1998/03/03 16:13:11
+ Log: Title: "Faster, cleaner av_unshift() ", #F045
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <199801221850.TAA23111@furu.g.aas.no>
+ Files: av.c
+ Branch: maint-5.004/perl
+ ! av.c
+____________________________________________________________________________
+[ 676] By: TimBunce on 1998/03/03 16:04:30
+ Log: Title: "New hints/solaris2.sh", #F044
+ From: Stephen Zander <srz@mckesson.com>
+ Msg-ID: <87oh12y458.fsf@wsuse5.mckesson.com>
+ Files: hints/solaris_2.sh
+ Branch: maint-5.004/perl
+ ! hints/solaris_2.sh
+____________________________________________________________________________
+[ 675] By: TimBunce on 1998/03/03 15:33:07
+ Log: Title: "Refresh Complex.pm and test", #F043
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Msg-ID: <199802051608.SAA20262@alpha.hut.fi>
+ Files: lib/Math/Complex.pm t/lib/complex.t
+ Branch: maint-5.004/perl
+ ! lib/Math/Complex.pm t/lib/complex.t
+____________________________________________________________________________
+[ 674] By: TimBunce on 1998/03/03 15:29:16
+ Log: Title: "Fix (\@@) proto", #F042
+ From: "Joseph N. Hall" <joseph@cscaper.com>
+ Msg-ID: <199801240132.SAA25111@gadget.cscaper.com>
+ Files: op.c t/comp/proto.t
+ Branch: maint-5.004/perl
+ ! op.c t/comp/proto.t
+____________________________________________________________________________
+[ 673] By: TimBunce on 1998/03/03 15:26:31
+ Log: Title: "Allow empty BLOCK in code", #F041
+ From: Vladimir Alexiev <vladimir@cs.ualberta.ca>
+ Msg-ID: <19980129002112Z13378-6931+226@scapa.cs.ualberta.ca>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 672] By: TimBunce on 1998/03/03 15:23:55
+ Log: Title: "Fix name of $Foo::{'Bar::'}: '*Foo::Bar::'", #F040
+ From: Chip Salzenberg
+ Files: gv.c t/op/gv.t
+ Branch: maint-5.004/perl
+ ! gv.c t/op/gv.t
+____________________________________________________________________________
+[ 671] By: TimBunce on 1998/03/03 10:02:32
+ Log: Title: "Keep accurate reference count on globs' stashes", #F038
+ From: Gisle Aas <gisle@aas.no>
+ Msg-ID: <m3zpk7sd3n.fsf@furu.g.aas.no>
+ Files: gv.c sv.c
+ Branch: maint-5.004/perl
+ ! gv.c sv.c
+____________________________________________________________________________
+[ 670] By: TimBunce on 1998/03/03 09:59:48
+ Log: Title: "Avoid memory allocation in gv_fetchpv(), for speed", #F037
+ From: Chip Salzenberg
+ Files: gv.c
+ Branch: maint-5.004/perl
+ ! gv.c
+____________________________________________________________________________
+[ 669] By: TimBunce on 1998/03/03 09:58:58
+ Log: Title: "Make Configure less negative about PerlIO", #F036
+ From: chip@atlantic.net
+ Msg-ID: <199801312323.SAA15237@cyprus.atlantic.net>
+ Files: Configure
+ Branch: maint-5.004/perl
+ ! Configure
+____________________________________________________________________________
+[ 668] By: TimBunce on 1998/03/03 09:55:51
+ Log: Title: "Fix (mostly) pseudo-same-REs due to embedded NULs", #F035
+ From: Martin Plechsmid <plechsmi@karlin.mff.cuni.cz>
+ Msg-ID: <199802021217.NAA05230@albert.karlin.mff.cuni.cz>
+ Files: pp_ctl.c
+ Branch: maint-5.004/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 667] By: TimBunce on 1998/03/03 09:52:59
+ Log: Title: "Make Getopt::Long avoid $&, $`, $'", #F034
+ From: Irving Reid <irving@tor.securecomputing.com>
+ Msg-ID: <98Feb3.005102est.11655@janus.tor.securecomputing.com>
+ Files: lib/Getopt/Long.pm
+ Branch: maint-5.004/perl
+ ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[ 666] By: TimBunce on 1998/03/03 09:51:27
+ Log: Title: "adding the newSVpvn API function", #F033
+ From: Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch>
+ Msg-ID: <199801310532.GAA23798@solar.ethz.ch>
+ Files: pod/perlguts.pod pod/perltoc.pod proto.h global.sym sv.c
+ Branch: maint-5.004/perl
+ ! global.sym pod/perlguts.pod pod/perltoc.pod proto.h sv.c
+____________________________________________________________________________
+[ 665] By: TimBunce on 1998/03/03 09:43:30
+ Log: Title: "Support C<Package::> as function-blind bearword", #F032
+ From: Chip Salzenberg
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 664] By: TimBunce on 1998/03/03 09:41:40
+ Log: Title: "Re-optimize character classes", #F031
+ From: Chip Salzenberg
+ Files: regcomp.h regcomp.c regexec.c
+ Branch: maint-5.004/perl
+ ! regcomp.c regcomp.h regexec.c
+____________________________________________________________________________
+[ 663] By: TimBunce on 1998/03/03 09:39:55
+ Log: Title: "Fix C<if (1) { local $x }> which needed ENTER/LEAVE", #F030
+ From: dfh@dwroll.lucent.com (D461-David_F_Haertig(Dave)83040)
+ Msg-ID: <EnKC0q.6qI@drnews.dr.lucent.com>
+ Files: op.c t/op/local.t
+ Branch: maint-5.004/perl
+ ! op.c t/op/local.t
+____________________________________________________________________________
+[ 662] By: TimBunce on 1998/03/03 09:37:51
+ Log: Title: "Dramatically improve performance of // with parens or $&", #F029
+ From: Chip Salzenberg
+ Files: cop.h perl.h proto.h regexp.h gv.c interp.sym perl.c pp.c pp_ctl.c
+ pp_hot.c regexec.c scope.c
+ Branch: maint-5.004/perl
+ ! cop.h gv.c interp.sym perl.c perl.h pp.c pp_ctl.c pp_hot.c
+ ! proto.h regexec.c regexp.h scope.c
+____________________________________________________________________________
+[ 661] By: TimBunce on 1998/03/03 09:27:04
+ Log: Title: "Don't warn on $x{shift}, ne => 1, or -f => 1", #F028
+ From: Chip Salzenberg
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 660] By: TimBunce on 1998/03/03 09:24:41
+ Log: Title: "Protect against weirdness with unreal @_ in C<local @_>", #F027
+ From: Chip Salzenberg
+ Files: scope.c
+ Branch: maint-5.004/perl
+ ! scope.c
+____________________________________________________________________________
+[ 659] By: TimBunce on 1998/03/03 09:24:00
+ Log: Title: "Fix C<printf "%.0d", 0>", #F026
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199711021331.NAA01826@crypt.compulink.co.uk>
+ Files: sv.c t/op/sprintf.t
+ Branch: maint-5.004/perl
+ ! sv.c t/op/sprintf.t
+____________________________________________________________________________
+[ 658] By: TimBunce on 1998/03/03 09:22:13
+ Log: Title: "Tiny core patch for source filters", #F025
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Msg-ID: <9711202312.AA02937@claudius.bfsec.bt.co.uk>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 657] By: TimBunce on 1998/03/03 09:20:00
+ Log: Title: "Here-doc in s///e (was: Bug)", #F024
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199711221445.OAA14153@crypt.compulink.co.uk>
+ Files: t/base/lex.t toke.c
+ Branch: maint-5.004/perl
+ ! t/base/lex.t toke.c
+____________________________________________________________________________
+[ 656] By: TimBunce on 1998/03/03 09:17:56
+ Log: Title: "Fix duplicate warnings on C<-e undef>", #F023
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199711221252.MAA14000@crypt.compulink.co.uk>
+ Files: doio.c t/pragma/warn-1global
+ Branch: maint-5.004/perl
+ ! doio.c t/pragma/warn-1global
+____________________________________________________________________________
+[ 655] By: TimBunce on 1998/03/03 09:16:56
+ Log: Title: "Fix '*' prototype", #F022
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199711212225.RAA00755@monk.mps.ohio-state.edu>
+ Files: toke.c
+ Branch: maint-5.004/perl
+ ! toke.c
+____________________________________________________________________________
+[ 654] By: TimBunce on 1998/03/03 09:15:04
+ Log: Title: "File::Find bugs (and patches)", "File::Find bugs & patches", #F021
+ From: "Conrad E. Kimball" <cek@tblv021.ca.boeing.com>
+ Msg-ID: <199711260703.XAA21257@mailgate2.boeing.com>
+ Files: lib/File/Find.pm
+ Branch: maint-5.004/perl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 653] By: TimBunce on 1998/03/03 09:11:55
+ Log: Title: "Fix typo: FORM{,AT}LINE", #F020
+ From: Chip Salzenberg
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 652] By: TimBunce on 1998/03/03 09:07:50
+ Log: Title: "Fix use of unref mem when blessed object goes out of scope", #F019
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199711282326.SAA15090@aatma.engin.umich.edu>
+ Files: scope.c
+ Branch: maint-5.004/perl
+ ! scope.c
+____________________________________________________________________________
+[ 651] By: TimBunce on 1998/03/03 09:07:10
+ Log: Title: "Fix C<my ($a, undef, $b) = @x>", #F018
+ From: Stephane Payrard <stef@francenet.fr>
+ Msg-ID: <199712040054.BAA04612@www.zweig.com>
+ Files: op.c t/op/my.t
+ Branch: maint-5.004/perl
+ ! op.c t/op/my.t
+____________________________________________________________________________
+[ 650] By: TimBunce on 1998/03/03 09:04:04
+ Log: Title: "enhanced "use strict" warning", #F017
+ From: Tkil <tkil@reptile.scrye.com>
+ Msg-ID: <199712040938.CAA07628@reptile.scrye.com>
+ Files: gv.c t/pragma/strict-subs t/pragma/strict-vars
+ Branch: maint-5.004/perl
+ ! gv.c t/pragma/strict-subs t/pragma/strict-vars
+____________________________________________________________________________
+[ 649] By: TimBunce on 1998/03/03 09:02:55
+ Log: Title: "eval of sub gives spurious "uninitialised" warning", #F016
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199712061025.FAA14396@aatma.engin.umich.edu>
+ Files: pod/perldelta.pod pod/perlfunc.pod op.c t/op/eval.t
+ Branch: maint-5.004/perl
+ ! op.c pod/perldelta.pod pod/perlfunc.pod t/op/eval.t
+____________________________________________________________________________
+[ 648] By: TimBunce on 1998/03/03 08:58:00
+ Log: Title: "[PERL] Assigning result of pop scrambles unrelated reference", #F015
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199712061100.GAA14864@aatma.engin.umich.edu>
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 647] By: TimBunce on 1998/03/03 08:53:35
+ Log: Title: "[PERL] Filedescriptor leak in 5.004_55 (and earlier)", #F014
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Msg-ID: <199712151922.OAA06410@monk.mps.ohio-state.edu>
+ Files: os2/os2.c util.c
+ Branch: maint-5.004/perl
+ ! os2/os2.c util.c
+____________________________________________________________________________
+[ 646] By: TimBunce on 1998/03/03 08:51:04
+ Log: Title: "Fix fdopen() on STD{IN,OUT,ERR}", #F013
+ From: Roderick Schertler <roderick@argon.org>
+ Msg-ID: <pzg1npp6e3.fsf@eeyore.ibcinc.com>
+ Files: doio.c t/op/misc.t
+ Branch: maint-5.004/perl
+ ! doio.c t/op/misc.t
+____________________________________________________________________________
+[ 645] By: TimBunce on 1998/03/03 08:49:34
+ Log: Title: "Fix local $a[0] and local $h{a}", #F012
+ From: Stephen McCamant <alias@mcs.com>
+ Msg-ID: <m0xjWFq-000EZeC@alias-2.pr.mcs.net>
+ Files: embed.h scope.h global.sym pp.c pp_hot.c scope.c t/op/local.t
+ Branch: maint-5.004/perl
+ ! embed.h global.sym pp.c pp_hot.c scope.c scope.h t/op/local.t
+____________________________________________________________________________
+[ 644] By: TimBunce on 1998/03/03 08:43:06
+ Log: Title: "Eliminate redundant mg_get() in SvTRUE()", #F011
+ From: Spider Boardman <spider@orb.nashua.nh.us>
+ Msg-ID: <199712251839.NAA14800@Orb.Nashua.NH.US>
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 643] By: TimBunce on 1998/03/03 08:41:07
+ Log: Title: "Don't force scalar context on C<my @x> or C<my %x>", #F010
+ From: Chip Salzenberg
+ Files: op.c t/op/my.t
+ Branch: maint-5.004/perl
+ ! op.c t/op/my.t
+____________________________________________________________________________
+[ 642] By: TimBunce on 1998/03/03 08:39:11
+ Log: Title: "Fix assignment to $_[0] in DESTROY", #F009
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199801010030.TAA14274@aatma.engin.umich.edu>
+ Files: pod/perlobj.pod sv.c t/op/ref.t
+ Branch: maint-5.004/perl
+ ! pod/perlobj.pod sv.c t/op/ref.t
+____________________________________________________________________________
+[ 641] By: gsar on 1998/03/03 04:39:49
+ Log: merge problematic maintpatch to op.c
+ #77: "Eliminate double warnings under C<package;>"
+ From: Chip Salzenberg
+ Files: gv.c op.c toke.c
+ Branch: win32/perl
+ ! gv.c op.c toke.c
+____________________________________________________________________________
+[ 640] By: gsar on 1998/03/03 04:30:22
+ Log: merge another conflicting maintpatch to op.c
+ #17: "Enhanced "use strict" warning"
+ From: Tkil <tkil@reptile.scrye.com>
+ Msg-ID: <199712040938.CAA07628@reptile.scrye.com>
+ Date: Thu, 4 Dec 1997 02:38:26 -0700
+ Files: gv.c t/pragma/strict-subs t/pragma/strict-vars
+ Branch: win32/perl
+ ! gv.c t/pragma/strict-subs t/pragma/strict-vars
+____________________________________________________________________________
+[ 639] By: gsar on 1998/03/03 04:09:11
+ Log: maintpatch
+ #73: "Fix order of warnings for misplaced subscripts"
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Msg-ID: <199710131023.LAA16796@crypt.compulink.co.uk>
+ Date: Mon, 13 Oct 1997 11:23:56 +0100
+ Files: op.c
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 638] By: gsar on 1998/03/03 04:02:16
+ Log: manually apply another conflicting maintpatch
+ #64: "Fix extension version mismatch message"
+ From: Chip Salzenberg
+ Files: XSUB.h
+ Branch: win32/perl
+ ! XSUB.h
+____________________________________________________________________________
+[ 637] By: gsar on 1998/03/03 03:57:08
+ Log: maintpatch
+ #62: "Fix doc bug in getservbyname() examples"
+ From: Tom Christiansen
+ Files: ext/Socket/Socket.pm
+ Branch: win32/perl
+ ! ext/Socket/Socket.pm
+____________________________________________________________________________
+[ 636] By: gsar on 1998/03/03 03:55:13
+ Log: maintpatch
+ #60: "Socket occasional SEGV"
+ From: Trevor Blackwell <tlb@viaweb.com>
+ Msg-ID: <199710281804.NAA09632@wagg.viaweb.com>
+ Date: Tue, 28 Oct 1997 13:04:43 -0500 (EST)
+ Files: ext/Socket/Socket.xs
+ Branch: win32/perl
+ ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[ 635] By: gsar on 1998/03/03 03:51:01
+ Log: maintpatches for docs
+ #53: "Perlop bitwise & | ^ documentation"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.971106073858.29771O-100000@usertest.teleport.c
+ Date: Thu, 6 Nov 1997 07:44:52 -0800 (PST)
+ Files: pod/perlfunc.pod
+ --------
+ #54: "Update docs on tr///"
+ From: Tom Phoenix <rootbeer@teleport.com>
+ Msg-ID: <Pine.GSO.3.96.971103071602.10568C-100000@usertest.teleport.c
+ Date: Mon, 3 Nov 1997 07:28:39 -0800 (PST)
+ Files: pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ pod/perllocale.pod pod/perlmod.pod pod/perlop.pod
+ pod/perlstyle.pod toke.c
+ Branch: win32/perl
+ ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ ! pod/perllocale.pod pod/perlmod.pod pod/perlop.pod
+ ! pod/perlstyle.pod toke.c
+____________________________________________________________________________
+[ 634] By: gsar on 1998/03/03 03:43:42
+ Log: another maintpatch (this one needed adjust of test nos.)
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Message-Id: <199801221211.MAA05315@crypt.compulink.co.uk>
+ Date: Thu, 22 Jan 1998 12:11:49 +0000
+ Subject: Re: [PERL] A few perl5.004_03 bugs
+ Branch: win32/perl
+ ! mg.c t/op/magic.t
+____________________________________________________________________________
+[ 633] By: gsar on 1998/03/03 03:36:40
+ Log: merge another toke.c patch and its dependent (very carefully)
+ #32: "Support C<Package::> as function-blind bearword"
+ From: Chip Salzenberg
+ Files: toke.c
+ --------
+ #86: "Make warning on C<Nosuch::> optional, add to perl{diag,delta}.pod"
+ From: Gurusamy Sarathy
+ Files: toke.c pod/perldelta.pod pod/perldiag.pod
+ Branch: win32/perl
+ ! pod/perldelta.pod pod/perldiag.pod toke.c
+____________________________________________________________________________
+[ 632] By: gsar on 1998/03/03 03:12:16
+ Log: another toke.c maintpatch
+ #28: "Don't warn on $x{shift}, ne => 1, or -f => 1"
+ From: Chip Salzenberg
+ Files: toke.c
+ Branch: win32/perl
+ ! toke.c
+____________________________________________________________________________
+[ 631] By: gsar on 1998/03/03 03:06:59
+ Log: still another maintpatch
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Message-Id: <199711021331.NAA01826@crypt.compulink.co.uk>
+ Date: Sun, 02 Nov 1997 13:31:54 +0000
+ Subject: [PATCH] assorted sprintf bugs
+ Branch: win32/perl
+ ! sv.c t/op/sprintf.t
+____________________________________________________________________________
+[ 630] By: gsar on 1998/03/03 03:03:55
+ Log: yet another maintpatch
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Message-Id: <199711221252.MAA14000@crypt.compulink.co.uk>
+ Date: Sat, 22 Nov 1997 12:52:16 +0000
+ Subject: Re: [PERL] Unexpected output
+ Branch: win32/perl
+ ! doio.c t/pragma/warn-1global
+____________________________________________________________________________
+[ 629] By: gsar on 1998/03/03 02:57:33
+ Log: merge another maintpatch to toke.c
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Date: Sat, 22 Nov 1997 14:45:23 GMT
+ Message-Id: <199711221445.OAA14153@crypt.compulink.co.uk>
+ Subject: Re: [PERL] Here-doc in s///e (was: Bug)
+ Branch: win32/perl
+ ! t/base/lex.t toke.c
+____________________________________________________________________________
+[ 628] By: gsar on 1998/03/03 02:50:20
+ Log: manually merge a maintpatch
+ Date: Thu, 8 Jan 1998 14:38:04 -0700 (MST)
+ Message-Id: <199801082138.OAA14186@prometheus.frii.com>
+ From: gnat@frii.com
+ Subject: [PERL] Commenting toke.c
+ Branch: win32/perl
+ ! toke.c
+____________________________________________________________________________
+[ 627] By: TimBunce on 1998/03/02 22:34:47
+ Log: Title: "Fix inefficient checks for TIEHANDLE", #F008
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Msg-ID: <199801080106.UAA05048@aatma.engin.umich.edu>
+ Files: pp_hot.c pp_sys.c
+ Branch: maint-5.004/perl
+ ! pp_hot.c pp_sys.c
+____________________________________________________________________________
+[ 626] By: TimBunce on 1998/03/02 22:31:13
+ Log: This is the change description for change 625
+ Title: "Fix tr///s option", #F007
+ From: Inaba Hiroto <inaba@st.rim.or.jp>
+ Msg-ID: <19980110155333D.inaba@st.rim.or.jp>
+ Files: doop.c
+ Branch: maint-5.004/perl
+ ! doop.c
+____________________________________________________________________________
+[ 625] By: TimBunce on 1998/03/02 22:23:48
+ Log: Branch: maint-5.004/perl
+ ! doop.c
+____________________________________________________________________________
+[ 623] By: TimBunce on 1998/03/02 21:51:53
+ Log: Title: "Fix lexical lookup in eval-sub-eval", #F006
+ From: Chip Salzenberg
+ Files: pp_ctl.c
+ Branch: maint-5.004/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 622] By: TimBunce on 1998/03/02 21:43:29
+ Log: Title: "Don't upgrade target of assignment from LVALUE", #F005
+ From: Chip Salzenberg
+ Files: sv.c
+ Branch: maint-5.004/perl
+ ! sv.c
+____________________________________________________________________________
+[ 621] By: TimBunce on 1998/03/02 21:29:59
+ Log: Title: "Fix compile-time warning line in while ()", #F004
+ From: Chip Salzenberg
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 620] By: TimBunce on 1998/03/02 21:25:27
+ Log: Title: "STMT foreach LIST;", #F002
+ From: Chip Salzenberg
+ Files: pod/perlsyn.pod perly.c perly.c.diff perly.y t/cmd/mod.t toke.c
+ vms/perly_c.vms
+ Branch: maint-5.004/perl
+ ! perly.c perly.c.diff perly.y pod/perlsyn.pod t/cmd/mod.t
+ ! toke.c vms/perly_c.vms
+____________________________________________________________________________
+[ 619] By: TimBunce on 1998/03/02 21:12:58
+ Log: Title: "Fix SIGSEGV on C<42 until forever>", #F001
+ From: Chip Salzenberg
+ Files: op.c
+ Branch: maint-5.004/perl
+ ! op.c
+____________________________________________________________________________
+[ 618] By: gsar on 1998/03/02 04:40:16
+ Log: make t/lib/nothread.t type xtext also
+ Branch: win32/perl
+ ! t/op/nothread.t
+____________________________________________________________________________
+[ 617] By: gsar on 1998/03/02 04:35:15
+ Log: make t/lib/thread.t type xtext
+ Branch: win32/perl
+ ! t/lib/thread.t
+____________________________________________________________________________
+[ 616] By: gsar on 1998/03/02 04:17:40
+ Log: fix misapplied hunks in change#614
+ Branch: win32/perl
+ ! scope.c scope.h
+____________________________________________________________________________
+[ 615] By: gsar on 1998/03/02 03:39:16
+ Log: another one down
+ From: "Conrad E. Kimball" <cek@tblv021.ca.boeing.com>
+ Message-Id: <199711260703.XAA21257@mailgate2.boeing.com>
+ Date: Tue, 25 Nov 1997 23:03:48 -0800
+ Subject: [PERL] File::Find bugs & patches
+ Branch: win32/perl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 614] By: gsar on 1998/03/02 03:28:28
+ Log: this one with adjusted test numbers
+ Message-Id: <m0xjWFq-000EZeC@alias-2.pr.mcs.net>
+ Date: Sat, 20 Dec 1997 15:16:14 -0600 (CST)
+ From: Stephen McCamant <alias@mcs.com>
+ Subject: [PERL] [PATCH] Fix local $a[0] and local $h{a}
+ Branch: win32/perl
+ ! embed.h global.sym pp.c pp_hot.c scope.c scope.h t/op/local.t
+____________________________________________________________________________
+[ 613] By: gsar on 1998/03/02 03:13:32
+ Log: still another
+ From: Inaba Hiroto <inaba@st.rim.or.jp>
+ Subject: [PERL] tr///s bug
+ Message-Id: <19980110155333D.inaba@st.rim.or.jp>
+ Date: Sat, 10 Jan 1998 15:53:33 +0900
+ Branch: win32/perl
+ ! doop.c t/op/subst.t
+____________________________________________________________________________
+[ 612] By: gsar on 1998/03/02 03:01:27
+ Log: yet another patch
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Message-Id: <199709161748.NAA08418@nielsenmedia.com>
+ Subject: Tiny but massively cool: C<statement foreach @list>
+ Date: Tue, 16 Sep 1997 13:47:28 -0400 (EDT)
+ Branch: win32/perl
+ ! perly.c perly.c.diff perly.y pod/perlsyn.pod t/cmd/mod.t
+ ! toke.c vms/perly_c.vms
+____________________________________________________________________________
+[ 611] By: gsar on 1998/03/02 01:52:46
+ Log: yet another 'old' patch
+ From: Stephane Payrard <stef@francenet.fr>
+ Message-Id: <199712040054.BAA04612@www.zweig.com>
+ To: perl5-porters@perl.org
+ Subject: Re: [PERL] buglet : minor but gratuitous inconsistency
+ between `my' and `local' (Patch included)
+ Branch: win32/perl
+ ! op.c t/op/my.t
+____________________________________________________________________________
+[ 610] By: gsar on 1998/03/02 01:45:55
+ Log: another 'old' patch
+ From: Roderick Schertler <roderick@argon.org>
+ Date: 19 Dec 1997 12:52:36 -0500
+ Message-Id: <pzg1npp6e3.fsf@eeyore.ibcinc.com>
+ Subject: [PERL] [PATCH] Re: Problem with open >&=
+ Branch: win32/perl
+ ! doio.c t/op/misc.t
+____________________________________________________________________________
+[ 609] By: gsar on 1998/03/02 01:23:56
+ Log: apply missing pieces from:
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Message-Id: <199711272044.PAA12102@nielsenmedia.com>
+ Subject: [PATCH] Improved LVALUE patch
+ Date: Thu, 27 Nov 1997 15:44:02 -0500 (EST)
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 608] By: gsar on 1998/03/02 01:13:01
+ Log: merge two important 'old' patches
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Message-Id: <199709241632.MAA09164@nielsenmedia.com>
+ Subject: [PATCH] Fix C<42 until forever> SIGSEGV
+ Date: Wed, 24 Sep 1997 12:32:11 -0400 (EDT)
+ ------
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Message-Id: <199710221332.JAA04814@nielsenmedia.com>
+ Subject: [PATCH] Fix for compile-time while() warnings
+ Date: Wed, 22 Oct 1997 09:31:50 -0400 (EDT)
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 607] By: gsar on 1998/03/01 06:52:26
+ Log: integrate mainline changes
+ Branch: asperl
+ +> Policy_sh.SH Porting/config.sh Porting/config_H atomic.h
+ +> lib/Tie/Handle.pm t/op/tiehandle.t
+ - config_H
+ !> (integrate 89 files)
+____________________________________________________________________________
+[ 606] By: gsar on 1998/02/28 23:11:00
+ Log: misc small tweaks
+ - AutoLoader fix for long::pack::names
+ - d_mymalloc can be set from makefiles now
+ - make search.pl actually work on win32
+ - revert podoc about $^E on OS/2 (per Ilya's wishes)
+ Branch: win32/perl
+ ! lib/AutoLoader.pm pod/perlvar.pod win32/Makefile
+ ! win32/bin/search.pl win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[ 605] By: gsar on 1998/02/28 22:16:45
+ Log: fix typo in sv.h, and run 'make regen_headers' to make it build
+ Branch: win32/perl
+ ! embedvar.h sv.h
+____________________________________________________________________________
+[ 604] By: gsar on 1998/02/28 21:08:58
+ Log: integrate mainline
+ Branch: win32/perl
+ +> Policy_sh.SH atomic.h lib/Tie/Handle.pm t/op/tiehandle.t
+ !> Configure MANIFEST Makefile.SH bytecode.h bytecode.pl
+ !> byterun.c ext/SDBM_File/Makefile.PL
+ !> ext/SDBM_File/sdbm/Makefile.PL ext/SDBM_File/sdbm/sdbm.h
+ !> lib/ExtUtils/MM_VMS.pm os2/diff.configure os2/os2.c perl.c
+ !> perlvars.h pod/perltie.pod pp_sys.c sv.c sv.h t/lib/anydbm.t
+ !> t/lib/sdbm.t util.c vms/descrip.mms vms/perlvms.pod
+ !> vms/test.com win32/makedef.pl
+____________________________________________________________________________
+[ 603] By: nick on 1998/02/28 11:31:15
+ Log: Missed FREAD in bytecode.h
+ Cannot export svref_mutex in non-threaded perl
+ Branch: perl
+ ! bytecode.h win32/makedef.pl
+
+----------------
+Version 5.004_61
+----------------
+
+____________________________________________________________________________
+[ 602] By: mbeattie on 1998/02/27 18:35:27
+ Log: Change FREAD/FGETC to BGET_FREAD/BGET_FGETC to avoid clash with
+ preprocessor symbol on Digital UNIX.
+ Branch: perl
+ ! bytecode.h bytecode.pl byterun.c
+____________________________________________________________________________
+[ 601] By: mbeattie on 1998/02/27 18:27:00
+ Log: Fix stupid ATOMIC_DEC_AND_TEST typo in sv.h.
+ Branch: perl
+ ! sv.h
+____________________________________________________________________________
+[ 600] By: mbeattie on 1998/02/27 18:15:07
+ Log: Add atomic.h to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 599] By: mbeattie on 1998/02/27 18:13:52
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ ! bytecode.pl
+ !> bytecode.h byterun.c byterun.h dosish.h embed.h embedvar.h
+ !> ext/B/B.xs ext/B/Makefile.PL global.sym perl.h sv.c
+ !> win32/Makefile win32/bin/pl2bat.pl win32/config.bc
+ !> win32/config.gc win32/config.vc win32/config_H.bc
+ !> win32/config_H.gc win32/config_H.vc win32/config_h.PL
+ !> win32/makedef.pl win32/makefile.mk win32/win32.c win32/win32.h
+ !> win32/win32thread.h
+____________________________________________________________________________
+[ 598] By: mbeattie on 1998/02/27 18:06:41
+ Log: Make refcounts atomic for threading (dependent on appropriate
+ arch-dependent and compiler-dependent definitions in atomic.h
+ or else falls back to a global mutex to protect refcounts).
+ Branch: perl
+ + atomic.h
+ ! global.sym perl.c perlvars.h sv.c sv.h
+____________________________________________________________________________
+[ 597] By: mbeattie on 1998/02/27 15:37:22
+ Log: Tiehandle stuff in change 595 didn't add to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 596] By: mbeattie on 1998/02/27 15:34:55
+ Log: Missed adding new file Policy_sh.SH in change 592.
+ Branch: perl
+ + Policy_sh.SH
+____________________________________________________________________________
+[ 595] By: mbeattie on 1998/02/27 15:34:06
+ Log: Subject: [PATCH] _60 & _04 - Add WRITE & CLOSE to TIEHANDLE
+ Date: Fri, 27 Feb 1998 04:15:04 +0000
+ From: Graham Barr <gbarr@pobox.com>
+ Branch: perl
+ + lib/Tie/Handle.pm t/op/tiehandle.t
+ ! pod/perltie.pod pp_sys.c
+____________________________________________________________________________
+[ 594] By: mbeattie on 1998/02/27 15:31:12
+ Log: From: Dan Sugalski <sugalskd@osshe.edu>
+ Subject: [PATCH 5.004_60] Fix to MM_VMS.PM
+ Date: Thu, 26 Feb 1998 11:09:55 -0800
+ Subject: [PATCH 5.004_60] Get SDBM_File working on VMS
+ Date: Thu, 26 Feb 1998 11:15:24 -0800
+ Branch: perl
+ ! ext/SDBM_File/Makefile.PL ext/SDBM_File/sdbm/Makefile.PL
+ ! ext/SDBM_File/sdbm/sdbm.h lib/ExtUtils/MM_VMS.pm
+ ! t/lib/anydbm.t t/lib/sdbm.t vms/descrip.mms vms/perlvms.pod
+ ! vms/test.com
+____________________________________________________________________________
+[ 593] By: mbeattie on 1998/02/27 15:26:45
+ Log: Fix file-descriptor leak when pipes fail via taint checks:
+ Subject: [PATCH] Some patches went through cracks
+ Date: Thu, 26 Feb 1998 02:47:46 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! os2/os2.c util.c
+____________________________________________________________________________
+[ 592] By: mbeattie on 1998/02/27 15:15:12
+ Log: Subject: Config_60-03-04.diff patch for 5.004_60
+ Date: Wed, 25 Feb 1998 17:14:39 -0500 (EST)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ ! Configure MANIFEST Makefile.SH os2/diff.configure
+____________________________________________________________________________
+[ 591] By: gsar on 1998/02/26 19:34:50
+ Log: added AS patch#9
+ Branch: asperl
+ - win32/ipdir.c win32/ipenv.c win32/iplio.c win32/ipmem.c
+ - win32/ipproc.c win32/ipsock.c win32/ipstdio.c
+ - win32/ipstdiowin.h win32/perlobj.def
+ ! ObjXSub.h globals.c perl.c proto.h win32/Makefile
+ ! win32/dl_win32.xs win32/runperl.c win32/win32.c win32/win32.h
+ ! win32/win32sck.c win32/win32thread.c
+____________________________________________________________________________
+[ 590] By: gsar on 1998/02/26 04:25:40
+ Log: various changes to make win32 build under the new Configure & co.
+ - added byterun.c to core C build
+ - makefile.mk now has a regen_config_h target to quickly update config_H.[bgv]c
+ after adding new variables to config.[bgv]c
+ - sig_name_init now has only the valid signals
+ - we now have $Config{usethreads}
+ - tested under the two commercial compilers w/ and w/o usethreads
+ Branch: win32/perl
+ ! win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/config_h.PL win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[ 589] By: gsar on 1998/02/26 03:56:19
+ Log: various cleanups so that B can be built as "just another extension"
+ - export symbols needed for building B
+ - bset_obj_store() is needed by byterun(), so define it there instead
+ of at B.xs, and export it
+ - freadpv() is only used in B.xs, so move it there
+ - byte*.h are now included by perl.h
+ - regenerate embed*.h
+ Branch: win32/perl
+ ! bytecode.h bytecode.pl byterun.c byterun.h embed.h embedvar.h
+ ! ext/B/B.xs ext/B/Makefile.PL global.sym perl.h
+____________________________________________________________________________
+[ 588] By: gsar on 1998/02/25 21:46:35
+ Log: integrate mainline
+ Branch: win32/perl
+ +> Porting/config.sh Porting/config_H
+ - config_H
+ !> (integrate 54 files)
+____________________________________________________________________________
+[ 587] By: gsar on 1998/02/25 19:20:26
+ Log: added AS patch#8
+ Branch: asperl
+ ! sv.c x2p/a2py.c x2p/util.c
+____________________________________________________________________________
+[ 586] By: gsar on 1998/02/25 19:08:06
+ Log: added AS patch#7
+ Message-Id: <01BD40F9.CE57B210.dougl@ActiveState.com>
+ Date: Tue, 24 Feb 1998 07:57:07 PST
+ From: Douglas Lankshear <dougl@ActiveState.com>
+ Subject: [PATCH]
+
+ Here's an attempt at
+ 6. MANIFEST must be updated with new file names
+ 5. Mktime(), Stat() etc., rather than MKtime()/STat() etc.
+ And some changes to move toward
+ 1. Merge PERL_OBJECT build support into regular Makefile and makefile.mk
+
+ -- Doug
+ Branch: asperl
+ ! MANIFEST installperl ipdir.h ipenv.h iplio.h ipmem.h ipproc.h
+ ! ipsock.h ipstdio.h lib/ExtUtils/MM_Win32.pm perldir.h
+ ! perlenv.h perlio.h perllio.h win32/Makefile
+____________________________________________________________________________
+[ 585] By: mbeattie on 1998/02/25 17:44:34
+ Log: More compiler tweaks.
+ Branch: perl
+ ! Makefile.SH bytecode.pl byterun.c byterun.h ext/B/B/Asmdata.pm
+____________________________________________________________________________
+[ 584] By: mbeattie on 1998/02/25 15:36:38
+ Log: Subject: [PATCH 5.004_60] dos-djgpp update
+ Date: Wed, 25 Feb 1998 11:17:07 +0100
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Branch: perl
+ ! djgpp/djgpp.c dosish.h hints/dos_djgpp.sh perl.c thread.h
+____________________________________________________________________________
+[ 583] By: mbeattie on 1998/02/25 15:34:48
+ Log: Move find_threadsv to right bit of global.sym. Bump patchlevel to 61.
+ Branch: perl
+ ! global.sym patchlevel.h
+____________________________________________________________________________
+[ 582] By: mbeattie on 1998/02/25 15:28:08
+ Log: Subject: Re: [PATCH 5.004_60] Fix goto-in-eval segfault (unwrapped!)
+ Date: Tue, 24 Feb 1998 11:15:57 +0000
+ From: Robin Houston <robin@oneworld.org>
+ Branch: perl
+ ! pod/perldiag.pod pp_ctl.c
+____________________________________________________________________________
+[ 581] By: mbeattie on 1998/02/25 15:27:06
+ Log: Subject: [PATCH] #ifdef CAN_PROTOTYPE cleanup
+ Date: 23 Feb 1998 23:36:09 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! doio.c miniperlmain.c op.c perl.c pp.h regcomp.c toke.c util.c
+____________________________________________________________________________
+[ 580] By: mbeattie on 1998/02/25 15:25:29
+ Log: Subject: [PATCH 5.004_60] improved Test.pm
+ Date: Sat, 21 Feb 1998 14:17:09 -0500
+ From: Joshua Pritikin <pritikin@mindspring.com>
+ Branch: perl
+ ! lib/Test.pm
+____________________________________________________________________________
+[ 579] By: mbeattie on 1998/02/25 15:23:24
+ Log: HP-UX hints and AIX global.sym changes (with Makefile.SH rule)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Subject: [PATCH] 5.004_60: AIX: global.sym and Makefile.SH
+ Date: Sat, 21 Feb 1998 15:26:19 +0200 (EET)
+ Subject: Re: your HP-UX perl patch
+ Date: Mon, 23 Feb 1998 23:14:37 +0200 (EET)
+ Branch: perl
+ ! Makefile.SH embed.h global.sym hints/hpux.sh
+____________________________________________________________________________
+[ 578] By: mbeattie on 1998/02/25 15:18:06
+ Log: Back out DB_File patch (change _553) and tweak Configure.
+ Subject: ANNOUNCE: perl5.004_60 is available
+ Date: Mon, 23 Feb 1998 10:47:26 -0000
+ From: Paul Marquess <pmarquess@bfsec.bt.co.uk>
+ Branch: perl
+ ! Configure ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[ 577] By: mbeattie on 1998/02/25 15:04:00
+ Log: Subject: [PATCH] Cwd.pm
+ Date: Fri, 20 Feb 1998 10:27:54 -0600
+ From: Graham Barr <gbarr@ti.com>
+ Branch: perl
+ ! lib/Cwd.pm
+____________________________________________________________________________
+[ 576] By: mbeattie on 1998/02/25 15:02:57
+ Log: From: ilya@math.ohio-state.edu (Ilya Zakharevich)
+ Subject: [5.004_5* PATCH] Make ornaments default in Term::ReadLine
+ Date: Fri, 20 Feb 1998 00:09:52 -0500 (EST)
+ Subject: [PATCH 5.004_5*] Fix debugger messages and the default package
+ Date: Fri, 20 Feb 1998 00:12:28 -0500 (EST)
+ Subject: Re: Continued presence of segmentation violation in study_chunk()[PATCH]
+ Date: Sat, 21 Feb 1998 15:32:29 -0500 (EST)
+ Branch: perl
+ ! lib/Term/ReadLine.pm lib/perl5db.pl regcomp.c
+____________________________________________________________________________
+[ 575] By: mbeattie on 1998/02/25 14:58:00
+ Log: Subject: Re: ANNOUNCE: perl5.004_60 Configure patch is available
+ Date: Tue, 24 Feb 1998 16:02:43 -0500 (EST)
+ From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+ Branch: perl
+ + Porting/config.sh Porting/config_H
+ - config_H
+ ! Configure INSTALL MANIFEST Makefile.SH Porting/Glossary
+ ! Porting/pumpkin.pod config_h.SH ext/POSIX/POSIX.xs
+ ! hints/aix.sh hints/amigaos.sh hints/bsdos.sh hints/dec_osf.sh
+ ! hints/freebsd.sh hints/irix_6.sh hints/linux.sh
+ ! hints/netbsd.sh hints/next_3.sh hints/next_4.sh hints/os2.sh
+ ! hints/solaris_2.sh makedepend.SH perl.c perl.h pp.c pp_sys.c
+ ! t/lib/thread.t t/op/nothread.t x2p/Makefile.SH
+____________________________________________________________________________
+[ 574] By: gsar on 1998/02/24 02:21:14
+ Log: fix typos in sv.c
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 573] By: mbeattie on 1998/02/23 10:03:39
+ Log: Remove old Linux+threads segfault degugging kludge.
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 572] By: gsar on 1998/02/23 09:45:26
+ Log: undo previous change (no added value!)
+ Branch: win32/perl
+ ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[ 571] By: gsar on 1998/02/23 09:18:32
+ Log: fix pl2bat.pl to tolerate trailing .bat (as suggested by
+ John Cavanaugh <cavanaug@sdd.hp.com>)
+ Branch: win32/perl
+ ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[ 570] By: gsar on 1998/02/22 04:02:15
+ Log: support chown() (just a noop for now)
+ Branch: win32/perl
+ ! dosish.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 569] By: gsar on 1998/02/22 03:09:55
+ Log: integrate latest win32 branch
+ Branch: asperl
+ +> (branch 41 files)
+ !> (integrate 59 files)
+____________________________________________________________________________
+[ 568] By: gsar on 1998/02/22 02:40:56
+ Log: get compiler building under win32 (needed Makefile.PL
+ hacks that could be applicable to other platforms)
+ Branch: win32/perl
+ ! ext/B/Makefile.PL win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 567] By: gsar on 1998/02/22 01:30:19
+ Log: integrate mainline
+ Branch: win32/perl
+ +> (branch 41 files)
+ !> (integrate 46 files)
+____________________________________________________________________________
+[ 566] By: gsar on 1998/02/20 22:31:56
+ Log: fix handle leak in join()
+ Branch: win32/perl
+ ! win32/win32thread.h
+
+----------------
+Version 5.004_60
+----------------
+
+____________________________________________________________________________
+[ 565] By: mbeattie on 1998/02/20 18:23:47
+ Log: Remove compiler files from their old lib/B locations. The compiler
+ now builds by default (without the byteperl executable so far) and
+ seems to work at least minimally.
+ Branch: perl
+ - lib/B.pm lib/B/Asmdata.pm lib/B/Assembler.pm lib/B/Bblock.pm
+ - lib/B/Bytecode.pm lib/B/C.pm lib/B/CC.pm lib/B/Debug.pm
+ - lib/B/Deparse.pm lib/B/Disassembler.pm lib/B/Lint.pm
+ - lib/B/Showlex.pm lib/B/Stackobj.pm lib/B/Terse.pm
+ - lib/B/Xref.pm lib/B/assemble lib/B/cc_harness
+ - lib/B/disassemble lib/B/makeliblinks lib/O.pm
+ ! MANIFEST bytecode.pl
+____________________________________________________________________________
+[ 564] By: mbeattie on 1998/02/20 18:05:33
+ Log: Move lib/B/... and lib/[BO].pm over to where they should be,
+ under ext/B.
+ Branch: perl
+ +> ext/B/B.pm ext/B/B/Asmdata.pm ext/B/B/Assembler.pm
+ +> ext/B/B/Bblock.pm ext/B/B/Bytecode.pm ext/B/B/C.pm
+ +> ext/B/B/CC.pm ext/B/B/Debug.pm ext/B/B/Deparse.pm
+ +> ext/B/B/Disassembler.pm ext/B/B/Lint.pm ext/B/B/Showlex.pm
+ +> ext/B/B/Stackobj.pm ext/B/B/Terse.pm ext/B/B/Xref.pm
+ +> ext/B/B/assemble ext/B/B/cc_harness ext/B/B/disassemble
+ +> ext/B/B/makeliblinks ext/B/O.pm
+____________________________________________________________________________
+[ 563] By: mbeattie on 1998/02/20 17:54:58
+ Log: Start getting compiler to work when built with the core.
+ [Still won't work as of this change.]
+ Branch: perl
+ +> byterun.c byterun.h lib/B/Asmdata.pm lib/B/Assembler.pm
+ +> lib/B/Bblock.pm lib/B/Bytecode.pm lib/B/C.pm lib/B/CC.pm
+ +> lib/B/Debug.pm lib/B/Deparse.pm lib/B/Disassembler.pm
+ +> lib/B/Lint.pm lib/B/Showlex.pm lib/B/Stackobj.pm
+ +> lib/B/Terse.pm lib/B/Xref.pm
+ ! MANIFEST Makefile.SH bytecode.pl ext/B/Makefile.PL
+____________________________________________________________________________
+[ 562] By: mbeattie on 1998/02/20 16:42:13
+ Log: Merge perlext/Compiler/... into mainline. Some files move to
+ ext/B/..., some to lib/B/..., O.pm and B.pm go in lib and some
+ move to the base perl directory (e.g. headers). Will need some
+ cleaning up before it builds properly, I would guess.
+ Branch: perl
+ +> bytecode.h bytecode.pl cc_runtime.h ext/B/B.xs
+ +> ext/B/Makefile.PL ext/B/NOTES ext/B/README ext/B/TESTS
+ +> ext/B/Todo ext/B/byteperl.c ext/B/ramblings/cc.notes
+ +> ext/B/ramblings/curcop.runtime ext/B/ramblings/flip-flop
+ +> ext/B/ramblings/magic ext/B/ramblings/reg.alloc
+ +> ext/B/ramblings/runtime.porting ext/B/typemap lib/B.pm
+ +> lib/B/assemble lib/B/cc_harness lib/B/disassemble
+ +> lib/B/makeliblinks lib/O.pm
+____________________________________________________________________________
+[ 561] By: mbeattie on 1998/02/20 16:39:38
+ Log: Win32 changes from Sarathy, tweaked slightly by me.
+ Branch: perlext
+ ! Compiler/B.xs Compiler/B/Asmdata.pm Compiler/B/Bytecode.pm
+ ! Compiler/B/C.pm Compiler/Makefile.PL Compiler/assemble
+ ! Compiler/bytecode.h Compiler/bytecode.pl Compiler/byteperl.c
+ ! Compiler/byterun.c Compiler/byterun.h Compiler/cc_harness
+____________________________________________________________________________
+[ 560] By: mbeattie on 1998/02/20 15:46:15
+ Log: Initialise $@ early (fixes t/lib/ph.t for threaded perl).
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 559] By: mbeattie on 1998/02/20 12:56:10
+ Log: Add missing t/op/wantarray.t to MANIFEST. Bump patchlevel to 60.
+ Branch: perl
+ ! MANIFEST patchlevel.h
+____________________________________________________________________________
+[ 558] By: mbeattie on 1998/02/20 12:53:26
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ !> XSUB.h config_h.SH doio.c lib/Pod/Html.pm pp_sys.c
+ !> win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ !> win32/makedef.pl win32/makefile.mk win32/win32.c win32/win32.h
+ !> win32/win32iop.h x2p/a2p.h
+____________________________________________________________________________
+[ 557] By: mbeattie on 1998/02/20 12:51:42
+ Log: Subject: retry [PATCH] 5.004_59: the perlhist.pod etc
+ Date: Thu, 19 Feb 1998 17:54:52 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! ext/Thread/Thread.pm ext/Thread/Thread/Queue.pm
+ ! ext/Thread/Thread/Semaphore.pm ext/Thread/Thread/Specific.pm
+ ! lib/fields.pm pod/buildtoc pod/perl.pod pod/perlhist.pod
+ ! pod/perltoc.pod pod/perlvar.pod
+____________________________________________________________________________
+[ 556] By: mbeattie on 1998/02/20 12:49:54
+ Log: Subject: [PATCH] installperl
+ Date: Wed, 18 Feb 1998 11:51:44 -0500 (est)
+ From: Norton Allen <allen@huarp.harvard.edu>
+ Branch: perl
+ ! installperl
+____________________________________________________________________________
+[ 555] By: mbeattie on 1998/02/20 12:49:09
+ Log: Subject: [PATCH:_59] t/op/wantarray.t
+ Date: Wed, 18 Feb 1998 11:19:54 -0500 (est)
+ From: Norton Allen <allen@huarp.harvard.edu>
+ Branch: perl
+ + t/op/wantarray.t
+____________________________________________________________________________
+[ 554] By: mbeattie on 1998/02/20 12:47:44
+ Log: Subject: Misprint in regcomp.c [PATCH]
+ Date: Tue, 17 Feb 1998 23:54:07 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! regcomp.c
+____________________________________________________________________________
+[ 553] By: mbeattie on 1998/02/20 12:45:08
+ Log: Subject: DB_File ->length does not work just after tie.
+ Date: Tue, 17 Feb 1998 13:19:18 GMT
+ From: Nick Ing-Simmons <nik@tiuk.ti.com>
+ Branch: perl
+ ! ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[ 552] By: mbeattie on 1998/02/20 12:43:32
+ Log: Subject: [PATCH] - perl5.005_59, update Copyright
+ Date: Mon, 16 Feb 1998 20:31:06 -0500 (EST)
+ From: lusol@CS4.CC.Lehigh.EDU (Stephen O. Lidie)
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 551] By: mbeattie on 1998/02/20 12:42:41
+ Log: Subject: Re: for() and map() peculiarity
+ Date: Mon, 16 Feb 1998 21:33:44 +0000
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Branch: perl
+ ! pod/perlsyn.pod
+____________________________________________________________________________
+[ 550] By: mbeattie on 1998/02/20 12:41:53
+ Log: Subject: [PATCH 5.004_59] Updates to VMS/CONFIG.VMS
+ Date: Mon, 16 Feb 1998 11:46:29 -0800
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Branch: perl
+ ! vms/config.vms
+____________________________________________________________________________
+[ 549] By: mbeattie on 1998/02/20 12:40:55
+ Log: Subject: [PATCH] 5.004_59 global.sym for AIX 3.2.5
+ Date: Mon, 16 Feb 1998 14:27:53 -0500 (EST)
+ From: "Stephen O. Lidie" <lusol@turkey.cc.Lehigh.EDU>
+ Branch: perl
+ ! global.sym
+____________________________________________________________________________
+[ 548] By: mbeattie on 1998/02/20 12:39:56
+ Log: Subject: [PATCH] 5.004_59: hints/irix_6.sh
+ Date: Mon, 16 Feb 1998 15:44:57 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! hints/irix_6.sh
+____________________________________________________________________________
+[ 547] By: mbeattie on 1998/02/20 12:38:58
+ Log: Subject: [PATCH] perlguts update
+ Date: 16 Feb 1998 11:23:53 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! pod/perlguts.pod
+____________________________________________________________________________
+[ 546] By: mbeattie on 1998/02/20 12:38:01
+ Log: Subject: [PATCH 5.004_59] bsdos/hints.sh is wrong
+ Date: Sun, 15 Feb 1998 23:56:05 -0500
+ From: Irving Reid <irving@tor.securecomputing.com>
+ Branch: perl
+ ! hints/bsdos.sh
+____________________________________________________________________________
+[ 545] By: mbeattie on 1998/02/20 12:37:11
+ Log: Subject: [PATCH] 5% speedup in an empty loop
+ Date: Sun, 15 Feb 1998 17:49:46 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! op.c
+____________________________________________________________________________
+[ 544] By: mbeattie on 1998/02/20 12:36:26
+ Log: Subject: [PATCH for 5.004_59] netdb_host_type and netdb_hlen_type on NeXt
+ Date: Sun, 15 Feb 98 23:06:16 +0100
+ From: Hans Mulder <hansm@icgroup.nl>
+ Branch: perl
+ ! hints/next_3.sh hints/next_4.sh
+____________________________________________________________________________
+[ 543] By: mbeattie on 1998/02/20 12:35:39
+ Log: Subject: [PATCH for 5.004_59] Perl_sbrk declared inconsistently
+ Date: Sun, 15 Feb 98 23:05:20 +0100
+ From: Hans Mulder <hansm@icgroup.nl>
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 542] By: mbeattie on 1998/02/20 12:35:03
+ Log: Subject: [PATCH for 5.004_59] "d_gethbyname" misspelled in Configure
+ From: Hans Mulder <hansm@icgroup.nl>
+ Date: Sun, 15 Feb 98 23:04:29 +0100
+ Branch: perl
+ ! Configure
+____________________________________________________________________________
+[ 541] By: mbeattie on 1998/02/20 12:33:56
+ Log: Subject: [PATCH for 5.004_59] NeXT doesn't need DONT_DECLARE_STD (was:
+ NeXT needs DONT_DECLARE_STD)
+ Date: Sun, 15 Feb 98 23:04:19 +0100
+ From: Hans Mulder <hansm@icgroup.nl>
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 540] By: mbeattie on 1998/02/20 12:32:25
+ Log: Subject: [PATCH] sv_check_thinkfirst macroized
+ Date: 15 Feb 1998 22:00:38 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 539] By: mbeattie on 1998/02/20 12:31:07
+ Log: Subject: [PATCH 5.004_59] allow the Test::Harness to grok TODO-type tests docs
+ Date: Sat, 14 Feb 1998 17:58:01 -0500
+ From: Joshua Pritikin <pritikin@mindspring.com>
+ Branch: perl
+ + lib/Test.pm
+ ! MANIFEST lib/Test/Harness.pm
+____________________________________________________________________________
+[ 538] By: mbeattie on 1998/02/20 12:24:31
+ Log: Subject: [PATCH] 5.004_59: locale startup problems documentation++
+ Date: Sat, 14 Feb 1998 15:40:44 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! INSTALL pod/perldiag.pod pod/perllocale.pod
+____________________________________________________________________________
+[ 537] By: mbeattie on 1998/02/20 12:23:04
+ Log: Subject: [PATCH] Updated, non-wordwrapped, patch to README.VMS
+ Date: Fri, 13 Feb 1998 13:38:28 -0800
+ From: Dan Sugalski <sugalskd@osshe.edu>
+ Branch: perl
+ ! README.vms
+____________________________________________________________________________
+[ 536] By: mbeattie on 1998/02/20 12:20:29
+ Log: Subject: [PATCH] 5.004_58, move intuition tests
+ Date: Thu, 12 Feb 1998 17:11:05 -0600
+ From: Stephen Potter <spp@psa.pencom.com>
+ Branch: perl
+ ! t/lib/anydbm.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t
+ ! t/lib/sdbm.t t/op/array.t t/op/delete.t t/op/each.t
+ ! t/op/flip.t t/op/pat.t t/op/push.t
+____________________________________________________________________________
+[ 535] By: gsar on 1998/02/19 23:07:24
+ Log: applied a version of this with tabs intact
+ Message-Id: <wklnv7pdf5.fsf@turangalila.harmonixmusic.com>
+ Date: 19 Feb 1998 15:06:38 EST
+ From: dfan@harmonixmusic.com (Dan Schmidt)
+ Subject: Pod::Html bug and fix: missing </UL> in index
+ Branch: win32/perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 534] By: gsar on 1998/02/19 19:40:27
+ Log: Fix C<0> problem in Pod::Html
+ Branch: win32/perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 533] By: gsar on 1998/02/18 18:11:08
+ Log: non-debug VC builds are -O1 now (they say it works, and is
+ faster)
+ Branch: win32/perl
+ ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 532] By: gsar on 1998/02/18 04:11:03
+ Log: integrate nick's patch to mainline
+ Branch: win32/perl
+ !> pp.c
+____________________________________________________________________________
+[ 531] By: mbeattie on 1998/02/17 17:50:50
+ Log: Assorted changes to the compiler
+ Branch: perlext
+ ! Compiler/B.pm Compiler/B.xs Compiler/B/Asmdata.pm
+ ! Compiler/B/Bytecode.pm Compiler/B/C.pm Compiler/B/Debug.pm
+ ! Compiler/NOTES Compiler/O.pm Compiler/bytecode.pl
+ ! Compiler/byterun.c Compiler/byterun.h Compiler/typemap
+____________________________________________________________________________
+[ 530] By: gsar on 1998/02/17 01:47:35
+ Log: DLLs are now ok on mingw32/gcc-2.8.0 after removing the
+ FORCE_ARG_STRING() hack (that bug is fixed in gcc now). mingw32
+ build passes all tests except t/lib/io_xs.t (seems to be due to
+ broken tmpfile() in the CRT or import lib)
+ Branch: win32/perl
+ ! XSUB.h win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[ 529] By: gsar on 1998/02/16 23:03:31
+ Log: fix mingw32 gcc 2.8.0 build (DLLs generated seem to be broken
+ in this version of gcc!)
+ Branch: win32/perl
+ ! doio.c pp_sys.c win32/config.gc win32/makefile.mk
+ ! win32/win32.c win32/win32.h win32/win32iop.h x2p/a2p.h
+____________________________________________________________________________
+[ 528] By: nick on 1998/02/16 22:13:04
+ Log: Missing PUSHMARK in unshift TIEARRAY hook
+ Branch: perl
+ ! pp.c
+____________________________________________________________________________
+[ 527] By: gsar on 1998/02/15 20:59:07
+ Log: integrate win32 branch
+ Branch: asperl
+ !> config_h.SH win32/config.bc win32/config.gc win32/config.vc
+ !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ !> win32/makedef.pl
+____________________________________________________________________________
+[ 526] By: gsar on 1998/02/15 20:02:11
+ Log: Fix typo: s/GETNETBYADD\b/GETNETBYADDR/
+ Branch: win32/perl
+ ! config_h.SH win32/config_H.bc win32/config_H.gc
+ ! win32/config_H.vc
+____________________________________________________________________________
+[ 525] By: gsar on 1998/02/15 03:26:45
+ Log: fix build problems due to renamed Config variables
+ Branch: win32/perl
+ ! win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/makedef.pl
+____________________________________________________________________________
+[ 524] By: gsar on 1998/02/14 01:00:15
+ Log: bring ASPerl uptodate with mainline changes
+ Branch: asperl
+ +> ext/DB_File/Changes t/comp/require.t
+ !> (integrate 41 files)
+____________________________________________________________________________
+[ 523] By: gsar on 1998/02/14 00:52:17
+ Log: integrate mainline
+ Branch: win32/perl
+ !> hints/qnx.sh lib/Cwd.pm lib/ExtUtils/xsubpp patchlevel.h
+ !> pp_hot.c t/op/magic.t
+____________________________________________________________________________
+[ 522] By: gsar on 1998/02/14 00:42:37
+ Log: added AS patch#6
+ Message-Id: <01BD3846.B29FB880.dougl@ActiveState.com>
+ Date: Fri, 13 Feb 1998 06:14:51 PST
+ From: Douglas Lankshear <dougl@ActiveState.com>
+ Subject: [PATCH] command line build
+
+ This patch is for the command line build of perl object.
+ I'll merge the ipfoo.c function with win32_xxx functions next.
+
+ -- Doug
+ Branch: asperl
+ ! ObjXSub.h ext/Opcode/Opcode.xs lib/ExtUtils/MM_Win32.pm
+ ! objpp.h proto.h sv.c win32/dl_win32.xs win32/ipenv.c
+ ! win32/ipstdio.c win32/makedef.pl win32/runperl.c win32/win32.h
+____________________________________________________________________________
+[ 521] By: gsar on 1998/02/14 00:14:04
+ Log: added AS patch#5 (patch #4 was intentionally skipped after
+ discussion)
+ Branch: asperl
+ ! embed.h embedvar.h global.sym globals.c hv.c interp.sym
+ ! intrpvar.h op.c perl.c perl.h pp_ctl.c proto.h regcomp.c
+ ! regexec.c sv.c toke.c
+____________________________________________________________________________
+[ 520] By: nick on 1998/02/13 18:15:46
+ Log: Resolve ansiperl against win32
+ Branch: ansiperl
+ +> ext/DB_File/Changes ext/POSIX/hints/linux.pl
+ +> ext/POSIX/hints/sunos_4.pl lib/Fatal.pm t/comp/require.t
+ +> t/lib/ph.t
+ !> (integrate 898 files)
+
+----------------
+Version 5.004_59
+----------------
+
+____________________________________________________________________________
+[ 519] By: mbeattie on 1998/02/13 17:05:37
+ Log: Integrate win32 into mainline.
+ Branch: perl
+ ! lib/ExtUtils/xsubpp
+ !> win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ !> win32/makefile.mk
+____________________________________________________________________________
+[ 518] By: mbeattie on 1998/02/13 17:01:16
+ Log: Bump patchlevel.h to 59.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 517] By: mbeattie on 1998/02/13 16:57:59
+ Log: Subject: [PATCH] _58: wantarray in void context broken
+ Date: Fri, 13 Feb 1998 11:24:49 -0500 (est)
+ From: Norton Allen <allen@huarp.harvard.edu>
+ Branch: perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 516] By: mbeattie on 1998/02/13 16:55:33
+ Log: Subject: [PATCH] 5.004_58 QNX getcwd
+ Date: Thu, 12 Feb 1998 13:40:56 -0500 (est)
+ From: Norton Allen <allen@huarp.harvard.edu>
+ Branch: perl
+ ! hints/qnx.sh lib/Cwd.pm t/op/magic.t
+____________________________________________________________________________
+[ 515] By: gsar on 1998/02/12 18:29:52
+ Log: pickup lddlflags properly for Config.pm
+ Branch: win32/perl
+ ! win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 514] By: gsar on 1998/02/12 18:16:09
+ Log: fix xsubpp bug in SETMAGIC code
+ Branch: win32/perl
+ ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[ 513] By: gsar on 1998/02/12 18:06:30
+ Log: integrate mainline
+ Branch: win32/perl
+ +> ext/DB_File/Changes
+ !> Configure MANIFEST config_h.SH ext/DB_File/DB_File.pm
+ !> ext/DB_File/DB_File.xs hints/machten.sh
+ !> lib/ExtUtils/Install.pm lib/Pod/Html.pm lib/Pod/Text.pm
+ !> lib/perl5db.pl malloc.c pod/perldiag.pod pod/perlpod.pod
+ !> pod/pod2man.PL pp_sys.c regcomp.c regexec.c scope.h sv.c
+ !> t/lib/db-recno.t t/lib/filecopy.t t/op/misc.t t/op/pat.t
+ !> t/op/re_tests t/pragma/locale.t
+____________________________________________________________________________
+[ 512] By: mbeattie on 1998/02/12 17:34:02
+ Log: Missing WITH_THR from new deb() in ENTER/LEAVE caused builds
+ with -DUSE_THREADS -DDEBUGGING to fail.
+ Branch: perl
+ ! scope.h
+____________________________________________________________________________
+[ 511] By: mbeattie on 1998/02/12 16:44:03
+ Log: Integrate win32 into mainline
+ Branch: perl
+ +> t/comp/require.t
+ !> MANIFEST pp_ctl.c scope.c scope.h t/op/local.t toke.c
+____________________________________________________________________________
+[ 510] By: mbeattie on 1998/02/12 16:42:26
+ Log: Subject: Re: [PATCH] 5.004_58 | _04 DynaLoader.pm -> DynaLoader.pm.PL (resend)
+ Date: 12 Feb 1998 14:25:55 +0100
+ From: koenig@kulturbox.de (Andreas J. Koenig)
+ Branch: perl
+ ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[ 509] By: mbeattie on 1998/02/12 16:40:34
+ Log: Subject: Re: wrong prototype for sbrk [PATCH]
+ Date: Wed, 11 Feb 1998 15:37:31 -0500 (EST)
+ From: Andy Dougherty <doughera@newton.phys.lafayette.edu>
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 508] By: mbeattie on 1998/02/12 16:36:53
+ Log: Subject: [PATCH] 5.004_58 | _04: pod2*,perlpod: L<show this|man/section>
+ Date: Wed, 11 Feb 1998 17:29:20 +0100
+ From: Achim Bohnet <ach@mpe.mpg.de>
+ Branch: perl
+ ! lib/Pod/Html.pm lib/Pod/Text.pm pod/perlpod.pod pod/pod2man.PL
+____________________________________________________________________________
+[ 507] By: mbeattie on 1998/02/12 16:35:26
+ Log: Subject: [PATCH] slight tweaks to hints/machten.sh
+ Date: Wed, 11 Feb 1998 14:59:46 +0100
+ From: Dominic Dunlop <domo@vo.lu>
+ Branch: perl
+ ! hints/machten.sh
+____________________________________________________________________________
+[ 506] By: mbeattie on 1998/02/12 16:28:40
+ Log: Subject: DB_File 1.58 patch
+ Date: Tue, 10 Feb 1998 11:23:22 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ + ext/DB_File/Changes
+ ! MANIFEST ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs
+ ! t/lib/db-recno.t
+____________________________________________________________________________
+[ 505] By: mbeattie on 1998/02/12 16:24:26
+ Log: Subject: 5.004_5*: [PATCH] restore old behaviour of \1 in RE
+ Date: Tue, 10 Feb 1998 02:57:46 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[ 504] By: mbeattie on 1998/02/12 16:22:46
+ Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+ Subject: [PATCH] 5.004_58: the locale.t problem in IRIX
+ Date: Mon, 9 Feb 1998 19:47:22 +0200 (EET)
+ Subject: [PATCH] 5.004_58: reserve the POSIX regexp extensions
+ Date: Tue, 10 Feb 1998 15:12:12 +0200 (EET)
+ Subject: [PATCH] 5.004_58: <netdb.h> API prototype probing
+ Date: Wed, 11 Feb 1998 12:50:35 +0200 (EET)
+ Branch: perl
+ ! Configure config_h.SH pod/perldiag.pod pp_sys.c regcomp.c
+ ! t/op/misc.t t/op/pat.t t/op/re_tests t/pragma/locale.t
+____________________________________________________________________________
+[ 503] By: mbeattie on 1998/02/12 16:15:43
+ Log: Subject: [PATCH] filecopy.t #3 fails on dos-djgpp
+ Date: Mon, 9 Feb 1998 13:19:45 +0100
+ From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+ Branch: perl
+ ! t/lib/filecopy.t
+____________________________________________________________________________
+[ 502] By: mbeattie on 1998/02/12 16:14:27
+ Log: Assorted patches to sv.c:
+ From: Gisle Aas <gisle@aas.no>
+ Subject: [PATCH] sv_grow can fail for HAS_64K_LIMIT systems
+ Date: 07 Feb 1998 00:21:57 +0100
+ Subject: [PATCH] sv_setnv will upgrade SVt_NV to SVt_PVNV
+ Date: 07 Feb 1998 00:29:45 +0100
+ Subject: [PATCH] sv_upgrade() always returns TRUE
+ Date: 09 Feb 1998 15:44:01 +0100
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 501] By: mbeattie on 1998/02/12 16:09:26
+ Log: Fix saving of STDOUT during system() in lib/perl5db.pl:
+ Subject: Perl debugger.
+ Date: Fri, 6 Feb 1998 17:47:08 -0500
+ From: "Jason A. Smith" <smithj4@rpi.edu>
+ Branch: perl
+ ! lib/perl5db.pl
+____________________________________________________________________________
+[ 500] By: gsar on 1998/02/12 03:20:55
+ Log: merge another maint patch
+ Message-Id: <199802102349.SAA16001@aatma.engin.umich.edu>
+ Date: Tue, 10 Feb 1998 18:49:00 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: Re: after an eval-ed bad require, requiring a string ref gives a SEGV
+ Branch: win32/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 499] By: gsar on 1998/02/12 03:14:39
+ Log: make t/comp/require.t type xtext
+ Branch: win32/perl
+ ! t/comp/require.t
+____________________________________________________________________________
+[ 498] By: gsar on 1998/02/12 03:09:58
+ Log: fix extra LEAVE when require fails
+ Message-Id: <199802102321.SAA15346@aatma.engin.umich.edu>
+ Date: Tue, 10 Feb 1998 18:21:37 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: Re: evals and requires make seg-fault with bad require file
+ Branch: win32/perl
+ + t/comp/require.t
+ ! MANIFEST pp_ctl.c scope.c scope.h toke.c
+____________________________________________________________________________
+[ 497] By: gsar on 1998/02/12 02:47:29
+ Log: merge a maint patch
+ Message-Id: <199802110515.AAA23700@aatma.engin.umich.edu>
+ Date: Wed, 11 Feb 1998 00:15:51 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: Re: "local" can crash perl-4.00[34] on Solaris-x86 & FreeBSD
+ Branch: win32/perl
+ ! pp_ctl.c t/op/local.t
+____________________________________________________________________________
+[ 496] By: mbeattie on 1998/02/11 13:04:50
+ Log: Integrate win32 into mainline.
+ Branch: perl
+ !> embed.h ext/GDBM_File/typemap ext/NDBM_File/typemap
+ !> ext/ODBM_File/typemap ext/SDBM_File/typemap global.sym gv.c
+ !> lib/ExtUtils/typemap lib/ExtUtils/xsubpp op.c
+ !> os2/OS2/PrfDB/typemap pod/perlguts.pod pod/perlobj.pod
+ !> pod/perlxs.pod pod/perlxstut.pod proto.h sv.c sv.h t/op/ref.t
+ !> win32/makedef.pl win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[ 495] By: mbeattie on 1998/02/11 13:03:59
+ Log: Fix special constants in Xref.pm
+ Branch: perlext
+ ! Compiler/B/Xref.pm
+____________________________________________________________________________
+[ 494] By: gsar on 1998/02/10 18:26:28
+ Log: fix opendir() problem on share names
+ Message-Id: <199802101828.NAA10420@aatma.engin.umich.edu>
+ Date: Tue, 10 Feb 1998 13:28:53 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: Re: BUG: opendir and UNC names on NT
+ Branch: win32/perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 493] By: gsar on 1998/02/09 23:09:40
+ Log: integrate win32 branch contents
+ Branch: asperl
+ +> ext/POSIX/hints/linux.pl ext/POSIX/hints/sunos_4.pl
+ +> lib/Fatal.pm t/lib/ph.t
+ ! hv.c
+ !> (integrate 895 files)
+____________________________________________________________________________
+[ 492] By: gsar on 1998/02/09 07:30:19
+ Log: enhancements to previous patch for XSUB OUTPUT args
+ Message-Id: <199802090731.CAA04438@aatma.engin.umich.edu>
+ Date: Mon, 09 Feb 1998 02:31:55 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: Re: [PATCH] XSUB OUTPUT arguments and 'set' magic
+ Branch: win32/perl
+ ! embed.h ext/GDBM_File/typemap ext/NDBM_File/typemap
+ ! ext/ODBM_File/typemap ext/SDBM_File/typemap global.sym
+ ! lib/ExtUtils/typemap lib/ExtUtils/xsubpp os2/OS2/PrfDB/typemap
+ ! pod/perlguts.pod pod/perlxs.pod pod/perlxstut.pod proto.h sv.c
+ ! sv.h
+____________________________________________________________________________
+[ 491] By: gsar on 1998/02/09 03:00:52
+ Log: don't share TARG unless -DUSE_BROKEN_PAD_RESET
+ Message-Id: <199710300036.TAA01004@aatma.engin.umich.edu>
+ Date: Wed, 29 Oct 1997 19:36:25 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: [PATCH] Don't use broken pad_reset() (was Re: Perl bug in 5.004_03 )
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 490] By: gsar on 1998/02/09 02:30:43
+ Log: fix for bugs in handling DESTROY (adjusted test numbers)
+ Message-Id: <199801010030.TAA14274@aatma.engin.umich.edu>
+ Subject: Re: [PERL] RFD: iterative DESTROYing of objects
+ Date: Wed, 31 Dec 1997 19:30:46 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: win32/perl
+ ! pod/perlobj.pod sv.c t/op/ref.t
+____________________________________________________________________________
+[ 489] By: gsar on 1998/02/09 00:30:35
+ Log: ansify prototype for my_safemalloc(), avoid warnings
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 488] By: gsar on 1998/02/09 00:29:08
+ Log: fix misapplied hunks in 5.004_58
+ Message-Id: <199802080718.CAA18115@aatma.engin.umich.edu>
+ Date: Sun, 08 Feb 1998 02:18:12 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: [PATCH] fixes for test failures in 5.004_58
+ Branch: win32/perl
+ ! gv.c op.c
+____________________________________________________________________________
+[ 487] By: gsar on 1998/02/09 00:27:16
+ Log: win32_utime() tweaks to avoid warnings
+ Branch: win32/perl
+ ! win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[ 486] By: gsar on 1998/02/07 23:45:22
+ Log: integrate mainline, plus a few small win32 enhancements
+ - remove Win32::GetCurrentDirectory()
+ - add Win32::Sleep() for compat
+ - add smarter utime() from Jan Dubois, and export it as win32_utime()
+ Branch: win32/perl
+ +> ext/POSIX/hints/linux.pl ext/POSIX/hints/sunos_4.pl
+ +> lib/Fatal.pm t/lib/ph.t
+ ! win32/makedef.pl win32/win32.c win32/win32iop.h
+ !> (integrate 61 files)
+
+----------------
+Version 5.004_58
+----------------
+
+____________________________________________________________________________
+[ 485] By: mbeattie on 1998/02/06 18:11:47
+ Log: Bump patchlevel to 58.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 484] By: mbeattie on 1998/02/06 18:08:28
+ Log: Fix up problem with gv.c from change 477.
+ Fix up Config.pm use in t/lib/ph.t from change 478.
+ Branch: perl
+ ! gv.c t/lib/ph.t
+____________________________________________________________________________
+[ 483] By: mbeattie on 1998/02/06 17:34:34
+ Log: Integrate win32 branch into mainline
+ Branch: perl
+ !> win32/win32sck.c
+____________________________________________________________________________
+[ 482] By: mbeattie on 1998/02/06 17:26:41
+ Log: lib/Fatal.pm missing from repository
+ Branch: perl
+ + lib/Fatal.pm
+____________________________________________________________________________
+[ 481] By: mbeattie on 1998/02/06 17:24:57
+ Log: Subject: [PATCH] Re: posix::strftime (core dumped)
+ Date: Thu, 5 Feb 1998 13:55:23 -0500 (EST)
+ From: Andy Dougherty <doughera@newton.phys.lafayette.edu>
+ Branch: perl
+ + ext/POSIX/hints/linux.pl ext/POSIX/hints/sunos_4.pl
+ ! MANIFEST hints/linux.sh hints/sunos_4_1.sh t/lib/posix.t
+____________________________________________________________________________
+[ 480] By: mbeattie on 1998/02/06 17:19:52
+ Log: x2p/str.c was missing from list of changed files in change 466
+ Branch: perl
+ ! x2p/str.c
+____________________________________________________________________________
+[ 479] By: mbeattie on 1998/02/06 17:16:54
+ Log: Added t/lib/ph.t to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 478] By: mbeattie on 1998/02/06 17:15:38
+ Log: Subject: [PATCH] h2ph.PL
+ Date: Thu, 5 Feb 1998 05:53:54 -0800 (EST)
+ From: kstar@www.chapin.edu (Kurt D. Starsinic)
+ Branch: perl
+ + t/lib/ph.t
+ ! utils/h2ph.PL
+____________________________________________________________________________
+[ 477] By: mbeattie on 1998/02/06 17:10:46
+ Log: Subject: [PATCH] Faster gv_fetchpv() for nested packages
+ Date: 04 Feb 1998 14:49:46 +0100
+ From: Gisle Aas <gisle@aas.no>
+ as modified by
+ From: chip@atlantic.net
+ Date: Wed, 4 Feb 1998 11:46:49 -0500 (EST)
+ Branch: perl
+ ! gv.c
+____________________________________________________________________________
+[ 476] By: mbeattie on 1998/02/06 16:47:03
+ Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+ Subject: [PATCH] almost OK: perl 5.00457 on i386-freebsd-thread 3.0
+ Date: Wed, 4 Feb 1998 12:59:47 +0200 (EET)
+ Subject: Re: [PATCH] 5.004_04 and 5.004_57: Complex.pm and complex.t
+ Date: Thu, 5 Feb 1998 18:08:20 +0200 (EET)
+ Branch: perl
+ ! hints/freebsd.sh lib/Math/Complex.pm t/lib/complex.t
+____________________________________________________________________________
+[ 475] By: mbeattie on 1998/02/06 16:44:57
+ Log: Subject: [PATCH] nomemok
+ Date: Mon, 2 Feb 1998 15:06:50 +0100
+ From: Gisle Aas <gisle@aas.no>
+ Branch: perl
+ ! hv.c
+____________________________________________________________________________
+[ 474] By: mbeattie on 1998/02/06 16:43:46
+ Log: Subject: [PATCH] Benchmark.pm: timethese corrupts $_
+ Date: Sun, 1 Feb 1998 06:46:08 -0500 (EST)
+ From: abigail@fnx.com
+ Branch: perl
+ ! lib/Benchmark.pm
+____________________________________________________________________________
+[ 473] By: mbeattie on 1998/02/06 16:42:53
+ Log: Subject: [PATCH] adding the newSVpvn API function
+ Date: Sat, 31 Jan 1998 06:32:42 +0100
+ From: Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch>
+ Branch: perl
+ ! embed.h embedvar.h global.sym pod/perlguts.pod pod/perltoc.pod
+ ! proto.h sv.c
+____________________________________________________________________________
+[ 472] By: mbeattie on 1998/02/06 16:35:41
+ Log: Subject: Re: [PATCH] new hints/solaris2.sh (was Re: make check fails 17% of it's tests on Solaris...)
+ Date: 28 Jan 1998 17:40:37 -0800
+ From: Stephen Zander <srz@mckesson.com>
+ Branch: perl
+ ! hints/solaris_2.sh
+____________________________________________________________________________
+[ 471] By: mbeattie on 1998/02/06 16:02:57
+ Log: Subject: [PATCH] Re: 5.004_04 vec() fails with 32-bit values
+ Date: Thu, 15 Jan 1998 11:53:06 +0000
+ From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+ Branch: perl
+ ! pod/perlguts.pod pp.c t/op/vec.t
+____________________________________________________________________________
+[ 470] By: mbeattie on 1998/02/06 16:01:36
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Subject: 5.004_56: Patch to Tie::Hash and docs
+ Date: Sun, 11 Jan 1998 20:34:05 -0500 (EST)
+ Subject: 5.004_56: Patch to (?{}) quoting + cosmetic
+ Date: Mon, 2 Feb 1998 01:28:46 -0500 (EST)
+ Branch: perl
+ ! lib/Tie/Hash.pm pod/perlfunc.pod pod/perlre.pod regcomp.c
+ ! t/op/misc.t t/op/pat.t toke.c
+____________________________________________________________________________
+[ 469] By: mbeattie on 1998/02/06 15:58:31
+ Log: Subject: Another Array.pm patch
+ Date: Wed, 4 Feb 1998 20:37:03 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ ! lib/Tie/Array.pm
+____________________________________________________________________________
+[ 468] By: mbeattie on 1998/02/06 15:56:28
+ Log: Subject: documentation patch for 5.004_57
+ Date: Wed, 4 Feb 1998 14:54:13 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ ! lib/Tie/Array.pm
+____________________________________________________________________________
+[ 467] By: mbeattie on 1998/02/06 15:55:34
+ Log: Subject: 5.004_56: patch for `use Fatal' again
+ Date: Thu, 29 Jan 1998 17:04:28 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! MANIFEST pod/perldiag.pod pod/perlfunc.pod pod/perlmodlib.pod
+ ! pp.c t/comp/proto.t toke.c
+____________________________________________________________________________
+[ 466] By: mbeattie on 1998/02/06 15:53:53
+ Log: Subject: Newer -DLEAKTEST patch
+ Date: Fri, 9 Jan 1998 17:55:09 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! ext/DB_File/DB_File.xs ext/DynaLoader/dl_next.xs
+ ! ext/DynaLoader/dl_vms.xs ext/Opcode/Opcode.xs handy.h hv.c
+ ! perl.c perly.c perly.c.diff perly.fixer pod/perlembed.pod
+ ! pod/perlguts.pod pod/perlrun.pod pod/perltoc.pod pp_hot.c sv.c
+ ! toke.c util.c vms/perly_c.vms x2p/hash.c
+____________________________________________________________________________
+[ 465] By: mbeattie on 1998/02/06 15:46:35
+ Log: More Chip patches (tweaked for _5x). The final one mentioned here
+ (@ARGV with -i) actually went in at change 462 but I failed to
+ add it to the change description:
+ Subject: [PATCH] Fix typo: "FORM{,AT}LINE"
+ Date: Sun, 11 Jan 1998 19:37:17 -0500 (EST)
+ Subject: [PATCH] Fix for C<@x = my @y>
+ Date: Sun, 11 Jan 1998 18:12:16 -0500 (EST)
+ Subject: [PATCH] Fix SEGV on C<*glob{SCALAR,ARRAY}>
+ Date: Thu, 5 Feb 1998 21:30:13 -0500 (EST)
+ Subject: [PATCH] Allow last() to mean last
+ Date: Thu, 5 Feb 1998 21:42:57 -0500 (EST)
+ Subject: [PATCH] Consider @ARGV to be plain files if inplace (-i)
+ Date: Wed, 4 Feb 1998 16:04:47 -0500 (EST)
+ Branch: perl
+ ! op.c perly.c perly.h perly.y sv.c t/op/my.t vms/perly_c.vms
+ ! vms/perly_h.vms
+____________________________________________________________________________
+[ 464] By: mbeattie on 1998/02/06 15:06:18
+ Log: More Chip patches:
+ Subject: [PATCH] Fix SEGV from combining caller and C<package;>
+ Date: Thu, 5 Feb 1998 21:47:50 -0500 (EST)
+ Subject: [PATCH] Fix line numbers after here documents in eval STRING
+ Date: Thu, 5 Feb 1998 21:50:08 -0500 (EST)
+ Subject: [PATCH] Make recursive lexical analysis more robust
+ Date: Thu, 5 Feb 1998 21:57:02 -0500 (EST)
+ Branch: perl
+ ! pp_ctl.c sv.c toke.c
+____________________________________________________________________________
+[ 463] By: mbeattie on 1998/02/06 15:04:17
+ Log: Some more Chip patches (tweaked to match _5x):
+ Subject: [PATCH] Fix empty BLOCK
+ Date: Wed, 4 Feb 1998 16:52:28 -0500 (EST)
+ Subject: [PATCH] fix (\@@) proto
+ Date: Thu, 5 Feb 1998 10:24:29 -0500 (EST)
+ Subject: [PATCH] Cope with lack of args in Fcntl::AUTOLOAD
+ Date: Thu, 5 Feb 1998 21:26:55 -0500 (EST)
+ Subject: [PATCH] Don't fold string comparison under C<use locale>
+ Date: Thu, 5 Feb 1998 21:46:25 -0500 (EST)
+ Branch: perl
+ ! ext/Fcntl/Fcntl.pm op.c t/comp/proto.t toke.c
+____________________________________________________________________________
+[ 462] By: mbeattie on 1998/02/06 14:56:30
+ Log: Some Chip patches (some tweaked to match _5x source):
+ From: Chip Salzenberg <salzench@nielsenmedia.com>
+ Subject: [PATCH] local leakage
+ Date: Tue, 3 Feb 1998 09:16:50 -0500 (EST)
+ Subject: [PATCH] NULs in patterns
+ Date: Wed, 4 Feb 1998 01:33:51 -0500 (EST)
+ Subject: [PATCH] Configure on PerlIO
+ Date: Wed, 4 Feb 1998 01:38:43 -0500 (EST)
+ Subject: [PATCH] Avoid core dump on package alias
+ Date: Wed, 4 Feb 1998 15:38:42 -0500 (EST)
+ Subject: [PATCH] Fix name of $Foo::{'Bar::'}
+ Date: Wed, 4 Feb 1998 16:37:51 -0500 (EST)
+ Branch: perl
+ ! Configure doio.c gv.c op.c pp_ctl.c sv.c t/op/gv.t
+ ! t/op/local.t
+____________________________________________________________________________
+[ 461] By: gsar on 1998/02/04 03:34:36
+ Log: support win32_select(0,0,0,msec) (winsock doesn't)
+ Branch: win32/perl
+ ! win32/win32sck.c
+____________________________________________________________________________
+[ 460] By: gsar on 1998/02/04 00:44:47
+ Log: bug: win32_select() must StartSockets()
+ Branch: win32/perl
+ ! win32/win32sck.c
+
+----------------
+Version 5.004_57
+----------------
+
+____________________________________________________________________________
+[ 459] By: mbeattie on 1998/02/03 16:00:07
+ Log: Replaced two occurrences of THREADSV(find_thread_sv(...)) (order
+ of execution causes core dump if threadsvp is moved). Replaced
+ lvalue occurrence of AvARRAY(av) with SvPVX(av) (former does cast).
+ Branch: perl
+ ! av.c perl.c
+____________________________________________________________________________
+[ 458] By: mbeattie on 1998/02/03 14:40:02
+ Log: Fix up MANIFEST.
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 457] By: mbeattie on 1998/02/03 13:50:23
+ Log: Integrate win32 into mainline. My last integration from ansiperl
+ to the mainline was a dismal failure: I did -ay but meant -at.
+ This should fix things now since win32 has already integrated
+ all the necessary changes from ansiperl.
+ Branch: perl
+ !> (integrate 111 files)
+____________________________________________________________________________
+[ 456] By: gsar on 1998/02/03 04:48:08
+ Log: Fix minor problems with non USE_THREADS build. win32 branch
+ now looks 5.004_57-ready.
+ Branch: win32/perl
+ ! thread.h win32/makedef.pl
+____________________________________________________________________________
+[ 455] By: gsar on 1998/02/03 03:45:09
+ Log: integrate mainline
+ Branch: win32/perl
+ !> (integrate 887 files)
+____________________________________________________________________________
+[ 454] By: mbeattie on 1998/02/02 16:44:24
+ Log: The new dec_osf.sh didn't work so the new glibpth and useshrplib
+ defaults have been commented out for now.
+ Branch: perl
+ ! hints/dec_osf.sh
+____________________________________________________________________________
+[ 453] By: mbeattie on 1998/02/02 15:51:39
+ Log: Introduced thr->threadsvp and THREADSV() for faster per-thread
+ variables. Moved threadnum to a per-interpreter variable and
+ made dTHR and lock/unlock of sv_mutex bypass the get/lock unless
+ more than one thread may be running. Minor tweaks to Thread.xs.
+ Branch: perl
+ ! dosish.h embedvar.h ext/Thread/Thread.xs interp.sym intrpvar.h
+ ! op.c perl.c perl.h pp.c pp_ctl.c scope.c sv.c thrdvar.h
+ ! thread.h util.c
+____________________________________________________________________________
+[ 452] By: gsar on 1998/02/02 04:56:50
+ Log: remove totally egregious s/\\dir// in File::Find
+ Branch: win32/perl
+ ! lib/File/Find.pm
+____________________________________________________________________________
+[ 451] By: gsar on 1998/02/01 22:20:20
+ Log: added AS patch#3
+ Message-Id: <01BD2EF2.53433A40.dougl@ActiveState.com>
+ Date: Sun, 01 Feb 1998 09:18:13 PST
+ From: Douglas Lankshear <dougl@ActiveState.com>
+ To: "'Gurusamy Sarathy'" <gsar@umich.edu>
+
+ Here's an additional diff against //depot/asperl
+
+ The field name mg_length was changed back to mg_len
+ The function name mg_len was change to mg_length
+
+ The need for sort_mutex removed thanks to the code derived
+ from Tom Horsley's work.
+
+ -- Doug
+ Branch: asperl
+ + XSLock.h
+ ! ObjXSub.h XSUB.h av.c embedvar.h ext/DynaLoader/dlutils.c
+ ! globals.c ipstdio.h mg.c mg.h objpp.h perl.c perl.h perlio.h
+ ! perlvars.h perly.c pp.c pp_ctl.c pp_hot.c proto.h regexec.c
+ ! scope.c scope.h sv.c toke.c universal.c util.c
+ ! win32/dl_win32.xs win32/iplio.c win32/ipstdio.c
+ ! win32/perlobj.def win32/runperl.c
+____________________________________________________________________________
+[ 450] By: gsar on 1998/01/30 23:43:57
+ Log: various tweaks
+ - add new functions to proto.h
+ - fix up makefile.mk for $(OBJECT)
+ Branch: asperl
+ ! pp_ctl.c proto.h win32/makefile.mk
+____________________________________________________________________________
+[ 449] By: gsar on 1998/01/30 21:23:15
+ Log: fix up missing patches from AS patch#2
+ Branch: asperl
+ ! perldir.h perlenv.h perllio.h perlmem.h perlproc.h perlsock.h
+ ! pp_ctl.c proto.h
+____________________________________________________________________________
+[ 448] By: gsar on 1998/01/30 18:23:17
+ Log: fix htonlx typo
+ Branch: win32/perl
+ ! perlsock.h
+____________________________________________________________________________
+[ 447] By: mbeattie on 1998/01/30 16:03:49
+ Log: Fix up MANIFEST to add missing files
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 446] By: mbeattie on 1998/01/30 12:34:55
+ Log: Bump patchlevel to 57.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 445] By: gsar on 1998/01/30 10:44:38
+ Log: initial merge of latest win32 branch into ASPerl
+ Branch: asperl
+ +> lib/Tie/Array.pm pod/perlhist.pod t/lib/tie-push.t
+ +> t/lib/tie-stdarray.t t/lib/tie-stdpush.t t/op/tiearray.t
+ +> win32/bin/perlglob.pl
+ !> (integrate 141 files)
+____________________________________________________________________________
+[ 444] By: gsar on 1998/01/30 09:25:58
+ Log: goofed branching, redo asperl branch
+ Branch: asperl
+ ! perl.h
+____________________________________________________________________________
+[ 443] By: gsar on 1998/01/30 09:23:36
+ Log: added AS patch#2
+ Branch: asperl
+ + ObjXSub.h ipdir.h ipenv.h iplio.h ipmem.h ipproc.h ipsock.h
+ + ipstdio.h objpp.h win32/ipdir.c win32/ipenv.c win32/iplio.c
+ + win32/ipmem.c win32/ipproc.c win32/ipsock.c win32/ipstdio.c
+ + win32/ipstdiowin.h win32/perlobj.def
+ ! EXTERN.h XSUB.h cv.h doio.c dosish.h dump.c embedvar.h
+ ! globals.c gv.c hv.c intrpvar.h malloc.c mg.c mg.h op.c op.h
+ ! opcode.h perl.c perl.h perldir.h perlenv.h perlio.h perllio.h
+ ! perlmem.h perlproc.h perlsock.h perlvars.h perly.c pp.c pp.h
+ ! pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c regcomp.h
+ ! regexec.c run.c scope.c scope.h sv.c sv.h thread.h toke.c
+ ! universal.c util.c vms/vms.c win32/Makefile win32/config_H.bc
+ ! win32/config_H.vc win32/dl_win32.xs win32/include/sys/socket.h
+ ! win32/makedef.pl win32/runperl.c win32/win32iop.h
+____________________________________________________________________________
+[ 441] By: gsar on 1998/01/30 08:54:19
+ Log: Created new branch from win32@396, added AS patch#1
+ Branch: asperl
+ + doio.c malloc.c perl.c perl.h perldir.h perlenv.h perllio.h
+ + perlmem.h perlproc.h perlsock.h pp.c pp_hot.c pp_sys.c
+ + regcomp.c scope.h sv.c toke.c util.c
+ +> (branch 915 files)
+____________________________________________________________________________
+[ 440] By: gsar on 1998/01/30 04:43:23
+ Log: integrate winansi
+ Branch: win32/perl
+ +> pod/perlhist.pod
+ !> MANIFEST av.c hv.c op.c perlsock.h pp_ctl.c pp_sys.c scope.c
+ !> util.c
+____________________________________________________________________________
+[ 439] By: mbeattie on 1998/01/27 15:31:53
+ Log: Integrate ansi branch into mainline (resolve -ay).
+ Branch: perl
+ +> lib/Tie/Array.pm perldir.h perlenv.h perllio.h perlmem.h
+ +> perlproc.h perlsock.h pod/perlhist.pod t/lib/tie-push.t
+ +> t/lib/tie-stdarray.t t/lib/tie-stdpush.t t/op/tiearray.t
+ +> win32/bin/perlglob.pl
+ ! op.c
+ !> (integrate 868 files)
+____________________________________________________________________________
+[ 438] By: nick on 1998/01/24 12:02:34
+ Log: Gisle's av_unshift tweak, two small patches from chip
+ and check for NULL in hv_delete in case '~' and tie magic
+ are present
+ Branch: ansiperl
+ ! av.c hv.c op.c pp_ctl.c scope.c
+____________________________________________________________________________
+[ 437] By: nick on 1998/01/24 10:37:56
+ Log: Get PerlXxx_yyyy() macro stuff to _compile_ on Solaris.
+ Ugh! ...
+ Macros were unsuitable for declaring the functions, extra () round
+ parameters removed - non-function forms of PerlXxx_yyyy() need to
+ add () themselves.
+ Need to include perlmem.h in util.c (at least) if not using Perl's malloc.
+ Branch: ansiperl
+ ! perlsock.h pp_sys.c util.c
+____________________________________________________________________________
+[ 436] By: nick on 1998/01/24 10:03:03
+ Log: Integrate win32 into ansiperl
+ Branch: ansiperl
+ +> perldir.h perlenv.h perllio.h perlmem.h perlproc.h perlsock.h
+ +> win32/bin/perlglob.pl
+ !> (integrate 38 files)
+____________________________________________________________________________
+[ 435] By: nick on 1998/01/24 09:47:49
+ Log: Add perlhist.pod
+ Branch: ansiperl
+ + pod/perlhist.pod
+ ! MANIFEST
+____________________________________________________________________________
+[ 434] By: gsar on 1998/01/19 05:01:47
+ Log: s/PerlENV/PerlEnv/ just to be consistent
+ Branch: win32/perl
+ ! malloc.c perl.c perlenv.h regcomp.c toke.c util.c
+____________________________________________________________________________
+[ 433] By: gsar on 1998/01/19 04:52:18
+ Log: foo() -> PerlGroup_foo() patch from ActiveState
+ Branch: win32/perl
+ + perldir.h perlenv.h perllio.h perlmem.h perlproc.h perlsock.h
+ ! doio.c malloc.c perl.c perl.h pp.c pp_hot.c pp_sys.c regcomp.c
+ ! scope.h sv.c toke.c util.c
+____________________________________________________________________________
+[ 432] By: gsar on 1998/01/19 04:42:26
+ Log: integrate mainline
+ Branch: win32/perl
+ !> pod/perlfunc.pod
+____________________________________________________________________________
+[ 431] By: gsar on 1998/01/19 04:40:04
+ Log: integrate changes in winansi
+ Branch: win32/perl
+ +> lib/Tie/Array.pm t/lib/tie-push.t t/lib/tie-stdarray.t
+ +> t/lib/tie-stdpush.t t/op/tiearray.t
+ !> (integrate 98 files)
+____________________________________________________________________________
+[ 430] By: gsar on 1998/01/19 04:10:43
+ Log: Fix autovivification problems with XSUB OUTPUT args
+ Message-Id: <199801190409.XAA26710@aatma.engin.umich.edu>
+ Date: Sun, 18 Jan 1998 23:09:07 EST
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Subject: [PATCH] XSUB OUTPUT arguments and 'set' magic
+ Branch: win32/perl
+ ! ext/GDBM_File/typemap ext/NDBM_File/typemap
+ ! ext/ODBM_File/typemap ext/SDBM_File/typemap
+ ! lib/ExtUtils/typemap os2/OS2/PrfDB/typemap pod/perlguts.pod
+ ! pod/perlxs.pod pod/perlxstut.pod sv.c sv.h win32/win32.h
+____________________________________________________________________________
+[ 429] By: nick on 1998/01/17 21:01:50
+ Log: Subject: [PATCH] 5.004_56 threaded and "CONFIG key 'exe_ext' does not exist in Config.pm"
+ Date: Thu, 25 Dec 1997 13:39:15 -0500
+ From: Spider Boardman <spider@Orb.Nashua.NH.US>
+ To: perl5-porters@perl.org
+
+ It turns out that the potential for the "CONFIG key 'exe_ext'
+ does not exist in Config.pm" problem has been around for a while,
+ in the definition of SvTRUE(). It's just that non-gcc compilers
+ are more or less being built as CRIPPLED_CC when USE_THREADS is
+ defined (even if they can inline things). The inline macro for
+ SvTRUE works with tied hashes and the EXISTS method, and the
+ functional version (sv_true in 5.004_56, or SvTRUE in 5.004_04)
+ does not, because it adds an excess mg_get() which replaces the
+ EXISTS result with a FETCH result.
+ Branch: ansiperl
+ ! sv.c
+____________________________________________________________________________
+[ 428] By: nick on 1998/01/17 20:59:11
+ Log: From: Robin Barker <rmb1@cise.npl.co.uk>
+ Date: Fri, 19 Dec 97 17:19:09 GMT
+ Message-Id: <26260.9712191719@lightning.cise.npl.co.uk>
+ Branch: ansiperl
+ ! doio.c sv.c toke.c util.c
+____________________________________________________________________________
+[ 427] By: nick on 1998/01/17 12:01:53
+ Log: Permit tie ?foo,$object
+ tidy up dead #ifdef ORIGINAL_TIE)
+ Remove 'P' magic from hash, before adding new one in dbm_open like tie does.
+ Branch: ansiperl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 426] By: nick on 1998/01/15 18:06:36
+ Log: First working TIEARRAY and other misc tie fixes
+ Branch: ansiperl
+ ! MANIFEST pp.c pp_hot.c t/op/tiearray.t
+____________________________________________________________________________
+[ 425] By: nick on 1998/01/14 21:56:40
+ Log: Not working yet - split problems ...
+ Branch: ansiperl
+ ! pp.c t/lib/thread.t t/op/tiearray.t
+____________________________________________________________________________
+[ 424] By: nick on 1998/01/14 18:49:25
+ Log: TIEARRAY updates - almost works ...
+ Branch: ansiperl
+ + t/lib/tie-push.t t/lib/tie-stdarray.t t/lib/tie-stdpush.t
+ ! MANIFEST av.c av.h ext/DB_File/DB_File.pm lib/Tie/Array.pm
+ ! mg.c pod/perltie.pod pp.c pp_hot.c pp_sys.c scope.c
+ ! t/op/avhv.t t/op/push.t t/op/tiearray.t
+____________________________________________________________________________
+[ 423] By: gsar on 1998/01/14 00:13:16
+ Log: fix MakeMaker installbin problem
+ Message-Id: <199801070016.TAA17766@aatma.engin.umich.edu>
+ Subject: Re: can't modify message with HTML-Stream, v.1.42
+ Date: Tue, 06 Jan 1998 19:16:35 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: win32/perl
+ ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 422] By: gsar on 1998/01/13 23:53:02
+ Log: add archname to *sitearch in config.{b,g,v}c
+ Branch: win32/perl
+ ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 421] By: gsar on 1998/01/13 23:15:14
+ Log: set $ENV{PERL5LIB} in t/harness (so child perlglob.bat sees it)
+ Branch: win32/perl
+ ! t/harness
+____________________________________________________________________________
+[ 420] By: nick on 1998/01/13 22:55:02
+ Log: tiearray tweaks
+ Branch: ansiperl
+ ! av.c pp_sys.c t/op/nothread.t t/op/tiearray.t
+____________________________________________________________________________
+[ 419] By: nick on 1998/01/13 21:27:33
+ Log: Skeleton Tie::Array
+ Branch: ansiperl
+ + lib/Tie/Array.pm
+____________________________________________________________________________
+[ 418] By: nick on 1998/01/13 20:52:38
+ Log: tie array changes to core and tests
+ Branch: ansiperl
+ + t/op/tiearray.t
+ ! MANIFEST av.c av.h deb.c embed.h ext/DB_File/DB_File.pm
+ ! global.sym gv.c mg.c op.c perl.c perl.h pp.c pp.h pp_ctl.c
+ ! pp_hot.c proto.h sv.c toke.c universal.c util.c
+____________________________________________________________________________
+[ 417] By: gsar on 1998/01/13 20:49:52
+ Log: fix perlglob.bat warnings by splitting it from File::DosGlob
+ Branch: win32/perl
+ + win32/bin/perlglob.pl
+ ! MANIFEST README.win32 lib/File/DosGlob.pm win32/Makefile
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 416] By: gsar on 1998/01/13 02:46:53
+ Log: various tweaks to build support (NOTE: meant for 5.004_57)
+ - build and install x2p
+ - fix installperl warnings on win32
+ - `make install` now does puts the archlibs in right places
+ - makefiles don't default to USE_THREADS anymore
+ - sync config.{b,g,v}c
+ - sync makefile.mk -> Makefile
+ Branch: win32/perl
+ ! installperl win32/Makefile win32/config.bc win32/config.gc
+ ! win32/config.vc win32/config_sh.PL win32/makefile.mk x2p/a2p.h
+ ! x2p/a2py.c
+____________________________________________________________________________
+[ 415] By: nick on 1998/01/11 16:54:26
+ Log: Integrate win32 into ansiperl
+ Branch: ansiperl
+ !> Configure hints/dec_osf.sh hv.c lib/Getopt/Long.pm lib/blib.pm
+ !> lib/newgetopt.pl perl.h perl_exp.SH pp_ctl.c pp_hot.c pp_sys.c
+ !> proto.h regcomp.h regexec.c t/op/re_tests t/pragma/locale.t
+ !> utils/perldoc.PL vms/config.vms vms/descrip.mms
+ !> vms/gen_shrfls.pl vms/genconfig.pl vms/perly_c.vms vms/vms.c
+ !> vms/vmsish.h x2p/s2p.PL
+____________________________________________________________________________
+[ 414] By: nick on 1998/01/11 15:13:49
+ Log: Integratye mainline -> ansiperl
+ Branch: ansiperl
+ !> (integrate 64 files)
+____________________________________________________________________________
+[ 413] By: mbeattie on 1998/01/09 12:57:58
+ Log: Add missing blank line in pod/perlfunc.pod.
+ Branch: perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 412] By: gsar on 1998/01/08 20:54:31
+ Log: change#398 breaks ENV_IS_CASELESS, fix it
+ Branch: win32/perl
+ ! hv.c
+____________________________________________________________________________
+[ 411] By: gsar on 1998/01/08 18:33:58
+ Log: Integrate mainline
+ Branch: win32/perl
+ !> Configure hints/dec_osf.sh hv.c lib/Getopt/Long.pm lib/blib.pm
+ !> lib/newgetopt.pl perl.h perl_exp.SH pp_ctl.c pp_hot.c pp_sys.c
+ !> proto.h regcomp.h regexec.c t/op/re_tests t/pragma/locale.t
+ !> utils/perldoc.PL vms/config.vms vms/descrip.mms
+ !> vms/gen_shrfls.pl vms/genconfig.pl vms/perly_c.vms vms/vms.c
+ !> vms/vmsish.h x2p/s2p.PL
+____________________________________________________________________________
+[ 410] By: mbeattie on 1998/01/08 16:06:22
+ Log: Fix thinko in t/pragma/locale.t:
+ Subject: [PATCH] _04 or _56: locale.t
+ Date: Sun, 4 Jan 1998 23:48:44 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! t/pragma/locale.t
+____________________________________________________________________________
+[ 409] By: mbeattie on 1998/01/08 16:05:09
+ Log: Use Tom Horley's qsort for sorting:
+ Subject: Re: [PATCH for 5.004_56] Re: op/sort.t hangs under Solaris 2.5
+ Date: Fri, 02 Jan 1998 19:33:24 -0500 (EST)
+ From: Hans Mulder <hansm@icgned.nl>
+ Branch: perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 408] By: mbeattie on 1998/01/08 16:01:57
+ Log: Make s2p not use cpp:
+ Subject: [PATCH for 5.004_56] s2p shouldn't use cpp
+ Date: Mon, 29 Dec 1997 19:38:18 -0500 (EST)
+ From: Hans Mulder <hansm@icgned.nl>
+ Branch: perl
+ ! x2p/s2p.PL
+____________________________________________________________________________
+[ 407] By: mbeattie on 1998/01/08 15:57:31
+ Log: DG/UX tweaks to perl.h:
+ Subject: [PATCH] _56 on dgux without threads
+ Date: Sat, 20 Dec 1997 23:01:40 -0500
+ From: Roderick Schertler <roderick@argon.org>
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 406] By: mbeattie on 1998/01/08 15:56:02
+ Log: Configure and hints/dec_osf.sh changes for Digital UNIX:
+ Subject: [PATCH] perl5.004_56 NOT OK on alpha-dec_osf-thread (Digital UNIX X5.0-13)
+ Date: Sat, 20 Dec 1997 02:30:01 -0500
+ From: Spider Boardman <spider@web.zk3.dec.com>
+ Branch: perl
+ ! Configure hints/dec_osf.sh
+____________________________________________________________________________
+[ 405] By: mbeattie on 1998/01/08 15:53:40
+ Log: Missing "" in Configure echo for gethbadd_addr_type.
+ Branch: perl
+ ! Configure
+____________________________________________________________________________
+[ 404] By: mbeattie on 1998/01/08 13:04:48
+ Log: print/printf/... over-eager mg_find for glob magic:
+ Subject: [PATCH] fix inefficient checks for TIEHANDLE
+ Date: Wed, 07 Jan 1998 20:06:05 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: perl
+ ! pp_hot.c pp_sys.c
+____________________________________________________________________________
+[ 403] By: mbeattie on 1998/01/08 12:56:31
+ Log: Assorted VMS patches (mostly VMS makefile update for new headers):
+ Subject: [PATCH] VMS update for 5.004_56
+ Date: Sat, 03 Jan 1998 03:54:29 -0500 (EST)
+ From: Charles Bailey <bailey@newman.upenn.edu>
+ Branch: perl
+ ! lib/blib.pm proto.h regcomp.h vms/config.vms vms/descrip.mms
+ ! vms/gen_shrfls.pl vms/genconfig.pl vms/perly_c.vms vms/vms.c
+ ! vms/vmsish.h
+____________________________________________________________________________
+[ 402] By: mbeattie on 1998/01/08 12:46:15
+ Log: Fix utils/perldoc.PL for dos-djgpp:
+ Subject: 5.004_56: perldoc.PL dos-djgpp patches
+ Date: Tue, 6 Jan 1998 18:14:59 +0100
+ From: Molnar Laszlo <molnarl@cdata.tvnet.hu>
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 401] By: mbeattie on 1998/01/08 12:40:14
+ Log: Version 2.13 of GetoptLong:
+ Subject: Re: ANNOUNCE: perl 5.004_56 is available
+ Date: 06 Jan 1998 16:21:45 +0100
+ From: JVromans@Squirrel.nl (Johan Vromans)
+ Branch: perl
+ ! lib/Getopt/Long.pm lib/newgetopt.pl
+____________________________________________________________________________
+[ 400] By: mbeattie on 1998/01/08 12:28:08
+ Log: Fix variable export and threading configuration for AIX:
+ Subject: [PATCH] 5.004_56: AIX 4.1.5.0: sans et avec threads
+ Date: Tue, 23 Dec 1997 15:39:12 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! Configure perl_exp.SH
+____________________________________________________________________________
+[ 399] By: mbeattie on 1998/01/08 12:25:38
+ Log: Regexp fix: (?>a+)b doesn't match aaab:
+ Subject: Re: Regexp [PATCH] 5.004_56 (?>...)
+ Date: Fri, 19 Dec 1997 16:02:50 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[ 398] By: mbeattie on 1998/01/08 12:23:41
+ Log: Fix hv_delete for 'm'-magic. Based on following patch, modified
+ to cope with ENV_IS_CASELESS:
+ Subject: [perl5.004_56] [PATCH] hv_delete and 'm' magic
+ Date: Fri, 19 Dec 1997 11:31:36 -0500
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: perl
+ ! hv.c
+____________________________________________________________________________
+[ 397] By: mbeattie on 1998/01/08 12:10:29
+ Log: Integrate win32 branch into mainline.
+ Branch: perl
+ !> (integrate 41 files)
+____________________________________________________________________________
+[ 396] By: gsar on 1998/01/07 19:12:27
+ Log: tweak case-insensitive ENV implementation
+ Branch: win32/perl
+ ! hv.c
+____________________________________________________________________________
+[ 395] By: nick on 1998/01/07 18:40:55
+ Log: Integrate win32 branch
+ Branch: ansiperl
+ !> (integrate 31 files)
+____________________________________________________________________________
+[ 394] By: gsar on 1998/01/05 19:17:40
+ Log: Allow $ENV{PERL5SHELL} to contain switches etc., and document
+ the fact
+ Branch: win32/perl
+ ! pod/perlrun.pod win32/win32.c
+____________________________________________________________________________
+[ 393] By: gsar on 1998/01/05 05:43:33
+ Log: Support case-tolerant %ENV
+ - underlying system calls see the case-as-supplied by user
+ - added tests to verify addition/deletion/enumeration case-tolerance
+ - hv.c touched, but changes are fully conditional on -DENV_IS_CASELESS,
+ which is default on win32 now
+ Branch: win32/perl
+ ! hv.c t/op/magic.t win32/win32.h
+____________________________________________________________________________
+[ 392] By: gsar on 1998/01/04 17:55:19
+ Log: Add a tweaked version of:
+ Message-Id: <199801040630.AA29298@metronet.com>
+ Date: Sun, 04 Jan 1998 00:30:57 CST
+ From: Tye McQueen <tye@metronet.com>
+ Subject: New patch for $^E==GetLastError() under Win32
+ Branch: win32/perl
+ ! doio.c lib/dumpvar.pl lib/perl5db.pl mg.c perl.h
+ ! pod/perlfunc.pod pod/perlvar.pod util.c win32/makedef.pl
+ ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 391] By: gsar on 1998/01/04 07:59:44
+ Log: Various win32 fixes
+ - support spawn via system(&P_NOWAIT,...) like OS2
+ - support wait() and waitpid()
+ - s/GetCurrentDirectory/GetCwd/, long-named XS to be removed
+ - support -lfoo properly in ExtUtils::Liblist
+ - fix outdated info about Win32 support in perlfaq2
+ - fix win32 bug in perldoc that causes spurious warnings
+ - regularize global function/variable names yet more
+ - fix bug in do_aspawn() (it was always invoking shell, instead of
+ almost never)
+ - implement and export win32_wait()
+ - stub version of USE_RTL_THREAD_API
+ Branch: win32/perl
+ ! README.win32 dosish.h lib/Cwd.pm lib/ExtUtils/Liblist.pm
+ ! pod/perlfaq2.pod pp_sys.c util.c utils/perldoc.PL
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/config_h.PL win32/perllib.c win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32sck.c win32/win32thread.c
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 390] By: gsar on 1997/12/30 21:00:28
+ Log: Fix $ENV{Path} in FindBin.pm
+ Branch: win32/perl
+ ! lib/FindBin.pm
+____________________________________________________________________________
+[ 389] By: nick on 1997/12/29 10:33:23
+ Log: Resolve ansiperl against win32
+ Branch: ansiperl
+ !> (integrate 105 files)
+____________________________________________________________________________
+[ 388] By: gsar on 1997/12/24 04:59:28
+ Log: make $? Unix (and ActiveWare) compatible
+ Branch: win32/perl
+ ! README.win32 win32/win32.c
+____________________________________________________________________________
+[ 387] By: gsar on 1997/12/24 04:21:30
+ Log: support ioctl() on sockets (does what ioctlsocket() does) to make
+ non-blocking IO on sockets possible
+ Branch: win32/perl
+ ! README.win32 dosish.h win32/makedef.pl win32/win32.c
+ ! win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 386] By: gsar on 1997/12/24 03:10:55
+ Log: support getlogin()
+ Branch: win32/perl
+ ! README.win32 win32/config.bc win32/config.gc win32/config.vc
+ ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+ ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 385] By: gsar on 1997/12/24 02:24:59
+ Log: add support for crypt() via user-supplied des_fcrypt() source or library.
+ Update README.win32.
+ Branch: win32/perl
+ ! README.win32 perl.h win32/Makefile win32/makedef.pl
+ ! win32/makefile.mk win32/win32.c win32/win32.h win32/win32iop.h
+____________________________________________________________________________
+[ 384] By: gsar on 1997/12/24 02:22:42
+ Log: tweak op.c to avoid warning
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 383] By: gsar on 1997/12/23 21:12:42
+ Log: Trivial bugfix#3 from local repository
+ Message-Id: <199712061100.GAA14864@aatma.engin.umich.edu>
+ Subject: Re: Assigning result of pop scrambles unrelated reference
+ Date: Sat, 06 Dec 1997 06:00:45 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: win32/perl
+ ! sv.c
+____________________________________________________________________________
+[ 382] By: gsar on 1997/12/23 21:09:32
+ Log: Trivial bugfix#2 from local repository
+ Message-Id: <199712061025.FAA14396@aatma.engin.umich.edu>
+ Subject: Re: eval of sub gives spurious "uninitialised" warning
+ Date: Sat, 06 Dec 1997 05:25:07 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: win32/perl
+ ! op.c pod/perldelta.pod pod/perlfunc.pod t/op/eval.t
+____________________________________________________________________________
+[ 381] By: gsar on 1997/12/23 21:01:04
+ Log: Trivial bugfix#1 from local repository
+ Message-Id: <199711282326.SAA15090@aatma.engin.umich.edu>
+ Subject: [PATCH] Re: [5.004_04 BUG] bless broke scoping?
+ Date: Fri, 28 Nov 1997 18:26:52 -0500
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Branch: win32/perl
+ ! scope.c
+____________________________________________________________________________
+[ 380] By: gsar on 1997/12/18 15:10:23
+ Log: Integrate mainline
+ Branch: win32/perl
+ +> README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+ +> djgpp/djgppsed.sh djgpp/fixpmain hints/dos_djgpp.sh
+ +> os2/os2.sym os2/os2thread.h
+ !> (integrate 77 files)
+
+----------------
+Version 5.004_56
+----------------
+
+____________________________________________________________________________
+[ 379] By: mbeattie on 1997/12/18 13:28:35
+ Log: Integrate ansi @364,@366 into mainline.
+ Branch: perl
+ !> lib/ExtUtils/MakeMaker.pm miniperlmain.c perl.h
+____________________________________________________________________________
+[ 378] By: mbeattie on 1997/12/18 13:20:15
+ Log: Add a few missing files to MANIFEST
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 377] By: mbeattie on 1997/12/18 13:00:16
+ Log: Bump patchlevel to 56.
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 376] By: nick on 1997/12/18 01:32:12
+ Log: Resolve against mainline
+ Branch: ansiperl
+ +> README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+ +> djgpp/djgppsed.sh djgpp/fixpmain hints/dos_djgpp.sh
+ +> os2/os2.sym os2/os2thread.h
+ !> (integrate 74 files)
+____________________________________________________________________________
+[ 375] By: nick on 1997/12/18 01:06:15
+ Log: Resolve against Win32
+ Branch: ansiperl
+ !> Configure README.threads config_h.SH doop.c embed.h
+ !> ext/DynaLoader/dl_aix.xs global.sym hints/aix.sh
+ !> hints/irix_6.sh op.c op.h perl.h perlvars.h pp_hot.c pp_sys.c
+ !> sv.c sv.h thread.h util.c
+____________________________________________________________________________
+[ 374] By: mbeattie on 1997/12/17 14:44:26
+ Log: Lots of VMS changes. vms/gen_shrfls.pl (which parses header files)
+ needs rewriting now that we use perlvars.h and foovar.h:
+ Subject: [PATCH] 5.004_54 under VMS (fwd)
+ Date: Wed, 26 Nov 1997 12:32:09 -0400 (EDT)
+ From: Charles Bailey <BAILEY@newman.upenn.edu>
+ Branch: perl
+ ! dosish.h handy.h intrpvar.h os2/os2ish.h perl.c perl.h
+ ! plan9/plan9ish.h pp.c proto.h sv.c t/lib/thread.t
+ ! t/lib/timelocal.t t/op/nothread.t taint.c thrdvar.h toke.c
+ ! unixish.h vms/config.vms vms/descrip.mms vms/fndvers.com
+ ! vms/gen_shrfls.pl vms/genconfig.pl vms/perly_c.vms
+ ! vms/test.com vms/vms.c vms/vms_yfix.pl vms/vmsish.h
+____________________________________________________________________________
+[ 373] By: mbeattie on 1997/12/17 14:10:50
+ Log: Major changes to the DOS/djgpp port (including threading):
+ Subject: Re: dos-djgpp port not in perl 5.004_54
+ Date: Fri, 21 Nov 1997 10:58:26 +0100
+ From: Molnar Laszlo <molnarl@cdata.tvnet.hu>
+ Branch: perl
+ + README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+ + djgpp/djgppsed.sh djgpp/fixpmain hints/dos_djgpp.sh
+ ! Configure MANIFEST Makefile.SH doio.c dosish.h
+ ! ext/POSIX/POSIX.xs installhtml installperl lib/AutoSplit.pm
+ ! lib/Cwd.pm lib/ExtUtils/Install.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/ExtUtils/Manifest.pm lib/File/Basename.pm lib/File/Find.pm
+ ! lib/File/Path.pm lib/FindBin.pm lib/Pod/Html.pm
+ ! lib/Pod/Text.pm lib/Term/Cap.pm lib/perl5db.pl makedepend.SH
+ ! mg.c perl.c pod/pod2man.PL pp_hot.c t/io/fs.t t/lib/anydbm.t
+ ! t/lib/filehand.t t/lib/gdbm.t t/lib/io_sel.t t/lib/io_tell.t
+ ! t/lib/sdbm.t t/lib/thread.t t/op/magic.t t/op/stat.t
+ ! t/op/sysio.t t/op/taint.t utils/perldoc.PL
+____________________________________________________________________________
+[ 372] By: mbeattie on 1997/12/17 13:18:34
+ Log: Upgrade DB_File to 1.56:
+ Subject: DB_File-1.56 for _55
+ Date: Tue, 16 Dec 1997 22:25:29 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ ! Configure ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs
+ ! ext/DB_File/Makefile.PL ext/DB_File/typemap t/lib/db-btree.t
+____________________________________________________________________________
+[ 371] By: mbeattie on 1997/12/17 12:02:03
+ Log: Threading patches for OS/2 (missing files taken from previous patch):
+ Subject: Re: 5.004_55: OS/2 patches again
+ Date: Sat, 13 Dec 1997 18:09:15 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ + os2/os2.sym os2/os2thread.h
+ ! MANIFEST hints/os2.sh os2/Changes os2/Makefile.SHs
+ ! os2/OS2/PrfDB/PrfDB.xs os2/OS2/REXX/REXX.xs os2/os2.c
+ ! os2/os2ish.h perl.h
+____________________________________________________________________________
+[ 370] By: mbeattie on 1997/12/17 11:01:34
+ Log: Add OS2 to list for DONT_DECLARE_STD in perl.h:
+ Subject: Re: 5.004_55: OS/2 patches again
+ Date: Sat, 13 Dec 1997 18:05:55 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 369] By: mbeattie on 1997/12/17 10:59:40
+ Log: Fix typo in compiler B/C.pm.
+ Branch: perlext
+ ! Compiler/B/C.pm
+____________________________________________________________________________
+[ 368] By: mbeattie on 1997/12/17 10:58:35
+ Log: Allow "perldoc -F filename":
+ Subject: 5.004_55: Patch to perldoc
+ Date: Thu, 11 Dec 1997 19:37:00 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! utils/perldoc.PL
+____________________________________________________________________________
+[ 367] By: mbeattie on 1997/12/17 10:54:47
+ Log: Fix not-reached warning for pp_threadsv.
+ Branch: perl
+ ! pp.c
+____________________________________________________________________________
+[ 366] By: nick on 1997/12/14 16:06:24
+ Log: Fix typo in Ilya's patch :-(
+ Branch: ansiperl
+ ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[ 365] By: nick on 1997/12/14 15:30:25
+ Log: #undef new PERLVARIC macro in appropriate places
+ Branch: ansiperl
+ ! miniperlmain.c perl.h
+____________________________________________________________________________
+[ 364] By: nick on 1997/12/14 15:04:36
+ Log: Ilya's MakeMaker (empty makefile) patch
+ Branch: ansiperl
+ ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[ 363] By: gsar on 1997/12/13 05:57:13
+ Log: Integrate mainline. Builds and passes (Borland).
+ Branch: win32/perl
+ !> Configure README.threads config_h.SH doop.c embed.h
+ !> ext/DynaLoader/dl_aix.xs global.sym hints/aix.sh
+ !> hints/irix_6.sh op.c op.h perl.h perlvars.h pp_hot.c pp_sys.c
+ !> sv.c sv.h thread.h util.c
+____________________________________________________________________________
+[ 362] By: nick on 1997/12/13 02:53:03
+ Log: Resolve ansiperl against mainline
+ Branch: ansiperl
+ !> (integrate 92 files)
+____________________________________________________________________________
+[ 361] By: mbeattie on 1997/12/12 16:20:38
+ Log: pp_print and pp_prtf handling of tied file handles used EXTEND
+ instead of MEXTEND leading to core dumps. This fix needs
+ propagating back to the maintenance branch.
+ Branch: perl
+ ! pp_hot.c pp_sys.c
+____________________________________________________________________________
+[ 360] By: mbeattie on 1997/12/11 15:45:56
+ Log: Add missing patch to op.c that didn't come across with win32 merge.
+ Branch: perl
+ ! op.c
+____________________________________________________________________________
+[ 359] By: mbeattie on 1997/12/11 11:54:41
+ Log: Stop tr/// from writing to target when only counting.
+ Branch: perl
+ ! doop.c op.c op.h
+____________________________________________________________________________
+[ 358] By: mbeattie on 1997/12/10 18:36:26
+ Log: Fix char*/unsigned char* clashes in util.c:fbm_instr and remove
+ a few extraneous trailing semicolons in perlvars.h.
+ Branch: perl
+ ! perlvars.h util.c
+____________________________________________________________________________
+[ 357] By: mbeattie on 1997/12/10 18:33:53
+ Log: Start overhauling compiler. It was working at least minimally
+ right up until the final tweak of B.xs to add threadsv_names
+ at which point building it provokes a seg fault in perl while
+ doing the xsubpp :-(.
+ Branch: perl
+ ! op.h util.c
+ Branch: perlext
+ ! Compiler/B.pm Compiler/B.xs Compiler/B/Asmdata.pm
+ ! Compiler/B/C.pm Compiler/B/CC.pm Compiler/Makefile.PL
+ ! Compiler/bytecode.pl Compiler/byteperl.c Compiler/byterun.c
+ ! Compiler/byterun.h Compiler/cc_harness Compiler/cc_runtime.h
+ ! Compiler/ccop.c Compiler/ccop.h Compiler/test_harness
+ ! Compiler/test_harness_cc
+____________________________________________________________________________
+[ 356] By: mbeattie on 1997/12/10 13:43:32
+ Log: Fix perl_os_thread typedef for pthreads. Tweak SvTAINT so that
+ sv_setfoo functions go back to not needing dTHR. Fix Configure
+ to check for already-existing -thread on archname and to check
+ better for d_pthread_created_joinable.
+ Branch: perl
+ ! Configure perl.h sv.c sv.h thread.h
+____________________________________________________________________________
+[ 355] By: mbeattie on 1997/12/10 10:53:58
+ Log: Minor fix/speedup to util.c:fbm_instr:
+ Subject: 5.004_55: Minor regexp patch
+ Date: Fri, 5 Dec 1997 05:09:54 -0500 (EST)
+ From: Ilya Zakharevich <ilya@MATH.OHIO-STATE.EDU>
+ Branch: perl
+ ! util.c
+____________________________________________________________________________
+[ 354] By: mbeattie on 1997/12/10 10:41:25
+ Log: Patches for IRIX, AIX and some generic stuff:
+ Subject: [PATCH] _55: Mostly AIX stuff but also IRIX and generic
+ Date: Sat, 29 Nov 1997 08:35:30 -0800 (PST)
+ From: Jarkko Hietaniemi <jarkko.hietaniemi@research.nokia.com>
+ (checked/ignored a few rejects; tweaked wording).
+ Branch: perl
+ ! Configure README.threads config_h.SH embed.h
+ ! ext/DynaLoader/dl_aix.xs global.sym hints/aix.sh
+ ! hints/irix_6.sh
+____________________________________________________________________________
+[ 353] By: mbeattie on 1997/12/10 10:10:19
+ Log: Integrate win32 back into mainline (trivial).
+ Branch: perl
+ +> embedvar.h intrpvar.h perlvars.h thrdvar.h win32/config.gc
+ +> win32/config_H.gc
+ !> (integrate 36 files)
+____________________________________________________________________________
+[ 352] By: nick on 1997/12/09 17:36:45
+ Log: Resolve win32 - Sarathy's tweak.
+ Branch: ansiperl
+ !> win32/makedef.pl
+____________________________________________________________________________
+[ 351] By: gsar on 1997/12/08 06:13:04
+ Log: re-add PERLVARI?C? change that somehow went missing in makedef.pl
+ Branch: win32/perl
+ ! win32/makedef.pl
+____________________________________________________________________________
+[ 350] By: nick on 1997/12/05 00:56:03
+ Log: Resolve ansiperl against win32
+ Branch: ansiperl
+ - win32/makegcc.mk
+ !> embed.h embed.pl embedvar.h global.sym miniperlmain.c perl.h
+ !> perlvars.h win32/Makefile win32/config.gc win32/makedef.pl
+ !> win32/makefile.mk win32/perllib.c win32/win32.h
+____________________________________________________________________________
+[ 349] By: gsar on 1997/12/02 07:28:23
+ Log: Revert to keeping (some) constant strings as globals
+ Branch: win32/perl
+ ! embed.h embed.pl embedvar.h global.sym miniperlmain.c perl.h
+ ! perlvars.h win32/makedef.pl win32/perllib.c
+____________________________________________________________________________
+[ 348] By: gsar on 1997/12/02 05:38:06
+ Log: makegcc.mk merged into makefile.mk, so makegcc.mk is gone.
+ Other minor fixes. Now is a good time to get the changes in win32 branch.
+ Branch: win32/perl
+ - win32/makegcc.mk
+ ! win32/Makefile win32/config.gc win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[ 347] By: gsar on 1997/12/02 03:32:55
+ Log: Integrate winansi again. Result builds and passes all tests on all
+ three compilers.
+ Branch: win32/perl
+ !> lib/ExtUtils/MM_Win32.pm win32/config.gc win32/makefile.mk
+ !> win32/makegcc.mk win32/win32.h
+____________________________________________________________________________
+[ 346] By: gsar on 1997/12/02 03:28:23
+ Log: various hacks to get mingw32 to build. Sync Makefile with makefile.mk.
+ makegcc.mk to be merged into makefile.mk soon.
+ Branch: win32/perl
+ ! lib/ExtUtils/MM_Win32.pm win32/Makefile win32/config.gc
+ ! win32/makedef.pl win32/makefile.mk win32/makegcc.mk
+ ! win32/win32.h
+____________________________________________________________________________
+[ 345] By: nick on 1997/12/02 01:57:17
+ Log: Add a 4th step (yes FOUR) to dll build process for gcc.
+ Now runs again...
+ Branch: ansiperl
+ ! lib/ExtUtils/MM_Win32.pm
+____________________________________________________________________________
+[ 344] By: nick on 1997/12/02 01:11:16
+ Log: Sarathy's patch
+ Branch: ansiperl
+ ! lib/ExtUtils/MM_Win32.pm win32/config.gc win32/makefile.mk
+ ! win32/makegcc.mk win32/win32.h
+____________________________________________________________________________
+[ 343] By: gsar on 1997/12/01 04:37:06
+ Log: Reverse integrate to get all of Nick's changes over at winansi (win32/perl/*
+ is identical to ansiperl/* now)
+ Branch: win32/perl
+ +> embedvar.h intrpvar.h perlvars.h thrdvar.h
+ !> (integrate 34 files)
+____________________________________________________________________________
+[ 342] By: nick on 1997/12/01 04:01:57
+ Log: Builds and passes all tests with gcc on Win32 - phew!
+ Branch: ansiperl
+ ! embed.h embedvar.h ext/Opcode/Opcode.xs global.sym perl.h
+ ! proto.h util.c win32/makedef.pl
+____________________________________________________________________________
+[ 341] By: nick on 1997/12/01 02:54:29
+ Log: Create a struct for all perls globals (as an option)
+ Mainly for Mingw32 which cannot import data.
+ Now only Opcode tests fail (op_desc/op_name not
+ handled yet stuff)
+ Branch: ansiperl
+ ! EXTERN.h embed.h embed.pl embedvar.h ext/Thread/Thread.xs
+ ! global.sym miniperlmain.c perl.c perl.h perlvars.h pp_hot.c
+ ! proto.h run.c util.c win32/Makefile win32/makedef.pl
+ ! win32/makegcc.mk win32/perllib.c win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32thread.c
+____________________________________________________________________________
+[ 340] By: nick on 1997/11/30 20:21:10
+ Log: Fixup exports in non -DDEBUGGING case
+ Branch: ansiperl
+ ! win32/makedef.pl
+____________________________________________________________________________
+[ 339] By: nick on 1997/11/30 20:10:04
+ Log: Disable hard-coded -DDEBUGGING
+ Branch: ansiperl
+ ! win32/config_h.PL
+____________________________________________________________________________
+[ 338] By: nick on 1997/11/30 20:00:19
+ Log: embed.pl now reads *var*.h to do its stuff.
+ Split generated embed.h into two - new embedvar.h
+ is #included when 'op' etc. will not mess up proto.h etc.
+ Removed #define foo (thr->Tfoo) from thread.h
+ Added some 'missing' symbols to global.sym, removed
+ those in the *var*.h files
+ Has build all MULTIPLICITY/USE_THREADS options on win32
+ with VC++ (and passed tests), but not with exactly this set
+ of files.
+ Branch: ansiperl
+ + embedvar.h
+ ! embed.h embed.pl global.sym interp.sym intrpvar.h perl.h
+ ! perlvars.h regcomp.c thrdvar.h thread.h win32/Makefile
+ ! win32/makedef.pl
+____________________________________________________________________________
+[ 337] By: nick on 1997/11/29 23:55:31
+ Log: Globals and structs via macros - part 1 of N
+ - introduce perlvars.h intrpvar.h and thrdvar.h
+ - change perl.h and thread.h to include them with
+ appropriate macros defined
+ - result is status-quo but with macros
+ - next step is to tweak embed.* to capitalize on
+ new easy-to-find info.
+ Branch: ansiperl
+ + intrpvar.h perlvars.h thrdvar.h
+ ! perl.h thread.h win32/Makefile
+____________________________________________________________________________
+[ 336] By: nick on 1997/11/29 19:13:55
+ Log: VC++ default to threaded
+ Branch: ansiperl
+ ! win32/Makefile
+____________________________________________________________________________
+[ 335] By: nick on 1997/11/29 18:38:26
+ Log: Avoid __declspec(thread) by default, for both scratch
+ return areas and THR stuff. Use struct thread intern instead.
+ Branch: ansiperl
+ ! win32/win32.c win32/win32.h win32/win32sck.c
+ ! win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 334] By: nick on 1997/11/29 17:49:04
+ Log: Non-threaded build fix
+ Branch: ansiperl
+ ! win32/win32thread.c
+____________________________________________________________________________
+[ 333] By: nick on 1997/11/29 17:29:07
+ Log: Sort out malloc_mutex for perl's malloc
+ Remove BINCOMPAT3 from embed.pl
+ Add dependancy to CORE_H for PERL95_OBJ
+ Branch: ansiperl
+ ! dosish.h embed.h embed.pl global.sym perl.h win32/Makefile
+ ! win32/win32.c
+____________________________________________________________________________
+[ 332] By: nick on 1997/11/29 16:21:01
+ Log: Integrate win32 into ansiperl
+ Branch: ansiperl
+ !> README.threads hints/irix_6.sh lib/Test/Harness.pm
+ !> lib/perl5db.pl malloc.c miniperlmain.c perl.h sv.c t/TEST
+ !> t/lib/anydbm.t t/lib/db-btree.t t/lib/db-hash.t
+ !> t/lib/db-recno.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t
+ !> t/lib/safe2.t t/lib/sdbm.t t/op/pat.t t/op/taint.t
+ !> win32/perllib.c
+____________________________________________________________________________
+[ 331] By: nick on 1997/11/29 01:35:45
+ Log: GCC + Threads on Win32 - best gcc results yet
+ Branch: ansiperl
+ ! XSUB.h perl.h thread.h win32/makedef.pl win32/makegcc.mk
+ ! win32/win32.h win32/win32iop.h win32/win32thread.c
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 330] By: nick on 1997/11/28 23:05:08
+ Log: Un-botch gcc workround
+ Branch: ansiperl
+ ! XSUB.h
+____________________________________________________________________________
+[ 329] By: nick on 1997/11/28 22:39:39
+ Log: Builds completely with Mingw32, dynamic loaded extensions
+ don't work yet - suspect __declspec() non-implemented issues.
+ Branch: ansiperl
+ ! XSUB.h lib/ExtUtils/Command.pm lib/ExtUtils/MM_Win32.pm
+ ! lib/ExtUtils/Mksymlists.pm win32/config.gc win32/makegcc.mk
+ ! win32/runperl.c win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[ 328] By: gsar on 1997/11/28 05:48:15
+ Log: integrate winansi.
+ Branch: win32/perl
+ +> win32/config.gc win32/config_H.gc win32/makegcc.mk
+ ! perl.h
+ !> dosish.h hv.c win32/dl_win32.xs win32/include/sys/socket.h
+ !> win32/makedef.pl win32/makefile.mk win32/runperl.c
+ !> win32/win32.c win32/win32.h win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 327] By: gsar on 1997/11/28 05:38:48
+ Log: Integrate mainline.
+ Branch: win32/perl
+ !> README.threads hints/irix_6.sh lib/Test/Harness.pm
+ !> lib/perl5db.pl malloc.c miniperlmain.c sv.c t/TEST
+ !> t/lib/anydbm.t t/lib/db-btree.t t/lib/db-hash.t
+ !> t/lib/db-recno.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t
+ !> t/lib/safe2.t t/lib/sdbm.t t/op/pat.t t/op/taint.t
+ !> win32/perllib.c
+____________________________________________________________________________
+[ 326] By: nick on 1997/11/27 19:13:36
+ Log: GCC builds perl.dll and perl.exe on Win32
+ Branch: ansiperl
+ ! win32/makedef.pl win32/makegcc.mk
+____________________________________________________________________________
+[ 325] By: nick on 1997/11/27 17:46:30
+ Log: Add files and tweak others to get 'native' Mingw32 gcc port as
+ far as building miniperl and perl.dll (but not import lib yet)
+ Seems to lack popen()/pclose() and fcloseall() and fflushall().
+ Also only CRTDLL not MCRTDLL so threading is probably not
+ possible yet.
+ Had to mess with win32iop.h's placement as we need __attribute__
+ to get STDCALL, and #define of printf messes up proto.h
+ Branch: ansiperl
+ + win32/config.gc win32/config_H.gc win32/makegcc.mk
+ ! dosish.h perl.h win32/dl_win32.xs win32/include/sys/socket.h
+ ! win32/makefile.mk win32/runperl.c win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 324] By: mbeattie on 1997/11/27 17:08:06
+ Log: Give dire warnings about the IRIX 6.2 kernel panic.
+ Branch: perl
+ ! README.threads hints/irix_6.sh
+____________________________________________________________________________
+[ 323] By: mbeattie on 1997/11/27 16:57:33
+ Log: Fix prototypes of sv_vsetpvfn and sv_vcatpvfn:
+ Subject: Re: ANNOUNCE: perl 5.004_55 is available
+ Date: 27 Nov 1997 17:18:53 +0100
+ From: koenig@kulturbox.de (Andreas J. Koenig)
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 322] By: mbeattie on 1997/11/27 16:12:15
+ Log: Integrate win32 branch back into mainline.
+ Branch: perl
+ !> (integrate 42 files)
+____________________________________________________________________________
+[ 321] By: mbeattie on 1997/11/27 15:06:36
+ Log: Fix t/lib/safe2.t for SunOS 4.1.3:
+ Subject: Re: ANNOUNCE: perl 5.004_55 is available
+ Date: Thu, 27 Nov 1997 10:46:42 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ ! t/lib/safe2.t
+____________________________________________________________________________
+[ 320] By: mbeattie on 1997/11/27 15:02:59
+ Log: Fix MYMALLOC (wrong #define in malloc.c):
+ Subject: 5.004_55: MYMALLOC completely busted
+ Date: Thu, 27 Nov 1997 01:08:16 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! malloc.c
+____________________________________________________________________________
+[ 319] By: mbeattie on 1997/11/27 15:01:37
+ Log: Fix newSVrv so sv_setref_foo work better:
+ Subject: [PATCH] [5.004_55] newSVrv (again)
+ Date: Thu, 27 Nov 1997 00:25:50 -0500
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 318] By: mbeattie on 1997/11/27 14:59:03
+ Log: Output skipped test information in test suite:
+ Subject: 5.004_55: Making test harness platform_aware
+ Date: Wed, 26 Nov 1997 17:16:55 -0500 (EST)
+ Date: Wed, 26 Nov 1997 17:16:55 -0500 (EST)
+ Branch: perl
+ ! lib/Test/Harness.pm t/TEST t/lib/anydbm.t t/lib/db-btree.t
+ ! t/lib/db-hash.t t/lib/db-recno.t t/lib/gdbm.t t/lib/ndbm.t
+ ! t/lib/odbm.t t/lib/sdbm.t t/op/taint.t
+____________________________________________________________________________
+[ 317] By: mbeattie on 1997/11/27 14:55:15
+ Log: Add 'W'atch command to debugger and improve help:
+ Subject: 5.004_55: Debugger patch again
+ Date: Wed, 26 Nov 1997 17:05:57 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! lib/perl5db.pl
+____________________________________________________________________________
+[ 316] By: mbeattie on 1997/11/27 14:52:44
+ Log: Stop double initialisation of malloc_mutex:
+ Subject: 5.004_55: Double initialiazation of malloc_mutex
+ Date: Wed, 26 Nov 1997 16:51:43 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! miniperlmain.c win32/perllib.c
+____________________________________________________________________________
+[ 315] By: mbeattie on 1997/11/27 14:48:58
+ Log: Fix PVLV case in sv_setsv (plus tests in op/pat.t).
+ Branch: perl
+ ! sv.c t/op/pat.t
+____________________________________________________________________________
+[ 314] By: nick on 1997/11/27 01:03:19
+ Log: Merge win32 and ansiperl branches post _55 tweaks from Sarathy.
+ Branch: ansiperl
+ !> (integrate 897 files)
+____________________________________________________________________________
+[ 313] By: gsar on 1997/11/26 03:20:55
+ Log: merge win32-aware installperl in ansiperl branch.
+ Branch: win32/perl
+ !> installperl
+____________________________________________________________________________
+[ 312] By: gsar on 1997/11/26 01:50:37
+ Log: Fix for C<sort 'foo'...> bug:
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199711011946.OAA18882@aatma.engin.umich.edu>
+ Subject: [PATCH] Re: Sort grammar bug
+ Date: Sat, 01 Nov 1997 14:46:35 -0500
+ ------
+ From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+ Message-Id: <199711021247.MAA01743@crypt.compulink.co.uk>
+ Subject: Re: Sort grammar bug
+ Date: Sun, 02 Nov 1997 12:47:51 +0000
+ Branch: win32/perl
+ ! t/op/sort.t toke.c
+____________________________________________________________________________
+[ 311] By: nick on 1997/11/26 01:42:50
+ Log: Win32-ize installperl
+ Branch: ansiperl
+ ! installperl
+____________________________________________________________________________
+[ 310] By: gsar on 1997/11/26 01:36:39
+ Log: Another trivial patch:
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199710300245.VAA04244@aatma.engin.umich.edu>
+ Subject: [PATCH] Re: Why doesn't XSRETURN have STMT_START/STMT_END brackets?
+ Date: Wed, 29 Oct 1997 21:45:26 -0500
+ Branch: win32/perl
+ ! XSUB.h
+____________________________________________________________________________
+[ 309] By: nick on 1997/11/26 01:33:32
+ Log: Fixup _55 for Win32:
+ Missed thread :-> perl_thread changes
+ Two #define THR (not the same)
+ K&R style func in hv.c
+ Branch: ansiperl
+ ! hv.c win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 308] By: gsar on 1997/11/26 01:30:21
+ Log: Sync yet another patch (this one manually edited):
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199710290251.VAA14362@aatma.engin.umich.edu>
+ Subject: [PATCH] Re: local($@) gives core dump
+ Date: Tue, 28 Oct 1997 21:51:25 -0500
+ Branch: win32/perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 307] By: gsar on 1997/11/26 01:22:10
+ Log: Sync another change from local repository.
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199710290316.WAA15888@aatma.engin.umich.edu>
+ Subject: Re: do_postponed breaks with multiple interpreters
+ Date: Tue, 28 Oct 1997 22:16:13 -0500
+ Branch: win32/perl
+ ! op.c
+____________________________________________________________________________
+[ 306] By: gsar on 1997/11/26 01:17:46
+ Log: Sync a change from local repository.
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199710290106.UAA11485@aatma.engin.umich.edu>
+ Subject: [PATCH] Re: Core dump from using sockets w/ system or open(pipe) or "`"
+ Date: Tue, 28 Oct 1997 20:06:06 -0500
+ Branch: win32/perl
+ ! mg.c
+____________________________________________________________________________
+[ 305] By: nick on 1997/11/26 00:50:10
+ Log: Integrate mainline as of _55
+ Branch: ansiperl
+ +> emacs/ptags
+ !> (integrate 36 files)
+____________________________________________________________________________
+[ 304] By: gsar on 1997/11/26 00:27:57
+ Log: Various changes to make it build cleanly and pass all tests:
+ - needed to run `perl embed.pl`
+ - use PERL_CORE instead of PERLDLL in places that do mean PERL_CORE
+ - fix prototypes for a few declarations (Borland is finally quiet)
+ - move declaration of Mymalloc etc to perl.h (since win32 and other
+ ports may #define malloc themselves, to let extensions bind to
+ the version that perl used)
+ - move struct reg_data into a public header file, since it is
+ referenced in a public datatype
+ - win32 makefile fixes
+ - fix remaining s/thread/perl_thread/
+ Branch: win32/perl
+ ! EXTERN.h embed.h ext/DynaLoader/dlutils.c
+ ! ext/SDBM_File/sdbm/sdbm.h hv.c perl.h proto.h regcomp.h
+ ! regexp.h win32/Makefile win32/dl_win32.xs win32/makefile.mk
+ ! win32/win32.h win32/win32iop.h win32/win32thread.c
+____________________________________________________________________________
+[ 303] By: gsar on 1997/11/25 20:57:31
+ Log: Fixup the places where the automatic merge got it wrong.
+ Previous change (#302) was just a normal integration--ignore the
+ "reverse" in there.
+ Branch: win32/perl
+ ! op.c perl.h
+____________________________________________________________________________
+[ 302] By: gsar on 1997/11/25 20:32:12
+ Log: reverse integrate mainline
+ Branch: win32/perl
+ +> emacs/ptags
+ !> (integrate 896 files)
+
+----------------
+Version 5.004_55
+----------------
+
+____________________________________________________________________________
+[ 301] By: mbeattie on 1997/11/25 17:59:53
+ Log: Fix minor thinkos in hv.c and pp_ctl.c. This is 5.004_55.
+ Branch: perl
+ ! hv.c pp_ctl.c
+____________________________________________________________________________
+[ 300] By: mbeattie on 1997/11/25 16:29:36
+ Log: Add t/avhv.t to MANIFEST and bump patchlevel.h to 55.
+ Branch: perl
+ ! MANIFEST patchlevel.h
+____________________________________________________________________________
+[ 299] By: mbeattie on 1997/11/25 15:59:16
+ Log: Move malloc_mutex initialisation/destruction:
+ Subject: patch to 5.004_54 for pthreads with Perl's malloc
+ From: ilya@math.ohio-state.edu (Ilya Zakharevich)
+ Branch: perl
+ ! malloc.c os2/os2.c os2/os2ish.h perl.c perl.h plan9/plan9ish.h
+ ! unixish.h vms/vmsish.h
+____________________________________________________________________________
+[ 298] By: mbeattie on 1997/11/25 15:49:22
+ Log: Make hv_ functions cope better with 'm'-magic:
+ Subject: [5.004_54] Another neglected patch
+ Date: Fri, 21 Nov 1997 22:28:17 -0500
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: perl
+ ! hv.c
+____________________________________________________________________________
+[ 297] By: mbeattie on 1997/11/25 15:47:36
+ Log: Fix typo in Thread.xs.
+ Branch: perl
+ ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[ 296] By: mbeattie on 1997/11/25 15:42:07
+ Log: Integrate from ansi branch to mainline.
+ Branch: perl
+ !> (integrate 890 files)
+____________________________________________________________________________
+[ 295] By: mbeattie on 1997/11/25 14:29:31
+ Log: AIX patch for DynaLoader/dl_aix.xs and hints/aix.sh:
+ Subject: Re: _54 on AIX
+ Date: Tue, 25 Nov 1997 00:49:52 -0800 (PST)
+ From: Jarkko Hietaniemi <jarkko.hietaniemi@research.nokia.com>
+ Branch: perl
+ ! ext/DynaLoader/dl_aix.xs
+____________________________________________________________________________
+[ 294] By: mbeattie on 1997/11/25 14:29:10
+ Log: AIX patch for hints/aix.sh:
+ Subject: Re: _54 on AIX
+ Date: Tue, 25 Nov 1997 00:49:52 -0800 (PST)
+ From: Jarkko Hietaniemi <jarkko.hietaniemi@research.nokia.com>
+ Branch: perl
+ ! hints/aix.sh
+____________________________________________________________________________
+[ 291] By: mbeattie on 1997/11/25 14:17:05
+ Log: Fix scalar dereference of threadsv variables (e.g. $$_).
+ Branch: perl
+ ! op.c op.h
+____________________________________________________________________________
+[ 290] By: mbeattie on 1997/11/25 14:16:29
+ Log: AIX patch (including Configure support for {sched,pthread}_yield,
+ pthread initial detach state, renaming perl_thread to perl_os_thread
+ and struct thread to struct perl_thread):
+ Subject: Re: _54 on AIX
+ Date: Thu, 20 Nov 1997 06:10:51 -0800 (PST)
+ From: Jarkko Hietaniemi <jarkko.hietaniemi@research.nokia.com>
+ Branch: perl
+ ! Configure config_h.SH cv.h ext/DB_File/DB_File.xs
+ ! ext/Thread/Makefile.PL ext/Thread/Thread.pm
+ ! ext/Thread/Thread.xs fakethr.h hints/aix.sh perl.c perl.h pp.h
+ ! proto.h sv.h thread.h util.c win32/win32thread.c
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 289] By: mbeattie on 1997/11/25 12:33:02
+ Log: Rename perl_thread to perl_os_thread.
+ Branch: perl
+ ! fakethr.h thread.h util.c win32/win32thread.h
+____________________________________________________________________________
+[ 288] By: mbeattie on 1997/11/25 12:27:35
+ Log: Remove bincompat3 support:
+ Subject: Re: ANNOUNCE: perl5.004_54 is available
+ Date: Wed, 19 Nov 1997 08:07:10 -0800 (PST)
+ From: Jarkko Hietaniemi <jarkko.hietaniemi@research.nokia.com>
+ Branch: perl
+ ! Configure INSTALL embed.h global.sym malloc.c
+____________________________________________________________________________
+[ 287] By: mbeattie on 1997/11/25 12:23:50
+ Log: Emacs/tags update:
+ Subject: Emacs/tags update for 5.004_54
+ Date: Fri, 21 Nov 1997 15:02:09 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ + emacs/ptags
+ ! MANIFEST Makefile.SH emacs/cperl-mode.el
+____________________________________________________________________________
+[ 286] By: nick on 1997/11/23 23:03:56
+ Log: Add $$_ test
+ Branch: ansiperl
+ ! t/op/ref.t
+____________________________________________________________________________
+[ 285] By: gsar on 1997/11/23 08:26:00
+ Log: Initial reverse integration of winansi branch.
+ Branch: win32/perl
+ !> (integrate 50 files)
+____________________________________________________________________________
+[ 284] By: gsar on 1997/11/23 07:32:24
+ Log: Add to docs about the BEGIN { shift } feature. Make the change
+ yet simpler using CvUNIQUE(compcv) instead of subline (Chip's idea).
+ Branch: win32/perl
+ ! op.c perly.c perly.y pod/perlfunc.pod vms/perly_c.vms
+____________________________________________________________________________
+[ 283] By: nick on 1997/11/22 21:29:30
+ Log: Duplicate perl_threadsv
+ Branch: ansiperl
+ ! global.sym
+____________________________________________________________________________
+[ 282] By: nick on 1997/11/22 21:18:11
+ Log: Munge pseudo-Configure stuff to add -thread to archname as
+ Malcolm seems to think that is way to test for threads.
+ Update @INC stuffing hackery to have traditional @INC
+ search order archlib, privlib, sitearch, site.
+ Branch: ansiperl
+ ! t/lib/english.t win32/config.bc win32/config_H.bc
+ ! win32/config_H.vc win32/config_h.PL win32/config_sh.PL
+ ! win32/makefile.mk win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 281] By: nick on 1997/11/22 19:28:21
+ Log: Builds and passes all but english.t on win32 VC++
+ Branch: ansiperl
+ ! global.sym pp_ctl.c win32/Makefile win32/config.vc
+ ! win32/config_H.vc win32/win32thread.h
+____________________________________________________________________________
+[ 280] By: nick on 1997/11/22 18:10:50
+ Log: ansiperl builds with Borland C++ again
+ Branch: ansiperl
+ ! pp_ctl.c regcomp.c regcomp.h regexec.c toke.c util.c
+ ! win32/config.bc win32/config_H.bc win32/perlglob.c
+ ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 279] By: nick on 1997/11/22 16:42:51
+ Log: Resolve ansiperl against mainline
+ Branch: ansiperl
+ !> embed.h ext/Thread/Thread.xs global.sym op.c op.h perl.c
+ !> perl.h pp.c pp_ctl.c pp_hot.c proto.h scope.c scope.h
+ !> t/lib/english.t thread.h toke.c util.c
+____________________________________________________________________________
+[ 278] By: nick on 1997/11/22 16:30:27
+ Log: Resolve ansiperl against win32
+ Branch: ansiperl
+ !> (integrate 55 files)
+____________________________________________________________________________
+[ 277] By: gsar on 1997/11/22 09:48:02
+ Log: - shift() inside BEGIN|END|INIT now shifts @ARGV instead of @_
+ - added a test for the above
+ - fixed up perly.c.diff and vms/perl_c.vms for above and added the
+ ansification hunks
+ Branch: win32/perl
+ ! op.c perly.c perly.c.diff perly.y t/op/misc.t vms/perly_c.vms
+____________________________________________________________________________
+[ 276] By: gsar on 1997/11/22 07:24:01
+ Log: Generic change in win32 branch: don't just turn on CRIPPLED_CC
+ when USE_THREADS. GCC for instance, can do without macros that use
+ globals. Instead, selectively re#define only those macros
+ that use globals to their functional equivalents. Tests 100% on
+ Solaris/gcc (after `chmod +x t/op/nothread.t t/lib/thread.t` (hint,hint)).
+ Branch: win32/perl
+ ! perl.h sv.h
+____________________________________________________________________________
+[ 275] By: gsar on 1997/11/22 05:27:04
+ Log: Integrate mainline.
+ Branch: win32/perl
+ +> ext/Thread/die.t ext/Thread/die2.t t/op/avhv.t
+ - lib/Class/Fields.pm lib/ISA.pm
+ !> (integrate 41 files)
+____________________________________________________________________________
+[ 274] By: mbeattie on 1997/11/21 18:28:22
+ Log: $_ is now per-thread (rather a lot of changes). Only tested under
+ *-linux-thread at the moment.
+ Branch: perl
+ ! embed.h ext/Thread/Thread.xs global.sym op.c op.h perl.c
+ ! perl.h pp.c pp_ctl.c pp_hot.c proto.h scope.c scope.h
+ ! t/lib/english.t thread.h toke.c util.c
+____________________________________________________________________________
+[ 273] By: mbeattie on 1997/11/21 10:31:29
+ Log: Filter patch to toke.c:
+ Subject: Tiny core patch for source filters
+ Date: Thu, 20 Nov 1997 23:12:09 +0000 (GMT)
+ From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+ Branch: perl
+ ! toke.c
+____________________________________________________________________________
+[ 272] By: nick on 1997/11/21 00:54:43
+ Log: Basic integrate of lastest perl into ansiperl
+ Branch: ansiperl
+ +> ext/Thread/die.t ext/Thread/die2.t t/op/avhv.t
+ - lib/Class/Fields.pm lib/ISA.pm
+ ! win32/win32.c win32/win32.h
+ !> (integrate 57 files)
+____________________________________________________________________________
+[ 271] By: mbeattie on 1997/11/20 12:12:00
+ Log: Initial stab at IRIX configuration support for threading. Manually
+ applied parts of following patches:
+ Subject: Perl 5.004_54 on IRIX
+ Date: Wed, 19 Nov 1997 18:37:14 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Subject: Re: Perl 5.004_54 on IRIX
+ Date: 19 Nov 1997 17:10:17 -0800
+ From: Scott Henry <scotth@sgi.com>
+ Branch: perl
+ ! README.threads hints/irix_6.sh hints/irix_6_0.sh
+ ! hints/irix_6_1.sh perl.h
+____________________________________________________________________________
+[ 270] By: mbeattie on 1997/11/19 17:45:37
+ Log: The new jumbo regexp stuff did SSPUSHINT on a char* instead of
+ SSPUSHPTR causing Alpha to core dump in pat.t. While fixing it,
+ also fixed two instances of referring to SVs after destruction.
+ Branch: perl
+ ! regcomp.c regexec.c
+____________________________________________________________________________
+[ 269] By: mbeattie on 1997/11/19 15:33:23
+ Log: avhv_keys under Digital UNIX made avhv.t fail because *keysp was
+ changed by mg_get(*keysp) (!). Introducing a new local variable
+ fixed it but I don't know if it's a compiler problem or some
+ other corruption happening elsewhere.
+ Branch: perl
+ ! av.c
+____________________________________________________________________________
+[ 268] By: mbeattie on 1997/11/19 11:39:49
+ Log: Let Configure sort out get{host,net}byaddr* prototypes:
+ Subject: [PATCH] 5.004_54: little something for
+ get{hos,ne}tbyaddr protos (Configure, config_h.SH, pp_sys.c)
+ Date: Tue, 18 Nov 1997 19:08:19 +0200 (EET)
+ From: Jarkko Hietaniemi <jhi@iki.fi>
+ Branch: perl
+ ! Configure config_h.SH pp_sys.c
+____________________________________________________________________________
+[ 267] By: mbeattie on 1997/11/19 11:04:15
+ Log: Jumbo regexp patch applied (with minor fix-up tweaks):
+ Subject: Version 7 of Jumbo RE patch available
+ Date: Sun, 16 Nov 1997 00:29:39 -0500 (EST)
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ Branch: perl
+ ! MANIFEST dump.c embed.h global.sym mg.c op.c op.h perl.c
+ ! perl.h pod/perlre.pod pp.c pp_ctl.c pp_hot.c proto.h regcomp.c
+ ! regcomp.h regexec.c regexp.h sv.c t/op/misc.t t/op/pat.t
+ ! t/op/re_tests t/op/regexp.t t/op/split.t t/op/subst.t toke.c
+ ! util.c
+____________________________________________________________________________
+[ 266] By: mbeattie on 1997/11/18 17:26:09
+ Log: Separate avhv_foo() key handling into avhv_keys(). Slightly tweaked
+ version of patch:
+ Subject: tie fake hash patch for 5.004_54
+ Date: Sat, 15 Nov 1997 19:18:30 -0500
+ From: Joshua Pritikin <pritikin@mindspring.com>
+ Branch: perl
+ + t/op/avhv.t
+ ! av.c embed.h global.sym proto.h
+____________________________________________________________________________
+[ 265] By: mbeattie on 1997/11/18 16:51:04
+ Log: Bring MANIFEST up to date. Add new thread tests.
+ Branch: perl
+ + ext/Thread/die.t ext/Thread/die2.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 264] By: mbeattie on 1997/11/18 16:41:27
+ Log: magic_setisa enhanced to update %FIELDS automatically when @ISA
+ is assigned to. Added tests to t/op/array.t. magic_setisa now
+ warns about including non-existent packages in @ISA when -w is on.
+ Branch: perl
+ - lib/Class/Fields.pm lib/ISA.pm
+ ! mg.c t/op/array.t
+____________________________________________________________________________
+[ 263] By: mbeattie on 1997/11/18 16:38:57
+ Log: Fix typo in win32 -> mainline integration.
+ Branch: perl
+ ! perl.h
+____________________________________________________________________________
+[ 262] By: mbeattie on 1997/11/18 11:56:09
+ Log: Integrate win32 branch back into mainline.
+ Branch: perl
+ - win32/win32io.c win32/win32io.h
+ ! op.c
+ !> (integrate 30 files)
+____________________________________________________________________________
+[ 261] By: gsar on 1997/11/18 00:14:02
+ Log: Export our own FD_SET() et al to complete sockets-as-handles pretense.
+ Branch: win32/perl
+ ! win32/config.bc win32/config.vc win32/config_H.bc
+ ! win32/config_H.vc win32/include/sys/socket.h win32/win32sck.c
+____________________________________________________________________________
+[ 260] By: nick on 1997/11/16 23:16:16
+ Log: Generic file changes for MYMALLOC
+ Branch: ansiperl
+ ! miniperlmain.c perl.c
+____________________________________________________________________________
+[ 259] By: nick on 1997/11/16 23:14:36
+ Log: MYMALLOC for Win32:
+ 1. Initialize malloc_mutex before it is used (all platforms!)
+ 2. Adjust #ifdef muddle to allow MYMALLOC and win32_ to coexist
+ 3. Tweak win32/config*.* to define MYMALLOC
+ 4. Provide sbrk() in terms of VirtualAlloc().
+
+ Also fixup -MT (perl95) build to handle Perl_current_thread
+ via call to DLL (as though an extension).
+ Branch: ansiperl
+ ! win32/Makefile win32/config.bc win32/config.vc
+ ! win32/config_H.bc win32/config_H.vc win32/makedef.pl
+ ! win32/makefile.mk win32/perllib.c win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32thread.h
+____________________________________________________________________________
+[ 258] By: nick on 1997/11/15 20:42:28
+ Log: Implement dTHR via __declspec(thread) - part 2
+ Branch: ansiperl
+ ! win32/makedef.pl win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 257] By: nick on 1997/11/15 19:52:53
+ Log: Use __declspec(thread) var rather tha TslAlloc & co.
+ Branch: ansiperl
+ ! win32/makedef.pl win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 256] By: gsar on 1997/11/15 02:58:09
+ Log: Add #include guard in Thread.xs so it will build even under
+ no USE_THREADS (for win32). This was missed because of edit
+ w/o checkout perforce kludge.
+ Branch: win32/perl
+ ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[ 255] By: nick on 1997/11/15 00:33:46
+ Log: Integrate mainline (5.004_54?) into ansiperl
+ Branch: ansiperl
+ !> MANIFEST embed.h ext/Thread/Thread.pm ext/Thread/Thread.xs
+ !> ext/Thread/Thread/Specific.pm ext/Thread/join.t
+ !> ext/Thread/specific.t global.sym lib/fields.pm mg.c op.c
+ !> perl.c perl.h pp_ctl.c pp_hot.c pp_sys.c proto.h scope.c
+ !> t/io/pipe.t t/lib/io_pipe.t t/op/magic.t thread.h
+____________________________________________________________________________
+[ 254] By: nick on 1997/11/15 00:25:26
+ Log: Interate win32 into ansiperl
+ Branch: ansiperl
+ +> ext/Thread/Thread/Specific.pm ext/Thread/specific.t
+ +> lib/fields.pm
+ !> MANIFEST embed.h ext/Thread/Thread.pm ext/Thread/Thread.xs
+ !> ext/Thread/join.t global.sym mg.c op.c perl.c perl.h pp_ctl.c
+ !> pp_hot.c pp_sys.c proto.h scope.c t/io/pipe.t t/lib/io_pipe.t
+ !> t/op/magic.t thread.h win32/Makefile win32/config.bc
+ !> win32/config.vc win32/config_sh.PL win32/makefile.mk
+____________________________________________________________________________
+[ 253] By: gsar on 1997/11/14 22:04:58
+ Log: Integrate mainline changes into win32 branch. Now would be a good time
+ to reverse integrate the win32 branch into mainline.
+ Branch: win32/perl
+ +> ext/Thread/Thread/Specific.pm ext/Thread/specific.t
+ +> lib/fields.pm
+ !> MANIFEST embed.h ext/Thread/Thread.pm ext/Thread/Thread.xs
+ !> ext/Thread/join.t global.sym mg.c op.c perl.c perl.h pp_ctl.c
+ !> pp_hot.c pp_sys.c proto.h scope.c t/io/pipe.t t/lib/io_pipe.t
+ !> t/op/magic.t thread.h
+
+----------------
+Version 5.004_54
+----------------
+
+____________________________________________________________________________
+[ 252] By: mbeattie on 1997/11/14 15:07:19
+ Log: Two more delays added to test suite to help *-solaris-thread.
+ Branch: perl
+ ! t/io/pipe.t t/lib/io_pipe.t
+____________________________________________________________________________
+[ 251] By: mbeattie on 1997/11/14 15:05:57
+ Log: Remove stale code from Thread.xs.
+ Branch: perl
+ ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[ 250] By: mbeattie on 1997/11/14 10:12:40
+ Log: Add delay to signal handling in t/op/magic.t. (Solaris with pthreads
+ doesn't run handlers for self-sent signals until kill has returned.)
+ Branch: perl
+ ! t/op/magic.t
+____________________________________________________________________________
+[ 249] By: gsar on 1997/11/14 05:14:44
+ Log: Fix various details in win32 makefiles and Config.pm setup.
+ - ldflags is set for both compilers now
+ - extensions list is now correct
+ - delete perl95.exe on distclean
+ - cf_time now gets updated (once)
+ - ccdlflags is set for Borland
+ - fix startperl so dprofpp works
+ Branch: win32/perl
+ ! win32/Makefile win32/config.bc win32/config.vc
+ ! win32/config_sh.PL win32/makefile.mk
+____________________________________________________________________________
+[ 248] By: mbeattie on 1997/11/13 18:01:27
+ Log: Rewrite thread return code to distinguish between ordinary return
+ and die() and make join propagate the die. Add tiny method eval
+ which just does "return eval { shift->join; }". Add Thread::Specific
+ class for access to thread specific user data along with specific.t.
+ Rename Class to classname throughout Thread.xs for consistency.
+ Fix pp_specific to pp_threadsv in global.sym. Add support to
+ pp_entersub in pp_hot.c to lock stash for static locked methods.
+ Branch: perl
+ + ext/Thread/Thread/Specific.pm ext/Thread/specific.t
+ + lib/fields.pm
+ ! MANIFEST embed.h ext/Thread/Thread.pm ext/Thread/Thread.xs
+ ! ext/Thread/join.t global.sym mg.c pp_hot.c thread.h
+____________________________________________________________________________
+[ 247] By: mbeattie on 1997/11/13 14:13:30
+ Log: Change CONTEXT to PERL_CONTEXT throughout source (since the #define
+ to avoid the Digital UNIX clash no longer works). Changed the #ifdef
+ in pp_sys.c for whether getnet* function get protoyped (since the
+ default had a broken prototype for getnetbyaddr).
+ Branch: perl
+ ! mg.c op.c perl.c perl.h pp_ctl.c pp_hot.c pp_sys.c proto.h
+ ! scope.c thread.h
+____________________________________________________________________________
+[ 246] By: nick on 1997/11/13 02:44:40
+ Log: Integrate Win32 branch
+ Branch: ansiperl
+ - configure ext/util/extliblist win32/bin/pl2bat.bat
+ - win32/bin/search.bat win32/bin/test.bat win32/bin/webget.bat
+ - win32/config.H win32/config.w32 win32/win32io.c
+ - win32/win32io.h
+ !> (integrate 905 files)
+____________________________________________________________________________
+[ 245] By: nick on 1997/11/13 00:47:54
+ Log: Integrate (-ay) win32 branch at its creation to
+ establish and ancestor as per perkforce technote #9
+ Branch: ansiperl
+ +> configure ext/util/extliblist win32/bin/pl2bat.bat
+ +> win32/bin/search.bat win32/bin/test.bat win32/bin/webget.bat
+ +> win32/config.H win32/config.w32
+ !> (integrate 859 files)
+____________________________________________________________________________
+[ 244] By: gsar on 1997/11/12 22:26:39
+ Log: More cleanups of win32/win32*.[ch] files. win32/win32iop.h now
+ contains the all the declarations and macros for the win32io layer.
+ New std-ish functions are exported now. All win32-specific exported
+ functions begin with "win32_" consistently. win32 version of
+ init_os_extras() is now exported, so embedders can get the in-core
+ xsubs.
+ Branch: win32/perl
+ ! dosish.h win32/makedef.pl win32/win32.c win32/win32.h
+ ! win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 243] By: gsar on 1997/11/12 07:41:52
+ Log: Really delete deleted files.
+ Branch: win32/perl
+ - win32/win32io.c win32/win32io.h
+____________________________________________________________________________
+[ 242] By: gsar on 1997/11/12 07:40:54
+ Log: Egregious IOsubsystem code excised. Phew, what a relief! Two
+ files (win32/win32io.[ch]) completely removed, as are all traces
+ of them in makefiles and MANIFEST. RunPerl() retains the void* arg
+ for later. Various myfoo() things regularized to my_foo(). CPP not
+ required anymore to create a perl binary :)
+ Branch: win32/perl
+ ! MANIFEST win32/Makefile win32/makedef.pl win32/makefile.mk
+ ! win32/perllib.c win32/runperl.c win32/win32.c win32/win32.h
+ ! win32/win32io.c win32/win32io.h win32/win32iop.h
+ ! win32/win32sck.c
+____________________________________________________________________________
+[ 241] By: gsar on 1997/11/12 05:31:28
+ Log: Fix various win32 code blemishes:
+ - s/stolen/win32/g
+ - s/(CROAK|WARN)/lc($1)/eg
+ - remove deadcode from most places
+ Branch: win32/perl
+ ! win32/makedef.pl win32/win32.c win32/win32io.c
+ ! win32/win32iop.h
+____________________________________________________________________________
+[ 240] By: gsar on 1997/11/12 04:36:29
+ Log: Carry over changes in ansiperl branch. Win32 branch is now
+ the leading edge.
+ Branch: win32/perl
+ ! embed.h global.sym perl.c win32/win32thread.c
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 239] By: gsar on 1997/11/12 03:39:57
+ Log: Add missing win32_closesocket() and export it (extension writers' complaint).
+ Branch: win32/perl
+ ! win32/include/sys/socket.h win32/makedef.pl win32/win32sck.c
+____________________________________________________________________________
+[ 238] By: gsar on 1997/11/12 03:25:17
+ Log: Clean up win32/win32sck.c (runtime load of Winsock now gone, it can be
+ done cleaner, if really needed (perhaps only for efficiency reasons?)).
+ Redundant EXTERN_C definitions and related warnings fixed.
+ Branch: win32/perl
+ ! miniperlmain.c perl.h win32/perllib.c win32/win32io.c
+ ! win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 237] By: nick on 1997/11/12 02:45:15
+ Log: Fixup Win32
+ - #undef start_env before re-#defining it
+ - change pp_specific pp_threadsv in global.sym
+ - re-build embed.h
+ - avoid HAVE_THREAD_INTERN - we don't and empty struct
+ is a pain. If we did have it it would contain cached
+ values of things we can only get at _IN_ the thread
+ so new_struct_thread is wrong place to call it.
+ - add new macro SET_THREAD_SELF - we must (in main thread)
+ define in win32thread.h, support in win32thread.c,
+ test and call in perl.c
+ Branch: ansiperl
+ ! embed.h global.sym perl.c thread.h win32/win32thread.c
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 236] By: nick on 1997/11/12 01:54:23
+ Log: Integrate mainline after it integrated us.
+ Accepted 'theirs' everywhere - so two branches should
+ now point to same files again.
+ Almost all of these were what was suggested, others were
+ whitespace diffs. A few dubious spots which we will now
+ go fix.
+ Branch: ansiperl
+ !> embed.h ext/DB_File/DB_File.xs ext/GDBM_File/GDBM_File.xs
+ !> ext/Opcode/Opcode.pm ext/Thread/Thread.xs interp.sym mg.c op.c
+ !> opcode.h opcode.pl perl.c perl.h pp.c pp_ctl.c pp_sys.c t/TEST
+ !> t/lib/safe2.t t/lib/thread.t t/op/nothread.t thread.h toke.c
+ !> util.c
+____________________________________________________________________________
+[ 235] By: gsar on 1997/11/12 01:22:26
+ Log: Minor tweaks to add a thread_intern struct that should ultimately
+ contain all the win32-specific statics.
+ Win32 branch now passes all tests with or w/o USE_THREADS.
+ Branch: win32/perl
+ ! embed.h perl.c win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 234] By: gsar on 1997/11/11 23:08:54
+ Log: Initial (untested) integration of mainline changes.
+ Branch: win32/perl
+ - configure
+ !> (integrate 89 files)
+____________________________________________________________________________
+[ 233] By: mbeattie on 1997/11/11 18:07:30
+ Log: Typo in thread.h: ADD_THREAD_INTERN should be HAVE_THREAD_INTERN
+ Branch: perl
+ ! thread.h
+____________________________________________________________________________
+[ 232] By: mbeattie on 1997/11/11 17:49:12
+ Log: t/TEST (reverted to @229 version) should have been included in the
+ previous change (231) but my way of recovering it didn't work
+ properly. The change 231 comments about successful tests applies
+ to this t/TEST (i.e. as of this change).
+ Branch: perl
+ ! t/TEST
+____________________________________________________________________________
+[ 231] By: mbeattie on 1997/11/11 17:46:59
+ Log: Fix up ansiperl integration. Back to passing all expected tests
+ with usethreads. Untested with non-threaded perl.
+ Branch: perl
+ ! embed.h ext/DB_File/DB_File.xs ext/GDBM_File/GDBM_File.xs
+ ! perl.c perl.h pp.c t/lib/thread.t t/op/nothread.t util.c
+____________________________________________________________________________
+[ 230] By: mbeattie on 1997/11/11 16:36:22
+ Log: Initial integration of ansi branch into mainline (untested).
+ Branch: perl
+ +> t/lib/thread.t t/op/nothread.t thread.sym
+ - configure
+ !> (integrate 84 files)
+____________________________________________________________________________
+[ 229] By: mbeattie on 1997/11/11 15:20:43
+ Log: Change name of OP_SPECIFIC to OP_THREADSV. Fixed perl_get_sv when
+ getting per-thread magicals. Fixed thr->errsv initialisation.
+ Branch: perl
+ ! ext/Opcode/Opcode.pm op.c opcode.h opcode.pl perl.c pp.c
+ ! t/lib/safe2.t toke.c
+____________________________________________________________________________
+[ 228] By: mbeattie on 1997/11/11 12:48:26
+ Log: Fix up $@ (ERRSV now refers to GvSV(errgv) for non-threaded perl and
+ thr->errsv for threaded perl). Fix pp_tie and pp_dbmopen to use
+ GvCV(gv) instead of gv so AUTOLOAD stuff works. All tests now pass
+ again for non-threaded perl. Enhanced perl_get_sv to return
+ per-thread magicals where necessary for threaded perl.
+ Branch: perl
+ ! embed.h ext/Thread/Thread.xs interp.sym mg.c op.c perl.c
+ ! perl.h pp_ctl.c pp_sys.c thread.h toke.c util.c
+____________________________________________________________________________
+[ 227] By: mbeattie on 1997/11/11 11:00:02
+ Log: hashlock bug.
+
+ Jobs fixed ...
+
+ hashlock fixed on 1997/11/11 by mbeattie@localhost
+
+ Subject: [perl5.004_53; patch] Another hash-locking fix
+ Date: 23 Oct 1997 14:13:55 -0400
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: bugs
+ + hashlock
+____________________________________________________________________________
+[ 226] By: gsar on 1997/11/11 02:11:23
+ Log: Slightly more refined lock() keyword recognition (using %INC).
+ Branch: win32/perl
+ ! toke.c
+____________________________________________________________________________
+[ 225] By: gsar on 1997/11/11 00:26:09
+ Log: "weak" lock keyword (hardcoded initial implementation) now works.
+ if not defined(&Thread::join) and defined(&__PACKAGE__::lock), 'lock'
+ is recognized as a sub, a regular keyword otherwise. Could be
+ generalized by storing a flag for every op in OP struct, and turning
+ the flag off when Thread.xs loads.
+ Branch: win32/perl
+ ! toke.c
+____________________________________________________________________________
+[ 224] By: gsar on 1997/11/10 22:59:55
+ Log: Merge a patch in preparation for "weak keywords":
+ From: Gurusamy Sarathy <gsar@engin.umich.edu>
+ Message-Id: <199710080618.CAA23899@aatma.engin.umich.edu>
+ Subject: [PATCH] global overrides for keywords
+ Date: Wed, 08 Oct 1997 02:18:23 -0400
+ Branch: win32/perl
+ ! embed.h interp.sym perl.c perl.h toke.c
+____________________________________________________________________________
+[ 223] By: gsar on 1997/11/10 22:41:31
+ Log: Remove runlevel. It was used to count how many runops() calls
+ we were in the process of executing, and longjmp() to the topmost
+ one (if not already there). We use a null top_env->je_prev
+ to distinguish that now.
+ Branch: win32/perl
+ ! embed.h interp.sym perl.h pp_ctl.c run.c thread.h util.c
+____________________________________________________________________________
+[ 222] By: gsar on 1997/11/10 04:47:48
+ Log: Win32 branch now contains all non-ansification changes in ansiperl branch.
+ USE_THREADS case builds and passes all tests using both compilers.
+ Additional tweaks:
+ - fixup win32/makedef.pl to skip more symbols for non-thread build.
+ - sync win32/Makefile with win32/makefile.mk
+ >>>Non-thread build fails a lot of tests.<<<
+ Branch: win32/perl
+ + thread.sym
+ ! MANIFEST ext/Thread/Thread.xs perl.c perl.h pp_sys.c sv.c
+ ! util.c win32/Makefile win32/config.bc win32/config_H.bc
+ ! win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[ 221] By: gsar on 1997/11/10 00:57:53
+ Log: Initial (untested) merge of all non-ansi changes on ansiperl branch
+ into win32 branch.
+ Branch: win32/perl
+ + t/lib/thread.t t/op/nothread.t
+ ! MANIFEST embed.h ext/Opcode/Opcode.pm global.sym interp.sym
+ ! perl.c proto.h sv.h t/lib/english.t t/op/misc.t thread.h
+ ! util.c win32/Makefile win32/config.bc win32/config.vc
+ ! win32/config_H.bc win32/config_H.vc win32/makedef.pl
+ ! win32/makefile.mk win32/win32.c win32/win32.h win32/win32io.c
+ ! win32/win32io.h win32/win32iop.h win32/win32sck.c
+ ! win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 220] By: gsar on 1997/11/09 22:44:41
+ Log: Integrate latest mainline into win32 branch.
+ Branch: win32/perl
+ +> win32/win32thread.c win32/win32thread.h
+ !> (integrate 39 files)
+____________________________________________________________________________
+[ 219] By: nick on 1997/11/09 21:46:06
+ Log: Conditionalize english.t,
+ Enhance times() for NT,
+ (Failed) attempt to implement alarm(),
+ Fixed config.h dependancy in makefile.mk
+ Branch: ansiperl
+ ! t/lib/english.t win32/config.bc win32/config_H.bc
+ ! win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[ 218] By: nick on 1997/11/09 15:38:00
+ Log: Dick Hardt's patch for build on Alpha
+ Branch: ansiperl
+ ! win32/Makefile
+____________________________________________________________________________
+[ 217] By: nick on 1997/11/09 03:31:20
+ Log: MakeMaker not in vofig noise fix for dmake
+ Branch: ansiperl
+ ! win32/config.bc win32/makefile.mk
+____________________________________________________________________________
+[ 216] By: nick on 1997/11/09 03:15:06
+ Log: Fix 'anydbm.t' - if the gv is passed 1st call to inherited
+ TIEHASH works, but 2nd call (after db is closed, attempt
+ to reopen) tries to AUTOLOAD TIEHASH rather than using
+ cached value.
+ Branch: ansiperl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 215] By: nick on 1997/11/08 16:41:24
+ Log: Cleanup MakeMaker 'not in config' noise
+ Branch: ansiperl
+ ! win32/Makefile win32/config.vc
+____________________________________________________________________________
+[ 214] By: nick on 1997/11/08 15:07:24
+ Log: Remove 'configure' leaving configure.gnu and Configure
+ Win32 ignores case and keeps trying to update
+ repository copy of 'configure' or 'Configure' with
+ the other.
+ Branch: ansiperl
+ - configure
+ ! MANIFEST
+____________________________________________________________________________
+[ 213] By: nick on 1997/11/08 15:03:39
+ Log: Get threads working again on Win32
+ Root cause of fail was init_thread_intern() in
+ new_struct_thread() (which is called in parent thread)
+ clobbering dTHR of parent thread.
+ It is doubtfull if setting 'self' in new_struct_thread()
+ is 'right' but left in for now.
+ Branch: ansiperl
+ ! ext/Thread/Thread.xs perl.c thread.h util.c win32/Makefile
+ ! win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 212] By: nick on 1997/11/08 00:34:03
+ Log: Add :base_thread to :default in Opcode.pm
+ This allows lib/safe.t to pass when threaded.
+ It is unclear if 'lock' should be safe as it allows
+ denial of service attack, but could not figure out
+ how to add just 'specific' (sic) to :default
+ without triggering 'already tagged' warning noise.
+ Branch: ansiperl
+ ! ext/Opcode/Opcode.pm win32/makefile.mk
+____________________________________________________________________________
+[ 211] By: nick on 1997/11/07 23:59:31
+ Log: Merge changes as of 18:00 CST
+ Branch: ansiperl
+ !> op.c pp.c pp_sys.c thread.h util.c
+____________________________________________________________________________
+[ 210] By: nick on 1997/11/07 23:52:35
+ Log: Reverse integrate Malcolm's chanes into local
+ repository, then import result back into my view
+ of Malcolm's repository.
+ Builds and passes (most) tests with GNU C++/Solaris
+ and Borland C++, Win32.
+ Branch: ansiperl
+ ! doop.c embed.h ext/Thread/Thread.xs global.sym gv.c hv.c
+ ! interp.sym mg.c op.c opcode.h opcode.pl patchlevel.h perl.c
+ ! perl.h pp.c pp_ctl.c pp_sys.c proto.h sv.c sv.h taint.c
+ ! thread.h toke.c util.c win32/makefile.mk
+____________________________________________________________________________
+[ 209] By: mbeattie on 1997/11/07 18:12:36
+ Log: Change pp_tie and pp_dbmopen to use perl_call_sv instead of a
+ DIY pp_entersub (in preparation for AUTOLOAD change). dbmopen
+ not tested. ofslen now maps to thr->Tofslen in thread.h. Added
+ missing #ifdef USE_THREADS around some DEBU_L statements in die().
+ Building without USE_THREADS fails quite a lot of tests. It looks
+ as though the move to per-thread magicals must be missing some
+ #ifdef USE_THREADS.
+ Branch: perl
+ ! op.c pp.c pp_sys.c thread.h util.c
+____________________________________________________________________________
+[ 208] By: nick on 1997/11/07 01:37:28
+ Log: Raw integrate of latest perl
+ Branch: ansiperl
+ ! t/TEST
+ !> README.threads Todo.5.005 embed.h ext/Opcode/Opcode.pm
+ !> ext/Thread/Thread.xs global.sym gv.c interp.sym op.c op.h
+ !> perl.c perl.h pp.c pp_ctl.c pp_hot.c proto.h scope.h sv.h
+ !> thread.h toke.c util.c
+____________________________________________________________________________
+[ 207] By: mbeattie on 1997/11/06 14:58:00
+ Log: Update README.threads and Todo.5.005.
+ Branch: perl
+ ! README.threads Todo.5.005
+____________________________________________________________________________
+[ 206] By: mbeattie on 1997/11/06 14:37:37
+ Log: Remove #ifdef DEPRECATED stuff: newXSUB, pp_entersubr, FREE_TMPS().
+ Branch: perl
+ ! op.c pp_ctl.c proto.h scope.h
+____________________________________________________________________________
+[ 205] By: mbeattie on 1997/11/06 14:31:38
+ Log: Per-thread magicals now stored in their own thr->magicals and keyed
+ more directly. cvcache and oursv become ordinary struct thread
+ fields instead of #defined thr->Tfoo ones. SvREFCNT_inc now checks
+ for 0 again. Main thread initialisation done by new function
+ init_main_thread instead of (now fixed) new_struct_thread.
+
+ Jobs fixed ...
+
+ jmpenv fixed on 1997/11/06 by mbeattie@localhost
+
+ Subject: [perl5.004_53; patch] eval's and threads
+ Date: 23 Oct 1997 23:59:19 -0400
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: bugs
+ + jmpenv
+ Branch: perl
+ ! embed.h ext/Thread/Thread.xs global.sym gv.c op.c perl.c
+ ! pp_ctl.c pp_hot.c proto.h sv.h thread.h toke.c util.c
+____________________________________________________________________________
+[ 204] By: mbeattie on 1997/11/05 17:18:18
+ Log: Per-thread magicals mostly working (and localisable). Now getting
+ intermittent occasional "Use of uninitialized value" warnings
+ which may be due to some op flag black magic I've broken.
+ Branch: perl
+ ! embed.h ext/Opcode/Opcode.pm ext/Thread/Thread.xs gv.c
+ ! interp.sym op.c op.h perl.c perl.h pp.c thread.h toke.c util.c
+____________________________________________________________________________
+[ 203] By: nick on 1997/11/05 01:04:10
+ Log: Builds C++ Borland, MSVC++ (Win32) and GCC++ (Solaris)
+ Branch: ansiperl
+ ! XSUB.h doio.c doop.c embed.h ext/SDBM_File/sdbm/sdbm.h
+ ! ext/Thread/Thread.xs global.sym gv.c hv.c interp.sym mg.c
+ ! miniperlmain.c op.c op.h opcode.h opcode.pl patchlevel.h
+ ! perl.c perl.h pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c proto.h
+ ! sv.c sv.h taint.c thread.h toke.c util.c win32/Makefile
+ ! win32/config.vc win32/config_H.vc win32/makedef.pl
+ ! win32/makefile.mk win32/perllib.c win32/win32.c win32/win32.h
+ ! win32/win32io.c win32/win32io.h win32/win32iop.h
+ ! win32/win32sck.c win32/win32thread.h
+____________________________________________________________________________
+[ 202] By: nick on 1997/11/05 00:50:27
+ Log: Compile(d) at least once with threads on win32
+ but did not work
+ Branch: ansiperl
+ ! embed.h perl.c thread.h
+____________________________________________________________________________
+[ 201] By: nick on 1997/11/05 00:32:13
+ Log: Trivial integrate
+ Branch: ansiperl
+ !> patchlevel.h
+____________________________________________________________________________
+[ 200] By: mbeattie on 1997/11/04 12:06:09
+ Log: Up patchlevel to 5.004_54 (I missed _53 for the last release).
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 199] By: nick on 1997/11/01 00:18:52
+ Log: Integrate mainline @ 18:15 CST 31 Oct 1997
+ Branch: ansiperl
+ !> doop.c embed.h ext/Thread/Thread.xs global.sym gv.c hv.c
+ !> interp.sym mg.c op.c opcode.h opcode.pl perl.c perl.h pp.c
+ !> pp_ctl.c pp_sys.c proto.h sv.c sv.h taint.c thread.h toke.c
+ !> util.c
+____________________________________________________________________________
+[ 198] By: nick on 1997/11/01 00:08:33
+ Log: win32thread.* not in MANIFEST which has muddled moving
+ back and forth between depots.
+ Branch: ansiperl
+ ! MANIFEST win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 197] By: nick on 1997/11/01 00:02:49
+ Log: Test changes
+ Branch: ansiperl
+ + t/lib/thread.t t/op/nothread.t thread.sym
+ ! MANIFEST
+____________________________________________________________________________
+[ 196] By: nick on 1997/10/31 23:54:01
+ Log: Further ANSI changes now builds and passes (most) tests
+ with gcc -x c++.
+ Branch: ansiperl
+ ! INTERN.h embed.h ext/DynaLoader/dl_dlopen.xs
+ ! ext/Fcntl/Fcntl.xs ext/GDBM_File/GDBM_File.xs ext/IO/IO.xs
+ ! ext/Opcode/Opcode.xs ext/POSIX/POSIX.xs
+ ! ext/SDBM_File/sdbm/hash.c ext/SDBM_File/sdbm/pair.c
+ ! ext/SDBM_File/sdbm/sdbm.c ext/SDBM_File/sdbm/sdbm.h
+ ! ext/SDBM_File/sdbm/util.c ext/Socket/Socket.xs
+ ! ext/Thread/Thread.xs ext/attrs/attrs.xs global.sym perl.h
+ ! perly.c sv.c t/lib/english.t t/op/misc.t thread.h util.c
+ ! win32/Makefile win32/makedef.pl win32/makefile.mk x2p/a2p.c
+ ! x2p/a2p.h x2p/a2py.c x2p/hash.c x2p/str.c x2p/util.c
+ ! x2p/walk.c
+____________________________________________________________________________
+[ 195] By: mbeattie on 1997/10/31 18:05:31
+ Log: Half way through moving per-thread magicals into per-thread fields
+ and the associated new OP_SPECIFIC and find_thread_magical stuff.
+ perl will compile but plenty of the magicals are still broken.
+ Branch: perl
+ ! doop.c embed.h ext/Thread/Thread.xs global.sym gv.c hv.c
+ ! interp.sym mg.c op.c opcode.h opcode.pl perl.c perl.h pp.c
+ ! pp_ctl.c pp_sys.c proto.h sv.c sv.h taint.c thread.h toke.c
+ ! util.c
+____________________________________________________________________________
+[ 194] By: nick on 1997/10/31 01:43:49
+ Log: Convert miniperl sources to ANSI C. Several passes of
+ GNU C's 'protoize' plus a few hand edits.
+ Will compile miniperl with gcc -x c++ (i.e. treat .c a C++ files)
+ Does not link seems gcc's C++ does not define a symbol for
+ const char foo[] = "....";
+ i.e. with empty [].
+ Branch: ansiperl
+ ! av.c deb.c doio.c doop.c dump.c gv.c hv.c malloc.c mg.c
+ ! miniperlmain.c op.c perl.c perl.h perlio.c perly.y pp.c
+ ! pp_ctl.c pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c
+ ! sv.c taint.c toke.c universal.c util.c
+____________________________________________________________________________
+[ 193] By: nick on 1997/10/30 03:00:01
+ Log: Make the ansi branch
+ Branch: ansiperl
+ +> (branch 907 files)
+____________________________________________________________________________
+[ 192] By: nick on 1997/10/30 02:48:17
+ Log: Oneperl builds with THREADS/THISPTR Borland
+ Manualy inserted Sarathy's new COND_XXXXX from his mail.
+ Manual change if Tself -> self as was easier than resolve :-(
+ Two aTHIS's in op.c
+ Branch: oneperl
+ ! embed.h op.c thread.h thread.sym win32/makefile.mk
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 191] By: nick on 1997/10/30 01:54:50
+ Log: Raw resolve of latest sources with oneperl
+ Branch: oneperl
+ !> Todo.5.005 ext/Thread/Thread.xs fakethr.h op.c op.h opcode.h
+ !> opcode.pl perl.c thread.h win32/win32thread.c
+ !> win32/win32thread.h
+____________________________________________________________________________
+[ 190] By: mbeattie on 1997/10/29 14:39:54
+ Log: Remove global macro "self". Change thr->Tself to thr->self.
+ Branch: perl
+ ! ext/Thread/Thread.xs fakethr.h perl.c thread.h
+ ! win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 189] By: mbeattie on 1997/10/29 12:49:01
+ Log: Add to Todo: compiler with fake SvCUR in comppad_name entries.
+ Branch: perl
+ ! Todo.5.005
+____________________________________________________________________________
+[ 188] By: mbeattie on 1997/10/29 12:45:32
+ Log: Add pp_lock knowledge to compiler
+ Branch: perlext
+ ! Compiler/ccop.c Compiler/ccop.h
+____________________________________________________________________________
+[ 187] By: mbeattie on 1997/10/29 12:45:02
+ Log: Change peep() to optimise away unneeded rv2av in lval->[] and lval->{}
+ Branch: perl
+ ! op.c
+____________________________________________________________________________
+[ 186] By: mbeattie on 1997/10/29 12:43:36
+ Log: Move compiler OP class information into opcode.pl.
+ Branch: perl
+ ! op.h opcode.h opcode.pl
+____________________________________________________________________________
+[ 185] By: nick on 1997/10/26 22:52:05
+ Log: Split failing test in op/misc.t into op/nothread.t
+ so all tests can be passed where they apply.
+ Cleanup other two cases of THREADS/THISPTR.
+ Conditional compile option for CriticalSection's on Win32
+ Branch: oneperl
+ + t/op/nothread.t
+ ! sv.h t/op/misc.t win32/Makefile win32/makedef.pl
+ ! win32/win32thread.h
+____________________________________________________________________________
+[ 184] By: nick on 1997/10/26 19:42:00
+ Log: USE_THISPTR fixes for CRIPPLED_CC (implied by threads)
+ Branch: oneperl
+ ! embed.h global.sym proto.h sv.c sv.h toke.c
+____________________________________________________________________________
+[ 183] By: nick on 1997/10/26 18:31:58
+ Log: Make USE_THREADS imply CRIPPLED_CC.
+ This avoids most of the uses of 'Sv' and hence many needs of
+ dTHR in extension code.
+ With this change Data::Dumper builds as-is
+ and Tk only needs four tweaks:
+ 1. Obscure dump-stack case which really needs dTHR
+ 2. A curcop in error-message code
+ 3. Two cases of SAVETMPS
+ 4. A curcop == &compiling which is probably not required.
+ IMHO the SAVETMPS case is only one which merits further automation.
+ Branch: oneperl
+ ! embed.h global.sym perl.h sv.c win32/Makefile win32/makedef.pl
+____________________________________________________________________________
+[ 182] By: nick on 1997/10/26 16:31:58
+ Log: Change dSP to imply dTHR for extension source compatibility
+ introduce djSP (Declare Just SP) for use in perl sources
+ and thread-aware extensions. Use latter.
+ Branch: oneperl
+ ! XSUB.h doio.c doop.c ext/Thread/Thread.xs gv.c mg.c perl.c
+ ! pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c sv.c
+____________________________________________________________________________
+[ 181] By: nick on 1997/10/26 00:39:57
+ Log: More tests
+ Branch: oneperl
+ ! t/lib/thread.t
+____________________________________________________________________________
+[ 180] By: nick on 1997/10/25 22:18:27
+ Log: Use return of THREAD_CREATE() - add basic thread test
+ Branch: oneperl
+ + t/lib/thread.t
+ ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[ 179] By: nick on 1997/10/25 21:25:23
+ Log: Builds with no thread/this
+ Branch: oneperl
+ ! ext/Thread/Thread.xs t/lib/english.t win32/makedef.pl
+ ! win32/win32thread.c
+____________________________________________________________________________
+[ 178] By: nick on 1997/10/25 18:28:03
+ Log: Cleanup dead #ifdef branch introduced by scruffy merging.
+ Branch: oneperl
+ ! perl.c
+____________________________________________________________________________
+[ 177] By: nick on 1997/10/25 18:11:33
+ Log: Basic integrate of oneperl with threads, passes
+ tests THISPTR+THREADs - win32/win32thread.* needed
+ changes (where did they come from)?
+ Branch: oneperl
+ ! embed.h ext/Thread/Thread.xs perl.h thread.h win32/Makefile
+ ! win32/makedef.pl win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[ 176] By: nick on 1997/10/25 17:05:52
+ Log: Onepel builds THISPTR no threads
+ Branch: oneperl
+ ! ext/Thread/Thread.xs thread.h win32/makedef.pl
+____________________________________________________________________________
+[ 175] By: nick on 1997/10/25 16:40:10
+ Log: Integrate oneperl with new style JOIN etc. macros
+ Branch: oneperl
+ +> win32/win32thread.c win32/win32thread.h
+ !> Todo.5.005 ext/POSIX/POSIX.xs ext/Thread/Thread.xs fakethr.h
+ !> global.sym gv.c hv.c mg.c op.c opcode.h opcode.pl perl.c
+ !> perl.h pp.c pp_hot.c sv.h thread.h vms/descrip.mms
+ !> vms/gen_shrfls.pl vms/vms.c vms/vmsish.h win32/Makefile
+ !> win32/makefile.mk
+____________________________________________________________________________
+[ 174] By: mbeattie on 1997/10/24 17:14:00
+ Log: Remove xcv_condp CV field which is no longer used.
+ Branch: perl
+ ! sv.h
+____________________________________________________________________________
+[ 173] By: mbeattie on 1997/10/24 14:36:09
+ Log: Patches for VMS [Dan Sugalski]
+ Branch: bugs
+ + vms2
+ Branch: perl
+ ! ext/POSIX/POSIX.xs vms/descrip.mms vms/gen_shrfls.pl vms/vms.c
+ ! vms/vmsish.h
+____________________________________________________________________________
+[ 172] By: mbeattie on 1997/10/24 13:50:59
+ Log: Improve internal threading API. Introduce win32/win32thread.[ch]
+ to use new API and patch win32 makefile stuff a little.
+ Branch: perl
+ + win32/win32thread.c win32/win32thread.h
+ ! Todo.5.005 ext/Thread/Thread.xs fakethr.h global.sym gv.c hv.c
+ ! perl.c perl.h thread.h win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[ 171] By: mbeattie on 1997/10/23 14:00:27
+ Log: Fix pp_hot.c:get_db_sub core dump when perl debugger used.
+
+ Jobs fixed ...
+
+ get_db_sub fixed on 1997/10/23 by mbeattie@squash
+
+ Subject: [perl5.004_53] Debugger crash (patch)
+ Date: Thu, 16 Oct 1997 22:03:09 -0400
+ From: Owen Taylor <owt1@cornell.edu>
+ Branch: bugs
+ + get_db_sub
+ Branch: perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 170] By: mbeattie on 1997/10/23 09:22:40
+ Log: Fix refcounts for lock/magic_mutexfree. Make OP_LOCK auto-ref
+ its argument using ck_rfun as OP_DEFINED. Make pp_lock return
+ a ref to its argument for AV, HV, CV.
+ Branch: perl
+ ! mg.c op.c opcode.h opcode.pl pp.c pp_hot.c
+____________________________________________________________________________
+[ 169] By: gsar on 1997/10/21 03:49:25
+ Log: With these fixes, oneperl builds THISPTR && THREADS under both win32 compilers:
+ - Fixup static functions that were missing aTHIS.
+ - s/extern/EXT/ in dTHR macro, or Borland CC croaks.
+ - Removed static functions from global.sym.
+ - Typo in perl.h.
+ - Additions to makefile.mk.
+ Branch: oneperl
+ ! embed.h embed.pl global.sym op.c perl.h pp_ctl.c toke.c
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 168] By: nick on 1997/10/20 02:47:18
+ Log: Passes expected tests with -DUSE_THREADS with/without -DUSE_THISPTR
+ Branch: oneperl
+ ! embed.h ext/Thread/Thread.xs mg.c pp.c pp_hot.c proto.h
+ ! scope.h thread.h
+____________________________________________________________________________
+[ 167] By: nick on 1997/10/20 01:03:00
+ Log: Add missing aTHIS in cast
+ Branch: oneperl
+ ! win32/dl_win32.xs
+____________________________________________________________________________
+[ 166] By: nick on 1997/10/20 00:44:42
+ Log: Builds and passes test with -DUSE_THISPTR
+ Branch: oneperl
+ ! ext/Thread/Thread.xs win32/Makefile win32/makedef.pl
+ ! win32/perllib.c
+____________________________________________________________________________
+[ 165] By: nick on 1997/10/19 21:45:36
+ Log: Oneperl runs miniperl with THISPTR (Win32 threading patch included)
+ Branch: oneperl
+ ! embed.h ext/Thread/Thread.xs global.sym interp.sym perl.c
+ ! perl.h t/TEST thread.h win32/Makefile win32/makedef.pl
+ ! win32/makefile.mk win32/perllib.c
+____________________________________________________________________________
+[ 164] By: nick on 1997/10/19 20:09:13
+ Log: oneperl compiles (but fails) with -DUSE_THISPTR
+ Branch: oneperl
+ ! av.c embed.h mg.c perl.c perl.h pp.c pp_ctl.c pp_hot.c
+ ! pp_sys.c proto.h regexec.c sv.c thread.h thread.sym util.c
+ ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[ 163] By: nick on 1997/10/19 16:46:09
+ Log: Builds on NT4 without THISPTR or THREADS, passes all tests
+ Branch: oneperl
+ ! embed.h perl.h thread.h vars.h
+____________________________________________________________________________
+[ 162] By: nick on 1997/10/19 14:42:16
+ Log: Dubious merge of oneperl's variable and struct thread
+ Branch: oneperl
+ !> perl.h thread.h
+____________________________________________________________________________
+[ 161] By: nick on 1997/10/18 18:05:13
+ Log: integrate all but perl.h/thread.h
+ Branch: oneperl
+ +> Todo.5.005 perlio.sym
+ !> (integrate 98 files)
+____________________________________________________________________________
+[ 160] By: nick on 1997/10/18 03:49:27
+ Log: Integrate rest of sub-dirs into oneperl
+ Branch: oneperl
+ +> ext/Thread/Makefile.PL ext/Thread/Notes ext/Thread/README
+ +> ext/Thread/Thread.pm ext/Thread/Thread.xs
+ +> ext/Thread/Thread/Queue.pm ext/Thread/Thread/Semaphore.pm
+ +> ext/Thread/create.t ext/Thread/io.t ext/Thread/join.t
+ +> ext/Thread/join2.t ext/Thread/list.t ext/Thread/lock.t
+ +> ext/Thread/queue.t ext/Thread/sync.t ext/Thread/sync2.t
+ +> ext/Thread/typemap ext/Thread/unsync.t ext/Thread/unsync2.t
+ +> ext/Thread/unsync3.t ext/Thread/unsync4.t hints/newsos4.sh
+ +> hints/os390.sh
+ - ext/util/extliblist
+ !> (integrate 425 files)
+____________________________________________________________________________
+[ 159] By: nick on 1997/10/18 03:20:11
+ Log: Integrate (accept) t and win32 into oneperl
+ Branch: oneperl
+ +> t/lib/dosglob.t win32/bin/pl2bat.pl win32/bin/runperl.pl
+ +> win32/bin/search.pl win32/bin/webget.pl win32/config.bc
+ +> win32/config.vc win32/config_H.bc win32/config_H.vc
+ +> win32/makefile.mk
+ !> (integrate 188 files)
+____________________________________________________________________________
+[ 158] By: nick on 1997/10/18 03:12:59
+ Log: Integrate lib/... into oneperl
+ Branch: oneperl
+ +> lib/File/DosGlob.pm lib/base.pm lib/chat2.pl
+ !> (integrate 138 files)
+____________________________________________________________________________
+[ 157] By: nick on 1997/10/18 02:55:53
+ Log: Make lib/Bundle/CPAN.pm text in oneperl too.
+ Branch: oneperl
+ ! lib/Bundle/CPAN.pm
+____________________________________________________________________________
+[ 156] By: nick on 1997/10/18 02:52:44
+ Log: Make lib/Bundle/CPAN.pm a text file
+ Branch: perl
+ ! lib/Bundle/CPAN.pm
+____________________________________________________________________________
+[ 155] By: nick on 1997/10/18 02:33:02
+ Log: Some weirdness in the intgrate process
+ Branch: oneperl
+ - win32/bin/pl2bat.bat win32/bin/search.bat win32/bin/test.bat
+ - win32/bin/webget.bat win32/config.H win32/config.w32
+____________________________________________________________________________
+[ 153] By: nick on 1997/10/18 02:29:16
+ Log: Let us try all the pure integrate stuff
+ Branch: oneperl
+ !> (integrate 647 files)
+____________________________________________________________________________
+[ 152] By: nick on 1997/10/18 02:13:35
+ Log: Get more sub directories out of the way.
+ Branch: oneperl
+ !> (integrate 92 files)
+____________________________________________________________________________
+[ 151] By: nick on 1997/10/18 02:05:41
+ Log: Integrate hints
+ Branch: oneperl
+ !> (integrate 68 files)
+____________________________________________________________________________
+[ 150] By: nick on 1997/10/18 01:57:20
+ Log: Try reopening some non-contravertial files
+ Branch: oneperl
+ !> x2p/EXTERN.h x2p/INTERN.h x2p/Makefile.SH x2p/a2p.c x2p/a2p.h
+ !> x2p/a2p.pod x2p/a2p.y x2p/a2py.c x2p/cflags.SH
+ !> x2p/find2perl.PL x2p/hash.c x2p/hash.h x2p/proto.h x2p/s2p.PL
+ !> x2p/str.c x2p/str.h x2p/util.c x2p/util.h x2p/walk.c
+____________________________________________________________________________
+[ 144] By: gsar on 1997/10/16 22:26:07
+ Log: Merge changes to Thread and add makefile fixups to accomodate Thread
+ build. Once again, builds and runs all Thread tests using either
+ compiler.
+ Branch: win32/perl
+ ! embed.h ext/Thread/Thread.xs interp.sym perl.c win32/Makefile
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 143] By: gsar on 1997/10/16 20:45:58
+ Log: A quick merge of latest mainline.
+ Branch: win32/perl
+ +> ext/Thread/Makefile.PL ext/Thread/Notes ext/Thread/README
+ +> ext/Thread/Thread.pm ext/Thread/Thread.xs
+ +> ext/Thread/Thread/Queue.pm ext/Thread/Thread/Semaphore.pm
+ +> ext/Thread/create.t ext/Thread/io.t ext/Thread/join.t
+ +> ext/Thread/join2.t ext/Thread/list.t ext/Thread/lock.t
+ +> ext/Thread/queue.t ext/Thread/sync.t ext/Thread/sync2.t
+ +> ext/Thread/typemap ext/Thread/unsync.t ext/Thread/unsync2.t
+ +> ext/Thread/unsync3.t ext/Thread/unsync4.t hints/os390.sh
+ +> lib/base.pm t/lib/dosglob.t
+ - ext/util/extliblist
+ !> (integrate 134 files)
+
+----------------
+Version 5.004_53
+----------------
+
+____________________________________________________________________________
+[ 142] By: mbeattie on 1997/10/16 16:52:55
+ Log: Add newly moved perl/ext/Thread/... files to MANIFEST.
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 141] By: mbeattie on 1997/10/16 16:42:13
+ Log: Move perlext/Thread into perl/ext/Thread.
+ Branch: perl
+ +> ext/Thread/Makefile.PL ext/Thread/Notes ext/Thread/README
+ +> ext/Thread/Thread.pm ext/Thread/Thread.xs
+ +> ext/Thread/Thread/Queue.pm ext/Thread/Thread/Semaphore.pm
+ +> ext/Thread/create.t ext/Thread/io.t ext/Thread/join.t
+ +> ext/Thread/join2.t ext/Thread/list.t ext/Thread/lock.t
+ +> ext/Thread/queue.t ext/Thread/sync.t ext/Thread/sync2.t
+ +> ext/Thread/typemap ext/Thread/unsync.t ext/Thread/unsync2.t
+ +> ext/Thread/unsync3.t ext/Thread/unsync4.t
+ ! Configure
+ Branch: perlext
+ - Thread/Makefile.PL Thread/Notes Thread/README Thread/Thread.pm
+ - Thread/Thread.xs Thread/Thread/Queue.pm
+ - Thread/Thread/Semaphore.pm Thread/create.t Thread/io.t
+ - Thread/join.t Thread/join2.t Thread/list.t Thread/lock.t
+ - Thread/queue.t Thread/sync.t Thread/sync2.t Thread/typemap
+ - Thread/unsync.t Thread/unsync2.t Thread/unsync3.t
+ - Thread/unsync4.t
+____________________________________________________________________________
+[ 140] By: mbeattie on 1997/10/16 16:26:53
+ Log: Correct threads_mutex locking in main thread destruction.
+ Add per-interp thrsv to hold SV struct thread for main thread.
+ Move Thread.xs MUTEX_DESTROY from end of threadstart to remove_thread.
+ Add Thread/list.t test of Thread->list method.
+ Let Thread::Semaphore methods up and down take an extra argument.
+ Branch: perl
+ ! embed.h interp.sym perl.c perl.h thread.h
+ Branch: perlext
+ + Thread/list.t
+ ! Thread/Thread.xs Thread/Thread/Semaphore.pm
+____________________________________________________________________________
+[ 139] By: mbeattie on 1997/10/16 14:01:11
+ Log: Fix up merge with 5.004_04.
+ Branch: perl
+ ! op.c perl.c t/lib/dosglob.t
+____________________________________________________________________________
+[ 138] By: TimBunce on 1997/10/16 12:58:22
+ Log: Fix-up PerForce type for t/lib/dosglob.t from text to xtext
+ Branch: maint-5.004/perl
+ ! t/lib/dosglob.t
+____________________________________________________________________________
+[ 137] By: mbeattie on 1997/10/16 11:09:25
+ Log: Merge maint-5.004 branch (5.004_04) with mainline.
+ Branch: perl
+ +> hints/os390.sh lib/base.pm t/lib/dosglob.t
+ - ext/util/extliblist
+ !> (integrate 132 files)
+____________________________________________________________________________
+[ 135] By: gsar on 1997/10/15 21:46:05
+ Log: Win32 changes over 5.004_52:
+ - rearranged MUTEX_LOCK()s in perl_destroy so that we don't call it
+ on an already locked mutex.
+ - other minor tweaks.
+ Now builds and runs win32-version of Thread_52, passing all tests.
+ Branch: win32/perl
+ ! perl.c proto.h thread.h
+____________________________________________________________________________
+[ 134] By: gsar on 1997/10/15 18:19:31
+ Log: fixup makefile.mk conflict.
+ Branch: win32/perl
+ ! win32/makefile.mk
+____________________________________________________________________________
+[ 133] By: gsar on 1997/10/15 18:02:46
+ Log: Integrated latest changes from mainline into win32.
+ Branch: win32/perl
+ +> fakethr.h
+ !> MANIFEST Porting/makerel Porting/patchls README.threads
+ !> Todo.5.005 perl.c pp_hot.c thread.h util.c win32/config.bc
+ !> win32/config.vc win32/config_H.bc win32/config_H.vc
+ !> win32/makefile.mk
+
+----------------
+Version 5.004_52
+----------------
+
+____________________________________________________________________________
+[ 132] By: mbeattie on 1997/10/15 17:02:38
+ Log: Remove out-of-date test Thread/cond.t.
+ Branch: perlext
+ - Thread/cond.t
+____________________________________________________________________________
+[ 131] By: mbeattie on 1997/10/15 16:57:45
+ Log: Finish thread state machine: fixes global destruction of threads,
+ detaching, joining etc. Alter FAKE_THREADS-specific fields to use
+ new HAVE_THREAD_INTERN stuff. Updates docs. Various fixes to
+ Thread.xs.
+ Branch: perl
+ ! MANIFEST README.threads Todo.5.005 perl.c util.c
+ Branch: perlext
+ ! Thread/Thread.xs Thread/queue.t
+____________________________________________________________________________
+[ 130] By: mbeattie on 1997/10/15 16:55:10
+ Log: Add HAVE_THREAD_INTERN for platform-dependent struct thread additions.
+ Fix ThrSETSTATE not to lock t->mutex itself.
+ Branch: perl
+ ! fakethr.h thread.h
+____________________________________________________________________________
+[ 129] By: mbeattie on 1997/10/15 16:53:35
+ Log: Remove stale code from pp_entersub which breaks sub ownership locks.
+ Branch: perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 128] By: TimBunce on 1997/10/15 15:55:26
+ Log: Maintenance 5.004_04 changes
+ Branch: maint-5.004/perl
+ + hints/os390.sh lib/base.pm t/lib/dosglob.t
+ - ext/util/extliblist
+ ! Changes Configure INSTALL MANIFEST Makefile.SH Porting/makerel
+ ! Porting/patchls Porting/pumpkin.pod README.vms av.c configpm
+ ! doop.c eg/sysvipc/ipcsem emacs/cperl-mode.el embed.h
+ ! ext/DynaLoader/DynaLoader.pm ext/IO/lib/IO/Socket.pm
+ ! ext/util/make_ext global.sym gv.c hints/bsdos.sh
+ ! hints/dec_osf.sh hints/dynixptx.sh hints/irix_6.sh
+ ! hints/linux.sh hints/machten.sh hints/os2.sh hints/qnx.sh hv.c
+ ! installperl lib/AutoLoader.pm lib/CPAN.pm
+ ! lib/CPAN/FirstTime.pm lib/Carp.pm lib/Cwd.pm lib/English.pm
+ ! lib/ExtUtils/Install.pm lib/ExtUtils/Liblist.pm
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/xsubpp
+ ! lib/File/DosGlob.pm lib/File/Find.pm lib/FileHandle.pm
+ ! lib/Getopt/Long.pm lib/Getopt/Std.pm lib/Math/Complex.pm
+ ! lib/Sys/Hostname.pm lib/Sys/Syslog.pm lib/Test/Harness.pm
+ ! lib/Time/Local.pm lib/autouse.pm lib/blib.pm
+ ! lib/diagnostics.pm lib/getopt.pl lib/perl5db.pl lib/vars.pm
+ ! makedepend.SH malloc.c mg.c miniperlmain.c myconfig op.c
+ ! opcode.h os2/Changes os2/OS2/REXX/Makefile.PL
+ ! os2/OS2/REXX/REXX.pm os2/os2.c patchlevel.h perl.c perl.h
+ ! perly.c perly.fixer perly.y pod/perl.pod pod/perlapio.pod
+ ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ ! pod/perlguts.pod pod/perlipc.pod pod/perlop.pod
+ ! pod/perlrun.pod pod/perlsec.pod pod/perlsub.pod
+ ! pod/perltrap.pod pod/perlvar.pod pod/perlxs.pod pp.c pp_ctl.c
+ ! pp_hot.c pp_sys.c proto.h regcomp.c regexec.c scope.c sv.c
+ ! t/TEST t/comp/proto.t t/lib/complex.t t/lib/io_sock.t
+ ! t/lib/io_udp.t t/op/glob.t t/op/method.t t/op/misc.t
+ ! t/op/ref.t t/op/runlevel.t t/op/split.t t/op/sprintf.t
+ ! t/op/subst.t t/op/taint.t t/pragma/locale.t taint.c toke.c
+ ! unixish.h util.c utils/h2ph.PL utils/h2xs.PL utils/perlbug.PL
+ ! utils/perldoc.PL vms/perly_c.vms vms/vms.c vms/vmsish.h
+ ! win32/Makefile win32/config_H.bc win32/config_H.vc
+ ! win32/makefile.mk win32/pod.mak win32/win32.c win32/win32io.c
+ ! win32/win32sck.c x2p/Makefile.SH x2p/util.c
+____________________________________________________________________________
+[ 127] By: mbeattie on 1997/10/15 10:00:18
+ Log: Added fakethr.h.
+ Branch: perl
+ + fakethr.h
+____________________________________________________________________________
+[ 126] By: mbeattie on 1997/10/15 09:50:57
+ Log: pthread_condattr_init in thread.h for OLD_PTHREADS_API.
+ Branch: perl
+ ! thread.h
+____________________________________________________________________________
+[ 125] By: mbeattie on 1997/10/15 09:09:24
+ Log: Started rewriting thread state machine.
+ Branch: perl
+ ! perl.c thread.h
+ Branch: perlext
+ ! Thread/Thread.xs
+____________________________________________________________________________
+[ 124] By: gsar on 1997/10/14 00:23:15
+ Log: Remove spurious extra MUTEX_LOCK in pp_entersub(). Now builds and passes
+ tests in win32 version of latest perlext/Thread.
+ Branch: win32/perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 123] By: gsar on 1997/10/13 23:18:38
+ Log: Initial merge of win32 threads patch.
+ Branch: win32/perl
+ ! embed.h global.sym interp.sym perl.c perl.h pp_hot.c thread.h
+ ! win32/Makefile win32/makedef.pl win32/makefile.mk
+ ! win32/perllib.c win32/pod.mak win32/win32.h
+____________________________________________________________________________
+[ 122] By: gsar on 1997/10/10 20:58:40
+ Log: Integrated changes on mainline into the win32 branch. Had to set
+ P4USER=mbeattie for the resolve step (due to the presence of newly
+ branched files that had not been submitted?)
+ Branch: win32/perl
+ +> Porting/makerel Porting/patchls README.threads Todo.5.005
+ +> ext/attrs/Makefile.PL ext/attrs/attrs.pm ext/attrs/attrs.xs
+ +> hints/newsos4.sh lib/File/DosGlob.pm lib/chat2.pl perlio.sym
+ +> win32/bin/pl2bat.pl win32/bin/runperl.pl win32/bin/search.pl
+ +> win32/bin/webget.pl win32/config.bc win32/config.vc
+ +> win32/config_H.bc win32/config_H.vc win32/makefile.mk
+ - win32/bin/pl2bat.bat win32/bin/search.bat win32/bin/test.bat
+ - win32/bin/webget.bat win32/config.H win32/config.w32
+ ! thread.h
+ !> (integrate 858 files)
+____________________________________________________________________________
+[ 121] By: mbeattie on 1997/10/10 17:23:41
+ Log: Tweak a few Thread tests.
+ Branch: perlext
+ + Thread/join2.t
+ ! Thread/io.t Thread/sync2.t
+____________________________________________________________________________
+[ 120] By: mbeattie on 1997/10/10 17:22:46
+ Log: Rewrite thread destruction system using linked list of threads.
+ Still not completely done. Add methods self, equal, flags, list
+ to Thread.xs. Add Thread_MAGIC_SIGNATURE check to typemap.
+ Branch: perl
+ ! perl.c perl.h thread.h
+ Branch: perlext
+ ! Thread/Thread.xs Thread/typemap
+____________________________________________________________________________
+[ 119] By: mbeattie on 1997/10/10 17:19:55
+ Log: Fix up locking/synchronisation for pp_entersub.
+ Branch: perl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 118] By: mbeattie on 1997/10/10 09:55:32
+ Log: Put back entries in MANIFEST for the four now-returned win32/* files
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 117] By: mbeattie on 1997/10/10 08:12:23
+ Log: Took out mystack_foo for good, fixed up interp.sym and win32/makedef.pl
+ Branch: perl
+ ! Todo.5.005 embed.h interp.sym perl.h win32/makedef.pl
+____________________________________________________________________________
+[ 116] By: mbeattie on 1997/10/08 15:41:08
+ Log: Add missing sig_pipe definition to Thread.xs.
+ Branch: perlext
+ ! Thread/Thread.xs
+____________________________________________________________________________
+[ 115] By: mbeattie on 1997/10/08 15:40:46
+ Log: Fix up 5.004_03 merge: remove missing win32 files from MANIFEST,
+ add missing dTHR; to new function unwind_handler_stack() in mg.c
+ and bump patchlevel.h to 5.004_52.
+ Branch: perl
+ ! MANIFEST mg.c patchlevel.h
+____________________________________________________________________________
+[ 114] By: mbeattie on 1997/10/08 10:19:27
+ Log: Merge maint-5.004 branch (5.004_03) with mainline.
+ MANIFEST is out of sync.
+ Branch: perl
+ +> win32/bin/pl2bat.pl win32/bin/runperl.pl win32/bin/search.pl
+ +> win32/bin/webget.pl
+ - win32/bin/pl2bat.bat win32/bin/search.bat win32/bin/test.bat
+ - win32/bin/webget.bat
+ !> (integrate 168 files)
+____________________________________________________________________________
+[ 113] By: mbeattie on 1997/10/05 17:52:49
+ Log: Move init of global mutexes/cond vars earlier.
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 112] By: nick on 1997/10/04 15:25:28
+ Log: Add perl.sym to MANIFEST
+ Branch: oneperl
+ ! MANIFEST
+____________________________________________________________________________
+[ 111] By: nick on 1997/10/04 15:23:37
+ Log: Missing file
+ Branch: oneperl
+ + perl.sym
+____________________________________________________________________________
+[ 110] By: nick on 1997/10/04 13:04:26
+ Log: Now builds the extensions as well
+ Passes all tests
+ Branch: oneperl
+ ! XSUB.h embed.pl ext/DynaLoader/dlutils.c ext/Opcode/Opcode.xs
+ ! mg.c op.c perl.c pp_ctl.c pp_hot.c pp_sys.c proto.h sv.c
+ ! toke.c util.c writemain.SH
+____________________________________________________________________________
+[ 109] By: nick on 1997/10/04 12:02:14
+ Log: Odd checkin issue
+ Branch: oneperl
+ ! dump.c global.sym gv.c hv.c malloc.c mg.c op.c opcode.h perl.c
+ ! perly.c perly.c.diff perly.h perly.y pp.c pp_hot.c pp_sys.c
+ ! proto.h scope.c sv.c toke.c universal.c util.c vms/perly_c.vms
+ ! vms/perly_h.vms writemain.SH
+____________________________________________________________________________
+[ 108] By: nick on 1997/10/04 11:12:52
+ Log: Added lots of (missing) prototypes (ckprotos is util to check)
+ Fixed missing aTHIS flagged by above.
+ -DUSE_THISPTR passes minitest!
+ Branch: oneperl
+ + ckprotos
+ ! dump.c global.sym gv.c hv.c malloc.c mg.c op.c opcode.h perl.c
+ ! perly.c perly.c.diff perly.h perly.y pp.c pp_hot.c pp_sys.c
+ ! proto.h scope.c sv.c toke.c universal.c util.c vms/perly_c.vms
+ ! vms/perly_h.vms
+____________________________________________________________________________
+[ 107] By: nick on 1997/10/03 22:36:52
+ Log: .y muddle fixup - will get this sorted oneday ...
+ Branch: oneperl
+ ! miniperlmain.c perly.c perly.c.diff perly.h vms/perly_c.vms
+ ! vms/perly_h.vms
+____________________________________________________________________________
+[ 106] By: mbeattie on 1997/10/03 17:12:33
+ Log: Remove last traces of "tokenbuf as temp buffer" and removed it
+ from struct thread. Added missing thr->Tfoo defines for statbuf
+ and timesbuf and removed unused Tbuf field.
+ Branch: perl
+ ! doio.c mg.c perl.c pp_sys.c sv.c thread.h
+____________________________________________________________________________
+[ 105] By: nick on 1997/10/03 15:56:50
+ Log: dTHIS -> hasTHIS, dTHR -> dTHR; builds without THISPTR with/without USE_THREADS
+ Branch: oneperl
+ ! XSUB.h av.c deb.c doio.c doop.c dump.c embed.pl global.sym
+ ! gv.c hv.c mg.c op.c perl.c perl.h perlio.c perly.c pp.c pp.h
+ ! pp_ctl.c pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c
+ ! sv.c taint.c thread.h toke.c universal.c util.c
+____________________________________________________________________________
+[ 104] By: mbeattie on 1997/10/03 15:23:25
+ Log: Back out sv_bless3 change which made pp_bless zap '~'-magic.
+ Branch: perl
+ ! global.sym pp.c proto.h sv.c
+____________________________________________________________________________
+[ 103] By: mbeattie on 1997/10/03 15:17:39
+ Log: Fixed sv_mutex locking for new_SV, del_SV and nice_chunks.
+ Branch: perl
+ ! av.c hv.c perl.h sv.c
+____________________________________________________________________________
+[ 102] By: mbeattie on 1997/10/03 11:53:51
+ Log: Reliable thread signal handling.
+ Branch: perl
+ ! global.sym mg.c perl.c perl.h
+ Branch: perlext
+ ! Thread/Thread.xs
+____________________________________________________________________________
+[ 101] By: nick on 1997/10/02 20:43:17
+ Log: Cleanup perly.y stuff
+ Branch: oneperl
+ ! embed.h perly.c perly.c.diff vms/perly_c.vms vms/perly_h.vms
+____________________________________________________________________________
+[ 100] By: nick on 1997/10/02 18:54:08
+ Log: Compiles with less invasive aTHIS adding
+ Branch: oneperl
+ + nothis.sym
+ ! MANIFEST XSUB.h av.c cop.h deb.c doio.c doop.c dump.c embed.h
+ ! embed.pl global.sym gv.c gv.h handy.h hv.c hv.h mg.c op.c op.h
+ ! opcode.h perl.c perl.h perlio.c perlsdio.h perly.c
+ ! perly.c.diff perly.y pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c
+ ! proto.h regcomp.c regcomp.h regexec.c run.c scope.c scope.h
+ ! sv.c sv.h t/op/sort.t taint.c thread.h toke.c universal.c
+ ! util.c vars.h
+
----------------
-Version 5.004_64 Developer release working toward 5.005
+Version 5.004_51
----------------
-[Put changes here. Should we go back and put in changes for
-_51 onwards?]
+____________________________________________________________________________
+[ 99] By: mbeattie on 1997/10/02 17:23:48
+ Log: Added Thread/queue.t.
+ Branch: perlext
+ + Thread/queue.t
+____________________________________________________________________________
+[ 98] By: mbeattie on 1997/10/02 17:19:44
+ Log: Bumped patchlevel to 51. Updated Todo.5.005.
+ Branch: perl
+ ! Todo.5.005 patchlevel.h
+____________________________________________________________________________
+[ 97] By: mbeattie on 1997/10/02 17:07:47
+ Log: Update README.threads amd Thread/README
+ Branch: perl
+ ! README.threads
+ Branch: perlext
+ ! Thread/README
+____________________________________________________________________________
+[ 96] By: mbeattie on 1997/10/02 16:58:47
+ Log: Configure -Dusethreads hints for dec_osf and solaris_2 and
+ fix sv_bless3 prototype.
+ Branch: perl
+ ! hints/dec_osf.sh hints/solaris_2.sh sv.c
+____________________________________________________________________________
+[ 95] By: mbeattie on 1997/10/02 16:50:21
+ Log: Fixed broken typemap for Thread.
+ Branch: perlext
+ ! Thread/typemap
+____________________________________________________________________________
+[ 94] By: mbeattie on 1997/10/02 16:34:03
+ Log: Fix pod text in Lint.pm for private-names option.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 93] By: mbeattie on 1997/10/02 13:44:46
+ Log: Add Todo.5.005 to MANIFEST and submit remade embed.h.
+ Branch: perl
+ ! MANIFEST embed.h
+____________________________________________________________________________
+[ 92] By: mbeattie on 1997/10/02 13:27:10
+ Log: Add Todo.5.005
+ Branch: perl
+ + Todo.5.005
+____________________________________________________________________________
+[ 91] By: nick on 1997/10/01 20:23:38
+ Log: Raw _T# trial
+ Branch: oneperl
+ ! embed.h embed.pl proto.h sv.c
+____________________________________________________________________________
+[ 90] By: nick on 1997/10/01 18:22:03
+ Log: THIS + new sort stuff
+ Branch: oneperl
+ ! miniperlmain.c perl.c pp_ctl.c proto.h util.c
+____________________________________________________________________________
+[ 89] By: nick on 1997/10/01 18:03:05
+ Log: qsort cleanup - now tailored to perl's use and 'this' aware.
+ Branch: oneperl
+ ! pp_ctl.c proto.h util.c
+____________________________________________________________________________
+[ 88] By: mbeattie on 1997/10/01 17:04:12
+ Log: Start of Configure support for -Dusethreads plus associated
+ Linux hints.
+ Branch: perl
+ ! Configure hints/linux.sh
+____________________________________________________________________________
+[ 87] By: mbeattie on 1997/10/01 17:03:34
+ Log: Move runops_foo prototypes from proto.h to early in perl.h.
+ Branch: perl
+ ! perl.h proto.h
+____________________________________________________________________________
+[ 86] By: nick on 1997/09/30 19:15:21
+ Log: Debug hackery to thread.h - temporary
+ Quick-fix qsort() replacement - more to come.
+ Branch: oneperl
+ ! thread.h util.c
+____________________________________________________________________________
+[ 85] By: mbeattie on 1997/09/30 15:50:27
+ Log: Added Lint option regexp-variables.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 84] By: mbeattie on 1997/09/30 15:11:07
+ Log: Merge maint-5.004 branch (5.004_01) with mainline.
+ Branch: perl
+ +> Porting/makerel Porting/patchls hints/newsos4.sh
+ +> lib/File/DosGlob.pm lib/chat2.pl perlio.sym win32/config.bc
+ +> win32/config.vc win32/config_H.bc win32/config_H.vc
+ +> win32/makefile.mk
+ - win32/config.H win32/config.w32
+ !> (integrate 109 files)
+____________________________________________________________________________
+[ 83] By: TimBunce on 1997/09/30 14:27:09
+ Log: Maintenance 5.004_03 changes (addendum)
+ Branch: maint-5.004/perl
+ - win32/bin/search.bat
+____________________________________________________________________________
+[ 82] By: TimBunce on 1997/09/30 14:11:29
+ Log: Maintenance 5.004_03 changes
+ Branch: maint-5.004/perl
+ + win32/bin/pl2bat.pl win32/bin/runperl.pl win32/bin/search.pl
+ + win32/bin/webget.pl
+ - win32/bin/pl2bat.bat win32/bin/runperl.bat win32/bin/test.bat
+ - win32/bin/webget.bat
+ ! Changes Configure MANIFEST Makefile.SH Porting/makerel
+ ! ext/DynaLoader/DynaLoader.pm hints/hpux.sh hints/linux.sh
+ ! hints/sco.sh hints/sunos_4_1.sh installhtml lib/CPAN.pm
+ ! lib/ExtUtils/MM_Unix.pm lib/FileCache.pm lib/Math/Complex.pm
+ ! lib/Math/Trig.pm lib/blib.pm os2/diff.configure patchlevel.h
+ ! perl.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ ! pod/perlop.pod pod/perlre.pod pod/perlrun.pod pod/pod2man.PL
+ ! pp_ctl.c pp_sys.c t/lib/complex.t t/pragma/locale.t toke.c
+ ! utils/perlbug.PL win32/Makefile win32/makefile.mk
+ ! win32/win32.c
+____________________________________________________________________________
+[ 81] By: TimBunce on 1997/09/30 13:17:27
+ Log: Maintenance 5.004_02 changes
+ Branch: maint-5.004/perl
+ + win32/bin/runperl.bat
+ ! Changes Configure INSTALL MANIFEST Makefile.SH Porting/patchls
+ ! README.os2 README.win32 Todo XSUB.h av.c configpm doio.c
+ ! dosish.h embed.h ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs
+ ! ext/DB_File/typemap ext/GDBM_File/typemap ext/IO/IO.xs
+ ! ext/IO/lib/IO/File.pm ext/IO/lib/IO/Handle.pm
+ ! ext/IO/lib/IO/Socket.pm ext/NDBM_File/typemap
+ ! ext/ODBM_File/ODBM_File.xs ext/POSIX/POSIX.xs
+ ! ext/SDBM_File/typemap global.sym gv.c hints/cxux.sh
+ ! hints/os2.sh hints/sunos_4_1.sh hints/svr4.sh installhtml
+ ! lib/Bundle/CPAN.pm lib/CPAN.pm lib/CPAN/FirstTime.pm
+ ! lib/CPAN/Nox.pm lib/Carp.pm lib/Class/Struct.pm
+ ! lib/Exporter.pm lib/ExtUtils/Command.pm lib/ExtUtils/Embed.pm
+ ! lib/ExtUtils/Install.pm lib/ExtUtils/Liblist.pm
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+ ! lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Mksymlists.pm
+ ! lib/ExtUtils/xsubpp lib/File/Compare.pm lib/File/Copy.pm
+ ! lib/File/Find.pm lib/File/Path.pm lib/FileHandle.pm
+ ! lib/I18N/Collate.pm lib/IPC/Open3.pm lib/Net/hostent.pm
+ ! lib/Pod/Html.pm lib/Shell.pm lib/Sys/Hostname.pm
+ ! lib/Sys/Syslog.pm lib/Term/ReadLine.pm lib/Time/Local.pm
+ ! lib/UNIVERSAL.pm lib/dumpvar.pl lib/ftp.pl lib/perl5db.pl
+ ! malloc.c mg.c op.c opcode.pl os2/Changes os2/Makefile.SHs
+ ! os2/diff.configure os2/os2.c os2/os2ish.h patchlevel.h perl.c
+ ! perl.h pod/perlapio.pod pod/perlbook.pod pod/perldebug.pod
+ ! pod/perldelta.pod pod/perldiag.pod pod/perlembed.pod
+ ! pod/perlfunc.pod pod/perlguts.pod pod/perlop.pod
+ ! pod/perlre.pod pod/perlrun.pod pod/perltoc.pod
+ ! pod/perltrap.pod pod/perlvar.pod pod/perlxstut.pod
+ ! pod/pod2man.PL pod/splitpod pp.c pp_ctl.c pp_hot.c pp_sys.c
+ ! proto.h regcomp.c regexec.c scope.c sv.c t/TEST t/base/lex.t
+ ! t/comp/cmdopt.t t/comp/term.t t/lib/db-btree.t t/lib/db-hash.t
+ ! t/lib/db-recno.t t/lib/filehand.t t/lib/gdbm.t t/lib/ndbm.t
+ ! t/lib/odbm.t t/lib/sdbm.t t/op/local.t t/op/magic.t
+ ! t/op/pack.t t/op/re_tests t/op/ref.t t/op/regexp.t t/op/stat.t
+ ! t/op/substr.t t/op/universal.t toke.c universal.c util.c
+ ! utils/Makefile utils/h2ph.PL utils/perlbug.PL utils/perldoc.PL
+ ! vms/config.vms vms/descrip.mms vms/ext/filespec.t
+ ! vms/sockadapt.c vms/sockadapt.h vms/test.com vms/vms.c
+ ! vms/vmsish.h win32/Makefile win32/bin/pl2bat.bat
+ ! win32/config.bc win32/config.vc win32/config_H.bc
+ ! win32/config_H.vc win32/config_h.PL win32/makedef.pl
+ ! win32/makefile.mk win32/perllib.c win32/win32.c win32/win32.h
+ ! win32/win32io.c win32/win32io.h win32/win32iop.h
+ ! win32/win32sck.c
+____________________________________________________________________________
+[ 80] By: nick on 1997/09/29 20:31:43
+ Log: Add some prototypes in attempt to flush out errors
+ Tidy up vars.h usage.
+ Branch: oneperl
+ ! av.c embed.h hv.c opcode.h perl.c perl.h perlio.c pp_sys.c
+ ! proto.h util.c vars.h
+____________________________________________________________________________
+[ 79] By: nick on 1997/09/29 17:12:07
+ Log: Builds and passes tests without THISPTR
+ Branch: oneperl
+ ! MANIFEST global.sym perl.c perl.h vars.h
+____________________________________________________________________________
+[ 78] By: mbeattie on 1997/09/29 16:57:23
+ Log: Re-introduce the changes from change 68 (runops becomes a
+ function pointer and sv_bless3 for '~'-magic) which got lost
+ during the preparation for the maint-merge.
+ Branch: perl
+ ! global.sym perl.h pp.c proto.h run.c sv.c
+____________________________________________________________________________
+[ 77] By: mbeattie on 1997/09/29 16:44:16
+ Log: Start merge with maint-5.004 branch by creating an ancestral
+ branch point via a fake resolution with the maint-merge branch.
+ See Perforce Tech Note 9 for details.
+ Branch: perl
+ !> (integrate 864 files)
+____________________________________________________________________________
+[ 76] By: nick on 1997/09/28 19:04:42
+ Log: Code with this pointer compiles (but core dumps)
+ Branch: oneperl
+ ! EXTERN.h INTERN.h XSUB.h av.c av.h cop.h cv.h deb.c doio.c
+ ! doop.c dosish.h dump.c form.h gv.c gv.h handy.h hv.c hv.h
+ ! keywords.h mg.c mg.h miniperlmain.c nostdio.h op.c op.h
+ ! opcode.h patchlevel.h perl.c perl.h perlio.c perlio.h
+ ! perlsdio.h perlsfio.h perly.c perly.c.diff perly.h perly.y
+ ! pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c
+ ! regcomp.h regexec.c regexp.h run.c scope.c scope.h sv.c sv.h
+ ! taint.c thread.h toke.c universal.c unixish.h util.c util.h
+ ! vars.h
+____________________________________________________________________________
+[ 75] By: nick on 1997/09/28 15:45:35
+ Log: Quasi sensible starting point for aTHIS addition.
+ Branch: oneperl
+ ! perl.c perl.h pp_ctl.c sv.c thread.h toke.c util.c
+____________________________________________________________________________
+[ 74] By: nick on 1997/09/28 11:23:32
+ Log: Ooops - unwind perly.* stuff for now
+ Branch: oneperl
+ ! perly.c perly.h perly.y vms/perly_c.vms vms/perly_h.vms
+____________________________________________________________________________
+[ 73] By: nick on 1997/09/28 11:17:23
+ Log: Builds and passes all tests again
+ Branch: oneperl
+ ! embed.pl ext/DB_File/DB_File.xs gv.c perl.c perl.h perly.y
+ ! pp.h proto.h thread.sym vms/perly_c.vms vms/perly_h.vms
+____________________________________________________________________________
+[ 72] By: nick on 1997/09/28 10:47:01
+ Log: Save "important things" before re-try
+ Branch: oneperl
+ + vars.h
+ ! embed.pl thread.h thread.sym
+____________________________________________________________________________
+[ 71] By: nick on 1997/09/26 17:47:31
+ Log: Basic hacks to build with USE_THISPTR, not yet useful
+ but builds miniperl and passes minitest with all thread
+ variables via a _GLOBAL_ thr variable rather than globals.
+ Now for the local thr variable ...
+ Branch: oneperl
+ + thread.sym
+ ! MANIFEST README.threads XSUB.h av.c cv.h deb.c doio.c doop.c
+ ! dump.c embed.pl ext/DB_File/DB_File.xs gv.c hints/solaris_2.sh
+ ! hv.c mg.c op.c perl.c perl.h pp.c pp_ctl.c pp_hot.c pp_sys.c
+ ! proto.h regcomp.c regexec.c run.c scope.c sv.c thread.h toke.c
+ ! util.c vms/vms.c
+____________________________________________________________________________
+[ 70] By: mbeattie on 1997/09/23 14:29:23
+ Log: Branch oneperl from mainline.
+ Branch: oneperl
+ +> (branch 871 files)
+____________________________________________________________________________
+[ 69] By: mbeattie on 1997/09/22 16:02:37
+ Log: struct thread now stored in an SV and uses '~'-magic for access.
+ Branch: perl
+ ! thread.h
+ Branch: perlext
+ ! Thread/Thread.xs Thread/typemap
+____________________________________________________________________________
+[ 68] By: mbeattie on 1997/09/22 16:01:48
+ Log: runops becomes a funtion pointer and sv_bless3 created
+ to avoid pointer forgery with '~'-magic.
+ Branch: perl
+ ! global.sym perl.c perl.h pp.c proto.h run.c sv.c
+____________________________________________________________________________
+[ 67] By: mbeattie on 1997/09/22 15:45:56
+ Log: More fprintf -> PerlIO_printf changes.
+ Branch: perl
+ ! perl.c pp_hot.c util.c
+____________________________________________________________________________
+[ 66] By: mbeattie on 1997/09/22 15:10:40
+ Log: Minor multi-threading patches for VMS.
+ Branch: perl
+ ! mg.c thread.h vms/vms.c
+____________________________________________________________________________
+[ 65] By: mbeattie on 1997/09/15 14:09:11
+ Log: Add undefined-subs option to Lint.pm.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 64] By: mbeattie on 1997/09/10 16:39:41
+ Log: Debugging output for lock handling.
+ Branch: perl
+ ! mg.c pp.c pp_hot.c util.c
+____________________________________________________________________________
+[ 63] By: mbeattie on 1997/09/10 14:49:00
+ Log: Move Thread/Semaphore.pm to Thread/Thread/Semaphore.pm
+ Branch: perlext
+ +> Thread/Thread/Semaphore.pm
+ - Thread/Semaphore.pm
+____________________________________________________________________________
+[ 62] By: mbeattie on 1997/09/10 14:47:31
+ Log: Move Thread/Queue.pm to Thread/Thread/Queue.pm
+ Branch: perlext
+ +> Thread/Thread/Queue.pm
+ - Thread/Queue.pm
+____________________________________________________________________________
+[ 61] By: mbeattie on 1997/09/10 13:56:50
+ Log: Solaris fixes: delete pad and padname from thread.h and remove
+ MUTEX_* stuff when malloc.c gets copied to x2p/malloc.c.
+ Branch: perl
+ ! thread.h x2p/Makefile.SH
----------------
Version 5.004_50 First developer release towards 5.005
@@ -66,3 +10363,810 @@ Maintenance of the 5.004 version of perl continues with the 5.004_xx
series, where 'xx' is <= 49. Development of the next version, 5.005,
starts with 5.004_50.
+____________________________________________________________________________
+[ 60] By: mbeattie on 1997/09/09 16:57:41
+ Log: Update README.threads to mention -DL.
+ Branch: perl
+ ! README.threads
+____________________________________________________________________________
+[ 59] By: mbeattie on 1997/09/09 16:49:08
+ Log: Add Thread modules Queue.pm and Semaphore.pm
+ Branch: perlext
+ + Thread/Queue.pm Thread/Semaphore.pm
+____________________________________________________________________________
+[ 58] By: mbeattie on 1997/09/09 16:33:45
+ Log: Update README.threads
+ Branch: perl
+ ! README.threads
+____________________________________________________________________________
+[ 57] By: mbeattie on 1997/09/09 16:26:47
+ Log: Add debug info to Thread typemap.
+ Branch: perlext
+ ! Thread/typemap
+____________________________________________________________________________
+[ 56] By: mbeattie on 1997/09/09 15:04:26
+ Log: Rewrite synchronisation of subs/methods and add attrs
+ extension for specifying 'locked' and 'method' attributes.
+ Branch: perl
+ + ext/attrs/Makefile.PL ext/attrs/attrs.pm ext/attrs/attrs.xs
+ ! MANIFEST cv.h embed.h global.sym op.c perl.c pp.c pp_ctl.c
+ ! pp_hot.c proto.h sv.c sv.h toke.c
+ Branch: perlext
+ ! Thread/Thread.pm Thread/Thread.xs Thread/sync.t Thread/sync2.t
+____________________________________________________________________________
+[ 55] By: mbeattie on 1997/09/03 16:34:47
+ Log: Add new keyword "lock" to Opcode.pm
+ Branch: perl
+ ! ext/Opcode/Opcode.pm
+____________________________________________________________________________
+[ 54] By: mbeattie on 1997/09/03 14:44:44
+ Log: Run embed.pl and keywords.pl to complete RESTART -> INIT change
+ Branch: perl
+ ! embed.h keywords.h
+____________________________________________________________________________
+[ 53] By: mbeattie on 1997/09/03 13:52:24
+ Log: Add to MANIFEST: README.threads, lib/ISA.pm, lib/Class/Fields.pm
+ Branch: perl
+ ! MANIFEST
+____________________________________________________________________________
+[ 52] By: mbeattie on 1997/09/03 13:41:20
+ Log: Let Lint private_names catch out-of-package _foo methods.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 51] By: mbeattie on 1997/09/03 13:20:12
+ Log: Bump patchlevel.h to 5.004_50
+ Branch: perl
+ ! patchlevel.h
+____________________________________________________________________________
+[ 50] By: mbeattie on 1997/09/03 12:31:48
+ Log: Make compiler build/work with devel 5.005
+ Branch: perlext
+ ! Compiler/B.xs Compiler/B/Asmdata.pm Compiler/bytecode.h
+ ! Compiler/bytecode.pl Compiler/byterun.c Compiler/byterun.h
+____________________________________________________________________________
+[ 49] By: mbeattie on 1997/09/03 12:28:05
+ Log: Rename RESTART to INIT and associated changes
+ Branch: perl
+ ! interp.sym keywords.pl op.c perl.c perl.h perly.c perly.y
+ ! toke.c vms/perly_c.vms
+____________________________________________________________________________
+[ 48] By: mbeattie on 1997/09/02 15:54:27
+ Log: Added private-names option.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 47] By: mbeattie on 1997/09/02 11:54:55
+ Log: For compiler's CC, make PP_EVAL, PP_ENTERTRY work with JMPENV.
+ Branch: perlext
+ ! Compiler/cc_runtime.h
+____________________________________________________________________________
+[ 46] By: mbeattie on 1997/08/28 19:40:08
+ Log: Missing sprintf in try_autoload.
+ Branch: perlext
+ ! Compiler/B/C.pm
+____________________________________________________________________________
+[ 45] By: mbeattie on 1997/08/13 16:15:25
+ Log: Threading fixups for Digital UNIX.
+ Branch: perl
+ ! README.threads malloc.c perl.h toke.c
+____________________________________________________________________________
+[ 44] By: mbeattie on 1997/08/11 15:46:29
+ Log: Assorted changes for multi-threading (now works rather more).
+ Branch: perl
+ + README.threads
+ ! gv.c mg.c op.c perl.c perl.h pp_ctl.c pp_hot.c sv.c thread.h
+ ! toke.c util.c
+ Branch: perlext
+ ! Thread/Makefile.PL Thread/Thread.xs Thread/lock.t
+ ! Thread/unsync.t
+____________________________________________________________________________
+[ 43] By: mbeattie on 1997/08/08 14:11:00
+ Log: Made Lint check subs (and -u packages).
+ Added support for dollar_underscore and implicit $_ in foreach.
+ Branch: perlext
+ ! Compiler/B/Lint.pm
+____________________________________________________________________________
+[ 42] By: TimBunce on 1997/07/25 17:15:57
+ Log: Maintenance 5.004_01 changes
+ Branch: maint-5.004/perl
+ + Porting/makerel Porting/patchls hints/newsos4.sh
+ + lib/File/DosGlob.pm lib/chat2.pl perlio.sym win32/config.bc
+ + win32/config.vc win32/config_H.bc win32/config_H.vc
+ + win32/makefile.mk
+ - win32/config.H win32/config.w32
+ ! Changes Configure EXTERN.h INSTALL MANIFEST Makefile.SH
+ ! Porting/pumpkin.pod README README.win32 doio.c embed.h
+ ! ext/DynaLoader/dl_aix.xs ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs
+ ! ext/SDBM_File/Makefile.PL ext/SDBM_File/sdbm/Makefile.PL
+ ! global.sym hints/next_3.sh hints/next_4.sh hints/svr4.sh
+ ! installhtml installman lib/AutoLoader.pm lib/AutoSplit.pm
+ ! lib/CGI/Push.pm lib/CPAN.pm lib/ExtUtils/Install.pm
+ ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Unix.pm
+ ! lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MM_Win32.pm
+ ! lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Mksymlists.pm
+ ! lib/ExtUtils/xsubpp lib/Pod/Html.pm lib/Pod/Text.pm
+ ! lib/Sys/Syslog.pm lib/Term/ReadLine.pm lib/Test/Harness.pm
+ ! lib/ftp.pl mg.c op.c patchlevel.h perl.c perl.h perl_exp.SH
+ ! perlio.c pod/checkpods.PL pod/perlbook.pod pod/perldata.pod
+ ! pod/perldebug.pod pod/perldelta.pod pod/perldiag.pod
+ ! pod/perlembed.pod pod/perlfaq4.pod pod/perlfaq8.pod
+ ! pod/perlfaq9.pod pod/perlfunc.pod pod/perlguts.pod
+ ! pod/perllol.pod pod/perlop.pod pod/perlrun.pod pod/perlsub.pod
+ ! pod/perltoc.pod pod/perltoot.pod pod/pod2man.PL pod/roffitall
+ ! pod/splitpod pp.c pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c
+ ! regcomp.h regexec.c sv.c t/lib/safe2.t t/op/flip.t
+ ! t/op/groups.t t/op/magic.t t/op/mkdir.t t/op/re_tests
+ ! t/op/regexp.t t/op/split.t t/op/stat.t t/op/subst.t
+ ! t/op/taint.t util.c utils/Makefile utils/h2xs.PL
+ ! utils/perlbug.PL vms/ext/DCLsym/DCLsym.pm
+ ! vms/ext/Stdio/Stdio.pm vms/gen_shrfls.pl vms/perlvms.pod
+ ! win32/Makefile win32/config_sh.PL win32/include/sys/socket.h
+ ! win32/makedef.pl win32/makeperldef.pl win32/perlglob.c
+ ! win32/perllib.c win32/win32.c win32/win32.h win32/win32io.c
+ ! win32/win32io.h win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[ 41] By: mbeattie on 1997/07/24 14:57:53
+ Log: Start support for fake threads.
+ pp_lock now returns its argument.
+ Branch: perl
+ ! MANIFEST Makefile.SH cv.h op.c opcode.h opcode.pl perl.c
+ ! perl.h pp.c pp_ctl.c pp_hot.c proto.h sv.h thread.h toke.c
+ ! util.c
+ Branch: perlext
+ ! Thread/Thread.xs
+____________________________________________________________________________
+[ 40] By: mbeattie on 1997/07/24 14:55:07
+ Log: Add missing reset of eval_owner if doeval() fails to parse.
+ Branch: perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 39] By: mbeattie on 1997/07/17 13:35:51
+ Log: Fix multiple problems with lexical @_.
+ Branch: perl
+ ! cop.h op.c perl.c pp.c pp_ctl.c pp_hot.c t/op/do.t thread.h
+ ! toke.c
+____________________________________________________________________________
+[ 38] By: mbeattie on 1997/07/16 17:02:09
+ Log: Change %lx to %x in B::CV::save to prevent some CV
+ fields becoming 0 in the init section. Add missing
+ write_back in B::Stackobj::Padsv::load_double to fix
+ test 22 of op/my.t.
+ Branch: perlext
+ ! Compiler/B/C.pm Compiler/B/Stackobj.pm
+____________________________________________________________________________
+[ 37] By: mbeattie on 1997/07/10 11:28:16
+ Log: Branch win32 developments from main perl branch.
+ Branch: win32/perl
+ +> (branch 867 files)
+____________________________________________________________________________
+[ 36] By: mbeattie on 1997/07/05 11:58:05
+ Log: B::CC::pp_padsv must cope with vivify_ref (5.004)
+ as well as provide_ref (5.003).
+ Branch: perlext
+ ! Compiler/B/C.pm Compiler/B/CC.pm Compiler/NOTES
+____________________________________________________________________________
+[ 35] By: mbeattie on 1997/07/05 11:55:18
+ Log: Introduce pp_lock.
+ Branch: perl
+ ! embed.h global.sym keywords.h keywords.pl opcode.h opcode.pl
+ ! pp.c pp_ctl.c toke.c
+____________________________________________________________________________
+[ 34] By: mbeattie on 1997/07/01 12:24:28
+ Log: Support for op in global register (still buggy)
+ Branch: perl
+ ! embed.h global.sym gv.c op.c perl.c perl.h pp_ctl.c pp_sys.c
+ ! proto.h scope.c scope.h thread.h
+____________________________________________________________________________
+[ 33] By: mbeattie on 1997/06/24 16:34:24
+ Log: Branch lexical warnings from perl branch.
+ Branch: lexwarn/perl
+ +> (branch 867 files)
+____________________________________________________________________________
+[ 32] By: mbeattie on 1997/06/24 14:33:57
+ Log: Branch integration of maint-5.004 from relperl.
+ Branch: mainline/perl
+ +> (branch 600 files)
+ Branch: maint-5.004/perl
+ +> (branch 864 files)
+____________________________________________________________________________
+[ 31] By: mbeattie on 1997/06/20 11:46:50
+ Log: corrected bad_type() prototype.
+ Branch: perl
+ ! op.c
+____________________________________________________________________________
+[ 30] By: mbeattie on 1997/06/12 12:38:05
+ Log: Tweak README.
+ Branch: perlext
+ ! Thread/README
+____________________________________________________________________________
+[ 29] By: mbeattie on 1997/06/12 12:34:59
+ Log: Document -m option of CC backend.
+ Branch: perlext
+ ! Compiler/NOTES
+____________________________________________________________________________
+[ 28] By: mbeattie on 1997/06/12 12:25:05
+ Log: Support sysseek introduced in 5.004.
+ Branch: perlext
+ ! Compiler/ccop.c Compiler/ccop.h
+____________________________________________________________________________
+[ 27] By: mbeattie on 1997/06/05 14:20:51
+ Log: More fixups for thrperl integration.
+ Branch: perl
+ ! ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs
+ ! ext/Opcode/Makefile.PL ext/Opcode/Opcode.pm
+ ! ext/Opcode/Opcode.xs gv.c hv.c mg.c op.c perl.c perly.c
+ ! perly.y pp.c pp_ctl.c run.c scope.c sv.c sv.h thread.h toke.c
+ ! util.c
+____________________________________________________________________________
+[ 25] By: mbeattie on 1997/05/28 15:11:24
+ Log: Fixups for thrperl integration.
+ Branch: perl
+ ! embed.h keywords.h op.c opcode.h perl.c util.c
+____________________________________________________________________________
+[ 24] By: mbeattie on 1997/05/26 20:10:42
+ Log: Integrate thrperl 5.003->5.004.
+ Branch: perl
+ +> thread.h
+ !> (integrate 33 files)
+____________________________________________________________________________
+[ 23] By: mbeattie on 1997/05/26 11:45:39
+ Log: Fix ppname when saving subs.
+ Branch: perlext
+ ! Compiler/B/C.pm
+____________________________________________________________________________
+[ 22] By: mbeattie on 1997/05/26 11:45:03
+ Log: -mFoo option now forces -uFoo.
+ Branch: perlext
+ ! Compiler/B/CC.pm
+____________________________________________________________________________
+[ 21] By: mbeattie on 1997/05/26 11:43:37
+ Log: Put back objsym/savesym (used by walkoptree_exec).
+ Branch: perlext
+ ! Compiler/B.pm
+____________________________________________________________________________
+[ 20] By: mbeattie on 1997/05/26 11:38:45
+ Log: Add avhv_store_ent. Add missing avhv_* to global.sym.
+ Branch: perl
+ ! av.c global.sym
+____________________________________________________________________________
+[ 19] By: mbeattie on 1997/05/25 21:19:38
+ Log: Fix up integration 5.003->5.004.
+ Branch: perl
+ + lib/Class/Fields.pm lib/ISA.pm
+ ! av.c ext/DB_File/DB_File.xs perl.c pp.c pp_hot.c proto.h
+ ! toke.c
+____________________________________________________________________________
+[ 18] By: mbeattie on 1997/05/25 10:31:21
+ Log: First stab at 5.003 -> 5.004 integration.
+ Branch: perl
+ +> (branch 291 files)
+ - Changes.Conf ext/DynaLoader/dl_os2.xs
+ - ext/FileHandle/FileHandle.pm ext/FileHandle/FileHandle.xs
+ - ext/FileHandle/Makefile.PL ext/SDBM_File/sdbm/readme.ps
+ - ext/Safe/Makefile.PL ext/Safe/Safe.pm ext/Safe/Safe.xs
+ - hints/aux.sh hints/dnix.sh hints/irix_6_2.sh lib/chat2.inter
+ - lib/chat2.pl lib/splain os2/README os2/README.old
+ - os2/diff.db_file os2/notes pod/perlovl.pod t/lib/safe.t
+ - t/op/overload.t t/re_tests vms/Makefile x2p/a2p.man
+ - x2p/handy.h x2p/s2p.man
+ !> (integrate 392 files)
+____________________________________________________________________________
+[ 17] By: mbeattie on 1997/05/24 18:46:49
+ Log: Wholesale update to 5.004.
+ Branch: relperl
+ + Changes5.000 Changes5.001 Changes5.002 Changes5.003
+ + Porting/Glossary Porting/pumpkin.pod README.amiga
+ + README.cygwin32 README.os2 README.plan9 README.qnx
+ + README.win32 compat3.sym configure.gnu cygwin32/cw32imp.h
+ + cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc cygwin32/perlld
+ + eg/cgi/RunMeFirst eg/cgi/clickable_image.cgi eg/cgi/cookie.cgi
+ + eg/cgi/crash.cgi eg/cgi/customize.cgi eg/cgi/diff_upload.cgi
+ + eg/cgi/file_upload.cgi eg/cgi/frameset.cgi eg/cgi/index.html
+ + eg/cgi/internal_links.cgi eg/cgi/javascript.cgi
+ + eg/cgi/monty.cgi eg/cgi/multiple_forms.cgi
+ + eg/cgi/nph-clock.cgi eg/cgi/popup.cgi eg/cgi/save_state.cgi
+ + eg/cgi/tryit.cgi eg/cgi/wilogo.gif.uu
+ + ext/DynaLoader/dl_cygwin32.xs ext/IO/IO.pm ext/IO/IO.xs
+ + ext/IO/Makefile.PL ext/IO/README ext/IO/lib/IO/File.pm
+ + ext/IO/lib/IO/Handle.pm ext/IO/lib/IO/Pipe.pm
+ + ext/IO/lib/IO/Seekable.pm ext/IO/lib/IO/Select.pm
+ + ext/IO/lib/IO/Socket.pm ext/NDBM_File/hints/dec_osf.pl
+ + ext/NDBM_File/hints/dynixptx.pl ext/ODBM_File/hints/hpux.pl
+ + ext/ODBM_File/hints/ultrix.pl ext/Opcode/Makefile.PL
+ + ext/Opcode/Opcode.pm ext/Opcode/Opcode.xs ext/Opcode/Safe.pm
+ + ext/Opcode/ops.pm ext/POSIX/hints/next_3.pl hints/amigaos.sh
+ + hints/aux_3.sh hints/broken-db.msg hints/cygwin32.sh
+ + hints/dcosx.sh hints/irix_6_0.sh hints/irix_6_1.sh
+ + hints/lynxos.sh hints/next_4.sh hints/qnx.sh hints/umips.sh
+ + hints/unicosmk.sh installhtml lib/Bundle/CPAN.pm lib/CGI.pm
+ + lib/CGI/Apache.pm lib/CGI/Carp.pm lib/CGI/Fast.pm
+ + lib/CGI/Push.pm lib/CGI/Switch.pm lib/CPAN.pm
+ + lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm lib/Class/Struct.pm
+ + lib/ExtUtils/Command.pm lib/ExtUtils/Embed.pm
+ + lib/ExtUtils/MM_Win32.pm lib/File/Compare.pm lib/File/stat.pm
+ + lib/FileHandle.pm lib/FindBin.pm lib/Math/Trig.pm
+ + lib/Net/hostent.pm lib/Net/netent.pm lib/Net/protoent.pm
+ + lib/Net/servent.pm lib/Pod/Html.pm lib/Tie/RefHash.pm
+ + lib/Time/gmtime.pm lib/Time/localtime.pm lib/Time/tm.pm
+ + lib/UNIVERSAL.pm lib/User/grent.pm lib/User/pwent.pm
+ + lib/autouse.pm lib/blib.pm lib/constant.pm lib/locale.pm
+ + nostdio.h os2/Changes os2/OS2/ExtAttr/Changes
+ + os2/OS2/ExtAttr/ExtAttr.pm os2/OS2/ExtAttr/ExtAttr.xs
+ + os2/OS2/ExtAttr/MANIFEST os2/OS2/ExtAttr/Makefile.PL
+ + os2/OS2/ExtAttr/myea.h os2/OS2/ExtAttr/t/os2_ea.t
+ + os2/OS2/ExtAttr/typemap os2/OS2/PrfDB/Changes
+ + os2/OS2/PrfDB/MANIFEST os2/OS2/PrfDB/Makefile.PL
+ + os2/OS2/PrfDB/PrfDB.pm os2/OS2/PrfDB/PrfDB.xs
+ + os2/OS2/PrfDB/t/os2_prfdb.t os2/OS2/PrfDB/typemap
+ + os2/OS2/Process/MANIFEST os2/OS2/Process/Makefile.PL
+ + os2/OS2/Process/Process.pm os2/OS2/Process/Process.xs
+ + os2/OS2/REXX/Changes os2/OS2/REXX/MANIFEST
+ + os2/OS2/REXX/Makefile.PL os2/OS2/REXX/REXX.pm
+ + os2/OS2/REXX/REXX.xs os2/OS2/REXX/t/rx_cmprt.t
+ + os2/OS2/REXX/t/rx_dllld.t os2/OS2/REXX/t/rx_objcall.t
+ + os2/OS2/REXX/t/rx_sql.test os2/OS2/REXX/t/rx_tiesql.test
+ + os2/OS2/REXX/t/rx_tievar.t os2/OS2/REXX/t/rx_tieydb.t
+ + os2/OS2/REXX/t/rx_varset.t os2/OS2/REXX/t/rx_vrexx.t
+ + os2/dl_os2.c os2/dlfcn.h perlio.c perlio.h perlsdio.h
+ + perlsfio.h plan9/aperl plan9/arpa/inet.h plan9/buildinfo
+ + plan9/config.plan9 plan9/exclude plan9/fndvers
+ + plan9/genconfig.pl plan9/mkfile plan9/myconfig.plan9
+ + plan9/perlplan9.doc plan9/perlplan9.pod plan9/plan9.c
+ + plan9/plan9ish.h plan9/setup.rc plan9/versnum pod/checkpods.PL
+ + pod/perlapio.pod pod/perldelta.pod pod/perlfaq.pod
+ + pod/perlfaq1.pod pod/perlfaq2.pod pod/perlfaq3.pod
+ + pod/perlfaq4.pod pod/perlfaq5.pod pod/perlfaq6.pod
+ + pod/perlfaq7.pod pod/perlfaq8.pod pod/perlfaq9.pod
+ + pod/perllocale.pod pod/perlmodlib.pod pod/perltoot.pod
+ + pod/rofftoc qnx/ar qnx/cpp t/comp/colon.t t/comp/proto.t
+ + t/comp/redef.t t/comp/use.t t/io/read.t t/lib/abbrev.t
+ + t/lib/autoloader.t t/lib/basename.t t/lib/checktree.t
+ + t/lib/complex.t t/lib/env.t t/lib/filecache.t t/lib/filecopy.t
+ + t/lib/filefind.t t/lib/filepath.t t/lib/findbin.t
+ + t/lib/getopt.t t/lib/hostname.t t/lib/io_dup.t t/lib/io_pipe.t
+ + t/lib/io_sel.t t/lib/io_sock.t t/lib/io_taint.t
+ + t/lib/io_tell.t t/lib/io_udp.t t/lib/io_xs.t t/lib/opcode.t
+ + t/lib/open2.t t/lib/open3.t t/lib/ops.t t/lib/parsewords.t
+ + t/lib/safe1.t t/lib/safe2.t t/lib/searchdict.t
+ + t/lib/selectsaver.t t/lib/symbol.t t/lib/texttabs.t
+ + t/lib/textwrap.t t/lib/timelocal.t t/lib/trig.t t/op/arith.t
+ + t/op/assignwarn.t t/op/bop.t t/op/closure.t t/op/cmp.t
+ + t/op/gv.t t/op/inc.t t/op/method.t t/op/recurse.t
+ + t/op/runlevel.t t/op/sysio.t t/op/taint.t t/op/tie.t
+ + t/op/universal.t t/pragma/constant.t t/pragma/locale.t
+ + t/pragma/overload.t t/pragma/strict-refs t/pragma/strict-subs
+ + t/pragma/strict-vars t/pragma/strict.t t/pragma/subs.t
+ + t/pragma/warn-1global t/pragma/warning.t universal.c
+ + utils/splain.PL vms/ext/DCLsym/0README.txt
+ + vms/ext/DCLsym/DCLsym.pm vms/ext/DCLsym/DCLsym.xs
+ + vms/ext/DCLsym/Makefile.PL vms/ext/DCLsym/test.pl
+ + vms/ext/XSSymSet.pm vms/ext/filespec.t vms/ext/vmsish.pm
+ + vms/ext/vmsish.t win32/Makefile win32/TEST win32/autosplit.pl
+ + win32/bin/network.pl win32/bin/pl2bat.bat win32/bin/search.bat
+ + win32/bin/test.bat win32/bin/webget.bat win32/bin/www.pl
+ + win32/config.H win32/config.w32 win32/config_h.PL
+ + win32/config_sh.PL win32/dl_win32.xs win32/genxsdef.pl
+ + win32/include/arpa/inet.h win32/include/dirent.h
+ + win32/include/netdb.h win32/include/sys/socket.h
+ + win32/makedef.pl win32/makemain.pl win32/makeperldef.pl
+ + win32/perlglob.c win32/perllib.c win32/pod.mak win32/runperl.c
+ + win32/splittree.pl win32/win32.c win32/win32.h win32/win32io.c
+ + win32/win32io.h win32/win32iop.h win32/win32sck.c x2p/a2p.pod
+ + x2p/proto.h
+ - Changes.Conf ext/DynaLoader/dl_os2.xs
+ - ext/FileHandle/FileHandle.pm ext/FileHandle/FileHandle.xs
+ - ext/FileHandle/Makefile.PL ext/SDBM_File/sdbm/readme.ps
+ - ext/Safe/Makefile.PL ext/Safe/Safe.pm ext/Safe/Safe.xs
+ - hints/aux.sh hints/dnix.sh hints/irix_6_2.sh lib/chat2.inter
+ - lib/chat2.pl lib/splain os2/README os2/README.old
+ - os2/diff.db_file os2/notes pod/perlovl.pod t/lib/safe.t
+ - t/op/overload.t t/re_tests vms/Makefile x2p/a2p.man
+ - x2p/handy.h x2p/s2p.man
+ ! Artistic Changes Configure EXTERN.h INSTALL INTERN.h MANIFEST
+ ! Makefile.SH README README.vms Todo XSUB.h av.c av.h cflags.SH
+ ! config_H config_h.SH configpm configure cop.h cv.h deb.c
+ ! doio.c doop.c dosish.h dump.c eg/README eg/nih
+ ! eg/sysvipc/ipcmsg eg/sysvipc/ipcsem eg/sysvipc/ipcshm
+ ! emacs/cperl-mode.el embed.h embed.pl ext/DB_File/DB_File.pm
+ ! ext/DB_File/DB_File.xs ext/DB_File/Makefile.PL
+ ! ext/DB_File/typemap ext/DynaLoader/DynaLoader.pm
+ ! ext/DynaLoader/Makefile.PL ext/DynaLoader/dl_aix.xs
+ ! ext/DynaLoader/dl_dld.xs ext/DynaLoader/dl_dlopen.xs
+ ! ext/DynaLoader/dl_hpux.xs ext/DynaLoader/dl_next.xs
+ ! ext/DynaLoader/dl_vms.xs ext/DynaLoader/dlutils.c
+ ! ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs
+ ! ext/GDBM_File/GDBM_File.pm ext/NDBM_File/NDBM_File.pm
+ ! ext/ODBM_File/ODBM_File.pm ext/ODBM_File/ODBM_File.xs
+ ! ext/ODBM_File/hints/dec_osf.pl ext/POSIX/POSIX.pm
+ ! ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs
+ ! ext/SDBM_File/Makefile.PL ext/SDBM_File/SDBM_File.pm
+ ! ext/SDBM_File/sdbm/Makefile.PL ext/SDBM_File/sdbm/pair.c
+ ! ext/SDBM_File/sdbm/pair.h ext/SDBM_File/sdbm/sdbm.3
+ ! ext/SDBM_File/sdbm/sdbm.c ext/SDBM_File/sdbm/sdbm.h
+ ! ext/Socket/Socket.pm ext/Socket/Socket.xs ext/util/make_ext
+ ! form.h global.sym gv.c gv.h handy.h hints/3b1.sh
+ ! hints/README.hints hints/aix.sh hints/apollo.sh hints/bsdos.sh
+ ! hints/convexos.sh hints/cxux.sh hints/dec_osf.sh hints/dgux.sh
+ ! hints/dynixptx.sh hints/epix.sh hints/esix4.sh
+ ! hints/freebsd.sh hints/hpux.sh hints/irix_4.sh hints/irix_5.sh
+ ! hints/irix_6.sh hints/isc.sh hints/linux.sh hints/machten.sh
+ ! hints/machten_2.sh hints/mips.sh hints/mpeix.sh
+ ! hints/netbsd.sh hints/next_3.sh hints/next_3_0.sh hints/os2.sh
+ ! hints/powerux.sh hints/sco.sh hints/sco_2_3_3.sh
+ ! hints/sco_2_3_4.sh hints/solaris_2.sh hints/sunos_4_0.sh
+ ! hints/sunos_4_1.sh hints/svr4.sh hints/titanos.sh
+ ! hints/ultrix_4.sh hints/unicos.sh hints/utekv.sh hv.c hv.h
+ ! installman installperl interp.sym keywords.h keywords.pl
+ ! lib/AnyDBM_File.pm lib/AutoLoader.pm lib/AutoSplit.pm
+ ! lib/Benchmark.pm lib/Carp.pm lib/Cwd.pm
+ ! lib/Devel/SelfStubber.pm lib/English.pm lib/Env.pm
+ ! lib/Exporter.pm lib/ExtUtils/Install.pm
+ ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_OS2.pm
+ ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+ ! lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Manifest.pm
+ ! lib/ExtUtils/Mkbootstrap.pm lib/ExtUtils/Mksymlists.pm
+ ! lib/ExtUtils/testlib.pm lib/ExtUtils/typemap
+ ! lib/ExtUtils/xsubpp lib/File/Basename.pm lib/File/Copy.pm
+ ! lib/File/Find.pm lib/File/Path.pm lib/FileCache.pm
+ ! lib/Getopt/Long.pm lib/Getopt/Std.pm lib/I18N/Collate.pm
+ ! lib/IPC/Open2.pm lib/IPC/Open3.pm lib/Math/BigInt.pm
+ ! lib/Math/Complex.pm lib/Net/Ping.pm lib/Pod/Functions.pm
+ ! lib/Pod/Text.pm lib/Search/Dict.pm lib/SelectSaver.pm
+ ! lib/SelfLoader.pm lib/Symbol.pm lib/Sys/Hostname.pm
+ ! lib/Sys/Syslog.pm lib/Term/Cap.pm lib/Term/Complete.pm
+ ! lib/Term/ReadLine.pm lib/Test/Harness.pm lib/Text/Abbrev.pm
+ ! lib/Text/ParseWords.pm lib/Text/Soundex.pm lib/Text/Tabs.pm
+ ! lib/Text/Wrap.pm lib/Tie/Hash.pm lib/Tie/Scalar.pm
+ ! lib/Tie/SubstrHash.pm lib/Time/Local.pm lib/abbrev.pl
+ ! lib/bigfloat.pl lib/bigint.pl lib/cacheout.pl lib/complete.pl
+ ! lib/diagnostics.pm lib/dotsh.pl lib/dumpvar.pl lib/find.pl
+ ! lib/finddepth.pl lib/ftp.pl lib/getcwd.pl lib/getopts.pl
+ ! lib/importenv.pl lib/lib.pm lib/look.pl lib/newgetopt.pl
+ ! lib/open2.pl lib/open3.pl lib/overload.pm lib/perl5db.pl
+ ! lib/sigtrap.pm lib/strict.pm lib/subs.pm lib/syslog.pl
+ ! lib/termcap.pl lib/timelocal.pl lib/validate.pl lib/vars.pm
+ ! makeaperl.SH makedepend.SH malloc.c mg.c mg.h minimod.pl
+ ! miniperlmain.c myconfig op.c op.h opcode.h opcode.pl
+ ! os2/Makefile.SHs os2/diff.configure os2/os2.c os2/os2ish.h
+ ! os2/perl2cmd.pl patchlevel.h perl.c perl.h perl_exp.SH perlsh
+ ! perly.c perly.c.diff perly.h perly.y pod/Makefile pod/buildtoc
+ ! pod/perl.pod pod/perlbook.pod pod/perlbot.pod pod/perlcall.pod
+ ! pod/perldata.pod pod/perldebug.pod pod/perldiag.pod
+ ! pod/perldsc.pod pod/perlembed.pod pod/perlform.pod
+ ! pod/perlfunc.pod pod/perlguts.pod pod/perlipc.pod
+ ! pod/perllol.pod pod/perlmod.pod pod/perlobj.pod pod/perlop.pod
+ ! pod/perlpod.pod pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+ ! pod/perlsec.pod pod/perlstyle.pod pod/perlsub.pod
+ ! pod/perlsyn.pod pod/perltie.pod pod/perltoc.pod
+ ! pod/perltrap.pod pod/perlvar.pod pod/perlxs.pod
+ ! pod/perlxstut.pod pod/pod2html.PL pod/pod2latex.PL
+ ! pod/pod2man.PL pod/pod2text.PL pod/roffitall pp.c pp.h
+ ! pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c regcomp.h
+ ! regexec.c regexp.h run.c scope.c scope.h sv.c sv.h t/README
+ ! t/TEST t/base/lex.t t/base/term.t t/cmd/mod.t t/cmd/while.t
+ ! t/comp/cpp.t t/comp/multiline.t t/comp/package.t
+ ! t/comp/script.t t/harness t/io/argv.t t/io/dup.t t/io/fs.t
+ ! t/io/inplace.t t/io/pipe.t t/io/tell.t t/lib/anydbm.t
+ ! t/lib/bigintpm.t t/lib/db-btree.t t/lib/db-hash.t
+ ! t/lib/db-recno.t t/lib/dirhand.t t/lib/filehand.t t/lib/gdbm.t
+ ! t/lib/ndbm.t t/lib/odbm.t t/lib/posix.t t/lib/sdbm.t
+ ! t/lib/socket.t t/op/chop.t t/op/delete.t t/op/each.t
+ ! t/op/exec.t t/op/fork.t t/op/glob.t t/op/goto.t t/op/groups.t
+ ! t/op/magic.t t/op/misc.t t/op/mkdir.t t/op/my.t t/op/oct.t
+ ! t/op/pack.t t/op/pat.t t/op/quotemeta.t t/op/rand.t
+ ! t/op/re_tests t/op/readdir.t t/op/ref.t t/op/regexp.t
+ ! t/op/sleep.t t/op/sort.t t/op/split.t t/op/stat.t t/op/subst.t
+ ! t/op/substr.t t/op/write.t taint.c toke.c unixish.h util.c
+ ! util.h utils/Makefile utils/c2ph.PL utils/h2ph.PL
+ ! utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL utils/pl2pm.PL
+ ! vms/config.vms vms/descrip.mms vms/ext/Filespec.pm
+ ! vms/ext/Stdio/Stdio.pm vms/ext/Stdio/Stdio.xs
+ ! vms/ext/Stdio/test.pl vms/fndvers.com vms/gen_shrfls.pl
+ ! vms/genconfig.pl vms/genopt.com vms/myconfig.com
+ ! vms/perlvms.pod vms/perly_c.vms vms/perly_h.vms
+ ! vms/sockadapt.c vms/sockadapt.h vms/test.com vms/vms.c
+ ! vms/vms_yfix.pl vms/vmsish.h vms/writemain.pl writemain.SH
+ ! x2p/EXTERN.h x2p/INTERN.h x2p/Makefile.SH x2p/a2p.c x2p/a2p.h
+ ! x2p/a2p.y x2p/a2py.c x2p/cflags.SH x2p/find2perl.PL x2p/hash.c
+ ! x2p/hash.h x2p/s2p.PL x2p/str.c x2p/str.h x2p/util.c
+ ! x2p/util.h x2p/walk.c
+____________________________________________________________________________
+[ 16] By: mbeattie on 1997/05/23 22:42:08
+ Log: Initial integration of relperl from 5.003.
+ Branch: relperl
+ +> (branch 600 files)
+____________________________________________________________________________
+[ 14] By: mbeattie on 1997/05/12 20:22:56
+ Log: Finish code generation rewrite. Clean up B::Section class and
+ handle symbol table translation internally. Simple .pm modules
+ now compile OK.
+ Branch: perlext
+ ! Compiler/B.pm Compiler/B/Bblock.pm Compiler/B/C.pm
+ ! Compiler/B/CC.pm
+____________________________________________________________________________
+[ 13] By: mbeattie on 1997/05/05 19:41:18
+ Log: Don't make pp_enter and pp_return trigger basic blocks.
+ Branch: perlext
+ ! Compiler/B/Bblock.pm
+____________________________________________________________________________
+[ 12] By: mbeattie on 1997/05/05 19:40:16
+ Log: Rewrite code generation. Sections (de)multiplexed into a
+ temporary file instead of stored in arrays.
+ Branch: perlext
+ ! Compiler/B.pm Compiler/B/C.pm Compiler/B/CC.pm
+____________________________________________________________________________
+[ 11] By: mbeattie on 1997/05/03 20:20:59
+ Log: Development to pre-alpha4
+ Branch: perlext
+ + Compiler/B/Deparse.pm Compiler/B/Lint.pm Compiler/makeliblinks
+ ! Compiler/B.pm Compiler/B.xs Compiler/B/Bblock.pm
+ ! Compiler/B/Bytecode.pm Compiler/B/C.pm Compiler/B/CC.pm
+ ! Compiler/B/Debug.pm Compiler/B/Terse.pm Compiler/B/Xref.pm
+ ! Compiler/Makefile.PL Compiler/README Compiler/TESTS
+ ! Compiler/assemble Compiler/bytecode.pl Compiler/byteperl.c
+ ! Compiler/byterun.c Compiler/cc_runtime.h Compiler/disassemble
+ ! Compiler/test_harness Compiler/test_harness_cc
+____________________________________________________________________________
+[ 10] By: mbeattie on 1997/05/03 14:47:06
+ Log: Initial check-in of perl compiler.
+ Branch: perlext
+ + Compiler/Artistic Compiler/B.pm Compiler/B.xs
+ + Compiler/B/Asmdata.pm Compiler/B/Assembler.pm
+ + Compiler/B/Bblock.pm Compiler/B/Bytecode.pm Compiler/B/C.pm
+ + Compiler/B/CC.pm Compiler/B/Debug.pm
+ + Compiler/B/Disassembler.pm Compiler/B/Showlex.pm
+ + Compiler/B/Stackobj.pm Compiler/B/Terse.pm Compiler/B/Xref.pm
+ + Compiler/Copying Compiler/Makefile.PL Compiler/NOTES
+ + Compiler/O.pm Compiler/README Compiler/TESTS
+ + Compiler/TESTS.alpha2 Compiler/Todo Compiler/assemble
+ + Compiler/bytecode.h Compiler/bytecode.pl Compiler/byteperl.c
+ + Compiler/byterun.c Compiler/byterun.h Compiler/cc_harness
+ + Compiler/cc_runtime.h Compiler/ccop.c Compiler/ccop.h
+ + Compiler/disassemble Compiler/old/README.feb11
+ + Compiler/old/TESTS.mar11 Compiler/old/TESTS.mar20
+ + Compiler/old/TESTS.may11 Compiler/old/TESTS.pre-jul27
+ + Compiler/op.patch Compiler/ramblings/cc.notes
+ + Compiler/ramblings/curcop.runtime
+ + Compiler/ramblings/dontparse.c Compiler/ramblings/flip-flop
+ + Compiler/ramblings/foo.bench Compiler/ramblings/foo2.bench
+ + Compiler/ramblings/foo3.bench Compiler/ramblings/magic
+ + Compiler/ramblings/pp_i_add Compiler/ramblings/reg.alloc
+ + Compiler/ramblings/runtime.porting
+ + Compiler/ramblings/sort.notes Compiler/ramblings/sub.call
+ + Compiler/ramblings/subst.notes Compiler/run_bytecode_test
+ + Compiler/run_cc_test Compiler/run_test Compiler/test_harness
+ + Compiler/test_harness_bytecode Compiler/test_harness_cc
+ + Compiler/typemap
+____________________________________________________________________________
+[ 9] By: mbeattie on 1997/05/02 19:03:49
+ Log: Don't require CvDEPTH == 0 when bombing out of subs.
+ Branch: thrperl
+ ! pp_hot.c
+____________________________________________________________________________
+[ 8] By: mbeattie on 1997/04/23 19:06:45
+ Log: Added programmer-level condition variables via "condpair" magic.
+ Added support for detached threads and tweaked a few things.
+ Branch: thrperl
+ ! embed.h global.sym keywords.h mg.c opcode.h perl.c perl.h
+ ! pp_ctl.c pp_hot.c proto.h run.c scope.c sv.c sv.h thread.h
+ ! util.c
+____________________________________________________________________________
+[ 7] By: mbeattie on 1997/04/23 19:04:18
+ Log: Rewrote programmer-level condition variables from scratch. Added
+ support for detaching threads. Fixed handling for arguments
+ passed in to threads and return values for joined threads.
+ Branch: perlext
+ + Thread/lock.t
+ ! Thread/README Thread/Thread.pm Thread/Thread.xs Thread/cond.t
+ ! Thread/typemap
+____________________________________________________________________________
+[ 6] By: mbeattie on 1997/04/10 20:17:26
+ Log: Initial check-in of Thread module.
+ Branch: perlext
+ + Thread/Makefile.PL Thread/Notes Thread/README Thread/Thread.pm
+ + Thread/Thread.xs Thread/cond.t Thread/create.t Thread/io.t
+ + Thread/join.t Thread/sync.t Thread/sync2.t Thread/typemap
+ + Thread/unsync.t Thread/unsync2.t Thread/unsync3.t
+ + Thread/unsync4.t
+____________________________________________________________________________
+[ 5] By: mbeattie on 1997/04/10 20:05:52
+ Log: Tweaks to allow compilation without -DUSE_THREADS and fix
+ missing parens (pad allocation) in the tokener.
+ Branch: thrperl
+ ! op.c pp_ctl.c toke.c
+____________________________________________________________________________
+[ 4] By: mbeattie on 1997/03/28 18:40:44
+ Log: Initial 3-way merge from (5.001m, thr1m, 5.003) plus fixups.
+ Branch: thrperl
+ + thread.h
+ ! XSUB.h av.c cv.h deb.c doio.c doop.c dump.c global.sym gv.c
+ ! hv.c malloc.c mg.c op.c op.h opcode.h opcode.pl perl.c perl.h
+ ! pp.h pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c regexec.c
+ ! run.c scope.c sv.c sv.h toke.c util.c
+____________________________________________________________________________
+[ 3] By: mbeattie on 1997/03/28 13:36:23
+ Log: Branch 5.003 -> thrperl
+ Branch: thrperl
+ +> (branch 600 files)
+____________________________________________________________________________
+[ 2] By: mbeattie on 1997/03/28 13:32:21
+ Log: Initial devel changes.
+ Pseudo-hashes. Optional strong typing. RESTART {}.
+ Branch: perl
+ ! av.c doop.c embed.h ext/DB_File/DB_File.xs global.sym
+ ! interp.sym keywords.h keywords.pl lib/ExtUtils/xsubpp op.c
+ ! perl.c perl.h pp.c pp_hot.c proto.h t/op/groups.t toke.c
+____________________________________________________________________________
+[ 1] By: mbeattie on 1997/03/28 13:17:33
+ Log: Perl 5.003 check-in
+ Branch: perl
+ + Artistic Changes Changes.Conf Configure Copying EXTERN.h
+ + INSTALL INTERN.h MANIFEST Makefile.SH README README.vms Todo
+ + XSUB.h av.c av.h cflags.SH config_H config_h.SH configpm
+ + configure cop.h cv.h deb.c doio.c doop.c dosish.h dump.c
+ + eg/ADB eg/README eg/changes eg/client eg/down eg/dus eg/findcp
+ + eg/findtar eg/g/gcp eg/g/gcp.man eg/g/ged eg/g/ghosts eg/g/gsh
+ + eg/g/gsh.man eg/muck eg/muck.man eg/myrup eg/nih eg/relink
+ + eg/rename eg/rmfrom eg/scan/scan_df eg/scan/scan_last
+ + eg/scan/scan_messages eg/scan/scan_passwd eg/scan/scan_ps
+ + eg/scan/scan_sudo eg/scan/scan_suid eg/scan/scanner eg/server
+ + eg/shmkill eg/sysvipc/README eg/sysvipc/ipcmsg
+ + eg/sysvipc/ipcsem eg/sysvipc/ipcshm eg/travesty eg/unuc
+ + eg/uudecode eg/van/empty eg/van/unvanish eg/van/vanexp
+ + eg/van/vanish eg/who eg/wrapsuid emacs/cperl-mode.el embed.h
+ + embed.pl ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs
+ + ext/DB_File/DB_File_BS ext/DB_File/Makefile.PL
+ + ext/DB_File/typemap ext/DynaLoader/DynaLoader.pm
+ + ext/DynaLoader/Makefile.PL ext/DynaLoader/README
+ + ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_dld.xs
+ + ext/DynaLoader/dl_dlopen.xs ext/DynaLoader/dl_hpux.xs
+ + ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_none.xs
+ + ext/DynaLoader/dl_os2.xs ext/DynaLoader/dl_vms.xs
+ + ext/DynaLoader/dlutils.c ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs
+ + ext/Fcntl/Makefile.PL ext/FileHandle/FileHandle.pm
+ + ext/FileHandle/FileHandle.xs ext/FileHandle/Makefile.PL
+ + ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs
+ + ext/GDBM_File/Makefile.PL ext/GDBM_File/typemap
+ + ext/NDBM_File/Makefile.PL ext/NDBM_File/NDBM_File.pm
+ + ext/NDBM_File/NDBM_File.xs ext/NDBM_File/hints/solaris.pl
+ + ext/NDBM_File/hints/svr4.pl ext/NDBM_File/typemap
+ + ext/ODBM_File/Makefile.PL ext/ODBM_File/ODBM_File.pm
+ + ext/ODBM_File/ODBM_File.xs ext/ODBM_File/hints/dec_osf.pl
+ + ext/ODBM_File/hints/sco.pl ext/ODBM_File/hints/solaris.pl
+ + ext/ODBM_File/hints/svr4.pl ext/ODBM_File/typemap
+ + ext/POSIX/Makefile.PL ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod
+ + ext/POSIX/POSIX.xs ext/POSIX/typemap ext/SDBM_File/Makefile.PL
+ + ext/SDBM_File/SDBM_File.pm ext/SDBM_File/SDBM_File.xs
+ + ext/SDBM_File/sdbm/CHANGES ext/SDBM_File/sdbm/COMPARE
+ + ext/SDBM_File/sdbm/Makefile.PL ext/SDBM_File/sdbm/README
+ + ext/SDBM_File/sdbm/README.too ext/SDBM_File/sdbm/biblio
+ + ext/SDBM_File/sdbm/dba.c ext/SDBM_File/sdbm/dbd.c
+ + ext/SDBM_File/sdbm/dbe.1 ext/SDBM_File/sdbm/dbe.c
+ + ext/SDBM_File/sdbm/dbm.c ext/SDBM_File/sdbm/dbm.h
+ + ext/SDBM_File/sdbm/dbu.c ext/SDBM_File/sdbm/grind
+ + ext/SDBM_File/sdbm/hash.c ext/SDBM_File/sdbm/linux.patches
+ + ext/SDBM_File/sdbm/makefile.sdbm ext/SDBM_File/sdbm/pair.c
+ + ext/SDBM_File/sdbm/pair.h ext/SDBM_File/sdbm/readme.ms
+ + ext/SDBM_File/sdbm/readme.ps ext/SDBM_File/sdbm/sdbm.3
+ + ext/SDBM_File/sdbm/sdbm.c ext/SDBM_File/sdbm/sdbm.h
+ + ext/SDBM_File/sdbm/tune.h ext/SDBM_File/sdbm/util.c
+ + ext/SDBM_File/typemap ext/Safe/Makefile.PL ext/Safe/Safe.pm
+ + ext/Safe/Safe.xs ext/Socket/Makefile.PL ext/Socket/Socket.pm
+ + ext/Socket/Socket.xs ext/util/extliblist ext/util/make_ext
+ + ext/util/mkbootstrap form.h global.sym globals.c gv.c gv.h
+ + h2pl/README h2pl/cbreak.pl h2pl/cbreak2.pl h2pl/eg/sizeof.ph
+ + h2pl/eg/sys/errno.pl h2pl/eg/sys/ioctl.pl h2pl/eg/sysexits.pl
+ + h2pl/getioctlsizes h2pl/mksizes h2pl/mkvars h2pl/tcbreak
+ + h2pl/tcbreak2 handy.h hints/3b1.sh hints/3b1cc
+ + hints/README.hints hints/aix.sh hints/altos486.sh
+ + hints/apollo.sh hints/aux.sh hints/bsdos.sh hints/convexos.sh
+ + hints/cxux.sh hints/dec_osf.sh hints/dgux.sh hints/dnix.sh
+ + hints/dynix.sh hints/dynixptx.sh hints/epix.sh hints/esix4.sh
+ + hints/fps.sh hints/freebsd.sh hints/genix.sh
+ + hints/greenhills.sh hints/hpux.sh hints/i386.sh
+ + hints/irix_4.sh hints/irix_5.sh hints/irix_6.sh
+ + hints/irix_6_2.sh hints/isc.sh hints/isc_2.sh hints/linux.sh
+ + hints/machten.sh hints/machten_2.sh hints/mips.sh hints/mpc.sh
+ + hints/mpeix.sh hints/ncr_tower.sh hints/netbsd.sh
+ + hints/next_3.sh hints/next_3_0.sh hints/opus.sh hints/os2.sh
+ + hints/powerux.sh hints/sco.sh hints/sco_2_3_0.sh
+ + hints/sco_2_3_1.sh hints/sco_2_3_2.sh hints/sco_2_3_3.sh
+ + hints/sco_2_3_4.sh hints/solaris_2.sh hints/stellar.sh
+ + hints/sunos_4_0.sh hints/sunos_4_1.sh hints/svr4.sh
+ + hints/ti1500.sh hints/titanos.sh hints/ultrix_4.sh
+ + hints/unicos.sh hints/unisysdynix.sh hints/utekv.sh
+ + hints/uts.sh hv.c hv.h installman installperl interp.sym
+ + keywords.h keywords.pl lib/AnyDBM_File.pm lib/AutoLoader.pm
+ + lib/AutoSplit.pm lib/Benchmark.pm lib/Carp.pm lib/Cwd.pm
+ + lib/Devel/SelfStubber.pm lib/DirHandle.pm lib/English.pm
+ + lib/Env.pm lib/Exporter.pm lib/ExtUtils/Install.pm
+ + lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_OS2.pm
+ + lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+ + lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Manifest.pm
+ + lib/ExtUtils/Mkbootstrap.pm lib/ExtUtils/Mksymlists.pm
+ + lib/ExtUtils/testlib.pm lib/ExtUtils/typemap
+ + lib/ExtUtils/xsubpp lib/File/Basename.pm lib/File/CheckTree.pm
+ + lib/File/Copy.pm lib/File/Find.pm lib/File/Path.pm
+ + lib/FileCache.pm lib/Getopt/Long.pm lib/Getopt/Std.pm
+ + lib/I18N/Collate.pm lib/IPC/Open2.pm lib/IPC/Open3.pm
+ + lib/Math/BigFloat.pm lib/Math/BigInt.pm lib/Math/Complex.pm
+ + lib/Net/Ping.pm lib/Pod/Functions.pm lib/Pod/Text.pm
+ + lib/Search/Dict.pm lib/SelectSaver.pm lib/SelfLoader.pm
+ + lib/Shell.pm lib/Symbol.pm lib/Sys/Hostname.pm
+ + lib/Sys/Syslog.pm lib/Term/Cap.pm lib/Term/Complete.pm
+ + lib/Term/ReadLine.pm lib/Test/Harness.pm lib/Text/Abbrev.pm
+ + lib/Text/ParseWords.pm lib/Text/Soundex.pm lib/Text/Tabs.pm
+ + lib/Text/Wrap.pm lib/Tie/Hash.pm lib/Tie/Scalar.pm
+ + lib/Tie/SubstrHash.pm lib/Time/Local.pm lib/abbrev.pl
+ + lib/assert.pl lib/bigfloat.pl lib/bigint.pl lib/bigrat.pl
+ + lib/cacheout.pl lib/chat2.inter lib/chat2.pl lib/complete.pl
+ + lib/ctime.pl lib/diagnostics.pm lib/dotsh.pl lib/dumpvar.pl
+ + lib/exceptions.pl lib/fastcwd.pl lib/find.pl lib/finddepth.pl
+ + lib/flush.pl lib/ftp.pl lib/getcwd.pl lib/getopt.pl
+ + lib/getopts.pl lib/hostname.pl lib/importenv.pl lib/integer.pm
+ + lib/less.pm lib/lib.pm lib/look.pl lib/newgetopt.pl
+ + lib/open2.pl lib/open3.pl lib/overload.pm lib/perl5db.pl
+ + lib/pwd.pl lib/shellwords.pl lib/sigtrap.pm lib/splain
+ + lib/stat.pl lib/strict.pm lib/subs.pm lib/syslog.pl
+ + lib/tainted.pl lib/termcap.pl lib/timelocal.pl lib/validate.pl
+ + lib/vars.pm makeaperl.SH makedepend.SH makedir.SH malloc.c
+ + mg.c mg.h minimod.pl miniperlmain.c mv-if-diff myconfig op.c
+ + op.h opcode.h opcode.pl os2/Makefile.SHs os2/POSIX.mkfifo
+ + os2/README os2/README.old os2/diff.configure os2/diff.db_file
+ + os2/notes os2/os2.c os2/os2ish.h os2/perl2cmd.pl patchlevel.h
+ + perl.c perl.h perl_exp.SH perlsh perly.c perly.c.diff
+ + perly.fixer perly.h perly.y pod/Makefile pod/buildtoc
+ + pod/perl.pod pod/perlbook.pod pod/perlbot.pod pod/perlcall.pod
+ + pod/perldata.pod pod/perldebug.pod pod/perldiag.pod
+ + pod/perldsc.pod pod/perlembed.pod pod/perlform.pod
+ + pod/perlfunc.pod pod/perlguts.pod pod/perlipc.pod
+ + pod/perllol.pod pod/perlmod.pod pod/perlobj.pod pod/perlop.pod
+ + pod/perlovl.pod pod/perlpod.pod pod/perlre.pod pod/perlref.pod
+ + pod/perlrun.pod pod/perlsec.pod pod/perlstyle.pod
+ + pod/perlsub.pod pod/perlsyn.pod pod/perltie.pod
+ + pod/perltoc.pod pod/perltrap.pod pod/perlvar.pod
+ + pod/perlxs.pod pod/perlxstut.pod pod/pod2html.PL
+ + pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL pod/roffitall
+ + pod/splitman pod/splitpod pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c
+ + proto.h regcomp.c regcomp.h regexec.c regexp.h run.c scope.c
+ + scope.h sv.c sv.h t/README t/TEST t/base/cond.t t/base/if.t
+ + t/base/lex.t t/base/pat.t t/base/term.t t/cmd/elsif.t
+ + t/cmd/for.t t/cmd/mod.t t/cmd/subval.t t/cmd/switch.t
+ + t/cmd/while.t t/comp/cmdopt.t t/comp/cpp.aux t/comp/cpp.t
+ + t/comp/decl.t t/comp/multiline.t t/comp/package.t
+ + t/comp/script.t t/comp/term.t t/harness t/io/argv.t t/io/dup.t
+ + t/io/fs.t t/io/inplace.t t/io/pipe.t t/io/print.t t/io/tell.t
+ + t/lib/anydbm.t t/lib/bigint.t t/lib/bigintpm.t
+ + t/lib/db-btree.t t/lib/db-hash.t t/lib/db-recno.t
+ + t/lib/dirhand.t t/lib/english.t t/lib/filehand.t t/lib/gdbm.t
+ + t/lib/ndbm.t t/lib/odbm.t t/lib/posix.t t/lib/safe.t
+ + t/lib/sdbm.t t/lib/socket.t t/lib/soundex.t t/op/append.t
+ + t/op/array.t t/op/auto.t t/op/chop.t t/op/cond.t t/op/delete.t
+ + t/op/do.t t/op/each.t t/op/eval.t t/op/exec.t t/op/exp.t
+ + t/op/flip.t t/op/fork.t t/op/glob.t t/op/goto.t t/op/groups.t
+ + t/op/index.t t/op/int.t t/op/join.t t/op/list.t t/op/local.t
+ + t/op/magic.t t/op/misc.t t/op/mkdir.t t/op/my.t t/op/oct.t
+ + t/op/ord.t t/op/overload.t t/op/pack.t t/op/pat.t t/op/push.t
+ + t/op/quotemeta.t t/op/rand.t t/op/range.t t/op/re_tests
+ + t/op/read.t t/op/readdir.t t/op/ref.t t/op/regexp.t
+ + t/op/repeat.t t/op/sleep.t t/op/sort.t t/op/split.t
+ + t/op/sprintf.t t/op/stat.t t/op/study.t t/op/subst.t
+ + t/op/substr.t t/op/time.t t/op/undef.t t/op/unshift.t
+ + t/op/vec.t t/op/write.t t/re_tests taint.c toke.c unixish.h
+ + util.c util.h utils/Makefile utils/c2ph.PL utils/h2ph.PL
+ + utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL utils/pl2pm.PL
+ + vms/Makefile vms/config.vms vms/descrip.mms
+ + vms/ext/Filespec.pm vms/ext/Stdio/0README.txt
+ + vms/ext/Stdio/Makefile.PL vms/ext/Stdio/Stdio.pm
+ + vms/ext/Stdio/Stdio.xs vms/ext/Stdio/test.pl vms/fndvers.com
+ + vms/gen_shrfls.pl vms/genconfig.pl vms/genopt.com
+ + vms/make_command.com vms/mms2make.pl vms/myconfig.com
+ + vms/perlvms.pod vms/perly_c.vms vms/perly_h.vms
+ + vms/sockadapt.c vms/sockadapt.h vms/test.com vms/vms.c
+ + vms/vms_yfix.pl vms/vmsish.h vms/writemain.pl writemain.SH
+ + x2p/EXTERN.h x2p/INTERN.h x2p/Makefile.SH x2p/a2p.c x2p/a2p.h
+ + x2p/a2p.man x2p/a2p.y x2p/a2py.c x2p/cflags.SH
+ + x2p/find2perl.PL x2p/handy.h x2p/hash.c x2p/hash.h x2p/s2p.PL
+ + x2p/s2p.man x2p/str.c x2p/str.h x2p/util.c x2p/util.h
+ + x2p/walk.c
diff --git a/Configure b/Configure
index 307f25012c..ffd7e08a0e 100755
--- a/Configure
+++ b/Configure
@@ -147,6 +147,7 @@ dynamic_ext=''
extensions=''
known_extensions=''
static_ext=''
+nonxs_ext=''
useopcode=''
useposix=''
d_bsd=''
@@ -375,6 +376,7 @@ d_memmove=''
d_memset=''
d_mkdir=''
d_mkfifo=''
+d_mknod=''
d_mktime=''
d_msg=''
d_msgctl=''
@@ -588,6 +590,7 @@ plibpth=''
xlibpth=''
libs=''
lns=''
+devtype=''
lseektype=''
make_set_make=''
d_mymalloc=''
@@ -7396,6 +7399,10 @@ eval $inlibc
set mkfifo d_mkfifo
eval $inlibc
+: see if mknod exists
+set mknod d_mknod
+eval $inlibc
+
: see if mktime exists
set mktime d_mktime
eval $inlibc
@@ -9473,6 +9480,11 @@ EOM
*) groupstype="$gidtype";;
esac
+: see what type is used for devices
+rp="What is the type used for device numbers on this system?"
+set dev_t devtype long stdio.h sys/types.h
+eval $typedef_ask
+
: see what type lseek is declared as in the kernel
rp="What is the type used for lseek's offset on this system?"
set off_t lseektype long stdio.h sys/types.h
@@ -10867,6 +10879,7 @@ cd $rsrc/ext
: If we are using the old config.sh, known_extensions may contain
: old or inaccurate or duplicate values.
known_extensions=''
+nonxs_extensions=''
: We do not use find because it might not be available.
: We do not just use MANIFEST because the user may have dropped
: some additional extensions into the source tree and expect them
@@ -10879,17 +10892,27 @@ for xxx in * ; do
else
if $test -d $xxx; then
cd $xxx
+ zzz=$known_extensions
for yyy in * ; do
if $test -f $yyy/$yyy.xs; then
known_extensions="$known_extensions $xxx/$yyy"
fi
done
cd ..
+ if $test "$zzz" = "$known_extensions"; then
+ if $test -f $xxx/Makefile.PL; then
+ known_extensions="$known_extensions $xxx"
+ nonxs_extensions="$nonxs_extensions $xxx"
+ fi
+ fi
fi
fi
;;
esac
done
+set X $nonxs_extensions
+shift
+nonxs_extensions="$*"
set X $known_extensions
shift
known_extensions="$*"
@@ -10939,7 +10962,11 @@ for xxx in $known_extensions ; do
true|$define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
- *) avail_ext="$avail_ext $xxx"
+ *)
+ case " $nonxs_extensions " in
+ *" $xxx "*) ;;
+ *) avail_ext="$avail_ext $xxx" ;;
+ esac
;;
esac
done
@@ -10948,6 +10975,19 @@ set X $avail_ext
shift
avail_ext="$*"
+: Now see which nonxs extensions are supported on this system.
+nonxs_ext=''
+for xxx in $nonxs_extensions ; do
+ case "$xxx" in
+ *) nonxs_ext="$nonxs_ext $xxx"
+ ;;
+ esac
+done
+
+set X $nonxs_ext
+shift
+nonxs_ext="$*"
+
case $usedl in
$define)
$cat <<EOM
@@ -10978,6 +11018,7 @@ EOM
esac
;;
esac
+ : Exclude those that are not xs extensions
case "$dflt" in
'') dflt=none;;
esac
@@ -10993,7 +11034,7 @@ EOM
: Exclude those already listed in dynamic linking
dflt=''
for xxx in $avail_ext; do
- case " $dynamic_ext " in
+ case " $dynamic_ext $nonxs_ext " in
*" $xxx "*) ;;
*) dflt="$dflt $xxx" ;;
esac
@@ -11282,6 +11323,7 @@ d_memmove='$d_memmove'
d_memset='$d_memset'
d_mkdir='$d_mkdir'
d_mkfifo='$d_mkfifo'
+d_mknod='$d_mknod'
d_mktime='$d_mktime'
d_msg='$d_msg'
d_msgctl='$d_msgctl'
@@ -11403,6 +11445,7 @@ date='$date'
db_hashtype='$db_hashtype'
db_prefixtype='$db_prefixtype'
defvoidused='$defvoidused'
+devtype='$devtype'
direntrytype='$direntrytype'
dlext='$dlext'
dlsrc='$dlsrc'
@@ -11574,6 +11617,7 @@ path_sep='$path_sep'
perl='$perl'
perladmin='$perladmin'
perlpath='$perlpath'
+nonxs_ext='$nonxs_ext'
pg='$pg'
phostname='$phostname'
pidtype='$pidtype'
diff --git a/INSTALL b/INSTALL
index 43aa51a0ee..053798a91d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -691,6 +691,9 @@ the malloc function on your system.
The perl source is shipped with a version of malloc that is very fast
but somewhat wasteful of space. On the other hand, your system's
malloc() function may be a bit slower but also a bit more frugal.
+However, note that space efficiency also contributes to speed efficiency,
+so there's a chance that perl's malloc may be more efficient both
+space and speed wise.
For many uses, speed is probably the most important consideration, so
the default behavior (for most systems) is to use the malloc supplied
@@ -698,8 +701,8 @@ with perl. However, if you will be running very large applications
(e.g. Tk or PDL) or if your system already has an excellent malloc, or
if you are experiencing difficulties with extensions that use
third-party libraries that call malloc, then you might wish to use
-your system's malloc. (Or, you might wish to explore the experimental
-malloc flags discussed below.)
+your system's malloc. (Or, you might wish to explore the malloc flags
+discussed below.)
To build without perl's malloc, you can use the Configure command
@@ -709,43 +712,30 @@ or you can answer 'n' at the appropriate interactive Configure prompt.
=head2 Malloc Performance Flags
-If you are using Perl's malloc, you may add one or
-more of the following items to your cflags config.sh variable
-to change its behavior in potentially useful ways. You can find out
-more about these flags by reading the malloc.c source.
-In a future version of perl, these might be enabled by default.
+If you are using Perl's malloc, you may add one or more of the following
+items to your ccflags config.sh variable to change its behavior. You can
+find out more about these and other flags by reading the commentary near
+the top of the malloc.c source.
=over 4
-=item -DPERL_EMERGENCY_SBRK
+=item -DNO_FANCY_MALLOC
-If PERL_EMERGENCY_SBRK is defined, running out of memory need not be a
-fatal error: a memory pool can allocated by assigning to the special
-variable $^M. See perlvar(1) for more details.
+Undefined by default. Defining it returns malloc to the state it was at
+in Perl version 5.004.
-=item -DPACK_MALLOC
+If left undefined, it enables -DBUCKETS_ROOT2, -DIGNORE_SMALL_BAD_FREE,
+and -DSMALL_BUCKET_VIA_VTABLE. See the commentary in malloc.c for more
+details.
-If PACK_MALLOC is defined, malloc.c uses a slightly different
-algorithm for small allocations (up to 64 bytes long). Such small
-allocations are quite common in typical Perl scripts.
+=item -DPLAIN_MALLOC
-The expected memory savings (with 8-byte alignment in $alignbytes) is
-about 20% for typical Perl usage. The expected slowdown due to the
-additional malloc overhead is in fractions of a percent. (It is hard
-to measure because of the effect of the saved memory on speed).
+Undefined by default. Defining it in addition to NO_FANCY_MALLOC returns
+malloc to the state it was at in Perl version 5.000.
-=item -DTWO_POT_OPTIMIZE
-
-If TWO_POT_OPTIMIZE is defined, malloc.c uses a slightly different
-algorithm for large allocations that are close to a power of two
-(starting with 16K). Such allocations are typical for big hashes and
-special-purpose scripts, especially image processing. If you will be
-manipulating very large blocks with sizes close to powers of two, it
-might be wise to define this macro.
-
-The expected saving of memory is 0-100% (100% in applications which
-require most memory in such 2**n chunks). The expected slowdown is
-negligible.
+If left undefined, it enables -DPERL_EMERGENCY_SBRK, -DPACK_MALLOC,
+-DTWO_POT_OPTIMIZE, and -DDEBUGGING_MSTATS. See the commentary in
+malloc.c for more details.
=back
diff --git a/MANIFEST b/MANIFEST
index 7634708ac6..6f7f91890d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -18,6 +18,7 @@ Porting/Contract Social contract for contributed modules in Perl core
Porting/Glossary Glossary of config.sh variables
Porting/config.sh Sample config.sh
Porting/config_H Sample config.h
+Porting/genlog Generate formatted changelogs by querying p4d
Porting/makerel Release making utility
Porting/patching.pod How to report changes made to Perl
Porting/patchls Flexible patch file listing utility
@@ -37,7 +38,6 @@ Todo The Wishlist
Todo.5.005 What needs doing before 5.005 release
XSLock.h Include file for extensions built with PERL_OBJECT defined
XSUB.h Include file for extension subroutines
-atomic.h Atomic refcount handling for multi-threading
av.c Array value code
av.h Array value header
beos/nm.c BeOS port
@@ -189,6 +189,8 @@ ext/DynaLoader/dl_next.xs Next implementation
ext/DynaLoader/dl_none.xs Stub implementation
ext/DynaLoader/dl_vms.xs VMS implementation
ext/DynaLoader/dlutils.c Dynamic loader utilities for dl_*.xs files
+ext/Errno/Errno_pm.PL Errno perl module create script
+ext/Errno/Makefile.PL Errno extension makefile writer
ext/Fcntl/Fcntl.pm Fcntl extension Perl module
ext/Fcntl/Fcntl.xs Fcntl extension external subroutines
ext/Fcntl/Makefile.PL Fcntl extension makefile writer
@@ -404,13 +406,7 @@ installman Perl script to install man pages for pods
installperl Perl script to do "make install" dirty work
interp.sym Interpreter specific symbols to hide in a struct
intrpvar.h Variables held in each interpreter instance
-ipdir.h Directory interface for Perl Object
-ipenv.h Environment interface for Perl Object
-iplio.h Low level IO interface for Perl Object
-ipmem.h Memory interface for Perl Object
-ipproc.h Process interface for Perl Object
-ipsock.h Socket interface for Perl Object
-ipstdio.h Stdio interface for Perl Object
+iperlsys.h Perl's interface to the system
keywords.h The keyword numbers
keywords.pl Program to write keywords.h
lib/AnyDBM_File.pm Perl module to emulate dbmopen
@@ -461,6 +457,12 @@ lib/File/Copy.pm Emulation of cp command
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/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
+lib/File/Spec/VMS.pm portable operations on VMS file names
+lib/File/Spec/Win32.pm portable operations on Win32 file names
lib/File/stat.pm By-name interface to Perl's builtin stat
lib/FileCache.pm Keep more files open than the system permits
lib/FileHandle.pm Backward-compatible front end to IO extension
@@ -626,18 +628,11 @@ patchlevel.h The current patch level of perl
perl.c main()
perl.h Global declarations
perl_exp.SH Creates list of exported symbols for AIX
-perldir.h Macros for directory abstraction
-perlenv.h Macros for environment abstraction
perlio.c C code for PerlIO abstraction
-perlio.h Interface to PerlIO abstraction
perlio.sym Symbols for PerlIO abstraction
-perllio.h Macros for Low level IO abstraction
-perlmem.h Macros for memory allocation abstraction
-perlproc.h Macros for process abstraction
perlsdio.h Fake stdio using perlio
perlsfio.h Prototype sfio mapping for PerlIO
perlsh A poor man's perl shell
-perlsock.h Macros for socket abstraction
perlvars.h Global variables
perly.c A byacc'ed perly.y
perly.c.diff Fixup perly.c to allow recursion
@@ -728,8 +723,11 @@ qnx/ar QNX implementation of "ar" utility
qnx/cpp QNX implementation of preprocessor filter
regcomp.c Regular expression compiler
regcomp.h Private declarations for above
+regcomp.pl Builder of regnodes.h
+regcomp.sym Data for regnodes.h
regexec.c Regular expression evaluator
regexp.h Public declarations for the above
+regnodes.h Description of nodes of RE engine
run.c The interpreter loop
scope.c Scope entry and exit code
scope.h Scope entry and exit header
@@ -786,11 +784,13 @@ t/lib/dirhand.t See if DirHandle works
t/lib/dosglob.t See if File::DosGlob works
t/lib/english.t See if English works
t/lib/env.t See if Env works
+t/lib/errno.t See if Errno works
t/lib/filecache.t See if FileCache works
t/lib/filecopy.t See if File::Copy works
t/lib/filefind.t See if File::Find works
t/lib/filehand.t See if FileHandle works
t/lib/filepath.t See if File::Path works
+t/lib/filespec.t See if File::Spec works
t/lib/findbin.t See if FindBin works
t/lib/gdbm.t See if GDBM_File works
t/lib/getopt.t See if Getopt::Std and Getopt::Long works
@@ -1002,6 +1002,7 @@ win32/makefile.mk Win32 makefile for DMAKE (BC++, VC++ builds)
win32/makemain.pl Win32 port
win32/makeperldef.pl Win32 port
win32/perlglob.c Win32 port
+win32/perlhost.h Perl host implementation
win32/perllib.c Win32 port
win32/pod.mak Win32 port
win32/runperl.c Win32 port
diff --git a/Makefile.SH b/Makefile.SH
index 4f78f57d74..f2d9b8278b 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -85,6 +85,12 @@ for f in $static_ext; do
static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)"
done
+nonxs_list=' '
+for f in $nonxs_ext; do
+ base=`echo "$f" | sed 's/.*\///'`
+ nonxs_list="$nonxs_list ext/$f/pm_to_blib"
+done
+
echo "Extracting Makefile (with variable substitutions)"
$spitshell >Makefile <<!GROK!THIS!
# Makefile.SH
@@ -140,7 +146,8 @@ LDLIBPTH = $ldlibpth
dynamic_ext = $dynamic_list
static_ext = $static_list
-ext = \$(dynamic_ext) \$(static_ext)
+nonxs_ext = $nonxs_list
+ext = \$(dynamic_ext) \$(static_ext) \$(nonxs_ext)
DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT)
libs = $libs $cryptlib
@@ -230,7 +237,7 @@ lintflags = -hbvxac
.c$(OBJ_EXT):
$(CCCMD) $(PLDLFLAGS) $*.c
-all: $(FIRSTMAKEFILE) miniperl $(private) $(plextract) $(public) $(dynamic_ext)
+all: $(FIRSTMAKEFILE) miniperl $(private) $(plextract) $(public) $(dynamic_ext) $(nonxs_ext)
@echo " "; echo " Everything is up to date."
compile: all
@@ -443,6 +450,7 @@ SYMH = perlvars.h thrdvar.h
# byterun.h: bytecode.pl
# byterun.c: bytecode.pl
# lib/B/Asmdata.pm: bytecode.pl
+# regnodes.h: regcomp.pl
# The correct versions should be already supplied with the perl kit,
# in case you don't have perl available.
# To force them to run, type
@@ -452,11 +460,12 @@ regen_headers: FORCE
perl opcode.pl
perl embed.pl
perl bytecode.pl
+ perl regcomp.pl
# Extensions:
-# Names added to $(dynamic_ext) or $(static_ext) will automatically
-# get built. There should ordinarily be no need to change any of
-# this part of makefile.
+# Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will
+# automatically get built. There should ordinarily be no need to change
+# any of this part of makefile.
#
# The dummy dependency is a place holder in case $(dynamic_ext) or
# $(static_ext) is empty.
@@ -472,6 +481,9 @@ d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE
s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE
@$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+n_dummy $(nonxs_ext): miniperl preplibrary $(DYNALOADER) FORCE
+ @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+
clean: _tidy _mopup
realclean: _cleaner _mopup
@@ -494,7 +506,7 @@ _tidy:
-cd pod; $(MAKE) clean
-cd utils; $(MAKE) clean
-cd x2p; $(MAKE) clean
- -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
+ -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
sh ext/util/make_ext clean $$x MAKE=$(MAKE) ; \
done
rm -f testcompile compilelog
@@ -505,7 +517,7 @@ _cleaner:
-cd pod; $(MAKE) realclean
-cd utils; $(MAKE) realclean
-cd x2p; $(MAKE) realclean
- -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
+ -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \
done
rm -f *.orig */*.orig *~ */*~ core t/core t/c t/perl
@@ -552,7 +564,7 @@ depend: makedepend
makedepend: makedepend.SH config.sh
sh ./makedepend.SH
-test-prep: miniperl perl preplibrary utilities $(dynamic_ext)
+test-prep: miniperl perl preplibrary utilities $(dynamic_ext) $(nonxs_ext)
cd t && (rm -f perl$(EXE_EXT); $(LNS) ../perl$(EXE_EXT) perl$(EXE_EXT))
test check: test-prep
diff --git a/ObjXSub.h b/ObjXSub.h
index aa5944c8d9..53796dffdd 100644
--- a/ObjXSub.h
+++ b/ObjXSub.h
@@ -234,6 +234,8 @@
#define inplace pPerl->Perl_inplace
#undef last_in_gv
#define last_in_gv pPerl->Perl_last_in_gv
+#undef last_proto
+#define last_proto pPerl->Perl_last_proto
#undef last_lop
#define last_lop pPerl->Perl_last_lop
#undef last_lop_op
@@ -723,8 +725,6 @@
#define avhv_fetch pPerl->Perl_avhv_fetch
#undef avhv_fetch_ent
#define avhv_fetch_ent pPerl->Perl_avhv_fetch_ent
-#undef avhv_iterinit
-#define avhv_iterinit pPerl->Perl_avhv_iterinit
#undef avhv_iternext
#define avhv_iternext pPerl->Perl_avhv_iternext
#undef avhv_iternextsv
@@ -1197,6 +1197,8 @@
#define magic_wipepack pPerl->Perl_magic_wipepack
#undef magicname
#define magicname pPerl->Perl_magicname
+#undef malloced_size
+#define malloced_size pPerl->Perl_malloced_size
#undef markstack_grow
#define markstack_grow pPerl->Perl_markstack_grow
#undef mem_collxfrm
diff --git a/Porting/genlog b/Porting/genlog
new file mode 100755
index 0000000000..5c3e90577e
--- /dev/null
+++ b/Porting/genlog
@@ -0,0 +1,118 @@
+#!/l/local/bin/perl -w
+#
+# Generate a nice changelist by querying perforce.
+#
+# Each change is described with the change number, description,
+# which branch the change happened in, files modified,
+# and who was responsible for entering the change.
+#
+# Can be called with a list of change numbers or a range of the
+# form "12..42". Changelog will be printed from highest number
+# to lowest.
+#
+# Outputs the changelist to stdout.
+#
+# Gurusamy Sarathy <gsar@umich.edu>
+#
+
+use Text::Wrap;
+
+$0 =~ s|^.*/||;
+unless (@ARGV) {
+ die <<USAGE;
+ $0 [-p \$P4PORT] <change numbers or from..to>
+USAGE
+}
+
+my @changes;
+
+my %editkind;
+@editkind{ qw( add edit delete integrate branch )}
+ = qw( + ! - !> +> );
+
+my $p4port = $ENV{P4PORT} || 'localhost:1666';
+
+while (@ARGV) {
+ $_ = shift;
+ if (/^(\d+)\.\.(\d+)$/) {
+ push @changes, $1 .. $2;
+ }
+ elsif (/^\d+$/) {
+ push @changes, $_;
+ }
+ elsif (/^-p(.*)$/) {
+ $p4port = $1 || shift;
+ }
+ else {
+ warn "Arguments must be change numbers, ignoring `$_'\n";
+ }
+}
+
+@changes = sort { $b <=> $a } @changes;
+
+my @desc = `p4 -p $p4port describe -s @changes`;
+if ($?) {
+ die "$0: `p4 -p $p4port describe -s @changes` failed, status[$?]\n";
+}
+else {
+ chomp @desc;
+ while (@desc) {
+ my ($change,$who,$date,$time,@log,$branch,$file,$type,%files);
+ $_ = shift @desc;
+ if (/^Change (\d+) by (\w+)\@.+ on (\S+) (\S+)\s*$/) {
+ ($change, $who, $date, $time) = ($1,$2,$3,$4);
+ $_ = shift @desc; # get rid of empty line
+ while (@desc) {
+ $_ = shift @desc;
+ last if /^Affected/;
+ push @log, $_;
+ }
+ if (/^Affected/) {
+ $_ = shift @desc; # get rid of empty line
+ while ($_ = shift @desc) {
+ last unless /^\.\.\./;
+ if (m{^\.\.\. //depot/(.*?perl|[^/]*)/([^#]+)#\d+ (\w+)\s*$}) {
+ ($branch,$file,$type) = ($1,$2,$3);
+ $files{$branch} = {} unless exists $files{$branch};
+ $files{$branch}{$type} = [] unless exists $files{$branch}{$type};
+ push @{$files{$branch}{$type}}, $file;
+ }
+ else {
+ warn "Unknown line [$_], ignoring\n";
+ }
+ }
+ }
+ }
+ next unless $change;
+ print "_" x 76, "\n";
+ printf <<EOT, $change, $who, $date, $time;
+[%6s] By: %-25s on %9s %9s
+EOT
+ print " Log: ";
+ my $i = 0;
+ while (@log) {
+ $_ = shift @log;
+ s/^\s*//;
+ s/^\[.*\]\s*// unless $i ;
+ # don't print last empty line
+ if ($_ or @log) {
+ print " " if $i++;
+ print "$_\n";
+ }
+ }
+ for my $branch (sort keys %files) {
+ printf "%11s: $branch\n", 'Branch';
+ for my $kind (sort keys %{$files{$branch}}) {
+ warn("### $kind ###\n"), next unless exists $editkind{$kind};
+ my $files = $files{$branch}{$kind};
+ # don't show large branches and integrations
+ $files = ["($kind " . scalar(@$files) . ' files)']
+ if (@$files > 25
+ && ( $kind eq 'integrate' || $kind eq 'branch'));
+ print wrap(sprintf("%12s ", $editkind{$kind}),
+ sprintf("%12s ", $editkind{$kind}),
+ "@$files\n");
+ }
+ }
+ }
+}
diff --git a/Porting/makerel b/Porting/makerel
index 5a7cd8b967..809de9bbec 100644
--- a/Porting/makerel
+++ b/Porting/makerel
@@ -52,20 +52,18 @@ if ("@$missentry" =~ m/\.orig\b/) {
die "Aborted.\n" if @$missentry or @$missfile;
print "\n";
-
-print "Updating VMS version specific files with $vms_vers...\n";
-system("perl -pi -e 's/^\QPERL_VERSION = \E\d\_\d+(\s*\#)/PERL_VERSION = $vms_vers$1/' vms/descrip.mms");
+# VMS no longer has hardcoded version numbers descrip.mms
+#print "Updating VMS version specific files with $vms_vers...\n";
+#system("perl -pi -e 's/^\QPERL_VERSION = \E\d\_\d+(\s*\#)/PERL_VERSION = $vms_vers$1/' vms/descrip.mms");
print "Setting file permissions...\n";
system("find . -type f -print | xargs chmod -w");
system("find . -type d -print | xargs chmod g-s");
system("find t -name '*.t' -print | xargs chmod +x");
-system("chmod +w configure"); # special case (see pumpkin.pod)
@exe = qw(
Configure
configpm
- configure
embed.pl
installperl
installman
@@ -78,7 +76,6 @@ system("chmod +w configure"); # special case (see pumpkin.pod)
*.SH
vms/ext/Stdio/test.pl
vms/ext/filespec.t
- vms/fndvers.com
x2p/*.SH
Porting/patchls
Porting/makerel
diff --git a/atomic.h b/atomic.h
deleted file mode 100644
index 4c44a89cf0..0000000000
--- a/atomic.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifdef __GNUC__
-
-/*
- * These atomic operations copied from the linux kernel and altered
- * only slightly. I need to get official permission to distribute
- * under the Artistic License.
- */
-/* We really need to integrate the atomic typedef with the typedef
- * used by sv_refcnt of an SV. It's possible that for CPUs like alpha
- * where we'd need to up sv_refcnt from 32 to 64 bits, we may be better
- * off sticking with EMULATE_ATOMIC_REFCOUNTS instead.
- */
-typedef U32 atomic_t; /* kludge */
-
-#ifdef i386
-
-# ifdef NO_SMP
-# define LOCK ""
-# else
-# define LOCK "lock ; "
-# endif
-
-# define __atomic_fool_gcc(x) (*(struct { int a[100]; } *)x)
-static __inline__ void atomic_inc(atomic_t *v)
-{
- __asm__ __volatile__(
- LOCK "incl %0"
- :"=m" (__atomic_fool_gcc(v))
- :"m" (__atomic_fool_gcc(v)));
-}
-
-static __inline__ int atomic_dec_and_test(atomic_t *v)
-{
- unsigned char c;
-
- __asm__ __volatile__(
- LOCK "decl %0; sete %1"
- :"=m" (__atomic_fool_gcc(v)), "=qm" (c)
- :"m" (__atomic_fool_gcc(v)));
- return c != 0;
-}
-# else
-/* XXX What symbol does gcc define for sparc64? */
-# ifdef sparc64
-# define __atomic_fool_gcc(x) ((struct { int a[100]; } *)x)
-typedef U32 atomic_t;
-extern __inline__ void atomic_add(int i, atomic_t *v)
-{
- __asm__ __volatile__("
-1: lduw [%1], %%g5
- add %%g5, %0, %%g7
- cas [%1], %%g5, %%g7
- sub %%g5, %%g7, %%g5
- brnz,pn %%g5, 1b
- nop"
- : /* No outputs */
- : "HIr" (i), "r" (__atomic_fool_gcc(v))
- : "g5", "g7", "memory");
-}
-
-extern __inline__ int atomic_sub_return(int i, atomic_t *v)
-{
- unsigned long oldval;
- __asm__ __volatile__("
-1: lduw [%2], %%g5
- sub %%g5, %1, %%g7
- cas [%2], %%g5, %%g7
- sub %%g5, %%g7, %%g5
- brnz,pn %%g5, 1b
- sub %%g7, %1, %0"
- : "=&r" (oldval)
- : "HIr" (i), "r" (__atomic_fool_gcc(v))
- : "g5", "g7", "memory");
- return (int)oldval;
-}
-
-#define atomic_inc(v) atomic_add(1,(v))
-#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
-/* Add further gcc architectures here */
-# else
-# define EMULATE_ATOMIC_REFCOUNTS
-# endif /* sparc64 */
-#endif /* i386 */
-#else
-/* Add non-gcc native atomic operations here */
-# define EMULATE_ATOMIC_REFCOUNTS
-#endif
diff --git a/av.c b/av.c
index 85bcf0c5e0..36bfa9cc7e 100644
--- a/av.c
+++ b/av.c
@@ -92,9 +92,15 @@ av_extend(AV *av, I32 key)
U32 bytes;
#endif
+#ifdef MYMALLOC
+ newmax = malloced_size((void*)AvALLOC(av))/sizeof(SV*) - 1;
+
+ if (key <= newmax)
+ goto resized;
+#endif
newmax = key + AvMAX(av) / 5;
resize:
-#ifdef STRANGE_MALLOC
+#if defined(STRANGE_MALLOC) || defined(MYMALLOC)
Renew(AvALLOC(av),newmax+1, SV*);
#else
bytes = (newmax + 1) * sizeof(SV*);
@@ -114,6 +120,7 @@ av_extend(AV *av, I32 key)
Safefree(AvALLOC(av));
AvALLOC(av) = ary;
#endif
+ resized:
ary = AvALLOC(av) + AvMAX(av) + 1;
tmp = newmax - AvMAX(av);
if (av == curstack) { /* Oops, grew stack (via av_store()?) */
@@ -123,7 +130,7 @@ av_extend(AV *av, I32 key)
}
}
else {
- newmax = key < 4 ? 4 : key;
+ newmax = key < 3 ? 3 : key;
New(2,AvALLOC(av), newmax+1, SV*);
ary = AvALLOC(av) + 1;
tmp = newmax;
@@ -759,13 +766,6 @@ avhv_delete_ent(AV *av, SV *keysv, I32 flags, U32 hash)
return sv;
}
-I32
-avhv_iterinit(AV *av)
-{
- HV *keys = avhv_keys(av);
- return hv_iterinit(keys);
-}
-
HE *
avhv_iternext(AV *av)
{
diff --git a/config_h.SH b/config_h.SH
index aedfa6db5a..781879291f 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -428,6 +428,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_mkfifo HAS_MKFIFO /**/
+/* HAS_MKNOD:
+ * This symbol, if defined, indicates that the mknod routine is
+ * available to create character and block special files. Otherwise,
+ * mknod should be able to do it for you. However, if mknod is there,
+ * mknod might require super-user privileges which mknod will not.
+ */
+#$d_mknod HAS_MKNOD /**/
+
/* HAS_MKTIME:
* This symbol, if defined, indicates that the mktime routine is
* available.
@@ -2025,6 +2033,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#define Gid_t $gidtype /* Type for getgid(), etc... */
+/* Dev_t:
+ * This symbol holds the type used to declare device numbers.
+ * It can be int, long, dev_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t $devtype /* <device> type */
+
/* Off_t:
* This symbol holds the type used to declare offsets in the kernel.
* It can be int, long, off_t, etc... It may be necessary to include
diff --git a/configure.com b/configure.com
index 57fb5c567b..7eef1ca5d9 100644
--- a/configure.com
+++ b/configure.com
@@ -20,24 +20,22 @@ $! $ SET DEFAULT [USER.PERL5_00n]
$! $ @[.vms]Configure "-des"
$!
$! That's it. If you get into a bind trying to build perl on VMS then
-$! definitely read through the README.VMS file as well as the top of the
-$! [.VMS]DESCRIP.MMS file.
+$! definitely read through the README.VMS file.
$! Beyond that send email to VMSPerl@cor.newman.upenn.edu
$!
$! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$!
-$! This CONFIGURE.COM prototype is available from:
-$! http://w4.lns.cornell.edu/~pvhp/perl/vms/devel/configure.com
$! send suggestions to:
-$! Peter Prymmer pvhp@lns62.lns.cornell.edu or pvhp@forte.com
+$! Dan Sugalski <sugalskd@ous.edu>
$! Thank you!!!!
$!
$! Adapted and converted from Larry Wall & Andy Dougherty's
-$! "Configure generated by metaconfig 3.0 PL60."
+$! "Configure generated by metaconfig 3.0 PL60." by Peter Prymmer
$! (a Bourne sh[ell] script for configuring the installation of perl on VMS)
$! in the perl5.002|3 epoch (spring/summer 1996)
$! with much valuable help from Charles Bailey &
$! the whole VMSPerl crew.
+$! Extended and messed about with by Dan Sugalski
$!
$! SET NOVERIFY
$ sav_ver = F$VERIFY(sav_ver)
@@ -48,7 +46,13 @@ $ cat = "type"
$ gcc_symbol = "gcc"
$ ans = ""
$ macros = ""
+$ use_debugging_perl = "Y"
$ C_Compiler_Replace = "CC="
+$ Thread_Live_Dangerously = "MT="
+$ use_two_pot_malloc = "N"
+$ use_pack_malloc = "N"
+$ use_debugmalloc = "N"
+$ preload_env = "N"
$ vms_default_directory_name = F$ENVIRONMENT("DEFAULT")
$! max_allowed_dir_depth = 3 ! e.g. [A.B.PERL5_00n] not [A.B.C.PERL5_00n]
$ max_allowed_dir_depth = 2 ! e.g. [FOO.PERL5_00n] not [FOO.BAR.PERL5_00n]
@@ -495,7 +499,7 @@ THIS PACKAGE SEEMS TO BE INCOMPLETE.
You have the option of continuing the configuration process, despite the
distinct possibility that your kit is damaged, by typing 'y'es. If you
do, don't blame me if something goes wrong. I advise you to type 'n'o
-and contact the author (pvhp@lns62.lns.cornell.edu).
+and contact the author (sugalskd@ous.edu).
$ READ SYS$COMMAND/PROMPT="Continue? [n] " ans
$ IF ans
@@ -1245,11 +1249,13 @@ $ IF F$LOCATE("dec",ans).NE.F$LENGTH(ans)
$ THEN
$ Mcc = "cc/decc"
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF F$LOCATE("vax",ans).NE.F$LENGTH(ans)
$ THEN
$ Mcc = "cc/vaxc"
$ Using_Vax_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc.NES.dflt
$ THEN
@@ -1267,6 +1273,7 @@ $ ELSE
$ IF Mcc .EQS. "cc/decc"
$ THEN
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ ENDIF
$ ELSE
@@ -1274,14 +1281,17 @@ $ Mcc = dflt
$ IF Mcc .EQS. "cc/decc"
$ THEN
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc .EQS. "cc/vaxc"
$ THEN
$ Using_Vax_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc .EQS. "gcc"
$ THEN
$ Using_Gnu_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ ENDIF
$Decc_Version_check:
@@ -1670,28 +1680,103 @@ $ echo "This version of Perl can be built with threads. While really nifty,
$ echo "they are a beta feature, and there is a speed penalty for perl
$ echo "programs if you build with threads *even if you don't use them*
$ echo ""
-$ dflt = "y"
+$ dflt = "n"
$ rp = "Build with threads? [''dflt'] "
$ GOSUB myread
$ if ans.eqs."" then ans = dflt
$ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y")
$ THEN
$ use_threads="T"
+$ ! Are they on VMS 7.1 on an alpha?
+$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ THEN
+$ echo ""
+$ echo "Threaded perl can be linked to use multiple kernel threads
+$ echo "and system upcalls on VMS 7.1+ on Alpha systems. This feature
+$ echo "allows multiple threads to execute simultaneously on an SMP
+$ echo "system as well as preventing a single thread from blocking
+$ echo "all the threads in a program, even on a single-processor
+$ echo "machine. Unfortunately this feature isn't safe on an
+$ echo "unpatched 7.1 system. (Several OS patches were required when
+$ echo "this procedure was written)
+$ echo ""
+$ dflt = "N"
+$ rp = "Enable multiple kernel threads and upcalls? [''dflt'] "
+$ gosub myread
+$ if ans.eqs."" then ans="''dflt'"
+$ if f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE")).eqs."Y"
+$ THEN
+$ Thread_Live_Dangerously = "MT=MT=1"
+$ ENDIF
+$ ENDIF
$ ENDIF
$ ENDIF
$!
+$! Pre-load %ENV?
+$ echo ""
+$ echo "Because of the way perl fetches the list of logical names
+$ echo "for the %ENV hash (we spawn a subprocess that does a
+$ echo "SHOW LOGICALS *, which is expensive), we defer fetching it
+$ echo "until the first time a program iterates over the %ENV hash.
+$ echo "This means things like 'exists($ENV{'SYS$MANAGER'})' will
+$ echo "return false unless you've already accessed $ENV{SYS$MANAGER}
+$ echo "or done something like a keys %ENV."
+$ echo ""
+$ echo "If you choose, perl can populate the %ENV hash at startup.
+$ echo "This will exact both a memory penalty (to store the keys) and
+$ echo "a time penalty (to spawn the subprocess) every time you invoke
+$ echo "perl. Depending on your system, this might not be a big deal.
+$ echo ""
+$ dflt = "N"
+$ rp = "Populate %ENV at startup time? [''dflt'] "
+$ GOSUB myread
+$ if ans.eqs."" then ans="''dflt'"
+$ preload_env = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE"))
+$!
$! Ask if they want to use perl's memory allocator
$ echo ""
$ echo "Perl has a built-in memory allocator that's tuned for perl's
$ echo "normal memory usage. It's oftentimes better than the standard
$ echo "system memory allocator. It also has the advantage of providing
-$ echo "memory allocation statistics.
+$ echo "memory allocation statistics, if you choose to enable them.
$ echo ""
$ dflt = "N"
$ rp = "Build with perl's memory allocator? [''dflt'] "
$ GOSUB myread
$ if ans.eqs."" then ans="''dflt'"
$ mymalloc = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE"))
+$ if mymalloc.eqs."Y"
+$ THEN
+$ if use_debugging_perl.eqs."Y"
+$ THEN
+$ echo ""
+$ echo "Perl can keep statistics on memory usage if you choose to use
+$ echo "them. This is useful for debugging, but does have some
+$ echo "performance overhead.
+$ echo ""
+$ dflt = "N"
+$ rp = "Do you want the debugging memory allocator? [''dflt'] "
+$ gosub myread
+$ if ans.eqs."" then ans="''dflt'"
+$ use_debugmalloc = f$extract(0, 1, f$edit(ans, "TRIM,COMPRESS,UPCASE"))
+$ ENDIF
+$ ! Check which memory allocator we want
+$ echo ""
+$ echo "There are currently three different memory allocators: the
+$ echo "default (which is a pretty good general-purpose memory manager),
+$ echo "the TWO_POT allocator (which is optimized to save memory for
+$ echo "larger allocations), and PACK_MALLOC (which is optimized to save
+$ echo "memory for smaller allocations). They're all good, but if your
+$ echo "usage tends towards larger chunks use TWO_POT, otherwise use
+$ echo "PACK_MALLOC."
+$ echo ""
+$ dflt = "DEFAULT"
+$ rp = "Memory allocator (DEFAULT, TWO_POT, PACK_MALLOC) [''dflt'] "
+$ GOSUB myread
+$ if ans.eqs."" then ans = "''dflt'"
+$ if ans.eqs."TWO_POT" then use_two_pot_malloc = "Y"
+$ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y"
+$ ENDIF
$!
$! Ask for their default list of extensions to build
$ echo ""
diff --git a/doop.c b/doop.c
index e527cdee18..8239c33c7c 100644
--- a/doop.c
+++ b/doop.c
@@ -445,6 +445,7 @@ do_kv(ARGSproto)
{
djSP;
HV *hv = (HV*)POPs;
+ HV *keys;
register HE *entry;
SV *tmpstr;
I32 gimme = GIMME_V;
@@ -465,10 +466,8 @@ do_kv(ARGSproto)
RETURN;
}
- if (realhv)
- (void)hv_iterinit(hv); /* always reset iterator regardless */
- else
- (void)avhv_iterinit((AV*)hv);
+ keys = realhv ? hv : avhv_keys((AV*)hv);
+ (void)hv_iterinit(keys); /* always reset iterator regardless */
if (gimme == G_VOID)
RETURN;
@@ -483,33 +482,31 @@ do_kv(ARGSproto)
sv_magic(TARG, Nullsv, 'k', Nullch, 0);
}
LvTYPE(TARG) = 'k';
- if (LvTARG(TARG) != (SV*)hv) {
+ if (LvTARG(TARG) != (SV*)keys) {
if (LvTARG(TARG))
SvREFCNT_dec(LvTARG(TARG));
- LvTARG(TARG) = SvREFCNT_inc(hv);
+ LvTARG(TARG) = SvREFCNT_inc(keys);
}
PUSHs(TARG);
RETURN;
}
- if (!SvRMAGICAL(hv) || !mg_find((SV*)hv,'P'))
- i = HvKEYS(hv);
+ if (!SvRMAGICAL(keys) || !mg_find((SV*)keys,'P'))
+ i = HvKEYS(keys);
else {
i = 0;
/*SUPPRESS 560*/
- while (entry = realhv ? hv_iternext(hv) : avhv_iternext((AV*)hv)) {
- i++;
- }
+ while (hv_iternext(keys)) i++;
}
PUSHi( i );
RETURN;
}
/* Guess how much room we need. hv_max may be a few too many. Oh well. */
- EXTEND(SP, HvMAX(hv) * (dokeys + dovalues));
+ EXTEND(SP, HvMAX(keys) * (dokeys + dovalues));
PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */
- while (entry = realhv ? hv_iternext(hv) : avhv_iternext((AV*)hv)) {
+ while (entry = hv_iternext(keys)) {
SPAGAIN;
if (dokeys)
XPUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */
@@ -520,8 +517,8 @@ do_kv(ARGSproto)
hv_iterval(hv,entry) : avhv_iterval((AV*)hv,entry));
DEBUG_H(sv_setpvf(tmpstr, "%lu%%%d=%lu",
(unsigned long)HeHASH(entry),
- HvMAX(hv)+1,
- (unsigned long)(HeHASH(entry) & HvMAX(hv))));
+ HvMAX(keys)+1,
+ (unsigned long)(HeHASH(entry) & HvMAX(keys))));
SPAGAIN;
XPUSHs(tmpstr);
}
diff --git a/embed.h b/embed.h
index 9768718a0e..c367ac74f5 100644
--- a/embed.h
+++ b/embed.h
@@ -52,7 +52,6 @@
#define avhv_exists_ent Perl_avhv_exists_ent
#define avhv_fetch Perl_avhv_fetch
#define avhv_fetch_ent Perl_avhv_fetch_ent
-#define avhv_iterinit Perl_avhv_iterinit
#define avhv_iternext Perl_avhv_iternext
#define avhv_iternextsv Perl_avhv_iternextsv
#define avhv_iterval Perl_avhv_iterval
@@ -327,6 +326,7 @@
#define magic_sizepack Perl_magic_sizepack
#define magic_wipepack Perl_magic_wipepack
#define magicname Perl_magicname
+#define malloced_size Perl_malloced_size
#define markstack_grow Perl_markstack_grow
#define mem_collxfrm Perl_mem_collxfrm
#define mess Perl_mess
diff --git a/embedvar.h b/embedvar.h
index 2e64829b6c..e77abbc5f3 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -99,6 +99,12 @@
#define cddir (curinterp->Icddir)
#define colors (curinterp->Icolors)
#define colorset (curinterp->Icolorset)
+#define compcv (curinterp->Icompcv)
+#define compiling (curinterp->Icompiling)
+#define comppad (curinterp->Icomppad)
+#define comppad_name (curinterp->Icomppad_name)
+#define comppad_name_fill (curinterp->Icomppad_name_fill)
+#define comppad_name_floor (curinterp->Icomppad_name_floor)
#define copline (curinterp->Icopline)
#define curcopdb (curinterp->Icurcopdb)
#define curstname (curinterp->Icurstname)
@@ -136,6 +142,7 @@
#define incgv (curinterp->Iincgv)
#define initav (curinterp->Iinitav)
#define inplace (curinterp->Iinplace)
+#define last_proto (curinterp->Ilast_proto)
#define lastfd (curinterp->Ilastfd)
#define lastgotoprobe (curinterp->Ilastgotoprobe)
#define lastscream (curinterp->Ilastscream)
@@ -179,6 +186,7 @@
#define preambleav (curinterp->Ipreambleav)
#define preambled (curinterp->Ipreambled)
#define preprocess (curinterp->Ipreprocess)
+#define profiledata (curinterp->Iprofiledata)
#define reg_eval_set (curinterp->Ireg_eval_set)
#define reg_flags (curinterp->Ireg_flags)
#define reg_start_tmp (curinterp->Ireg_start_tmp)
@@ -210,6 +218,8 @@
#define regxend (curinterp->Iregxend)
#define replgv (curinterp->Ireplgv)
#define rightgv (curinterp->Irightgv)
+#define rsfp (curinterp->Irsfp)
+#define rsfp_filters (curinterp->Irsfp_filters)
#define sawampersand (curinterp->Isawampersand)
#define sawstudy (curinterp->Isawstudy)
#define sawvec (curinterp->Isawvec)
@@ -263,6 +273,12 @@
#define Icddir cddir
#define Icolors colors
#define Icolorset colorset
+#define Icompcv compcv
+#define Icompiling compiling
+#define Icomppad comppad
+#define Icomppad_name comppad_name
+#define Icomppad_name_fill comppad_name_fill
+#define Icomppad_name_floor comppad_name_floor
#define Icopline copline
#define Icurcopdb curcopdb
#define Icurstname curstname
@@ -300,6 +316,7 @@
#define Iincgv incgv
#define Iinitav initav
#define Iinplace inplace
+#define Ilast_proto last_proto
#define Ilastfd lastfd
#define Ilastgotoprobe lastgotoprobe
#define Ilastscream lastscream
@@ -343,6 +360,7 @@
#define Ipreambleav preambleav
#define Ipreambled preambled
#define Ipreprocess preprocess
+#define Iprofiledata profiledata
#define Ireg_eval_set reg_eval_set
#define Ireg_flags reg_flags
#define Ireg_start_tmp reg_start_tmp
@@ -374,6 +392,8 @@
#define Iregxend regxend
#define Ireplgv replgv
#define Irightgv rightgv
+#define Irsfp rsfp
+#define Irsfp_filters rsfp_filters
#define Isawampersand sawampersand
#define Isawstudy sawstudy
#define Isawvec sawvec
@@ -489,6 +509,12 @@
#define cddir Perl_cddir
#define colors Perl_colors
#define colorset Perl_colorset
+#define compcv Perl_compcv
+#define compiling Perl_compiling
+#define comppad Perl_comppad
+#define comppad_name Perl_comppad_name
+#define comppad_name_fill Perl_comppad_name_fill
+#define comppad_name_floor Perl_comppad_name_floor
#define copline Perl_copline
#define curcopdb Perl_curcopdb
#define curstname Perl_curstname
@@ -526,6 +552,7 @@
#define incgv Perl_incgv
#define initav Perl_initav
#define inplace Perl_inplace
+#define last_proto Perl_last_proto
#define lastfd Perl_lastfd
#define lastgotoprobe Perl_lastgotoprobe
#define lastscream Perl_lastscream
@@ -569,6 +596,7 @@
#define preambleav Perl_preambleav
#define preambled Perl_preambled
#define preprocess Perl_preprocess
+#define profiledata Perl_profiledata
#define reg_eval_set Perl_reg_eval_set
#define reg_flags Perl_reg_flags
#define reg_start_tmp Perl_reg_start_tmp
@@ -600,6 +628,8 @@
#define regxend Perl_regxend
#define replgv Perl_replgv
#define rightgv Perl_rightgv
+#define rsfp Perl_rsfp
+#define rsfp_filters Perl_rsfp_filters
#define sawampersand Perl_sawampersand
#define sawstudy Perl_sawstudy
#define sawvec Perl_sawvec
@@ -769,12 +799,6 @@
#define collation_standard (Perl_Vars.Gcollation_standard)
#define collxfrm_base (Perl_Vars.Gcollxfrm_base)
#define collxfrm_mult (Perl_Vars.Gcollxfrm_mult)
-#define compcv (Perl_Vars.Gcompcv)
-#define compiling (Perl_Vars.Gcompiling)
-#define comppad (Perl_Vars.Gcomppad)
-#define comppad_name (Perl_Vars.Gcomppad_name)
-#define comppad_name_fill (Perl_Vars.Gcomppad_name_fill)
-#define comppad_name_floor (Perl_Vars.Gcomppad_name_floor)
#define cop_seqmax (Perl_Vars.Gcop_seqmax)
#define cryptseen (Perl_Vars.Gcryptseen)
#define cshlen (Perl_Vars.Gcshlen)
@@ -831,6 +855,7 @@
#define nextval (Perl_Vars.Gnextval)
#define nice_chunk (Perl_Vars.Gnice_chunk)
#define nice_chunk_size (Perl_Vars.Gnice_chunk_size)
+#define ninterps (Perl_Vars.Gninterps)
#define nomemok (Perl_Vars.Gnomemok)
#define nthreads (Perl_Vars.Gnthreads)
#define nthreads_cond (Perl_Vars.Gnthreads_cond)
@@ -848,9 +873,6 @@
#define padix_floor (Perl_Vars.Gpadix_floor)
#define patleave (Perl_Vars.Gpatleave)
#define pidstatus (Perl_Vars.Gpidstatus)
-#define profiledata (Perl_Vars.Gprofiledata)
-#define rsfp (Perl_Vars.Grsfp)
-#define rsfp_filters (Perl_Vars.Grsfp_filters)
#define runops (Perl_Vars.Grunops)
#define sh_path (Perl_Vars.Gsh_path)
#define sighandlerp (Perl_Vars.Gsighandlerp)
@@ -888,12 +910,6 @@
#define Gcollation_standard collation_standard
#define Gcollxfrm_base collxfrm_base
#define Gcollxfrm_mult collxfrm_mult
-#define Gcompcv compcv
-#define Gcompiling compiling
-#define Gcomppad comppad
-#define Gcomppad_name comppad_name
-#define Gcomppad_name_fill comppad_name_fill
-#define Gcomppad_name_floor comppad_name_floor
#define Gcop_seqmax cop_seqmax
#define Gcryptseen cryptseen
#define Gcshlen cshlen
@@ -950,6 +966,7 @@
#define Gnextval nextval
#define Gnice_chunk nice_chunk
#define Gnice_chunk_size nice_chunk_size
+#define Gninterps ninterps
#define Gnomemok nomemok
#define Gnthreads nthreads
#define Gnthreads_cond nthreads_cond
@@ -967,9 +984,6 @@
#define Gpadix_floor padix_floor
#define Gpatleave patleave
#define Gpidstatus pidstatus
-#define Gprofiledata profiledata
-#define Grsfp rsfp
-#define Grsfp_filters rsfp_filters
#define Grunops runops
#define Gsh_path sh_path
#define Gsighandlerp sighandlerp
@@ -1007,12 +1021,6 @@
#define collation_standard Perl_collation_standard
#define collxfrm_base Perl_collxfrm_base
#define collxfrm_mult Perl_collxfrm_mult
-#define compcv Perl_compcv
-#define compiling Perl_compiling
-#define comppad Perl_comppad
-#define comppad_name Perl_comppad_name
-#define comppad_name_fill Perl_comppad_name_fill
-#define comppad_name_floor Perl_comppad_name_floor
#define cop_seqmax Perl_cop_seqmax
#define cryptseen Perl_cryptseen
#define cshlen Perl_cshlen
@@ -1069,6 +1077,7 @@
#define nextval Perl_nextval
#define nice_chunk Perl_nice_chunk
#define nice_chunk_size Perl_nice_chunk_size
+#define ninterps Perl_ninterps
#define nomemok Perl_nomemok
#define nthreads Perl_nthreads
#define nthreads_cond Perl_nthreads_cond
@@ -1086,9 +1095,6 @@
#define padix_floor Perl_padix_floor
#define patleave Perl_patleave
#define pidstatus Perl_pidstatus
-#define profiledata Perl_profiledata
-#define rsfp Perl_rsfp
-#define rsfp_filters Perl_rsfp_filters
#define runops Perl_runops
#define sh_path Perl_sh_path
#define sighandlerp Perl_sighandlerp
diff --git a/ext/B/B.pm b/ext/B/B.pm
index 8545c5c847..5897ef1013 100644
--- a/ext/B/B.pm
+++ b/ext/B/B.pm
@@ -31,7 +31,8 @@ use strict;
@B::GV::ISA = 'B::PVMG';
@B::HV::ISA = 'B::PVMG';
@B::CV::ISA = 'B::PVMG';
-@B::IO::ISA = 'B::CV';
+@B::IO::ISA = 'B::PVMG';
+@B::FM::ISA = 'B::CV';
@B::OP::ISA = 'B::OBJECT';
@B::UNOP::ISA = 'B::OP';
diff --git a/ext/B/B/Asmdata.pm b/ext/B/B/Asmdata.pm
index b1df379009..b77f15089f 100644
--- a/ext/B/B/Asmdata.pm
+++ b/ext/B/B/Asmdata.pm
@@ -20,11 +20,11 @@ use vars qw(%insn_data @insn_name @optype @specialsv_name);
# XXX insn_data is initialised this way because with a large
# %insn_data = (foo => [...], bar => [...], ...) initialiser
# I get a hard-to-track-down stack underflow and segfault.
-$insn_data{comment} = [35, \&PUT_comment, "GET_comment"];
+$insn_data{comment} = [35, \&PUT_comment_t, "GET_comment_t"];
$insn_data{nop} = [10, \&PUT_none, "GET_none"];
$insn_data{ret} = [0, \&PUT_none, "GET_none"];
-$insn_data{ldsv} = [1, \&PUT_objindex, "GET_objindex"];
-$insn_data{ldop} = [2, \&PUT_objindex, "GET_objindex"];
+$insn_data{ldsv} = [1, \&PUT_svindex, "GET_svindex"];
+$insn_data{ldop} = [2, \&PUT_opindex, "GET_opindex"];
$insn_data{stsv} = [3, \&PUT_U32, "GET_U32"];
$insn_data{stop} = [4, \&PUT_U32, "GET_U32"];
$insn_data{ldspecsv} = [5, \&PUT_U8, "GET_U8"];
@@ -38,14 +38,14 @@ $insn_data{sv_upgrade} = [13, \&PUT_U8, "GET_U8"];
$insn_data{sv_refcnt} = [14, \&PUT_U32, "GET_U32"];
$insn_data{sv_refcnt_add} = [15, \&PUT_I32, "GET_I32"];
$insn_data{sv_flags} = [16, \&PUT_U32, "GET_U32"];
-$insn_data{xrv} = [17, \&PUT_objindex, "GET_objindex"];
+$insn_data{xrv} = [17, \&PUT_svindex, "GET_svindex"];
$insn_data{xpv} = [18, \&PUT_none, "GET_none"];
$insn_data{xiv32} = [19, \&PUT_I32, "GET_I32"];
$insn_data{xiv64} = [20, \&PUT_IV64, "GET_IV64"];
$insn_data{xnv} = [21, \&PUT_double, "GET_double"];
$insn_data{xlv_targoff} = [22, \&PUT_U32, "GET_U32"];
$insn_data{xlv_targlen} = [23, \&PUT_U32, "GET_U32"];
-$insn_data{xlv_targ} = [24, \&PUT_objindex, "GET_objindex"];
+$insn_data{xlv_targ} = [24, \&PUT_svindex, "GET_svindex"];
$insn_data{xlv_type} = [25, \&PUT_U8, "GET_U8"];
$insn_data{xbm_useful} = [26, \&PUT_I32, "GET_I32"];
$insn_data{xbm_previous} = [27, \&PUT_U16, "GET_U16"];
@@ -56,89 +56,89 @@ $insn_data{xio_page} = [31, \&PUT_I32, "GET_I32"];
$insn_data{xio_page_len} = [32, \&PUT_I32, "GET_I32"];
$insn_data{xio_lines_left} = [33, \&PUT_I32, "GET_I32"];
$insn_data{xio_top_name} = [34, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{xio_top_gv} = [36, \&PUT_objindex, "GET_objindex"];
+$insn_data{xio_top_gv} = [36, \&PUT_svindex, "GET_svindex"];
$insn_data{xio_fmt_name} = [37, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{xio_fmt_gv} = [38, \&PUT_objindex, "GET_objindex"];
+$insn_data{xio_fmt_gv} = [38, \&PUT_svindex, "GET_svindex"];
$insn_data{xio_bottom_name} = [39, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{xio_bottom_gv} = [40, \&PUT_objindex, "GET_objindex"];
+$insn_data{xio_bottom_gv} = [40, \&PUT_svindex, "GET_svindex"];
$insn_data{xio_subprocess} = [41, \&PUT_U16, "GET_U16"];
$insn_data{xio_type} = [42, \&PUT_U8, "GET_U8"];
$insn_data{xio_flags} = [43, \&PUT_U8, "GET_U8"];
-$insn_data{xcv_stash} = [44, \&PUT_objindex, "GET_objindex"];
-$insn_data{xcv_start} = [45, \&PUT_objindex, "GET_objindex"];
-$insn_data{xcv_root} = [46, \&PUT_objindex, "GET_objindex"];
-$insn_data{xcv_gv} = [47, \&PUT_objindex, "GET_objindex"];
-$insn_data{xcv_filegv} = [48, \&PUT_objindex, "GET_objindex"];
+$insn_data{xcv_stash} = [44, \&PUT_svindex, "GET_svindex"];
+$insn_data{xcv_start} = [45, \&PUT_opindex, "GET_opindex"];
+$insn_data{xcv_root} = [46, \&PUT_opindex, "GET_opindex"];
+$insn_data{xcv_gv} = [47, \&PUT_svindex, "GET_svindex"];
+$insn_data{xcv_filegv} = [48, \&PUT_svindex, "GET_svindex"];
$insn_data{xcv_depth} = [49, \&PUT_I32, "GET_I32"];
-$insn_data{xcv_padlist} = [50, \&PUT_objindex, "GET_objindex"];
-$insn_data{xcv_outside} = [51, \&PUT_objindex, "GET_objindex"];
+$insn_data{xcv_padlist} = [50, \&PUT_svindex, "GET_svindex"];
+$insn_data{xcv_outside} = [51, \&PUT_svindex, "GET_svindex"];
$insn_data{xcv_flags} = [52, \&PUT_U8, "GET_U8"];
$insn_data{av_extend} = [53, \&PUT_I32, "GET_I32"];
-$insn_data{av_push} = [54, \&PUT_objindex, "GET_objindex"];
+$insn_data{av_push} = [54, \&PUT_svindex, "GET_svindex"];
$insn_data{xav_fill} = [55, \&PUT_I32, "GET_I32"];
$insn_data{xav_max} = [56, \&PUT_I32, "GET_I32"];
$insn_data{xav_flags} = [57, \&PUT_U8, "GET_U8"];
$insn_data{xhv_riter} = [58, \&PUT_I32, "GET_I32"];
$insn_data{xhv_name} = [59, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{hv_store} = [60, \&PUT_objindex, "GET_objindex"];
+$insn_data{hv_store} = [60, \&PUT_svindex, "GET_svindex"];
$insn_data{sv_magic} = [61, \&PUT_U8, "GET_U8"];
-$insn_data{mg_obj} = [62, \&PUT_objindex, "GET_objindex"];
+$insn_data{mg_obj} = [62, \&PUT_svindex, "GET_svindex"];
$insn_data{mg_private} = [63, \&PUT_U16, "GET_U16"];
$insn_data{mg_flags} = [64, \&PUT_U8, "GET_U8"];
$insn_data{mg_pv} = [65, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{xmg_stash} = [66, \&PUT_objindex, "GET_objindex"];
+$insn_data{xmg_stash} = [66, \&PUT_svindex, "GET_svindex"];
$insn_data{gv_fetchpv} = [67, \&PUT_strconst, "GET_strconst"];
$insn_data{gv_stashpv} = [68, \&PUT_strconst, "GET_strconst"];
-$insn_data{gp_sv} = [69, \&PUT_objindex, "GET_objindex"];
+$insn_data{gp_sv} = [69, \&PUT_svindex, "GET_svindex"];
$insn_data{gp_refcnt} = [70, \&PUT_U32, "GET_U32"];
$insn_data{gp_refcnt_add} = [71, \&PUT_I32, "GET_I32"];
-$insn_data{gp_av} = [72, \&PUT_objindex, "GET_objindex"];
-$insn_data{gp_hv} = [73, \&PUT_objindex, "GET_objindex"];
-$insn_data{gp_cv} = [74, \&PUT_objindex, "GET_objindex"];
-$insn_data{gp_filegv} = [75, \&PUT_objindex, "GET_objindex"];
-$insn_data{gp_io} = [76, \&PUT_objindex, "GET_objindex"];
-$insn_data{gp_form} = [77, \&PUT_objindex, "GET_objindex"];
+$insn_data{gp_av} = [72, \&PUT_svindex, "GET_svindex"];
+$insn_data{gp_hv} = [73, \&PUT_svindex, "GET_svindex"];
+$insn_data{gp_cv} = [74, \&PUT_svindex, "GET_svindex"];
+$insn_data{gp_filegv} = [75, \&PUT_svindex, "GET_svindex"];
+$insn_data{gp_io} = [76, \&PUT_svindex, "GET_svindex"];
+$insn_data{gp_form} = [77, \&PUT_svindex, "GET_svindex"];
$insn_data{gp_cvgen} = [78, \&PUT_U32, "GET_U32"];
$insn_data{gp_line} = [79, \&PUT_U16, "GET_U16"];
-$insn_data{gp_share} = [80, \&PUT_objindex, "GET_objindex"];
+$insn_data{gp_share} = [80, \&PUT_svindex, "GET_svindex"];
$insn_data{xgv_flags} = [81, \&PUT_U8, "GET_U8"];
-$insn_data{op_next} = [82, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_sibling} = [83, \&PUT_objindex, "GET_objindex"];
+$insn_data{op_next} = [82, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_sibling} = [83, \&PUT_opindex, "GET_opindex"];
$insn_data{op_ppaddr} = [84, \&PUT_strconst, "GET_strconst"];
$insn_data{op_targ} = [85, \&PUT_U32, "GET_U32"];
$insn_data{op_type} = [86, \&PUT_U16, "GET_U16"];
$insn_data{op_seq} = [87, \&PUT_U16, "GET_U16"];
$insn_data{op_flags} = [88, \&PUT_U8, "GET_U8"];
$insn_data{op_private} = [89, \&PUT_U8, "GET_U8"];
-$insn_data{op_first} = [90, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_last} = [91, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_other} = [92, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_true} = [93, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_false} = [94, \&PUT_objindex, "GET_objindex"];
+$insn_data{op_first} = [90, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_last} = [91, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_other} = [92, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_true} = [93, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_false} = [94, \&PUT_opindex, "GET_opindex"];
$insn_data{op_children} = [95, \&PUT_U32, "GET_U32"];
-$insn_data{op_pmreplroot} = [96, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_pmreplrootgv} = [97, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_pmreplstart} = [98, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_pmnext} = [99, \&PUT_objindex, "GET_objindex"];
+$insn_data{op_pmreplroot} = [96, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_pmreplrootgv} = [97, \&PUT_svindex, "GET_svindex"];
+$insn_data{op_pmreplstart} = [98, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_pmnext} = [99, \&PUT_opindex, "GET_opindex"];
$insn_data{pregcomp} = [100, \&PUT_pvcontents, "GET_pvcontents"];
$insn_data{op_pmflags} = [101, \&PUT_U16, "GET_U16"];
$insn_data{op_pmpermflags} = [102, \&PUT_U16, "GET_U16"];
-$insn_data{op_sv} = [103, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_gv} = [104, \&PUT_objindex, "GET_objindex"];
+$insn_data{op_sv} = [103, \&PUT_svindex, "GET_svindex"];
+$insn_data{op_gv} = [104, \&PUT_svindex, "GET_svindex"];
$insn_data{op_pv} = [105, \&PUT_pvcontents, "GET_pvcontents"];
$insn_data{op_pv_tr} = [106, \&PUT_op_tr_array, "GET_op_tr_array"];
-$insn_data{op_redoop} = [107, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_nextop} = [108, \&PUT_objindex, "GET_objindex"];
-$insn_data{op_lastop} = [109, \&PUT_objindex, "GET_objindex"];
+$insn_data{op_redoop} = [107, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_nextop} = [108, \&PUT_opindex, "GET_opindex"];
+$insn_data{op_lastop} = [109, \&PUT_opindex, "GET_opindex"];
$insn_data{cop_label} = [110, \&PUT_pvcontents, "GET_pvcontents"];
-$insn_data{cop_stash} = [111, \&PUT_objindex, "GET_objindex"];
-$insn_data{cop_filegv} = [112, \&PUT_objindex, "GET_objindex"];
+$insn_data{cop_stash} = [111, \&PUT_svindex, "GET_svindex"];
+$insn_data{cop_filegv} = [112, \&PUT_svindex, "GET_svindex"];
$insn_data{cop_seq} = [113, \&PUT_U32, "GET_U32"];
$insn_data{cop_arybase} = [114, \&PUT_I32, "GET_I32"];
$insn_data{cop_line} = [115, \&PUT_U16, "GET_U16"];
-$insn_data{main_start} = [116, \&PUT_objindex, "GET_objindex"];
-$insn_data{main_root} = [117, \&PUT_objindex, "GET_objindex"];
-$insn_data{curpad} = [118, \&PUT_objindex, "GET_objindex"];
+$insn_data{main_start} = [116, \&PUT_opindex, "GET_opindex"];
+$insn_data{main_root} = [117, \&PUT_opindex, "GET_opindex"];
+$insn_data{curpad} = [118, \&PUT_svindex, "GET_svindex"];
my ($insn_name, $insn_data);
while (($insn_name, $insn_data) = each %insn_data) {
diff --git a/ext/Fcntl/Fcntl.pm b/ext/Fcntl/Fcntl.pm
index ab19670af7..f1edb8ed79 100644
--- a/ext/Fcntl/Fcntl.pm
+++ b/ext/Fcntl/Fcntl.pm
@@ -52,27 +52,66 @@ $VERSION = "1.03";
# (move infrequently used names to @EXPORT_OK below)
@EXPORT =
qw(
- F_DUPFD F_GETFD F_GETLK F_SETFD F_GETFL F_SETFL F_SETLK F_SETLKW
- FD_CLOEXEC F_RDLCK F_UNLCK F_WRLCK F_POSIX
- O_CREAT O_EXCL O_NOCTTY O_TRUNC
- O_APPEND O_NONBLOCK
- O_NDELAY O_DEFER
- O_RDONLY O_RDWR O_WRONLY
- O_BINARY O_TEXT
- O_EXLOCK O_SHLOCK O_ASYNC O_DSYNC O_RSYNC O_SYNC
- F_SETOWN F_GETOWN
+ FD_CLOEXEC
+ F_DUPFD
+ F_EXLCK
+ F_GETFD
+ F_GETFL
+ F_GETLK
+ F_GETOWN
+ F_POSIX
+ F_RDLCK
+ F_SETFD
+ F_SETFL
+ F_SETLK
+ F_SETLKW
+ F_SETOWN
+ F_SHLCK
+ F_UNLCK
+ F_WRLCK
+ O_ACCMODE
+ O_APPEND
+ O_ASYNC
+ O_BINARY
+ O_CREAT
+ O_DEFER
+ O_DSYNC
+ O_EXCL
+ O_EXLOCK
+ O_NDELAY
+ O_NOCTTY
+ O_NONBLOCK
+ O_RDONLY
+ O_RDWR
+ O_RSYNC
+ O_SHLOCK
+ O_SYNC
+ O_TEXT
+ O_TRUNC
+ O_WRONLY
);
# Other items we are prepared to export if requested
@EXPORT_OK = qw(
- LOCK_SH LOCK_EX LOCK_NB LOCK_UN
- FAPPEND FASYNC FCREAT FDEFER FEXCL FNDELAY FNONBLOCK FSYNC FTRUNC
+ FAPPEND
+ FASYNC
+ FCREAT
+ FDEFER
+ FEXCL
+ FNDELAY
+ FNONBLOCK
+ FSYNC
+ FTRUNC
+ LOCK_EX
+ LOCK_NB
+ LOCK_SH
+ LOCK_UN
);
# Named groups of exports
%EXPORT_TAGS = (
'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FEXCL
- FNDELAY FNONBLOCK FSYNC FTRUNC)],
+ FNDELAY FNONBLOCK FSYNC FTRUNC)],
);
sub AUTOLOAD {
diff --git a/ext/Fcntl/Fcntl.xs b/ext/Fcntl/Fcntl.xs
index 251f3f4176..18a175f1c6 100644
--- a/ext/Fcntl/Fcntl.xs
+++ b/ext/Fcntl/Fcntl.xs
@@ -42,12 +42,24 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
+ if (strEQ(name, "F_EXLCK"))
+#ifdef F_EXLCK
+ return F_EXLCK;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "F_GETFD"))
#ifdef F_GETFD
return F_GETFD;
#else
goto not_there;
#endif
+ if (strEQ(name, "F_GETFL"))
+#ifdef F_GETFL
+ return F_GETFL;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "F_GETLK"))
#ifdef F_GETLK
return F_GETLK;
@@ -60,21 +72,21 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
- if (strEQ(name, "F_SETFD"))
-#ifdef F_SETFD
- return F_SETFD;
+ if (strEQ(name, "F_POSIX"))
+#ifdef F_POSIX
+ return F_POSIX;
#else
goto not_there;
#endif
- if (strEQ(name, "F_GETFL"))
-#ifdef F_GETFL
- return F_GETFL;
+ if (strEQ(name, "F_RDLCK"))
+#ifdef F_RDLCK
+ return F_RDLCK;
#else
goto not_there;
#endif
- if (strEQ(name, "F_POSIX"))
-#ifdef F_POSIX
- return F_POSIX;
+ if (strEQ(name, "F_SETFD"))
+#ifdef F_SETFD
+ return F_SETFD;
#else
goto not_there;
#endif
@@ -102,9 +114,9 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
- if (strEQ(name, "F_RDLCK"))
-#ifdef F_RDLCK
- return F_RDLCK;
+ if (strEQ(name, "F_SHLCK"))
+#ifdef F_SHLCK
+ return F_SHLCK;
#else
goto not_there;
#endif
@@ -147,6 +159,12 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
+ if (strEQ(name, "FDEFER"))
+#ifdef FDEFER
+ return FDEFER;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "FEXCL"))
#ifdef FEXCL
return FEXCL;
@@ -211,33 +229,69 @@ constant(char *name, int arg)
break;
case 'O':
if (strnEQ(name, "O_", 2)) {
+ if (strEQ(name, "O_ACCMODE"))
+#ifdef O_ACCMODE
+ return O_ACCMODE;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_APPEND"))
+#ifdef O_APPEND
+ return O_APPEND;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_ASYNC"))
+#ifdef O_ASYNC
+ return O_ASYNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_BINARY"))
+#ifdef O_BINARY
+ return O_BINARY;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "O_CREAT"))
#ifdef O_CREAT
return O_CREAT;
#else
goto not_there;
#endif
+ if (strEQ(name, "O_DEFER"))
+#ifdef O_DEFER
+ return O_DEFER;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_DSYNC"))
+#ifdef O_DSYNC
+ return O_DSYNC;
+#else
+ goto not_there;
+#endif
if (strEQ(name, "O_EXCL"))
#ifdef O_EXCL
return O_EXCL;
#else
goto not_there;
#endif
- if (strEQ(name, "O_NOCTTY"))
-#ifdef O_NOCTTY
- return O_NOCTTY;
+ if (strEQ(name, "O_EXLOCK"))
+#ifdef O_EXLOCK
+ return O_EXLOCK;
#else
goto not_there;
#endif
- if (strEQ(name, "O_TRUNC"))
-#ifdef O_TRUNC
- return O_TRUNC;
+ if (strEQ(name, "O_NDELAY"))
+#ifdef O_NDELAY
+ return O_NDELAY;
#else
goto not_there;
#endif
- if (strEQ(name, "O_APPEND"))
-#ifdef O_APPEND
- return O_APPEND;
+ if (strEQ(name, "O_NOCTTY"))
+#ifdef O_NOCTTY
+ return O_NOCTTY;
#else
goto not_there;
#endif
@@ -247,12 +301,6 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
- if (strEQ(name, "O_NDELAY"))
-#ifdef O_NDELAY
- return O_NDELAY;
-#else
- goto not_there;
-#endif
if (strEQ(name, "O_RDONLY"))
#ifdef O_RDONLY
return O_RDONLY;
@@ -265,21 +313,9 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
- if (strEQ(name, "O_WRONLY"))
-#ifdef O_WRONLY
- return O_WRONLY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_BINARY"))
-#ifdef O_BINARY
- return O_BINARY;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_EXLOCK"))
-#ifdef O_EXLOCK
- return O_EXLOCK;
+ if (strEQ(name, "O_RSYNC"))
+#ifdef O_RSYNC
+ return O_RSYNC;
#else
goto not_there;
#endif
@@ -289,33 +325,27 @@ constant(char *name, int arg)
#else
goto not_there;
#endif
- if (strEQ(name, "O_ASYNC"))
-#ifdef O_ASYNC
- return O_ASYNC;
-#else
- goto not_there;
-#endif
- if (strEQ(name, "O_DSYNC"))
-#ifdef O_DSYNC
- return O_DSYNC;
+ if (strEQ(name, "O_SYNC"))
+#ifdef O_SYNC
+ return O_SYNC;
#else
goto not_there;
#endif
- if (strEQ(name, "O_RSYNC"))
-#ifdef O_RSYNC
- return O_RSYNC;
+ if (strEQ(name, "O_TEXT"))
+#ifdef O_TEXT
+ return O_TEXT;
#else
goto not_there;
#endif
- if (strEQ(name, "O_SYNC"))
-#ifdef O_SYNC
- return O_SYNC;
+ if (strEQ(name, "O_TRUNC"))
+#ifdef O_TRUNC
+ return O_TRUNC;
#else
goto not_there;
#endif
- if (strEQ(name, "O_DEFER"))
-#ifdef O_DEFER
- return O_DEFER;
+ if (strEQ(name, "O_WRONLY"))
+#ifdef O_WRONLY
+ return O_WRONLY;
#else
goto not_there;
#endif
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
index 32010d62e0..b95249ce43 100644
--- a/ext/POSIX/POSIX.pm
+++ b/ext/POSIX/POSIX.pm
@@ -115,7 +115,7 @@ $VERSION = "1.02" ;
sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
- fstat mkfifo)],
+ fstat mkfifo mknod)],
sys_times_h => [qw()],
diff --git a/ext/POSIX/POSIX.pod b/ext/POSIX/POSIX.pod
index 4726487b47..91ef781c12 100644
--- a/ext/POSIX/POSIX.pod
+++ b/ext/POSIX/POSIX.pod
@@ -660,6 +660,12 @@ This is similar to the C function C<mkfifo()>.
Returns C<undef> on failure.
+=item mknod
+
+This is similar to the C function C<mknod()>.
+
+Returns C<undef> on failure.
+
=item mktime
Convert date/time info to a calendar time.
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index a4fd52e04b..568fbeee73 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -35,6 +35,7 @@
#ifdef I_STDDEF
#include <stddef.h>
#endif
+
/* XXX This comment is just to make I_TERMIO and I_SGTTY visible to
metaconfig for future extension writers. We don't use them in POSIX.
(This is really sneaky :-) --AD
@@ -62,8 +63,9 @@
# define pid_t int /* old versions of DECC miss this in types.h */
# endif
-# undef mkfifo /* #defined in perl.h */
+# undef mkfifo
# define mkfifo(a,b) (not_here("mkfifo"),-1)
+# define mknod(a,b,c) (not_here("mknod"),-1)
# define tzset() not_here("tzset")
#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
@@ -103,8 +105,9 @@
# define times(t) vms_times(t)
#else
#if defined (WIN32)
-# undef mkfifo /* #defined in perl.h */
+# undef mkfifo
# define mkfifo(a,b) not_here("mkfifo")
+# define mknod(a,b,c) not_here("mknod")
# define ttyname(a) (char*)not_here("ttyname")
# define sigset_t long
# define pid_t long
@@ -133,6 +136,13 @@
# define sigfillset(a) not_here("sigfillset")
# define sigismember(a,b) not_here("sigismember")
#else
+
+# ifndef HAS_MKFIFO
+# ifndef mkfifo
+# define mkfifo(path, mode) (mknod((path), (mode) | S_IFIFO, 0))
+# endif
+# endif /* !HAS_MKFIFO */
+
# include <grp.h>
# include <sys/times.h>
# ifdef HAS_UNAME
@@ -275,7 +285,7 @@ unsigned long strtoul _((const char *, char **, int));
extern char *tzname[];
# endif
#else
-#if !defined(__GNUC__) && !defined(tzname)
+#if !defined(WIN32) || (defined(__MINGW32__) && !defined(tzname))
char *tzname[] = { "" , "" };
#endif
#endif
@@ -3473,6 +3483,17 @@ mkfifo(filename, mode)
RETVAL
SysRet
+mknod(filename, mode, device)
+ char * filename
+ Mode_t mode
+ Dev_t device
+ CODE:
+ TAINT_PROPER("mknod");
+ RETVAL = mknod(filename, mode, device);
+ OUTPUT:
+ RETVAL
+
+SysRet
tcdrain(fd)
int fd
diff --git a/ext/POSIX/typemap b/ext/POSIX/typemap
index 45e0862ff0..63e41c77bf 100644
--- a/ext/POSIX/typemap
+++ b/ext/POSIX/typemap
@@ -4,6 +4,7 @@ Uid_t T_NV
Time_t T_NV
Gid_t T_NV
Off_t T_NV
+Dev_t T_NV
fd T_IV
speed_t T_IV
tcflag_t T_IV
diff --git a/ext/SDBM_File/sdbm/Makefile.PL b/ext/SDBM_File/sdbm/Makefile.PL
index 7008e6d471..e6fdcf9306 100644
--- a/ext/SDBM_File/sdbm/Makefile.PL
+++ b/ext/SDBM_File/sdbm/Makefile.PL
@@ -21,10 +21,24 @@ WriteMakefile(
C => [qw(sdbm.c pair.c hash.c)]
);
+sub MY::constants {
+ package MY;
+ my $r = shift->SUPER::constants();
+ if ($^O eq 'VMS') {
+ $r =~ s/^INST_STATIC =.*$/INST_STATIC = libsdbm\$(LIB_EXT)/m
+ }
+ return $r;
+}
+
sub MY::post_constants {
+ package MY;
+ if ($^O eq 'VMS') {
+ shift->SUPER::post_constants();
+ } else {
'
INST_STATIC = libsdbm$(LIB_EXT)
'
+ }
}
sub MY::top_targets {
diff --git a/ext/util/make_ext b/ext/util/make_ext
index 70a5d2eb23..54caf7dfd8 100644
--- a/ext/util/make_ext
+++ b/ext/util/make_ext
@@ -61,6 +61,8 @@ fi
case "$extspec" in
lib*) # Remove lib/auto prefix and /*.* suffix
pname=`echo "$extspec" | sed -e 's:^lib/auto/::' -e 's:/[^/]*\.[^/]*$::' ` ;;
+ext*) # Remove ext/ prefix and /pm_to_blib suffix
+ pname=`echo "$extspec" | sed -e 's:^ext/::' -e 's:/pm_to_blib$::' ` ;;
*::*) # Convert :: to /
pname=`echo "$extspec" | sed -e 's/::/\//g' ` ;;
*) pname="$extspec" ;;
@@ -93,6 +95,10 @@ dynamic) makeargs="LINKTYPE=dynamic";
target=all
;;
+nonxs) makeargs="";
+ target=all
+ ;;
+
*clean) # If Makefile has been moved to Makefile.old by a make clean
# then use Makefile.old for realclean rather than rebuild it
if test ! -f $makefile -a -f Makefile.old; then
diff --git a/global.sym b/global.sym
index 5001c3c35e..ea5b20f3f0 100644
--- a/global.sym
+++ b/global.sym
@@ -187,7 +187,6 @@ avhv_exists
avhv_exists_ent
avhv_fetch
avhv_fetch_ent
-avhv_iterinit
avhv_iternext
avhv_iternextsv
avhv_iterval
@@ -427,6 +426,7 @@ magic_setvec
magic_sizepack
magic_wipepack
magicname
+malloced_size
markstack_grow
mem_collxfrm
mess
diff --git a/gv.c b/gv.c
index 561db93558..0a363704cd 100644
--- a/gv.c
+++ b/gv.c
@@ -711,9 +711,9 @@ gv_fetchpv(char *nambeg, I32 add, I32 sv_type)
goto magicalize;
case '!':
- if(len > 1)
+ if (len > 1)
break;
- if(sv_type > SVt_PV) {
+ if (sv_type > SVt_PV && curcop != &compiling) {
HV* stash = gv_stashpvn("Errno",5,FALSE);
if(!stash || !(gv_fetchmethod(stash, "TIEHASH"))) {
dSP;
diff --git a/hints/machten.sh b/hints/machten.sh
index 2ae79f17e3..24854608a8 100644
--- a/hints/machten.sh
+++ b/hints/machten.sh
@@ -13,6 +13,8 @@
# Martijn Koster <m.koster@webcrawler.com>
# Richard Yeh <rcyeh@cco.caltech.edu>
#
+# Raise perl's stack size again; cut down reg_infty; document
+# -- Dominic Dunlop <domo@computer.org> 980619
# Use of semctl() can crash system: disable -- Dominic Dunlop 980506
# Raise stack size further; slight tweaks to accomodate MT 4.1
# -- Dominic Dunlop <domo@computer.org> 980211
@@ -37,10 +39,61 @@ usemymalloc='false'
# Make symbol table listings les voluminous
nmopts=-gp
-# Increase perl's stack size. Without this, lib/complex.t crashes out.
-# Particularly perverse programs may require that perl has an even larger
-# stack allocation than that specified here. (See man setstackspace )
-ldflags='-Xlstack=0x018000'
+# Set reg_infty -- the maximum allowable number of repeats in regular
+# expressions such as /a{1,$max_repeats}/, and the maximum number of
+# times /a*/ will match. Setting this too high without having a stack
+# large enough to accommodate deep recursion in the regular expression
+# engine allows perl to crash your Mac due to stack overrun if it
+# encounters a pathological regular expression. The default is a
+# compromise between capability and required stack size (see below).
+# You may override the default value from the Configure command-line
+# like this:
+#
+# Configure -Dreg_infty=16368 ...
+
+reg_infty=${reg_infty:-2047}
+
+# If you want to have many perl processes active simultaneously --
+# processing CGI forms -- for example, you should opt for a small stack.
+# For safety, you should set reg_infty no larger than the corresponding
+# value given in this table:
+#
+# Stack size reg_infty value supported
+# ---------- -------------------------
+# 128k 2**8-1 (256)
+# 256k 2**9-1 (511)
+# 512k 2**10-1 (1023)
+# 1M 2**11-1 (2047)
+# ...
+# 16M 2**15-1 (32767) (perl's default value)
+
+# This script selects a safe stack size based on the value of reg_infty
+# specified above. However, you may choose to take a risk and set
+# stack size lower: pathological regular expressions are rare in real-world
+# programs. But be aware that, if perl does encounter one, it WILL
+# crash your system. Do not set stack size lower than 96k unless
+# you want perl's installation tests ( make test ) to crash your system.
+#
+# You may override the default value from the Configure command-line
+# by specifying the required size in kilobytes like this:
+#
+# Configure -Dstack_size=96
+
+if [ "X$stack_size" = 'X' ]
+then
+ stack_size=128
+ X=`expr $reg_infty / 256`
+
+ while [ $X -gt 0 ]
+ do
+ X=`expr $X / 2`
+ stack_size=`expr $stack_size \* 2`
+ done
+fi
+
+X=`expr $stack_size \* 1024`
+ldflags="$ldflags -Xlstack=$X"
+ccflags="$ccflags -DREG_INFTY=$reg_infty"
# Install in /usr/local by default
prefix='/usr/local'
@@ -77,12 +130,12 @@ libswanted="$*"
# Propagating recommended variable dont_use_nlink
dont_use_nlink=define
-cat <<'EOM' >&4
+cat <<EOM >&4
During Configure, you may see the message
*** WHOA THERE!!! ***
- The recommended value for $d_semctl on this machine was "undef"!
+ The recommended value for \$d_semctl on this machine was "undef"!
Keep the recommended value? [y]
Select the default answer: semctl() is buggy, and perl should be built
@@ -93,8 +146,13 @@ At the end of Configure, you will see a harmless message
Hmm...You had some extra variables I don't know about...I'll try to keep 'em.
Propagating recommended variable dont_use_nlink
Propagating recommended variable nmopts
+ Propagating recommended variable reg_infty
Read the File::Find documentation for more information about dont_use_nlink
+Your perl will be built with a stack size of ${stack_size}k and a regular
+expression repeat count limit of $reg_infty. If you want alternative
+values, see the file hints/machten.sh for advice on how to change them.
+
Tests
io/fs test 4 and
op/stat test 3
@@ -104,3 +162,5 @@ on directories.
EOM
expr "$osvers" \< "4.1" >/dev/null && test -r ./broken-db.msg && \
. ./broken-db.msg
+
+unset stack_size X
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index 9a1ccb9027..6f5ee32092 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -257,12 +257,30 @@ if [ "X$usethreads" = "X$define" ]; then
# when linked with the threads library, such that whatever positive value
# you pass to siglongjmp(), sigsetjmp() returns 1.
# Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
- if test "`arch`" = i86pc -a "$osvers" = 2.6; then
- d_sigaction=$undef
+ # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
+ # siglongjmp in a MT program". As of 19980622, there is no patch
+ # available.
+ cat >try.c <<'EOM'
+ /* Test for sig(set|long)jmp bug. */
+ #include <setjmp.h>
+
+ main()
+ {
+ sigjmp_buf env;
+ int ret;
+
+ ret = sigsetjmp(env, 1);
+ if (ret) { return ret == 2; }
+ siglongjmp(env, 2);
+ }
+EOM
+ if test "`arch`" = i86pc -a "$osvers" = 2.6 \
+ && ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
+ d_sigsetjmp=$undef
cat << 'EOM' >&2
You will see a *** WHOA THERE!!! *** message from Configure for
-d_sigaction. Keep the recommended value. See hints/solaris_2.sh
+d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh
for more information.
EOM
diff --git a/hv.c b/hv.c
index 6fd6f2f3b0..6d6c3ce2a1 100644
--- a/hv.c
+++ b/hv.c
@@ -665,7 +665,7 @@ hsplit(HV *hv)
I32 oldsize = (I32) xhv->xhv_max + 1; /* sic(k) */
register I32 newsize = oldsize * 2;
register I32 i;
- register HE **a;
+ register HE **a = (HE**)xhv->xhv_array;
register HE **b;
register HE *entry;
register HE **oentry;
@@ -673,9 +673,8 @@ hsplit(HV *hv)
I32 tmp;
#endif
- a = (HE**)xhv->xhv_array;
nomemok = TRUE;
-#ifdef STRANGE_MALLOC
+#if defined(STRANGE_MALLOC) || defined(MYMALLOC)
Renew(a, newsize, HE*);
if (!a) {
nomemok = FALSE;
@@ -756,7 +755,7 @@ hv_ksplit(HV *hv, IV newmax)
a = (HE**)xhv->xhv_array;
if (a) {
nomemok = TRUE;
-#ifdef STRANGE_MALLOC
+#if defined(STRANGE_MALLOC) || defined(MYMALLOC)
Renew(a, newsize, HE*);
if (!a) {
nomemok = FALSE;
diff --git a/installperl b/installperl
index 3ec0f50063..0769c036d1 100755
--- a/installperl
+++ b/installperl
@@ -6,9 +6,13 @@ BEGIN {
@INC = 'lib';
$ENV{PERL5LIB} = 'lib';
$Is_VMS = $^O eq 'VMS';
+ $Is_W32 = $^O eq 'MSWin32';
+ $Is_OS2 = $^O eq 'os2';
if ($Is_VMS) { eval 'use VMS::Filespec;' }
}
+$scr_ext = ($Is_VMS ? '.Com' : $Is_W32 ? '.bat' : '');
+
use File::Find;
use File::Compare;
use File::Copy ();
@@ -37,12 +41,12 @@ while (@ARGV) {
umask 022 unless $Is_VMS;
-@scripts = qw( utils/c2ph utils/h2ph utils/h2xs
- utils/perlbug utils/perldoc utils/pl2pm utils/splain utils/perlcc
+@scripts = qw( utils/c2ph utils/h2ph utils/h2xs utils/perlbug utils/perldoc
+ utils/pl2pm utils/splain utils/perlcc
x2p/s2p x2p/find2perl
pod/pod2man pod/pod2html pod/pod2latex pod/pod2text);
-if ($Is_VMS) { @scripts = map { "$_.Com" } @scripts; }
+if ($scr_ext) { @scripts = map { "$_$scr_ext" } @scripts; }
@pods = (<pod/*.pod>);
@@ -113,11 +117,11 @@ if ($d_dosuid && $>) { die "You must run as root to install suidperl\n"; }
-x 'perl' . $exe_ext || die "perl isn't executable!\n";
-x 'suidperl' . $exe_ext|| die "suidperl isn't executable!\n" if $d_dosuid;
--x 't/TEST' || $^O eq 'MSWin32'
+-x 't/TEST' || $Is_W32
|| warn "WARNING: You've never run 'make test'!!!",
" (Installing anyway.)\n";
-if ($^O eq 'MSWin32') {
+if ($Is_W32) {
$perldll = 'perl.' . $dlext;
$perldll = 'perlcore.' . $dlext if $Config{'ccflags'} =~ /PERL_OBJECT/i;
@@ -218,7 +222,7 @@ if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VM
$mainperl_is_instperl = 0;
-if (!$versiononly && !$nonono && $^O ne 'MSWin32' && !$Is_VMS && -t STDIN && -t STDERR
+if (!$versiononly && !$nonono && !$Is_W32 && !$Is_VMS && -t STDIN && -t STDERR
&& -w $mainperldir && ! samepath($mainperldir, $installbin)) {
local($usrbinperl) = "$mainperldir/$perl$exe_ext";
local($instperl) = "$installbin/$perl$exe_ext";
@@ -282,12 +286,11 @@ if (! $versiononly) {
# pstruct should be a link to c2ph
if (! $versiononly) {
- safe_unlink("$installscript/pstruct" . ($Is_VMS ? '.Com' : ''));
+ safe_unlink("$installscript/pstruct$scr_ext");
if ($^O eq 'dos' or $Is_VMS) {
- copy("$installscript/c2ph" . ($Is_VMS ? '.Com' : ''),
- "$installscript/pstruct" . ($Is_VMS ? '.Com' : ''));
+ copy("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
} else {
- link("$installscript/c2ph","$installscript/pstruct");
+ link("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
}
}
@@ -335,7 +338,7 @@ if (! $versiononly || !($installprivlib =~ m/\Q$]/)) {
if (!$versiononly) {
- $dirsep = ($^O eq 'os2' || $^O eq 'MSWin32') ? ';' : ':' ;
+ $dirsep = ($Is_OS2 || $Is_W32) ? ';' : ':' ;
($path = $ENV{"PATH"}) =~ s:\\:/:g ;
@path = split(/$dirsep/, $path);
if ($Is_VMS) {
@@ -391,7 +394,7 @@ sub unlink {
foreach $name (@names) {
next unless -e $name;
- chmod 0777, $name if ($^O eq 'os2' || $^O eq 'MSWin32');
+ chmod 0777, $name if ($Is_OS2 || $Is_W32);
print STDERR " unlink $name\n";
( CORE::unlink($name) and ++$cnt
or warn "Couldn't unlink $name: $!\n" ) unless $nonono;
@@ -404,7 +407,7 @@ sub safe_unlink {
local @names = @_;
foreach $name (@names) {
next unless -e $name;
- chmod 0777, $name if ($^O eq 'os2' || $^O eq 'MSWin32');
+ chmod 0777, $name if ($Is_OS2 || $Is_W32);
print STDERR " unlink $name\n";
next if CORE::unlink($name);
warn "Couldn't unlink $name: $!\n";
@@ -479,7 +482,7 @@ sub copy {
sub samepath {
local($p1, $p2) = @_;
- return (lc($p1) eq lc($p2)) if ($^O eq 'MSWin32');
+ return (lc($p1) eq lc($p2)) if $Is_W32;
if ($p1 ne $p2) {
local($dev1, $ino1, $dev2, $ino2);
@@ -512,7 +515,7 @@ sub installlib {
my $installlib = $installprivlib;
if ($dir =~ /^auto/ ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
- ($name =~ /^(.*)\.(?:h|lib)$/i && $^O eq 'MSWin32')
+ ($name =~ /^(.*)\.(?:h|lib)$/i && $Is_W32)
) {
$installlib = $installarchlib;
return unless $do_installarchlib;
@@ -565,7 +568,7 @@ sub copy_if_diff {
}
copy($from, $to);
# Restore timestamps if it's a .a library or for OS/2.
- if (!$nonono && ($^O eq 'os2' || $to =~ /\.a$/)) {
+ if (!$nonono && ($Is_OS2 || $to =~ /\.a$/)) {
my ($atime, $mtime) = (stat $from)[8,9];
utime $atime, $mtime, $to;
}
diff --git a/interp.sym b/interp.sym
index 7bbb11e5fc..8e381173e6 100644
--- a/interp.sym
+++ b/interp.sym
@@ -19,6 +19,12 @@ cddir
chopset
colors
colorset
+compcv
+compiling
+comppad
+comppad_name
+comppad_name_fill
+comppad_name_floor
copline
curcop
curcopdb
@@ -68,6 +74,7 @@ initav
inplace
sys_intern
last_in_gv
+last_proto
lastfd
lastgotoprobe
lastscream
@@ -117,6 +124,7 @@ perl_destruct_level
preambled
preambleav
preprocess
+profiledata
reg_eval_set
reg_flags
reg_start_tmp
@@ -149,6 +157,8 @@ replgv
restartop
rightgv
rs
+rsfp
+rsfp_filters
regcomp_rx
sawampersand
sawstudy
diff --git a/intrpvar.h b/intrpvar.h
index 74c914bb29..2ecde8d482 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -2,84 +2,96 @@
/* Global only to current interpreter instance */
/***********************************************/
+/* Don't forget to re-run embed.pl to propagate changes! */
+
+/* The 'I' prefix is only needed for vars that need appropriate #defines
+ * generated when built with or without MULTIPLICITY. It is also used
+ * to generate the appropriate export list for win32.
+ *
+ * When building without MULTIPLICITY, these variables will be truly global.
+ *
+ * Avoid build-specific #ifdefs here, like DEBUGGING. That way,
+ * we can keep binary compatibility of the curinterp structure */
+
/* pseudo environmental stuff */
-PERLVAR(Iorigargc, int)
-PERLVAR(Iorigargv, char **)
-PERLVAR(Ienvgv, GV *)
-PERLVAR(Isiggv, GV *)
-PERLVAR(Iincgv, GV *)
-PERLVAR(Iorigfilename, char *)
-PERLVAR(Idiehook, SV *)
-PERLVAR(Iwarnhook, SV *)
-PERLVAR(Iparsehook, SV *)
+PERLVAR(Iorigargc, int)
+PERLVAR(Iorigargv, char **)
+PERLVAR(Ienvgv, GV *)
+PERLVAR(Isiggv, GV *)
+PERLVAR(Iincgv, GV *)
+PERLVAR(Iorigfilename, char *)
+PERLVAR(Idiehook, SV *)
+PERLVAR(Iwarnhook, SV *)
+PERLVAR(Iparsehook, SV *)
PERLVAR(Icddir, char *) /* switches */
-PERLVAR(Iminus_c, bool)
-PERLVAR(Ipatchlevel[10],char)
-PERLVAR(Ilocalpatches, char **)
-PERLVARI(Isplitstr, char *, " ")
-PERLVAR(Ipreprocess, bool)
-PERLVAR(Iminus_n, bool)
-PERLVAR(Iminus_p, bool)
-PERLVAR(Iminus_l, bool)
-PERLVAR(Iminus_a, bool)
-PERLVAR(Iminus_F, bool)
-PERLVAR(Idoswitches, bool)
-PERLVAR(Idowarn, bool)
-PERLVAR(Idoextract, bool)
+PERLVAR(Iminus_c, bool)
+PERLVAR(Ipatchlevel[10],char)
+PERLVAR(Ilocalpatches, char **)
+PERLVARI(Isplitstr, char *, " ")
+PERLVAR(Ipreprocess, bool)
+PERLVAR(Iminus_n, bool)
+PERLVAR(Iminus_p, bool)
+PERLVAR(Iminus_l, bool)
+PERLVAR(Iminus_a, bool)
+PERLVAR(Iminus_F, bool)
+PERLVAR(Idoswitches, bool)
+PERLVAR(Idowarn, bool)
+PERLVAR(Idoextract, bool)
PERLVAR(Isawampersand, bool) /* must save all match strings */
PERLVAR(Isawstudy, bool) /* do fbm_instr on all strings */
-PERLVAR(Isawvec, bool)
-PERLVAR(Iunsafe, bool)
-PERLVAR(Iinplace, char *)
-PERLVAR(Ie_script, SV *)
-PERLVAR(Iperldb, U32)
+PERLVAR(Isawvec, bool)
+PERLVAR(Iunsafe, bool)
+PERLVAR(Iinplace, char *)
+PERLVAR(Ie_script, SV *)
+PERLVAR(Iperldb, U32)
/* This value may be raised by extensions for testing purposes */
/* 0=none, 1=full, 2=full with checks */
-PERLVARI(Iperl_destruct_level, int, 0)
+PERLVARI(Iperl_destruct_level, int, 0)
/* magical thingies */
PERLVAR(Ibasetime, Time_t) /* $^T */
PERLVAR(Iformfeed, SV *) /* $^L */
-PERLVARI(Imaxsysfd, I32, MAXSYSFD) /* top fd to pass to subprocesses */
+PERLVARI(Imaxsysfd, I32, MAXSYSFD)
+ /* top fd to pass to subprocesses */
PERLVAR(Imultiline, int) /* $*--do strings hold >1 line? */
PERLVAR(Istatusvalue, I32) /* $? */
#ifdef VMS
-PERLVAR(Istatusvalue_vms, U32)
+PERLVAR(Istatusvalue_vms,U32)
#endif
-PERLVAR(Istatcache, Stat_t) /* _ */
-PERLVAR(Istatgv, GV *)
-PERLVARI(Istatname, SV *, Nullsv)
+PERLVAR(Istatcache, Stat_t) /* _ */
+PERLVAR(Istatgv, GV *)
+PERLVARI(Istatname, SV *, Nullsv)
/* shortcuts to various I/O objects */
-PERLVAR(Istdingv, GV *)
-PERLVAR(Idefgv, GV *)
-PERLVAR(Iargvgv, GV *)
-PERLVAR(Iargvoutgv, GV *)
+PERLVAR(Istdingv, GV *)
+PERLVAR(Idefgv, GV *)
+PERLVAR(Iargvgv, GV *)
+PERLVAR(Iargvoutgv, GV *)
/* shortcuts to regexp stuff */
-PERLVAR(Ileftgv, GV *)
-PERLVAR(Iampergv, GV *)
-PERLVAR(Irightgv, GV *)
-PERLVAR(Iscreamfirst, I32 *)
-PERLVAR(Iscreamnext, I32 *)
-PERLVARI(Imaxscream, I32, -1)
-PERLVAR(Ilastscream, SV *)
-PERLVAR(Ireplgv, GV *)
+PERLVAR(Ileftgv, GV *)
+PERLVAR(Iampergv, GV *)
+PERLVAR(Irightgv, GV *)
+PERLVAR(Iscreamfirst, I32 *)
+PERLVAR(Iscreamnext, I32 *)
+PERLVARI(Imaxscream, I32, -1)
+PERLVAR(Ilastscream, SV *)
+PERLVAR(Ireplgv, GV *)
/* shortcuts to misc objects */
-PERLVAR(Ierrgv, GV *)
+PERLVAR(Ierrgv, GV *)
/* shortcuts to debugging objects */
-PERLVAR(IDBgv, GV *)
-PERLVAR(IDBline, GV *)
-PERLVAR(IDBsub, GV *)
-PERLVAR(IDBsingle, SV *)
-PERLVAR(IDBtrace, SV *)
-PERLVAR(IDBsignal, SV *)
+PERLVAR(IDBgv, GV *)
+PERLVAR(IDBline, GV *)
+PERLVAR(IDBsub, GV *)
+PERLVAR(IDBsingle, SV *)
+PERLVAR(IDBtrace, SV *)
+PERLVAR(IDBsignal, SV *)
PERLVAR(Ilineary, AV *) /* lines of script for debugger */
PERLVAR(Idbargs, AV *) /* args to call listed by caller function */
@@ -99,8 +111,8 @@ PERLVAR(Isv_root, SV*) /* storage for SVs belonging to interp */
PERLVAR(Isv_arenaroot, SV*) /* list of areas for garbage collection */
/* funky return mechanisms */
-PERLVAR(Ilastspbase, I32)
-PERLVAR(Ilastsize, I32)
+PERLVAR(Ilastspbase, I32)
+PERLVAR(Ilastsize, I32)
PERLVAR(Iforkprocess, int) /* so do_open |- can return proc# */
/* subprocess state */
@@ -109,23 +121,24 @@ PERLVAR(Ifdpid, AV *) /* keep fd-to-pid mappings for my_popen */
/* internal state */
PERLVAR(Itainting, bool) /* doing taint checks */
PERLVARI(Iop_mask, char *, NULL) /* masked operations for safe evals */
+PERLVAR(Ilast_proto, char *) /* Prototype of last sub seen. */
/* trace state */
-PERLVAR(Idlevel, I32)
-PERLVARI(Idlmax, I32, 128)
-PERLVAR(Idebname, char *)
-PERLVAR(Idebdelim, char *)
+PERLVAR(Idlevel, I32)
+PERLVARI(Idlmax, I32, 128)
+PERLVAR(Idebname, char *)
+PERLVAR(Idebdelim, char *)
/* current interpreter roots */
-PERLVAR(Imain_cv, CV *)
-PERLVAR(Imain_root, OP *)
-PERLVAR(Imain_start, OP *)
-PERLVAR(Ieval_root, OP *)
-PERLVAR(Ieval_start, OP *)
+PERLVAR(Imain_cv, CV *)
+PERLVAR(Imain_root, OP *)
+PERLVAR(Imain_start, OP *)
+PERLVAR(Ieval_root, OP *)
+PERLVAR(Ieval_start, OP *)
/* runtime control stuff */
-PERLVARI(Icurcopdb, COP *, NULL)
-PERLVARI(Icopline, line_t, NOLINE)
+PERLVARI(Icurcopdb, COP *, NULL)
+PERLVARI(Icopline, line_t, NOLINE)
/* statics moved here for shared library purposes */
PERLVAR(Istrchop, SV) /* return value from chop */
@@ -140,25 +153,41 @@ PERLVAR(Ifirstgv, GV *) /* $a */
PERLVAR(Isecondgv, GV *) /* $b */
PERLVAR(Imystrk, SV *) /* temp key string for do_each() */
PERLVAR(Idumplvl, I32) /* indentation level on syntax tree dump */
-PERLVAR(Ioldlastpm, PMOP *) /* for saving regexp context during debugger */
+PERLVAR(Ioldlastpm, PMOP *) /* for saving regexp context in debugger */
PERLVAR(Igensym, I32) /* next symbol for getsym() to define */
-PERLVAR(Ipreambled, bool)
-PERLVAR(Ipreambleav, AV *)
-PERLVARI(Ilaststatval, int, -1)
-PERLVARI(Ilaststype, I32, OP_STAT)
-PERLVAR(Imess_sv, SV *)
+PERLVAR(Ipreambled, bool)
+PERLVAR(Ipreambleav, AV *)
+PERLVARI(Ilaststatval, int, -1)
+PERLVARI(Ilaststype, I32, OP_STAT)
+PERLVAR(Imess_sv, SV *)
-PERLVAR(Iors, char *) /* $\ */
-PERLVAR(Iorslen, STRLEN)
-PERLVAR(Iofmt, char *) /* $# */
+/* XXX shouldn't these be per-thread? --GSAR */
+PERLVAR(Iors, char *) /* output record separator $\ */
+PERLVAR(Iorslen, STRLEN)
+PERLVAR(Iofmt, char *) /* output format for numbers $# */
/* interpreter atexit processing */
-PERLVARI(Iexitlist, PerlExitListEntry *, NULL) /* list of exit functions */
-PERLVARI(Iexitlistlen, I32, 0) /* length of same */
-PERLVAR(Imodglobal, HV *) /* per-interp module data */
+PERLVARI(Iexitlist, PerlExitListEntry *, NULL)
+ /* list of exit functions */
+PERLVARI(Iexitlistlen, I32, 0) /* length of same */
+PERLVAR(Imodglobal, HV *) /* per-interp module data */
+
+/* these used to be in global before 5.004_68 */
+PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */
+PERLVARI(Irsfp, PerlIO * VOL, Nullfp) /* current source file pointer */
+PERLVARI(Irsfp_filters, AV *, Nullav) /* keeps active source filters */
+
+PERLVAR(Icompiling, COP) /* compiling/done executing marker */
+
+PERLVAR(Icompcv, CV *) /* currently compiling subroutine */
+PERLVAR(Icomppad, AV *) /* storage for lexically scoped temporaries */
+PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */
+PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */
+PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */
#ifdef HAVE_INTERP_INTERN
-PERLVAR(Isys_intern, struct interp_intern) /* platform internals */
+PERLVAR(Isys_intern, struct interp_intern)
+ /* platform internals */
#endif
/* more statics moved here */
@@ -170,7 +199,7 @@ PERLVAR(Ilastgotoprobe, OP*) /* from pp_ctl.c */
PERLVAR(Iregdummy, regnode) /* from regcomp.c */
PERLVAR(Iregcomp_parse, char*) /* Input-scan pointer. */
PERLVAR(Iregxend, char*) /* End of input for compile */
-PERLVAR(Iregcode, regnode*) /* Code-emit pointer; &regdummy = don't. */
+PERLVAR(Iregcode, regnode*) /* Code-emit pointer; &regdummy = don't */
PERLVAR(Iregnaughty, I32) /* How bad is this pattern? */
PERLVAR(Iregsawback, I32) /* Did we see \1, ...? */
@@ -184,10 +213,8 @@ PERLVAR(Iregseen, U32) /* from regcomp.c */
PERLVAR(Iseen_zerolen, I32) /* from regcomp.c */
PERLVAR(Iregcomp_rx, regexp *) /* from regcomp.c */
PERLVAR(Iextralen, I32) /* from regcomp.c */
-/* #ifdef DEBUGGING -- keep the structure the same with/without DEBUGGING defined */
PERLVAR(Icolorset, int) /* from regcomp.c */
PERLVAR(Icolors[4], char *) /* from regcomp.c */
-/* #endif */
PERLVAR(Ireginput, char *) /* String-input pointer. */
PERLVAR(Iregbol, char *) /* Beginning of input, for ^ check. */
@@ -200,27 +227,26 @@ PERLVAR(Iregprev, char) /* char before regbol, \n if none */
PERLVAR(Ireg_start_tmp, char **) /* from regexec.c */
PERLVAR(Ireg_start_tmpl,U32) /* from regexec.c */
-PERLVAR(Iregdata, struct reg_data *) /* from regexec.c renamed was data */
+PERLVAR(Iregdata, struct reg_data *)
+ /* from regexec.c renamed was data */
PERLVAR(Ibostr, char *) /* from regexec.c */
PERLVAR(Ireg_flags, U32) /* from regexec.c */
PERLVAR(Ireg_eval_set, I32) /* from regexec.c */
-/* #ifdef DEBUGGING -- keep the structure the same with/without DEBUGGING defined */
PERLVAR(Iregnarrate, I32) /* from regexec.c */
PERLVAR(Iregprogram, regnode *) /* from regexec.c */
PERLVARI(Iregindent, int, 0) /* from regexec.c */
-/* #endif */
PERLVAR(Iregcc, CURCUR *) /* from regexec.c */
-PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */
-PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */
+PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */
+PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */
PERLVAR(Ilinestart, char *) /* beg. of most recently read line */
PERLVAR(Ipending_ident, char) /* pending identifier lookup */
PERLVAR(Isublex_info, SUBLEXINFO) /* from toke.c */
#ifdef USE_THREADS
-PERLVAR(Ithrsv, SV *) /* holds struct perl_thread for main thread */
+PERLVAR(Ithrsv, SV *) /* struct perl_thread for main thread */
PERLVARI(Ithreadnum, U32, 0) /* incremented each thread creation */
#endif /* USE_THREADS */
diff --git a/ipdir.h b/ipdir.h
deleted file mode 100644
index f0dadc411e..0000000000
--- a/ipdir.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
- ipdir.h
- Interface for perl directory functions
-
-*/
-
-
-/*
- PerlXXX_YYY explained - DickH and DougL @ ActiveState.com
-
-XXX := functional group
-YYY := stdlib/OS function name
-
-Continuing with the theme of PerlIO, all OS functionality was
-encapsulated into one of several interfaces.
-
-PerlIO - stdio
-PerlLIO - low level I/O
-PerlMem - malloc, realloc, free
-PerlDir - directory related
-PerlEnv - process environment handling
-PerlProc - process control
-PerlSock - socket functions
-
-
-The features of this are:
-1. All OS dependant code is in the Perl Host and not the Perl Core.
- (At least this is the holy grail goal of this work)
-2. The Perl Host (see perl.h for description) can provide a new and
- improved interface to OS functionality if required.
-3. Developers can easily hook into the OS calls for instrumentation
- or diagnostic purposes.
-
-What was changed to do this:
-1. All calls to OS functions were replaced with PerlXXX_YYY
-
-*/
-
-
-
-#ifndef __Inc__IPerlDir___
-#define __Inc__IPerlDir___
-
-class IPerlDir
-{
-public:
- virtual int Makedir(const char *dirname, int mode, int &err) = 0;
- virtual int Chdir(const char *dirname, int &err) = 0;
- virtual int Rmdir(const char *dirname, int &err) = 0;
- virtual int Close(DIR *dirp, int &err) = 0;
- virtual DIR *Open(char *filename, int &err) = 0;
- virtual struct direct *Read(DIR *dirp, int &err) = 0;
- virtual void Rewind(DIR *dirp, int &err) = 0;
- virtual void Seek(DIR *dirp, long loc, int &err) = 0;
- virtual long Tell(DIR *dirp, int &err) = 0;
-};
-
-#endif /* __Inc__IPerlDir___ */
-
diff --git a/ipenv.h b/ipenv.h
deleted file mode 100644
index 30acffbeb8..0000000000
--- a/ipenv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-
- ipenv.h
- Interface for perl environment functions
-
-*/
-
-#ifndef __Inc__IPerlEnv___
-#define __Inc__IPerlEnv___
-
-class IPerlEnv
-{
-public:
- virtual char* Getenv(const char *varname, int &err) = 0;
- virtual int Putenv(const char *envstring, int &err) = 0;
- virtual char* LibPath(char *patchlevel) =0;
- virtual char* SiteLibPath(char *patchlevel) =0;
-};
-
-#endif /* __Inc__IPerlEnv___ */
-
diff --git a/iperlsys.h b/iperlsys.h
new file mode 100644
index 0000000000..2febe6ea4e
--- /dev/null
+++ b/iperlsys.h
@@ -0,0 +1,905 @@
+/*
+ * iperlsys.h - Perl's interface to the system
+ *
+ * This file defines the system level functionality that perl needs.
+ *
+ * When using C, this definition is in the form of a set of macros
+ * that can be #defined to the system-level function (or a wrapper
+ * provided elsewhere).
+ *
+ * When using C++ with -DPERL_OBJECT, this definition is in the
+ * form of a set of virtual base classes which must be subclassed to
+ * provide a real implementation. The Perl Object will use instances
+ * of this implementation to use the system-level functionality.
+ *
+ * GSAR 21-JUN-98
+ */
+
+#ifndef __Inc__IPerl___
+#define __Inc__IPerl___
+
+/*
+ * PerlXXX_YYY explained - DickH and DougL @ ActiveState.com
+ *
+ * XXX := functional group
+ * YYY := stdlib/OS function name
+ *
+ * Continuing with the theme of PerlIO, all OS functionality was
+ * encapsulated into one of several interfaces.
+ *
+ * PerlIO - stdio
+ * PerlLIO - low level I/O
+ * PerlMem - malloc, realloc, free
+ * PerlDir - directory related
+ * PerlEnv - process environment handling
+ * PerlProc - process control
+ * PerlSock - socket functions
+ *
+ *
+ * The features of this are:
+ * 1. All OS dependant code is in the Perl Host and not the Perl Core.
+ * (At least this is the holy grail goal of this work)
+ * 2. The Perl Host (see perl.h for description) can provide a new and
+ * improved interface to OS functionality if required.
+ * 3. Developers can easily hook into the OS calls for instrumentation
+ * or diagnostic purposes.
+ *
+ * What was changed to do this:
+ * 1. All calls to OS functions were replaced with PerlXXX_YYY
+ *
+ */
+
+
+/*
+ Interface for perl stdio functions
+*/
+
+
+/* Clean up (or at least document) the various possible #defines.
+ This section attempts to match the 5.003_03 Configure variables
+ onto the 5.003_02 header file values.
+ I can't figure out where USE_STDIO was supposed to be set.
+ --AD
+*/
+#ifndef USE_PERLIO
+# define PERLIO_IS_STDIO
+#endif
+
+/* Below is the 5.003_02 stuff. */
+#ifdef USE_STDIO
+# ifndef PERLIO_IS_STDIO
+# define PERLIO_IS_STDIO
+# endif
+#else
+extern void PerlIO_init _((void));
+#endif
+
+#ifdef PERL_OBJECT
+
+#ifndef PerlIO
+typedef struct _PerlIO PerlIO;
+#endif
+
+class IPerlStdIO
+{
+public:
+ virtual PerlIO * Stdin(void) = 0;
+ virtual PerlIO * Stdout(void) = 0;
+ virtual PerlIO * Stderr(void) = 0;
+ virtual PerlIO * Open(const char *, const char *, int &err) = 0;
+ virtual int Close(PerlIO*, int &err) = 0;
+ virtual int Eof(PerlIO*, int &err) = 0;
+ virtual int Error(PerlIO*, int &err) = 0;
+ virtual void Clearerr(PerlIO*, int &err) = 0;
+ virtual int Getc(PerlIO*, int &err) = 0;
+ virtual char * GetBase(PerlIO *, int &err) = 0;
+ virtual int GetBufsiz(PerlIO *, int &err) = 0;
+ virtual int GetCnt(PerlIO *, int &err) = 0;
+ virtual char * GetPtr(PerlIO *, int &err) = 0;
+ virtual char * Gets(PerlIO*, char*, int, int& err) = 0;
+ virtual int Putc(PerlIO*, int, int &err) = 0;
+ virtual int Puts(PerlIO*, const char *, int &err) = 0;
+ virtual int Flush(PerlIO*, int &err) = 0;
+ virtual int Ungetc(PerlIO*,int, int &err) = 0;
+ virtual int Fileno(PerlIO*, int &err) = 0;
+ virtual PerlIO * Fdopen(int, const char *, int &err) = 0;
+ virtual PerlIO * Reopen(const char*, const char*, PerlIO*, int &err) = 0;
+ virtual SSize_t Read(PerlIO*,void *,Size_t, int &err) = 0;
+ virtual SSize_t Write(PerlIO*,const void *,Size_t, int &err) = 0;
+ virtual void SetBuf(PerlIO *, char*, int &err) = 0;
+ virtual int SetVBuf(PerlIO *, char*, int, Size_t, int &err) = 0;
+ virtual void SetCnt(PerlIO *, int, int &err) = 0;
+ virtual void SetPtrCnt(PerlIO *, char *, int, int& err) = 0;
+ virtual void Setlinebuf(PerlIO*, int &err) = 0;
+ virtual int Printf(PerlIO*, int &err, const char *,...) = 0;
+ virtual int Vprintf(PerlIO*, int &err, const char *, va_list) = 0;
+ virtual long Tell(PerlIO*, int &err) = 0;
+ virtual int Seek(PerlIO*, off_t, int, int &err) = 0;
+ virtual void Rewind(PerlIO*, int &err) = 0;
+ virtual PerlIO * Tmpfile(int &err) = 0;
+ virtual int Getpos(PerlIO*, Fpos_t *, int &err) = 0;
+ virtual int Setpos(PerlIO*, const Fpos_t *, int &err) = 0;
+ virtual void Init(int &err) = 0;
+ virtual void InitOSExtras(void* p) = 0;
+#ifdef WIN32
+ virtual int OpenOSfhandle(long osfhandle, int flags) = 0;
+ virtual int GetOSfhandle(int filenum) = 0;
+#endif
+};
+
+#define PerlIO_canset_cnt(f) 1
+#define PerlIO_has_base(f) 1
+#define PerlIO_has_cntptr(f) 1
+#define PerlIO_fast_gets(f) 1
+
+#define PerlIO_stdin() piStdIO->Stdin()
+#define PerlIO_stdout() piStdIO->Stdout()
+#define PerlIO_stderr() piStdIO->Stderr()
+#define PerlIO_open(x,y) piStdIO->Open((x),(y), ErrorNo())
+#define PerlIO_close(f) piStdIO->Close((f), ErrorNo())
+#define PerlIO_eof(f) piStdIO->Eof((f), ErrorNo())
+#define PerlIO_error(f) piStdIO->Error((f), ErrorNo())
+#define PerlIO_clearerr(f) piStdIO->Clearerr((f), ErrorNo())
+#define PerlIO_getc(f) piStdIO->Getc((f), ErrorNo())
+#define PerlIO_get_base(f) piStdIO->GetBase((f), ErrorNo())
+#define PerlIO_get_bufsiz(f) piStdIO->GetBufsiz((f), ErrorNo())
+#define PerlIO_get_cnt(f) piStdIO->GetCnt((f), ErrorNo())
+#define PerlIO_get_ptr(f) piStdIO->GetPtr((f), ErrorNo())
+#define PerlIO_putc(f,c) piStdIO->Putc((f),(c), ErrorNo())
+#define PerlIO_puts(f,s) piStdIO->Puts((f),(s), ErrorNo())
+#define PerlIO_flush(f) piStdIO->Flush((f), ErrorNo())
+#define PerlIO_gets(s, n, fp) piStdIO->Gets((fp), s, n, ErrorNo())
+#define PerlIO_ungetc(f,c) piStdIO->Ungetc((f),(c), ErrorNo())
+#define PerlIO_fileno(f) piStdIO->Fileno((f), ErrorNo())
+#define PerlIO_fdopen(f, s) piStdIO->Fdopen((f),(s), ErrorNo())
+#define PerlIO_reopen(p, m, f) piStdIO->Reopen((p), (m), (f), ErrorNo())
+#define PerlIO_read(f,buf,count) \
+ (SSize_t)piStdIO->Read((f), (buf), (count), ErrorNo())
+#define PerlIO_write(f,buf,count) \
+ piStdIO->Write((f), (buf), (count), ErrorNo())
+#define PerlIO_setbuf(f,b) piStdIO->SetBuf((f), (b), ErrorNo())
+#define PerlIO_setvbuf(f,b,t,s) piStdIO->SetVBuf((f), (b), (t), (s), ErrorNo())
+#define PerlIO_set_cnt(f,c) piStdIO->SetCnt((f), (c), ErrorNo())
+#define PerlIO_set_ptrcnt(f,p,c) \
+ piStdIO->SetPtrCnt((f), (p), (c), ErrorNo())
+#define PerlIO_setlinebuf(f) piStdIO->Setlinebuf((f), ErrorNo())
+#define PerlIO_printf fprintf
+#define PerlIO_stdoutf piStdIO->Printf
+#define PerlIO_vprintf(f,fmt,a) piStdIO->Vprintf((f), ErrorNo(), (fmt),a)
+#define PerlIO_tell(f) piStdIO->Tell((f), ErrorNo())
+#define PerlIO_seek(f,o,w) piStdIO->Seek((f),(o),(w), ErrorNo())
+#define PerlIO_getpos(f,p) piStdIO->Getpos((f),(p), ErrorNo())
+#define PerlIO_setpos(f,p) piStdIO->Setpos((f),(p), ErrorNo())
+#define PerlIO_rewind(f) piStdIO->Rewind((f), ErrorNo())
+#define PerlIO_tmpfile() piStdIO->Tmpfile(ErrorNo())
+#define PerlIO_init() piStdIO->Init(ErrorNo())
+#undef init_os_extras
+#define init_os_extras() piStdIO->InitOSExtras(this)
+
+#else /* PERL_OBJECT */
+
+#include "perlsdio.h"
+
+#endif /* PERL_OBJECT */
+
+#ifndef PERLIO_IS_STDIO
+#ifdef USE_SFIO
+#include "perlsfio.h"
+#endif /* USE_SFIO */
+#endif /* PERLIO_IS_STDIO */
+
+#ifndef EOF
+#define EOF (-1)
+#endif
+
+/* This is to catch case with no stdio */
+#ifndef BUFSIZ
+#define BUFSIZ 1024
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#endif
+
+#ifndef SEEK_CUR
+#define SEEK_CUR 1
+#endif
+
+#ifndef SEEK_END
+#define SEEK_END 2
+#endif
+
+#ifndef PerlIO
+struct _PerlIO;
+#define PerlIO struct _PerlIO
+#endif /* No PerlIO */
+
+#ifndef Fpos_t
+#define Fpos_t long
+#endif
+
+#ifndef NEXT30_NO_ATTRIBUTE
+#ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */
+#ifdef __attribute__ /* Avoid possible redefinition errors */
+#undef __attribute__
+#endif
+#define __attribute__(attr)
+#endif
+#endif
+
+#ifndef PerlIO_stdoutf
+extern int PerlIO_stdoutf _((const char *,...))
+ __attribute__((format (printf, 1, 2)));
+#endif
+#ifndef PerlIO_puts
+extern int PerlIO_puts _((PerlIO *,const char *));
+#endif
+#ifndef PerlIO_open
+extern PerlIO * PerlIO_open _((const char *,const char *));
+#endif
+#ifndef PerlIO_close
+extern int PerlIO_close _((PerlIO *));
+#endif
+#ifndef PerlIO_eof
+extern int PerlIO_eof _((PerlIO *));
+#endif
+#ifndef PerlIO_error
+extern int PerlIO_error _((PerlIO *));
+#endif
+#ifndef PerlIO_clearerr
+extern void PerlIO_clearerr _((PerlIO *));
+#endif
+#ifndef PerlIO_getc
+extern int PerlIO_getc _((PerlIO *));
+#endif
+#ifndef PerlIO_putc
+extern int PerlIO_putc _((PerlIO *,int));
+#endif
+#ifndef PerlIO_flush
+extern int PerlIO_flush _((PerlIO *));
+#endif
+#ifndef PerlIO_ungetc
+extern int PerlIO_ungetc _((PerlIO *,int));
+#endif
+#ifndef PerlIO_fileno
+extern int PerlIO_fileno _((PerlIO *));
+#endif
+#ifndef PerlIO_fdopen
+extern PerlIO * PerlIO_fdopen _((int, const char *));
+#endif
+#ifndef PerlIO_importFILE
+extern PerlIO * PerlIO_importFILE _((FILE *,int));
+#endif
+#ifndef PerlIO_exportFILE
+extern FILE * PerlIO_exportFILE _((PerlIO *,int));
+#endif
+#ifndef PerlIO_findFILE
+extern FILE * PerlIO_findFILE _((PerlIO *));
+#endif
+#ifndef PerlIO_releaseFILE
+extern void PerlIO_releaseFILE _((PerlIO *,FILE *));
+#endif
+#ifndef PerlIO_read
+extern SSize_t PerlIO_read _((PerlIO *,void *,Size_t));
+#endif
+#ifndef PerlIO_write
+extern SSize_t PerlIO_write _((PerlIO *,const void *,Size_t));
+#endif
+#ifndef PerlIO_setlinebuf
+extern void PerlIO_setlinebuf _((PerlIO *));
+#endif
+#ifndef PerlIO_printf
+extern int PerlIO_printf _((PerlIO *, const char *,...))
+ __attribute__((format (printf, 2, 3)));
+#endif
+#ifndef PerlIO_sprintf
+extern int PerlIO_sprintf _((char *, int, const char *,...))
+ __attribute__((format (printf, 3, 4)));
+#endif
+#ifndef PerlIO_vprintf
+extern int PerlIO_vprintf _((PerlIO *, const char *, va_list));
+#endif
+#ifndef PerlIO_tell
+extern long PerlIO_tell _((PerlIO *));
+#endif
+#ifndef PerlIO_seek
+extern int PerlIO_seek _((PerlIO *,off_t,int));
+#endif
+#ifndef PerlIO_rewind
+extern void PerlIO_rewind _((PerlIO *));
+#endif
+#ifndef PerlIO_has_base
+extern int PerlIO_has_base _((PerlIO *));
+#endif
+#ifndef PerlIO_has_cntptr
+extern int PerlIO_has_cntptr _((PerlIO *));
+#endif
+#ifndef PerlIO_fast_gets
+extern int PerlIO_fast_gets _((PerlIO *));
+#endif
+#ifndef PerlIO_canset_cnt
+extern int PerlIO_canset_cnt _((PerlIO *));
+#endif
+#ifndef PerlIO_get_ptr
+extern STDCHAR * PerlIO_get_ptr _((PerlIO *));
+#endif
+#ifndef PerlIO_get_cnt
+extern int PerlIO_get_cnt _((PerlIO *));
+#endif
+#ifndef PerlIO_set_cnt
+extern void PerlIO_set_cnt _((PerlIO *,int));
+#endif
+#ifndef PerlIO_set_ptrcnt
+extern void PerlIO_set_ptrcnt _((PerlIO *,STDCHAR *,int));
+#endif
+#ifndef PerlIO_get_base
+extern STDCHAR * PerlIO_get_base _((PerlIO *));
+#endif
+#ifndef PerlIO_get_bufsiz
+extern int PerlIO_get_bufsiz _((PerlIO *));
+#endif
+#ifndef PerlIO_tmpfile
+extern PerlIO * PerlIO_tmpfile _((void));
+#endif
+#ifndef PerlIO_stdin
+extern PerlIO * PerlIO_stdin _((void));
+#endif
+#ifndef PerlIO_stdout
+extern PerlIO * PerlIO_stdout _((void));
+#endif
+#ifndef PerlIO_stderr
+extern PerlIO * PerlIO_stderr _((void));
+#endif
+#ifndef PerlIO_getpos
+extern int PerlIO_getpos _((PerlIO *,Fpos_t *));
+#endif
+#ifndef PerlIO_setpos
+extern int PerlIO_setpos _((PerlIO *,const Fpos_t *));
+#endif
+
+
+/*
+ * Interface for directory functions
+ */
+
+#ifdef PERL_OBJECT
+
+class IPerlDir
+{
+public:
+ virtual int Makedir(const char *dirname, int mode, int &err) = 0;
+ virtual int Chdir(const char *dirname, int &err) = 0;
+ virtual int Rmdir(const char *dirname, int &err) = 0;
+ virtual int Close(DIR *dirp, int &err) = 0;
+ virtual DIR * Open(char *filename, int &err) = 0;
+ virtual struct direct *Read(DIR *dirp, int &err) = 0;
+ virtual void Rewind(DIR *dirp, int &err) = 0;
+ virtual void Seek(DIR *dirp, long loc, int &err) = 0;
+ virtual long Tell(DIR *dirp, int &err) = 0;
+};
+
+#define PerlDir_mkdir(name, mode) \
+ piDir->Makedir((name), (mode), ErrorNo())
+#define PerlDir_chdir(name) \
+ piDir->Chdir((name), ErrorNo())
+#define PerlDir_rmdir(name) \
+ piDir->Rmdir((name), ErrorNo())
+#define PerlDir_close(dir) \
+ piDir->Close((dir), ErrorNo())
+#define PerlDir_open(name) \
+ piDir->Open((name), ErrorNo())
+#define PerlDir_read(dir) \
+ piDir->Read((dir), ErrorNo())
+#define PerlDir_rewind(dir) \
+ piDir->Rewind((dir), ErrorNo())
+#define PerlDir_seek(dir, loc) \
+ piDir->Seek((dir), (loc), ErrorNo())
+#define PerlDir_tell(dir) \
+ piDir->Tell((dir), ErrorNo())
+
+#else /* PERL_OBJECT */
+
+#define PerlDir_mkdir(name, mode) Mkdir((name), (mode))
+#ifdef VMS
+# define PerlDir_chdir(n) chdir(((n) && *(n)) ? (n) : "SYS$LOGIN")
+#else
+# define PerlDir_chdir(name) chdir((name))
+#endif
+#define PerlDir_rmdir(name) rmdir((name))
+#define PerlDir_close(dir) closedir((dir))
+#define PerlDir_open(name) opendir((name))
+#define PerlDir_read(dir) readdir((dir))
+#define PerlDir_rewind(dir) rewinddir((dir))
+#define PerlDir_seek(dir, loc) seekdir((dir), (loc))
+#define PerlDir_tell(dir) telldir((dir))
+
+#endif /* PERL_OBJECT */
+
+/*
+ Interface for perl environment functions
+*/
+
+#ifdef PERL_OBJECT
+
+class IPerlEnv
+{
+public:
+ virtual char * Getenv(const char *varname, int &err) = 0;
+ virtual int Putenv(const char *envstring, int &err) = 0;
+ virtual char * LibPath(char *patchlevel) =0;
+ virtual char * SiteLibPath(char *patchlevel) =0;
+};
+
+#define PerlEnv_putenv(str) piENV->Putenv((str), ErrorNo())
+#define PerlEnv_getenv(str) piENV->Getenv((str), ErrorNo())
+#ifdef WIN32
+#define PerlEnv_lib_path(str) piENV->LibPath((str))
+#define PerlEnv_sitelib_path(str) piENV->SiteLibPath((str))
+#endif
+
+#else /* PERL_OBJECT */
+
+#define PerlEnv_putenv(str) putenv((str))
+#define PerlEnv_getenv(str) getenv((str))
+
+#endif /* PERL_OBJECT */
+
+/*
+ Interface for perl low-level IO functions
+*/
+
+#ifdef PERL_OBJECT
+
+class IPerlLIO
+{
+public:
+ virtual int Access(const char *path, int mode, int &err) = 0;
+ virtual int Chmod(const char *filename, int pmode, int &err) = 0;
+ virtual int Chown(const char *filename, uid_t owner,
+ gid_t group, int &err) = 0;
+ virtual int Chsize(int handle, long size, int &err) = 0;
+ virtual int Close(int handle, int &err) = 0;
+ virtual int Dup(int handle, int &err) = 0;
+ virtual int Dup2(int handle1, int handle2, int &err) = 0;
+ virtual int Flock(int fd, int oper, int &err) = 0;
+ virtual int FileStat(int handle, struct stat *buffer, int &err) = 0;
+ virtual int IOCtl(int i, unsigned int u, char *data, int &err) = 0;
+ virtual int Isatty(int handle, int &err) = 0;
+ virtual long Lseek(int handle, long offset, int origin, int &err) = 0;
+ virtual int Lstat(const char *path, struct stat *buffer, int &err) = 0;
+ virtual char * Mktemp(char *Template, int &err) = 0;
+ virtual int Open(const char *filename, int oflag, int &err) = 0;
+ virtual int Open(const char *filename, int oflag,
+ int pmode, int &err) = 0;
+ virtual int Read(int handle, void *buffer,
+ unsigned int count, int &err) = 0;
+ virtual int Rename(const char *oldname,
+ const char *newname, int &err) = 0;
+ virtual int Setmode(int handle, int mode, int &err) = 0;
+ virtual int NameStat(const char *path,
+ struct stat *buffer, int &err) = 0;
+ virtual char * Tmpnam(char *string, int &err) = 0;
+ virtual int Umask(int pmode, int &err) = 0;
+ virtual int Unlink(const char *filename, int &err) = 0;
+ virtual int Utime(char *filename, struct utimbuf *times, int &err) = 0;
+ virtual int Write(int handle, const void *buffer,
+ unsigned int count, int &err) = 0;
+};
+
+#define PerlLIO_access(file, mode) \
+ piLIO->Access((file), (mode), ErrorNo())
+#define PerlLIO_chmod(file, mode) \
+ piLIO->Chmod((file), (mode), ErrorNo())
+#define PerlLIO_chown(file, owner, group) \
+ piLIO->Chown((file), (owner), (group), ErrorNo())
+#define PerlLIO_chsize(fd, size) \
+ piLIO->Chsize((fd), (size), ErrorNo())
+#define PerlLIO_close(fd) \
+ piLIO->Close((fd), ErrorNo())
+#define PerlLIO_dup(fd) \
+ piLIO->Dup((fd), ErrorNo())
+#define PerlLIO_dup2(fd1, fd2) \
+ piLIO->Dup2((fd1), (fd2), ErrorNo())
+#define PerlLIO_flock(fd, op) \
+ piLIO->Flock((fd), (op), ErrorNo())
+#define PerlLIO_fstat(fd, buf) \
+ piLIO->FileStat((fd), (buf), ErrorNo())
+#define PerlLIO_ioctl(fd, u, buf) \
+ piLIO->IOCtl((fd), (u), (buf), ErrorNo())
+#define PerlLIO_isatty(fd) \
+ piLIO->Isatty((fd), ErrorNo())
+#define PerlLIO_lseek(fd, offset, mode) \
+ piLIO->Lseek((fd), (offset), (mode), ErrorNo())
+#define PerlLIO_lstat(name, buf) \
+ piLIO->Lstat((name), (buf), ErrorNo())
+#define PerlLIO_mktemp(file) \
+ piLIO->Mktemp((file), ErrorNo())
+#define PerlLIO_open(file, flag) \
+ piLIO->Open((file), (flag), ErrorNo())
+#define PerlLIO_open3(file, flag, perm) \
+ piLIO->Open((file), (flag), (perm), ErrorNo())
+#define PerlLIO_read(fd, buf, count) \
+ piLIO->Read((fd), (buf), (count), ErrorNo())
+#define PerlLIO_rename(oldname, newname) \
+ piLIO->Rename((oldname), (newname), ErrorNo())
+#define PerlLIO_setmode(fd, mode) \
+ piLIO->Setmode((fd), (mode), ErrorNo())
+#define PerlLIO_stat(name, buf) \
+ piLIO->NameStat((name), (buf), ErrorNo())
+#define PerlLIO_tmpnam(str) \
+ piLIO->Tmpnam((str), ErrorNo())
+#define PerlLIO_umask(mode) \
+ piLIO->Umask((mode), ErrorNo())
+#define PerlLIO_unlink(file) \
+ piLIO->Unlink((file), ErrorNo())
+#define PerlLIO_utime(file, time) \
+ piLIO->Utime((file), (time), ErrorNo())
+#define PerlLIO_write(fd, buf, count) \
+ piLIO->Write((fd), (buf), (count), ErrorNo())
+
+#else /* PERL_OBJECT */
+
+#define PerlLIO_access(file, mode) access((file), (mode))
+#define PerlLIO_chmod(file, mode) chmod((file), (mode))
+#define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp))
+#define PerlLIO_chsize(fd, size) chsize((fd), (size))
+#define PerlLIO_close(fd) close((fd))
+#define PerlLIO_dup(fd) dup((fd))
+#define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
+#define PerlLIO_flock(fd, op) FLOCK((fd), (op))
+#define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
+#define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
+#define PerlLIO_isatty(fd) isatty((fd))
+#define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
+#define PerlLIO_lstat(name, buf) lstat((name), (buf))
+#define PerlLIO_mktemp(file) mktemp((file))
+#define PerlLIO_mkstemp(file) mkstemp((file))
+#define PerlLIO_open(file, flag) open((file), (flag))
+#define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
+#define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
+#define PerlLIO_rename(old, new) rename((old), (new))
+#define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
+#define PerlLIO_stat(name, buf) Stat((name), (buf))
+#define PerlLIO_tmpnam(str) tmpnam((str))
+#define PerlLIO_umask(mode) umask((mode))
+#define PerlLIO_unlink(file) unlink((file))
+#define PerlLIO_utime(file, time) utime((file), (time))
+#define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
+
+#endif /* PERL_OBJECT */
+
+/*
+ Interface for perl memory allocation
+*/
+
+#ifdef PERL_OBJECT
+
+class IPerlMem
+{
+public:
+ virtual void * Malloc(size_t) = 0;
+ virtual void * Realloc(void*, size_t) = 0;
+ virtual void Free(void*) = 0;
+};
+
+#define PerlMem_malloc(size) piMem->Malloc((size))
+#define PerlMem_realloc(buf, size) piMem->Realloc((buf), (size))
+#define PerlMem_free(buf) piMem->Free((buf))
+
+#else /* PERL_OBJECT */
+
+#define PerlMem_malloc(size) malloc((size))
+#define PerlMem_realloc(buf, size) realloc((buf), (size))
+#define PerlMem_free(buf) free((buf))
+
+#endif /* PERL_OBJECT */
+
+/*
+ Interface for perl process functions
+*/
+
+
+#ifdef PERL_OBJECT
+
+#ifndef Sighandler_t
+typedef Signal_t (*Sighandler_t) _((int));
+#endif
+#ifndef jmp_buf
+#include <setjmp.h>
+#endif
+
+class IPerlProc
+{
+public:
+ virtual void Abort(void) = 0;
+ virtual void Exit(int status) = 0;
+ virtual void _Exit(int status) = 0;
+ virtual int Execl(const char *cmdname, const char *arg0,
+ const char *arg1, const char *arg2,
+ const char *arg3) = 0;
+ virtual int Execv(const char *cmdname, const char *const *argv) = 0;
+ virtual int Execvp(const char *cmdname, const char *const *argv) = 0;
+ virtual uid_t Getuid(void) = 0;
+ virtual uid_t Geteuid(void) = 0;
+ virtual gid_t Getgid(void) = 0;
+ virtual gid_t Getegid(void) = 0;
+ virtual char * Getlogin(void) = 0;
+ virtual int Kill(int pid, int sig) = 0;
+ virtual int Killpg(int pid, int sig) = 0;
+ virtual int PauseProc(void) = 0;
+ virtual PerlIO * Popen(const char *command, const char *mode) = 0;
+ virtual int Pclose(PerlIO *stream) = 0;
+ virtual int Pipe(int *phandles) = 0;
+ virtual int Setuid(uid_t uid) = 0;
+ virtual int Setgid(gid_t gid) = 0;
+ virtual int Sleep(unsigned int) = 0;
+ virtual int Times(struct tms *timebuf) = 0;
+ virtual int Wait(int *status) = 0;
+ virtual int Waitpid(int pid, int *status, int flags) = 0;
+ virtual Sighandler_t Signal(int sig, Sighandler_t subcode) = 0;
+#ifdef WIN32
+ virtual void GetSysMsg(char*& msg, DWORD& dwLen, DWORD dwErr) = 0;
+ virtual void FreeBuf(char* msg) = 0;
+ virtual BOOL DoCmd(char *cmd) = 0;
+ virtual int Spawn(char*cmds) = 0;
+ virtual int Spawnvp(int mode, const char *cmdname,
+ const char *const *argv) = 0;
+ virtual int ASpawn(void *vreally, void **vmark, void **vsp) = 0;
+#endif
+};
+
+#define PerlProc_abort() piProc->Abort()
+#define PerlProc_exit(s) piProc->Exit((s))
+#define PerlProc__exit(s) piProc->_Exit((s))
+#define PerlProc_execl(c, w, x, y, z) \
+ piProc->Execl((c), (w), (x), (y), (z))
+
+#define PerlProc_execv(c, a) piProc->Execv((c), (a))
+#define PerlProc_execvp(c, a) piProc->Execvp((c), (a))
+#define PerlProc_getuid() piProc->Getuid()
+#define PerlProc_geteuid() piProc->Geteuid()
+#define PerlProc_getgid() piProc->Getgid()
+#define PerlProc_getegid() piProc->Getegid()
+#define PerlProc_getlogin() piProc->Getlogin()
+#define PerlProc_kill(i, a) piProc->Kill((i), (a))
+#define PerlProc_killpg(i, a) piProc->Killpg((i), (a))
+#define PerlProc_pause() piProc->PauseProc()
+#define PerlProc_popen(c, m) piProc->Popen((c), (m))
+#define PerlProc_pclose(f) piProc->Pclose((f))
+#define PerlProc_pipe(fd) piProc->Pipe((fd))
+#define PerlProc_setuid(u) piProc->Setuid((u))
+#define PerlProc_setgid(g) piProc->Setgid((g))
+#define PerlProc_sleep(t) piProc->Sleep((t))
+#define PerlProc_times(t) piProc->Times((t))
+#define PerlProc_wait(t) piProc->Wait((t))
+#define PerlProc_waitpid(p,s,f) piProc->Waitpid((p), (s), (f))
+#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
+#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
+#define PerlProc_signal(n, h) piProc->Signal((n), (h))
+
+#ifdef WIN32
+#define PerlProc_GetSysMsg(s,l,e) \
+ piProc->GetSysMsg((s), (l), (e))
+
+#define PerlProc_FreeBuf(s) piProc->FreeBuf((s))
+#define PerlProc_Cmd(s) piProc->DoCmd((s))
+#define do_spawn(s) piProc->Spawn((s))
+#define do_spawnvp(m, c, a) piProc->Spawnvp((m), (c), (a))
+#define PerlProc_aspawn(m,c,a) piProc->ASpawn((m), (c), (a))
+#endif
+
+#else /* PERL_OBJECT */
+
+#define PerlProc_abort() abort()
+#define PerlProc_exit(s) exit((s))
+#define PerlProc__exit(s) _exit((s))
+#define PerlProc_execl(c,w,x,y,z) \
+ execl((c), (w), (x), (y), (z))
+#define PerlProc_execv(c, a) execv((c), (a))
+#define PerlProc_execvp(c, a) execvp((c), (a))
+#define PerlProc_getuid() getuid()
+#define PerlProc_geteuid() geteuid()
+#define PerlProc_getgid() getgid()
+#define PerlProc_getegid() getegid()
+#define PerlProc_getlogin() getlogin()
+#define PerlProc_kill(i, a) kill((i), (a))
+#define PerlProc_killpg(i, a) killpg((i), (a))
+#define PerlProc_pause() Pause()
+#define PerlProc_popen(c, m) my_popen((c), (m))
+#define PerlProc_pclose(f) my_pclose((f))
+#define PerlProc_pipe(fd) pipe((fd))
+#define PerlProc_setuid(u) setuid((u))
+#define PerlProc_setgid(g) setgid((g))
+#define PerlProc_sleep(t) sleep((t))
+#define PerlProc_times(t) times((t))
+#define PerlProc_wait(t) wait((t))
+#define PerlProc_waitpid(p,s,f) waitpid((p), (s), (f))
+#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
+#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
+#define PerlProc_signal(n, h) signal((n), (h))
+
+
+#endif /* PERL_OBJECT */
+
+/*
+ Interface for perl socket functions
+*/
+
+#ifdef PERL_OBJECT
+
+class IPerlSock
+{
+public:
+ virtual u_long Htonl(u_long hostlong) = 0;
+ virtual u_short Htons(u_short hostshort) = 0;
+ virtual u_long Ntohl(u_long netlong) = 0;
+ virtual u_short Ntohs(u_short netshort) = 0;
+ virtual SOCKET Accept(SOCKET s, struct sockaddr* addr,
+ int* addrlen, int &err) = 0;
+ virtual int Bind(SOCKET s, const struct sockaddr* name,
+ int namelen, int &err) = 0;
+ virtual int Connect(SOCKET s, const struct sockaddr* name,
+ int namelen, int &err) = 0;
+ virtual void Endhostent(int &err) = 0;
+ virtual void Endnetent(int &err) = 0;
+ virtual void Endprotoent(int &err) = 0;
+ virtual void Endservent(int &err) = 0;
+ virtual int Gethostname(char* name, int namelen, int &err) = 0;
+ virtual int Getpeername(SOCKET s, struct sockaddr* name,
+ int* namelen, int &err) = 0;
+ virtual struct hostent * Gethostbyaddr(const char* addr, int len,
+ int type, int &err) = 0;
+ virtual struct hostent * Gethostbyname(const char* name, int &err) = 0;
+ virtual struct hostent * Gethostent(int &err) = 0;
+ virtual struct netent * Getnetbyaddr(long net, int type, int &err) = 0;
+ virtual struct netent * Getnetbyname(const char *, int &err) = 0;
+ virtual struct netent * Getnetent(int &err) = 0;
+ virtual struct protoent * Getprotobyname(const char* name, int &err) = 0;
+ virtual struct protoent * Getprotobynumber(int number, int &err) = 0;
+ virtual struct protoent * Getprotoent(int &err) = 0;
+ virtual struct servent * Getservbyname(const char* name,
+ const char* proto, int &err) = 0;
+ virtual struct servent * Getservbyport(int port, const char* proto,
+ int &err) = 0;
+ virtual struct servent * Getservent(int &err) = 0;
+ virtual int Getsockname(SOCKET s, struct sockaddr* name,
+ int* namelen, int &err) = 0;
+ virtual int Getsockopt(SOCKET s, int level, int optname,
+ char* optval, int* optlen, int &err) = 0;
+ virtual unsigned long InetAddr(const char* cp, int &err) = 0;
+ virtual char * InetNtoa(struct in_addr in, int &err) = 0;
+ virtual int Listen(SOCKET s, int backlog, int &err) = 0;
+ virtual int Recv(SOCKET s, char* buf, int len,
+ int flags, int &err) = 0;
+ virtual int Recvfrom(SOCKET s, char* buf, int len, int flags,
+ struct sockaddr* from, int* fromlen, int &err) = 0;
+ virtual int Select(int nfds, char* readfds, char* writefds,
+ char* exceptfds, const struct timeval* timeout,
+ int &err) = 0;
+ virtual int Send(SOCKET s, const char* buf, int len,
+ int flags, int &err) = 0;
+ virtual int Sendto(SOCKET s, const char* buf, int len, int flags,
+ const struct sockaddr* to, int tolen, int &err) = 0;
+ virtual void Sethostent(int stayopen, int &err) = 0;
+ virtual void Setnetent(int stayopen, int &err) = 0;
+ virtual void Setprotoent(int stayopen, int &err) = 0;
+ virtual void Setservent(int stayopen, int &err) = 0;
+ virtual int Setsockopt(SOCKET s, int level, int optname,
+ const char* optval, int optlen, int &err) = 0;
+ virtual int Shutdown(SOCKET s, int how, int &err) = 0;
+ virtual SOCKET Socket(int af, int type, int protocol, int &err) = 0;
+ virtual int Socketpair(int domain, int type, int protocol,
+ int* fds, int &err) = 0;
+#ifdef WIN32
+ virtual int Closesocket(SOCKET s, int& err) = 0;
+ virtual int Ioctlsocket(SOCKET s, long cmd, u_long *argp,
+ int& err) = 0;
+#endif
+};
+
+#define PerlSock_htonl(x) piSock->Htonl(x)
+#define PerlSock_htons(x) piSock->Htons(x)
+#define PerlSock_ntohl(x) piSock->Ntohl(x)
+#define PerlSock_ntohs(x) piSock->Ntohs(x)
+#define PerlSock_accept(s, a, l) piSock->Accept(s, a, l, ErrorNo())
+#define PerlSock_bind(s, n, l) piSock->Bind(s, n, l, ErrorNo())
+#define PerlSock_connect(s, n, l) piSock->Connect(s, n, l, ErrorNo())
+#define PerlSock_endhostent() piSock->Endhostent(ErrorNo())
+#define PerlSock_endnetent() piSock->Endnetent(ErrorNo())
+#define PerlSock_endprotoent() piSock->Endprotoent(ErrorNo())
+#define PerlSock_endservent() piSock->Endservent(ErrorNo())
+#define PerlSock_gethostbyaddr(a, l, t) piSock->Gethostbyaddr(a, l, t, ErrorNo())
+#define PerlSock_gethostbyname(n) piSock->Gethostbyname(n, ErrorNo())
+#define PerlSock_gethostent() piSock->Gethostent(ErrorNo())
+#define PerlSock_gethostname(n, l) piSock->Gethostname(n, l, ErrorNo())
+#define PerlSock_getnetbyaddr(n, t) piSock->Getnetbyaddr(n, t, ErrorNo())
+#define PerlSock_getnetbyname(c) piSock->Getnetbyname(c, ErrorNo())
+#define PerlSock_getnetent() piSock->Getnetent(ErrorNo())
+#define PerlSock_getpeername(s, n, l) piSock->Getpeername(s, n, l, ErrorNo())
+#define PerlSock_getprotobyname(n) piSock->Getprotobyname(n, ErrorNo())
+#define PerlSock_getprotobynumber(n) piSock->Getprotobynumber(n, ErrorNo())
+#define PerlSock_getprotoent() piSock->Getprotoent(ErrorNo())
+#define PerlSock_getservbyname(n, p) piSock->Getservbyname(n, p, ErrorNo())
+#define PerlSock_getservbyport(port, p) piSock->Getservbyport(port, p, ErrorNo())
+#define PerlSock_getservent() piSock->Getservent(ErrorNo())
+#define PerlSock_getsockname(s, n, l) piSock->Getsockname(s, n, l, ErrorNo())
+#define PerlSock_getsockopt(s,l,n,v,i) piSock->Getsockopt(s, l, n, v, i, ErrorNo())
+#define PerlSock_inet_addr(c) piSock->InetAddr(c, ErrorNo())
+#define PerlSock_inet_ntoa(i) piSock->InetNtoa(i, ErrorNo())
+#define PerlSock_listen(s, b) piSock->Listen(s, b, ErrorNo())
+#define PerlSock_recv(s, b, l, f) piSock->Recv(s, b, l, f, ErrorNo())
+#define PerlSock_recvfrom(s,b,l,f,from,fromlen) \
+ piSock->Recvfrom(s, b, l, f, from, fromlen, ErrorNo())
+#define PerlSock_select(n, r, w, e, t) \
+ piSock->Select(n, (char*)r, (char*)w, (char*)e, t, ErrorNo())
+#define PerlSock_send(s, b, l, f) piSock->Send(s, b, l, f, ErrorNo())
+#define PerlSock_sendto(s, b, l, f, t, tlen) \
+ piSock->Sendto(s, b, l, f, t, tlen, ErrorNo())
+#define PerlSock_sethostent(f) piSock->Sethostent(f, ErrorNo())
+#define PerlSock_setnetent(f) piSock->Setnetent(f, ErrorNo())
+#define PerlSock_setprotoent(f) piSock->Setprotoent(f, ErrorNo())
+#define PerlSock_setservent(f) piSock->Setservent(f, ErrorNo())
+#define PerlSock_setsockopt(s, l, n, v, len) \
+ piSock->Setsockopt(s, l, n, v, len, ErrorNo())
+#define PerlSock_shutdown(s, h) piSock->Shutdown(s, h, ErrorNo())
+#define PerlSock_socket(a, t, p) piSock->Socket(a, t, p, ErrorNo())
+#define PerlSock_socketpair(a, t, p, f) piSock->Socketpair(a, t, p, f, ErrorNo())
+
+#else /* PERL_OBJECT */
+
+#define PerlSock_htonl(x) htonl(x)
+#define PerlSock_htons(x) htons(x)
+#define PerlSock_ntohl(x) ntohl(x)
+#define PerlSock_ntohs(x) ntohs(x)
+#define PerlSock_accept(s, a, l) accept(s, a, l)
+#define PerlSock_bind(s, n, l) bind(s, n, l)
+#define PerlSock_connect(s, n, l) connect(s, n, l)
+
+#define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t)
+#define PerlSock_gethostbyname(n) gethostbyname(n)
+#define PerlSock_gethostent gethostent
+#define PerlSock_endhostent endhostent
+#define PerlSock_gethostname(n, l) gethostname(n, l)
+
+#define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t)
+#define PerlSock_getnetbyname(n) getnetbyname(n)
+#define PerlSock_getnetent getnetent
+#define PerlSock_endnetent endnetent
+#define PerlSock_getpeername(s, n, l) getpeername(s, n, l)
+
+#define PerlSock_getprotobyname(n) getprotobyname(n)
+#define PerlSock_getprotobynumber(n) getprotobynumber(n)
+#define PerlSock_getprotoent getprotoent
+#define PerlSock_endprotoent endprotoent
+
+#define PerlSock_getservbyname(n, p) getservbyname(n, p)
+#define PerlSock_getservbyport(port, p) getservbyport(port, p)
+#define PerlSock_getservent getservent
+#define PerlSock_endservent endservent
+
+#define PerlSock_getsockname(s, n, l) getsockname(s, n, l)
+#define PerlSock_getsockopt(s,l,n,v,i) getsockopt(s, l, n, v, i)
+#define PerlSock_inet_addr(c) inet_addr(c)
+#define PerlSock_inet_ntoa(i) inet_ntoa(i)
+#define PerlSock_listen(s, b) listen(s, b)
+#define PerlSock_recvfrom(s, b, l, f, from, fromlen) \
+ recvfrom(s, b, l, f, from, fromlen)
+#define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t)
+#define PerlSock_send(s, b, l, f) send(s, b, l, f)
+#define PerlSock_sendto(s, b, l, f, t, tlen) \
+ sendto(s, b, l, f, t, tlen)
+#define PerlSock_sethostent(f) sethostent(f)
+#define PerlSock_setnetent(f) setnetent(f)
+#define PerlSock_setprotoent(f) setprotoent(f)
+#define PerlSock_setservent(f) setservent(f)
+#define PerlSock_setsockopt(s, l, n, v, len) \
+ setsockopt(s, l, n, v, len)
+#define PerlSock_shutdown(s, h) shutdown(s, h)
+#define PerlSock_socket(a, t, p) socket(a, t, p)
+#define PerlSock_socketpair(a, t, p, f) socketpair(a, t, p, f)
+
+
+#endif /* PERL_OBJECT */
+
+#endif /* __Inc__IPerl___ */
+
diff --git a/iplio.h b/iplio.h
deleted file mode 100644
index 0c5455f116..0000000000
--- a/iplio.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-
- iplio.h
- Interface for perl Low IO functions
-
-*/
-
-#ifndef __Inc__IPerlLIO___
-#define __Inc__IPerlLIO___
-
-class IPerlLIO
-{
-public:
- virtual int Access(const char *path, int mode, int &err) = 0;
- virtual int Chmod(const char *filename, int pmode, int &err) = 0;
- virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err) = 0;
- virtual int Chsize(int handle, long size, int &err) = 0;
- virtual int Close(int handle, int &err) = 0;
- virtual int Dup(int handle, int &err) = 0;
- virtual int Dup2(int handle1, int handle2, int &err) = 0;
- virtual int Flock(int fd, int oper, int &err) = 0;
- virtual int FileStat(int handle, struct stat *buffer, int &err) = 0;
- virtual int IOCtl(int i, unsigned int u, char *data, int &err) = 0;
- virtual int Isatty(int handle, int &err) = 0;
- virtual long Lseek(int handle, long offset, int origin, int &err) = 0;
- virtual int Lstat(const char *path, struct stat *buffer, int &err) = 0;
- virtual char *Mktemp(char *Template, int &err) = 0;
- virtual int Open(const char *filename, int oflag, int &err) = 0;
- virtual int Open(const char *filename, int oflag, int pmode, int &err) = 0;
- virtual int Read(int handle, void *buffer, unsigned int count, int &err) = 0;
- virtual int Rename(const char *oldname, const char *newname, int &err) = 0;
- virtual int Setmode(int handle, int mode, int &err) = 0;
- virtual int NameStat(const char *path, struct stat *buffer, int &err) = 0;
- virtual char *Tmpnam(char *string, int &err) = 0;
- virtual int Umask(int pmode, int &err) = 0;
- virtual int Unlink(const char *filename, int &err) = 0;
- virtual int Utime(char *filename, struct utimbuf *times, int &err) = 0;
- virtual int Write(int handle, const void *buffer, unsigned int count, int &err) = 0;
-};
-
-#endif /* __Inc__IPerlLIO___ */
diff --git a/ipmem.h b/ipmem.h
deleted file mode 100644
index 0554cf5f95..0000000000
--- a/ipmem.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-
- ipmem.h
- Interface for perl memory allocation
-
-*/
-
-#ifndef __Inc__IPerlMem___
-#define __Inc__IPerlMem___
-
-class IPerlMem
-{
-public:
- virtual void* Malloc(size_t) = 0;
- virtual void* Realloc(void*, size_t) = 0;
- virtual void Free(void*) = 0;
-};
-
-#endif /* __Inc__IPerlMem___ */
-
diff --git a/ipproc.h b/ipproc.h
deleted file mode 100644
index 0395b5bcd2..0000000000
--- a/ipproc.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-
- ipproc.h
- Interface for perl process functions
-
-*/
-
-#ifndef __Inc__IPerlProc___
-#define __Inc__IPerlProc___
-
-#ifndef Sighandler_t
-typedef Signal_t (*Sighandler_t) _((int));
-#endif
-#ifndef jmp_buf
-#include <setjmp.h>
-#endif
-
-class IPerlProc
-{
-public:
- virtual void Abort(void) = 0;
- virtual void Exit(int status) = 0;
- virtual void _Exit(int status) = 0;
- virtual int Execl(const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3) = 0;
- virtual int Execv(const char *cmdname, const char *const *argv) = 0;
- virtual int Execvp(const char *cmdname, const char *const *argv) = 0;
- virtual uid_t Getuid(void) = 0;
- virtual uid_t Geteuid(void) = 0;
- virtual gid_t Getgid(void) = 0;
- virtual gid_t Getegid(void) = 0;
- virtual char *Getlogin(void) = 0;
- virtual int Kill(int pid, int sig) = 0;
- virtual int Killpg(int pid, int sig) = 0;
- virtual int PauseProc(void) = 0;
- virtual PerlIO* Popen(const char *command, const char *mode) = 0;
- virtual int Pclose(PerlIO *stream) = 0;
- virtual int Pipe(int *phandles) = 0;
- virtual int Setuid(uid_t uid) = 0;
- virtual int Setgid(gid_t gid) = 0;
- virtual int Sleep(unsigned int) = 0;
- virtual int Times(struct tms *timebuf) = 0;
- virtual int Wait(int *status) = 0;
- virtual int Waitpid(int pid, int *status, int flags) = 0;
- virtual Sighandler_t Signal(int sig, Sighandler_t subcode) = 0;
-#ifdef WIN32
- virtual void GetSysMsg(char*& msg, DWORD& dwLen, DWORD dwErr) = 0;
- virtual void FreeBuf(char* msg) = 0;
- virtual BOOL DoCmd(char *cmd) = 0;
- virtual int Spawn(char*cmds) = 0;
- virtual int Spawnvp(int mode, const char *cmdname, const char *const *argv) = 0;
- virtual int ASpawn(void *vreally, void **vmark, void **vsp) = 0;
-#endif
-};
-
-#endif /* __Inc__IPerlProc___ */
-
diff --git a/ipsock.h b/ipsock.h
deleted file mode 100644
index 1875d5669f..0000000000
--- a/ipsock.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
- ipsock.h
- Interface for perl socket functions
-
-*/
-
-#ifndef __Inc__IPerlSock___
-#define __Inc__IPerlSock___
-
-class IPerlSock
-{
-public:
- virtual u_long Htonl(u_long hostlong) = 0;
- virtual u_short Htons(u_short hostshort) = 0;
- virtual u_long Ntohl(u_long netlong) = 0;
- virtual u_short Ntohs(u_short netshort) = 0;
- virtual SOCKET Accept(SOCKET s, struct sockaddr* addr, int* addrlen, int &err) = 0;
- virtual int Bind(SOCKET s, const struct sockaddr* name, int namelen, int &err) = 0;
- virtual int Connect(SOCKET s, const struct sockaddr* name, int namelen, int &err) = 0;
- virtual void Endhostent(int &err) = 0;
- virtual void Endnetent(int &err) = 0;
- virtual void Endprotoent(int &err) = 0;
- virtual void Endservent(int &err) = 0;
- virtual struct hostent* Gethostbyaddr(const char* addr, int len, int type, int &err) = 0;
- virtual struct hostent* Gethostbyname(const char* name, int &err) = 0;
- virtual struct hostent* Gethostent(int &err) = 0;
- virtual int Gethostname(char* name, int namelen, int &err) = 0;
- virtual struct netent *Getnetbyaddr(long net, int type, int &err) = 0;
- virtual struct netent *Getnetbyname(const char *, int &err) = 0;
- virtual struct netent *Getnetent(int &err) = 0;
- virtual int Getpeername(SOCKET s, struct sockaddr* name, int* namelen, int &err) = 0;
- virtual struct protoent* Getprotobyname(const char* name, int &err) = 0;
- virtual struct protoent* Getprotobynumber(int number, int &err) = 0;
- virtual struct protoent* Getprotoent(int &err) = 0;
- virtual struct servent* Getservbyname(const char* name, const char* proto, int &err) = 0;
- virtual struct servent* Getservbyport(int port, const char* proto, int &err) = 0;
- virtual struct servent* Getservent(int &err) = 0;
- virtual int Getsockname(SOCKET s, struct sockaddr* name, int* namelen, int &err) = 0;
- virtual int Getsockopt(SOCKET s, int level, int optname, char* optval, int* optlen, int &err) = 0;
- virtual unsigned long InetAddr(const char* cp, int &err) = 0;
- virtual char* InetNtoa(struct in_addr in, int &err) = 0;
- virtual int Listen(SOCKET s, int backlog, int &err) = 0;
- virtual int Recv(SOCKET s, char* buf, int len, int flags, int &err) = 0;
- virtual int Recvfrom(SOCKET s, char* buf, int len, int flags, struct sockaddr* from, int* fromlen, int &err) = 0;
- virtual int Select(int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout, int &err) = 0;
- virtual int Send(SOCKET s, const char* buf, int len, int flags, int &err) = 0;
- virtual int Sendto(SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen, int &err) = 0;
- virtual void Sethostent(int stayopen, int &err) = 0;
- virtual void Setnetent(int stayopen, int &err) = 0;
- virtual void Setprotoent(int stayopen, int &err) = 0;
- virtual void Setservent(int stayopen, int &err) = 0;
- virtual int Setsockopt(SOCKET s, int level, int optname, const char* optval, int optlen, int &err) = 0;
- virtual int Shutdown(SOCKET s, int how, int &err) = 0;
- virtual SOCKET Socket(int af, int type, int protocol, int &err) = 0;
- virtual int Socketpair(int domain, int type, int protocol, int* fds, int &err) = 0;
-#ifdef WIN32
- virtual int Closesocket(SOCKET s, int& err) = 0;
- virtual int Ioctlsocket(SOCKET s, long cmd, u_long *argp, int& err) = 0;
-#endif
-};
-
-#endif /* __Inc__IPerlSock___ */
-
diff --git a/ipstdio.h b/ipstdio.h
deleted file mode 100644
index d639aca072..0000000000
--- a/ipstdio.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
- ipstdio.h
- Interface for perl stdio functions
-
-*/
-
-#ifndef __Inc__IPerlStdIO___
-#define __Inc__IPerlStdIO___
-
-#ifndef PerlIO
-typedef struct _PerlIO PerlIO;
-#endif
-
-class IPerlStdIO
-{
-public:
- virtual PerlIO* Stdin(void) = 0;
- virtual PerlIO* Stdout(void) = 0;
- virtual PerlIO* Stderr(void) = 0;
- virtual PerlIO* Open(const char *, const char *, int &err) = 0;
- virtual int Close(PerlIO*, int &err) = 0;
- virtual int Eof(PerlIO*, int &err) = 0;
- virtual int Error(PerlIO*, int &err) = 0;
- virtual void Clearerr(PerlIO*, int &err) = 0;
- virtual int Getc(PerlIO*, int &err) = 0;
- virtual char* GetBase(PerlIO *, int &err) = 0;
- virtual int GetBufsiz(PerlIO *, int &err) = 0;
- virtual int GetCnt(PerlIO *, int &err) = 0;
- virtual char* GetPtr(PerlIO *, int &err) = 0;
- virtual char* Gets(PerlIO*, char*, int, int& err) = 0;
- virtual int Putc(PerlIO*, int, int &err) = 0;
- virtual int Puts(PerlIO*, const char *, int &err) = 0;
- virtual int Flush(PerlIO*, int &err) = 0;
- virtual int Ungetc(PerlIO*,int, int &err) = 0;
- virtual int Fileno(PerlIO*, int &err) = 0;
- virtual PerlIO* Fdopen(int, const char *, int &err) = 0;
- virtual PerlIO* Reopen(const char*, const char*, PerlIO*, int &err) = 0;
- virtual SSize_t Read(PerlIO*,void *,Size_t, int &err) = 0;
- virtual SSize_t Write(PerlIO*,const void *,Size_t, int &err) = 0;
- virtual void SetBuf(PerlIO *, char*, int &err) = 0;
- virtual int SetVBuf(PerlIO *, char*, int, Size_t, int &err) = 0;
- virtual void SetCnt(PerlIO *, int, int &err) = 0;
- virtual void SetPtrCnt(PerlIO *, char *, int, int& err) = 0;
- virtual void Setlinebuf(PerlIO*, int &err) = 0;
- virtual int Printf(PerlIO*, int &err, const char *,...) = 0;
- virtual int Vprintf(PerlIO*, int &err, const char *, va_list) = 0;
- virtual long Tell(PerlIO*, int &err) = 0;
- virtual int Seek(PerlIO*, off_t, int, int &err) = 0;
- virtual void Rewind(PerlIO*, int &err) = 0;
- virtual PerlIO* Tmpfile(int &err) = 0;
- virtual int Getpos(PerlIO*, Fpos_t *, int &err) = 0;
- virtual int Setpos(PerlIO*, const Fpos_t *, int &err) = 0;
- virtual void Init(int &err) = 0;
- virtual void InitOSExtras(void* p) = 0;
-#ifdef WIN32
- virtual int OpenOSfhandle(long osfhandle, int flags) = 0;
- virtual int GetOSfhandle(int filenum) = 0;
-#endif
-};
-
-#endif /* __Inc__IPerlStdIO___ */
-
diff --git a/lib/AutoSplit.pm b/lib/AutoSplit.pm
index 471499adcb..121d26154d 100644
--- a/lib/AutoSplit.pm
+++ b/lib/AutoSplit.pm
@@ -356,7 +356,7 @@ EOT
# perl downcases all filenames on VMS (which upcases all filenames) so
# we'd better downcase the sub name list too, or subs with upper case
# letters in them will get their .al files deleted right after they're
- # created. (The mixed case sub name wonn't match the all-lowercase
+ # created. (The mixed case sub name won't match the all-lowercase
# filename, and so be cleaned up as a scrap file)
if ($Is_VMS or $Is83) {
%outfiles = map {lc($_) => lc($_) } @outfiles;
@@ -372,7 +372,7 @@ EOT
foreach (sort readdir(OUTDIR)){
next unless /\.al$/;
my($file) = "$dir/$_";
- $file = lc $file if $Is83;
+ $file = lc $file if $Is83 or $Is_VMS;
next if $outfiles{$file};
print " deleting $file\n" if ($Verbose>=2);
my($deleted,$thistime); # catch all versions on VMS
diff --git a/lib/English.pm b/lib/English.pm
index 1cbacd11f8..bbb6bd7b28 100644
--- a/lib/English.pm
+++ b/lib/English.pm
@@ -137,8 +137,8 @@ sub import {
# Error status.
*CHILD_ERROR = *? ;
- *OS_ERROR = \$! ;
- *ERRNO = \$! ;
+ *OS_ERROR = *! ;
+ *ERRNO = *! ;
*EXTENDED_OS_ERROR = *^E ;
*EVAL_ERROR = *@ ;
diff --git a/lib/ExtUtils/MM_VMS.pm b/lib/ExtUtils/MM_VMS.pm
index e3bd7df24a..34a0d34ebf 100644
--- a/lib/ExtUtils/MM_VMS.pm
+++ b/lib/ExtUtils/MM_VMS.pm
@@ -852,16 +852,17 @@ sub cflags {
}
$libperl or $libperl = $self->{LIBPERL_A} || "libperl.olb";
- if ($libperl =~ s/^$Config{'dbgprefix'}//) { $libperl =~ s/perl([^Dd]*)\./perld$1./; }
- if ($libperl =~ /libperl(\w+)\./i) {
- my($type) = uc $1;
- my(%map) = ( 'D' => 'DEBUGGING', 'E' => 'EMBED', 'M' => 'MULTIPLICITY',
- 'DE' => 'DEBUGGING,EMBED', 'DM' => 'DEBUGGING,MULTIPLICITY',
- 'EM' => 'EMBED,MULTIPLICITY', 'DEM' => 'DEBUGGING,EMBED,MULTIPLICITY' );
- my($add) = join(',', grep { $quals !~ /\b$_\b/ } split(/,/,$map{$type}));
- $quals =~ s:/define=\(([^\)]+)\):/Define=($1,$add):i if $add;
- $self->{PERLTYPE} ||= $type;
- }
+# This whole section is commented out, since I don't think it's necessary (or applicable)
+# if ($libperl =~ s/^$Config{'dbgprefix'}//) { $libperl =~ s/perl([^Dd]*)\./perld$1./; }
+# if ($libperl =~ /libperl(\w+)\./i) {
+# my($type) = uc $1;
+# my(%map) = ( 'D' => 'DEBUGGING', 'E' => 'EMBED', 'M' => 'MULTIPLICITY',
+# 'DE' => 'DEBUGGING,EMBED', 'DM' => 'DEBUGGING,MULTIPLICITY',
+# 'EM' => 'EMBED,MULTIPLICITY', 'DEM' => 'DEBUGGING,EMBED,MULTIPLICITY' );
+# my($add) = join(',', grep { $quals !~ /\b$_\b/ } split(/,/,$map{$type}));
+# $quals =~ s:/define=\(([^\)]+)\):/Define=($1,$add):i if $add;
+# $self->{PERLTYPE} ||= $type;
+# }
# Likewise with $self->{INC} and /Include
if ($self->{'INC'}) {
diff --git a/lib/ExtUtils/MM_Win32.pm b/lib/ExtUtils/MM_Win32.pm
index fd4b28dcce..7ec474e821 100644
--- a/lib/ExtUtils/MM_Win32.pm
+++ b/lib/ExtUtils/MM_Win32.pm
@@ -163,12 +163,12 @@ sub init_others
{
$self->{'LDLOADLIBS'}
||= ( $BORLAND
- ? 'import32.lib cw32mti.lib '
+ ? 'import32.lib'
: # compiler adds msvcrtd?.lib according to debug switches
'oldnames.lib kernel32.lib comdlg32.lib winspool.lib gdi32.lib '
.'advapi32.lib user32.lib shell32.lib netapi32.lib ole32.lib '
- .'oleaut32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib '
- ) . ' odbc32.lib odbccp32.lib';
+ .'oleaut32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib'
+ ) . ' $(LIBC) odbc32.lib odbccp32.lib';
}
$self->{'DEV_NULL'} = '> NUL';
# $self->{'NOECHO'} = ''; # till we have it working
diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm
new file mode 100644
index 0000000000..e768e0d750
--- /dev/null
+++ b/lib/File/Spec.pm
@@ -0,0 +1,116 @@
+package File::Spec;
+
+require Exporter;
+
+@ISA = qw(Exporter);
+# Items to export into callers namespace by default. Note: do not export
+# names by default without a very good reason. Use EXPORT_OK instead.
+# Do not simply export all your public functions/methods/constants.
+@EXPORT = qw(
+
+);
+@EXPORT_OK = qw($Verbose);
+
+use strict;
+use vars qw(@ISA $VERSION $Verbose);
+
+$VERSION = '0.6';
+
+$Verbose = 0;
+
+require File::Spec::Unix;
+
+
+sub load {
+ my($class,$OS) = @_;
+ if ($OS eq 'VMS') {
+ require File::Spec::VMS;
+ require VMS::Filespec;
+ 'File::Spec::VMS'
+ } elsif ($OS eq 'os2') {
+ require File::Spec::OS2;
+ 'File::Spec::OS2'
+ } elsif ($OS eq 'MacOS') {
+ require File::Spec::Mac;
+ 'File::Spec::Mac'
+ } elsif ($OS eq 'MSWin32') {
+ require File::Spec::Win32;
+ 'File::Spec::Win32'
+ } else {
+ 'File::Spec::Unix'
+ }
+}
+
+@ISA = load('File::Spec', $^O);
+
+1;
+__END__
+
+=head1 NAME
+
+File::Spec - portably perform operations on file names
+
+=head1 SYNOPSIS
+
+C<use File::Spec;>
+
+C<$x=File::Spec-E<gt>catfile('a','b','c');>
+
+which returns 'a/b/c' under Unix.
+
+=head1 DESCRIPTION
+
+This module is designed to support operations commonly performed on file
+specifications (usually called "file names", but not to be confused with the
+contents of a file, or Perl's file handles), such as concatenating several
+directory and file names into a single path, or determining whether a path
+is rooted. It is based on code directly taken from MakeMaker 5.17, code
+written by Andreas KE<ouml>nig, Andy Dougherty, Charles Bailey, Ilya
+Zakharevich, Paul Schinder, and others.
+
+Since these functions are different for most operating systems, each set of
+OS specific routines is available in a separate module, including:
+
+ File::Spec::Unix
+ File::Spec::Mac
+ File::Spec::OS2
+ File::Spec::Win32
+ 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.
+
+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, pleaes 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>,
+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
+
+=head1 AUTHORS
+
+Kenneth Albanowski <F<kjahds@kjahds.com>>, Andy Dougherty
+<F<doughera@lafcol.lafayette.edu>>, Andreas KE<ouml>nig
+<F<A.Koenig@franz.ww.TU-Berlin.DE>>, Tim Bunce <F<Tim.Bunce@ig.co.uk>>. VMS
+support by Charles Bailey <F<bailey@genetics.upenn.edu>>. OS/2 support by
+Ilya Zakharevich <F<ilya@math.ohio-state.edu>>. Mac support by Paul Schinder
+<F<schinder@pobox.com>>.
+
+=cut
+
+
+1; \ No newline at end of file
diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm
new file mode 100644
index 0000000000..4968e24abc
--- /dev/null
+++ b/lib/File/Spec/Mac.pm
@@ -0,0 +1,230 @@
+package File::Spec::Mac;
+
+use Exporter ();
+use Config;
+use strict;
+use File::Spec;
+use vars qw(@ISA $VERSION $Is_Mac);
+
+$VERSION = '1.0';
+
+@ISA = qw(File::Spec::Unix);
+$Is_Mac = $^O eq 'MacOS';
+
+Exporter::import('File::Spec', '$Verbose');
+
+
+=head1 NAME
+
+File::Spec::Mac - File::Spec for MacOS
+
+=head1 SYNOPSIS
+
+C<require File::Spec::Mac;>
+
+=head1 DESCRIPTION
+
+Methods for manipulating file specifications.
+
+=head1 METHODS
+
+=over 2
+
+=item canonpath
+
+On MacOS, there's nothing to be done. Returns what it's given.
+
+=cut
+
+sub canonpath {
+ my($self,$path) = @_;
+ $path;
+}
+
+=item catdir
+
+Concatenate two or more directory names to form a complete path ending with
+a directory. Put a trailing : on the end of the complete path if there
+isn't one, because that's what's done in MacPerl's environment.
+
+The fundamental requirement of this routine is that
+
+ File::Spec->catdir(split(":",$path)) eq $path
+
+But because of the nature of Macintosh paths, some additional
+possibilities are allowed to make using this routine give resonable results
+for some common situations. Here are the rules that are used. Each
+argument has its trailing ":" removed. Each argument, except the first,
+has its leading ":" removed. They are then joined together by a ":".
+
+So
+
+ File::Spec->catdir("a","b") = "a:b:"
+ File::Spec->catdir("a:",":b") = "a:b:"
+ File::Spec->catdir("a:","b") = "a:b:"
+ File::Spec->catdir("a",":b") = "a:b"
+ File::Spec->catdir("a","","b") = "a::b"
+
+etc.
+
+To get a relative path (one beginning with :), begin the first argument with :
+or put a "" as the first argument.
+
+If you don't want to worry about these rules, never allow a ":" on the ends
+of any of the arguments except at the beginning of the first.
+
+Under MacPerl, there is an additional ambiguity. Does the user intend that
+
+ File::Spec->catfile("LWP","Protocol","http.pm")
+
+be relative or absolute? There's no way of telling except by checking for the
+existance of LWP: or :LWP, and even there he may mean a dismounted volume or
+a relative path in a different directory (like in @INC). So those checks
+aren't done here. This routine will treat this as absolute.
+
+=cut
+
+# ';
+
+sub catdir {
+ shift;
+ my @args = @_;
+ $args[0] =~ s/:$//;
+ my $result = shift @args;
+ for (@args) {
+ s/:$//;
+ s/^://;
+ $result .= ":$_";
+ }
+ $result .= ":";
+ $result;
+}
+
+=item catfile
+
+Concatenate one or more directory names and a filename to form a
+complete path ending with a filename. Since this uses catdir, the
+same caveats apply. Note that the leading : is removed from the filename,
+so that
+
+ File::Spec->catfile($ENV{HOME},"file");
+
+and
+
+ File::Spec->catfile($ENV{HOME},":file");
+
+give the same answer, as one might expect.
+
+=cut
+
+sub catfile {
+ my $self = shift @_;
+ my $file = pop @_;
+ return $file unless @_;
+ my $dir = $self->catdir(@_);
+ $file =~ s/^://;
+ return $dir.$file;
+}
+
+=item curdir
+
+Returns a string representing of the current directory.
+
+=cut
+
+sub curdir {
+ return ":" ;
+}
+
+=item rootdir
+
+Returns a string representing the root directory. Under MacPerl,
+returns the name of the startup volume, since that's the closest in
+concept, although other volumes aren't rooted there. On any other
+platform returns '', since there's no common way to indicate "root
+directory" across all Macs.
+
+=cut
+
+sub rootdir {
+#
+# There's no real root directory on MacOS. If you're using MacPerl,
+# the name of the startup volume is returned, since that's the closest in
+# concept. On other platforms, simply return '', because nothing better
+# can be done.
+#
+ if($Is_Mac) {
+ require Mac::Files;
+ my $system = Mac::Files::FindFolder(&Mac::Files::kOnSystemDisk,
+ &Mac::Files::kSystemFolderType);
+ $system =~ s/:.*$/:/;
+ return $system;
+ } else {
+ return '';
+ }
+}
+
+=item updir
+
+Returns a string representing the parent directory.
+
+=cut
+
+sub updir {
+ return "::";
+}
+
+=item file_name_is_absolute
+
+Takes as argument a path and returns true, if it is an absolute path. In
+the case where a name can be either relative or absolute (for example, a
+folder named "HD" in the current working directory on a drive named "HD"),
+relative wins. Use ":" in the appropriate place in the path if you want to
+distinguish unambiguously.
+
+=cut
+
+sub file_name_is_absolute {
+ my($self,$file) = @_;
+ if ($file =~ /:/) {
+ return ($file !~ m/^:/);
+ } else {
+ return (! -e ":$file");
+ }
+}
+
+=item path
+
+Returns the null list for the MacPerl application, since the concept is
+usually meaningless under MacOS. But if you're using the MacPerl tool under
+MPW, it gives back $ENV{Commands} suitably split, as is done in
+:lib:ExtUtils:MM_Mac.pm.
+
+=cut
+
+sub path {
+#
+# The concept is meaningless under the MacPerl application.
+# Under MPW, it has a meaning.
+#
+ my($self) = @_;
+ my @path;
+ if(exists $ENV{Commands}) {
+ @path = split /,/,$ENV{Commands};
+ } else {
+ @path = ();
+ }
+ @path;
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<File::Spec>
+
+=cut
+
+1;
+__END__
+
diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm
new file mode 100644
index 0000000000..d602617702
--- /dev/null
+++ b/lib/File/Spec/OS2.pm
@@ -0,0 +1,51 @@
+package File::Spec::OS2;
+
+#use Config;
+#use Cwd;
+#use File::Basename;
+use strict;
+require Exporter;
+
+use File::Spec;
+use vars qw(@ISA);
+
+Exporter::import('File::Spec',
+ qw( $Verbose));
+
+@ISA = qw(File::Spec::Unix);
+
+$ENV{EMXSHELL} = 'sh'; # to run `commands`
+
+sub file_name_is_absolute {
+ my($self,$file) = @_;
+ $file =~ m{^([a-z]:)?[\\/]}i ;
+}
+
+sub path {
+ my($self) = @_;
+ my $path_sep = ";";
+ my $path = $ENV{PATH};
+ $path =~ s:\\:/:g;
+ my @path = split $path_sep, $path;
+ foreach(@path) { $_ = '.' if $_ eq '' }
+ @path;
+}
+
+1;
+__END__
+
+=head1 NAME
+
+File::Spec::OS2 - methods for OS/2 file specs
+
+=head1 SYNOPSIS
+
+ use File::Spec::OS2; # Done internally by File::Spec if needed
+
+=head1 DESCRIPTION
+
+See File::Spec::Unix for a documentation of the methods provided
+there. This package overrides the implementation of these methods, not
+the semantics.
+
+=cut
diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm
new file mode 100644
index 0000000000..77de73a216
--- /dev/null
+++ b/lib/File/Spec/Unix.pm
@@ -0,0 +1,197 @@
+package File::Spec::Unix;
+
+use Exporter ();
+use Config;
+use File::Basename qw(basename dirname fileparse);
+use DirHandle;
+use strict;
+use vars qw(@ISA $Is_Mac $Is_OS2 $Is_VMS $Is_Win32);
+use File::Spec;
+
+Exporter::import('File::Spec', '$Verbose');
+
+$Is_OS2 = $^O eq 'os2';
+$Is_Mac = $^O eq 'MacOS';
+$Is_Win32 = $^O eq 'MSWin32';
+
+if ($Is_VMS = $^O eq 'VMS') {
+ require VMS::Filespec;
+ import VMS::Filespec qw( &vmsify );
+}
+
+=head1 NAME
+
+File::Spec::Unix - methods used by File::Spec
+
+=head1 SYNOPSIS
+
+C<require File::Spec::Unix;>
+
+=head1 DESCRIPTION
+
+Methods for manipulating file specifications.
+
+=head1 METHODS
+
+=over 2
+
+=item canonpath
+
+No physical check on the filesystem, but a logical cleanup of a
+path. On UNIX eliminated successive slashes and successive "/.".
+
+=cut
+
+sub canonpath {
+ my($self,$path) = @_;
+ $path =~ s|/+|/|g ; # xx////xx -> xx/xx
+ $path =~ s|(/\.)+/|/|g ; # xx/././xx -> xx/xx
+ $path =~ s|^(\./)+|| unless $path eq "./"; # ./xx -> xx
+ $path =~ s|/$|| unless $path eq "/"; # xx/ -> xx
+ $path;
+}
+
+=item catdir
+
+Concatenate two or more directory names to form a complete path ending
+with a directory. But remove the trailing slash from the resulting
+string, because it doesn't look good, isn't necessary and confuses
+OS2. Of course, if this is the root directory, don't cut off the
+trailing slash :-)
+
+=cut
+
+# ';
+
+sub catdir {
+ shift;
+ my @args = @_;
+ for (@args) {
+ # append a slash to each argument unless it has one there
+ $_ .= "/" if $_ eq '' or substr($_,-1) ne "/";
+ }
+ my $result = join('', @args);
+ # remove a trailing slash unless we are root
+ substr($result,-1) = ""
+ if length($result) > 1 && substr($result,-1) eq "/";
+ $result;
+}
+
+=item catfile
+
+Concatenate one or more directory names and a filename to form a
+complete path ending with a filename
+
+=cut
+
+sub catfile {
+ my $self = shift @_;
+ my $file = pop @_;
+ return $file unless @_;
+ my $dir = $self->catdir(@_);
+ for ($dir) {
+ $_ .= "/" unless substr($_,length($_)-1,1) eq "/";
+ }
+ return $dir.$file;
+}
+
+=item curdir
+
+Returns a string representing of the current directory. "." on UNIX.
+
+=cut
+
+sub curdir {
+ return "." ;
+}
+
+=item rootdir
+
+Returns a string representing of the root directory. "/" on UNIX.
+
+=cut
+
+sub rootdir {
+ return "/";
+}
+
+=item updir
+
+Returns a string representing of the parent directory. ".." on UNIX.
+
+=cut
+
+sub updir {
+ return "..";
+}
+
+=item no_upwards
+
+Given a list of file names, strip out those that refer to a parent
+directory. (Does not strip symlinks, only '.', '..', and equivalents.)
+
+=cut
+
+sub no_upwards {
+ my($self) = shift;
+ return grep(!/^\.{1,2}$/, @_);
+}
+
+=item file_name_is_absolute
+
+Takes as argument a path and returns true, if it is an absolute path.
+
+=cut
+
+sub file_name_is_absolute {
+ my($self,$file) = @_;
+ $file =~ m:^/: ;
+}
+
+=item path
+
+Takes no argument, returns the environment variable PATH as an array.
+
+=cut
+
+sub path {
+ my($self) = @_;
+ my $path_sep = ":";
+ my $path = $ENV{PATH};
+ my @path = split $path_sep, $path;
+ foreach(@path) { $_ = '.' if $_ eq '' }
+ @path;
+}
+
+=item join
+
+join is the same as catfile.
+
+=cut
+
+sub join {
+ my($self) = shift @_;
+ $self->catfile(@_);
+}
+
+=item nativename
+
+TBW.
+
+=cut
+
+sub nativename {
+ my($self,$name) = shift @_;
+ $name;
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<File::Spec>
+
+=cut
+
+1;
+__END__
diff --git a/lib/File/Spec/VMS.pm b/lib/File/Spec/VMS.pm
new file mode 100644
index 0000000000..c5269fd10c
--- /dev/null
+++ b/lib/File/Spec/VMS.pm
@@ -0,0 +1,148 @@
+
+package File::Spec::VMS;
+
+use Carp qw( &carp );
+use Config;
+require Exporter;
+use VMS::Filespec;
+use File::Basename;
+
+use File::Spec;
+use vars qw($Revision);
+$Revision = '5.3901 (6-Mar-1997)';
+
+@ISA = qw(File::Spec::Unix);
+
+Exporter::import('File::Spec', '$Verbose');
+
+=head1 NAME
+
+File::Spec::VMS - methods for VMS file specs
+
+=head1 SYNOPSIS
+
+ use File::Spec::VMS; # Done internally by File::Spec if needed
+
+=head1 DESCRIPTION
+
+See File::Spec::Unix for a documentation of the methods provided
+there. This package overrides the implementation of these methods, not
+the semantics.
+
+=head2 Methods always loaded
+
+=over
+
+=item catdir
+
+Concatenates a list of file specifications, and returns the result as a
+VMS-syntax directory specification.
+
+=cut
+
+sub catdir {
+ my($self,@dirs) = @_;
+ my($dir) = pop @dirs;
+ @dirs = grep($_,@dirs);
+ my($rslt);
+ if (@dirs) {
+ my($path) = (@dirs == 1 ? $dirs[0] : $self->catdir(@dirs));
+ my($spath,$sdir) = ($path,$dir);
+ $spath =~ s/.dir$//; $sdir =~ s/.dir$//;
+ $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+$/;
+ $rslt = $self->fixpath($self->eliminate_macros($spath)."/$sdir",1);
+ }
+ else {
+ if ($dir =~ /^\$\([^\)]+\)$/) { $rslt = $dir; }
+ else { $rslt = vmspath($dir); }
+ }
+ print "catdir(",join(',',@_[1..$#_]),") = |$rslt|\n" if $Verbose >= 3;
+ $rslt;
+}
+
+=item catfile
+
+Concatenates a list of file specifications, and returns the result as a
+VMS-syntax directory specification.
+
+=cut
+
+sub catfile {
+ my($self,@files) = @_;
+ my($file) = pop @files;
+ @files = grep($_,@files);
+ my($rslt);
+ if (@files) {
+ my($path) = (@files == 1 ? $files[0] : $self->catdir(@files));
+ my($spath) = $path;
+ $spath =~ s/.dir$//;
+ if ( $spath =~ /^[^\)\]\/:>]+\)$/ && basename($file) eq $file) { $rslt = "$spath$file"; }
+ else {
+ $rslt = $self->eliminate_macros($spath);
+ $rslt = vmsify($rslt.($rslt ? '/' : '').unixify($file));
+ }
+ }
+ else { $rslt = vmsify($file); }
+ print "catfile(",join(',',@_[1..$#_]),") = |$rslt|\n" if $Verbose >= 3;
+ $rslt;
+}
+
+=item curdir (override)
+
+Returns a string representing of the current directory.
+
+=cut
+
+sub curdir {
+ return '[]';
+}
+
+=item rootdir (override)
+
+Returns a string representing of the root directory.
+
+=cut
+
+sub rootdir {
+ return '';
+}
+
+=item updir (override)
+
+Returns a string representing of the parent directory.
+
+=cut
+
+sub updir {
+ return '[-]';
+}
+
+=item path (override)
+
+Translate logical name DCL$PATH as a searchlist, rather than trying
+to C<split> string value of C<$ENV{'PATH'}>.
+
+=cut
+
+sub path {
+ my(@dirs,$dir,$i);
+ while ($dir = $ENV{'DCL$PATH;' . $i++}) { push(@dirs,$dir); }
+ @dirs;
+}
+
+=item file_name_is_absolute (override)
+
+Checks for VMS directory spec as well as Unix separators.
+
+=cut
+
+sub file_name_is_absolute {
+ my($self,$file) = @_;
+ # If it's a logical name, expand it.
+ $file = $ENV{$file} while $file =~ /^[\w\$\-]+$/ and $ENV{$file};
+ $file =~ m!^/! or $file =~ m![<\[][^.\-\]>]! or $file =~ /:[^<\[]/;
+}
+
+1;
+__END__
+
diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm
new file mode 100644
index 0000000000..034a0cbc2e
--- /dev/null
+++ b/lib/File/Spec/Win32.pm
@@ -0,0 +1,104 @@
+package File::Spec::Win32;
+
+=head1 NAME
+
+File::Spec::Win32 - methods for Win32 file specs
+
+=head1 SYNOPSIS
+
+ use File::Spec::Win32; # Done internally by File::Spec if needed
+
+=head1 DESCRIPTION
+
+See File::Spec::Unix for a documentation of the methods provided
+there. This package overrides the implementation of these methods, not
+the semantics.
+
+=over
+
+=cut
+
+#use Config;
+#use Cwd;
+use File::Basename;
+require Exporter;
+use strict;
+
+use vars qw(@ISA);
+
+use File::Spec;
+Exporter::import('File::Spec', qw( $Verbose));
+
+@ISA = qw(File::Spec::Unix);
+
+$ENV{EMXSHELL} = 'sh'; # to run `commands`
+
+sub file_name_is_absolute {
+ my($self,$file) = @_;
+ $file =~ m{^([a-z]:)?[\\/]}i ;
+}
+
+sub catdir {
+ my $self = shift;
+ my @args = @_;
+ for (@args) {
+ # append a slash to each argument unless it has one there
+ $_ .= "\\" if $_ eq '' or substr($_,-1) ne "\\";
+ }
+ my $result = $self->canonpath(join('', @args));
+ $result;
+}
+
+=item catfile
+
+Concatenate one or more directory names and a filename to form a
+complete path ending with a filename
+
+=cut
+
+sub catfile {
+ my $self = shift @_;
+ my $file = pop @_;
+ return $file unless @_;
+ my $dir = $self->catdir(@_);
+ $dir =~ s/(\\\.)$//;
+ $dir .= "\\" unless substr($dir,length($dir)-1,1) eq "\\";
+ return $dir.$file;
+}
+
+sub path {
+ local $^W = 1;
+ my($self) = @_;
+ my $path = $ENV{'PATH'} || $ENV{'Path'} || $ENV{'path'};
+ my @path = split(';',$path);
+ foreach(@path) { $_ = '.' if $_ eq '' }
+ @path;
+}
+
+=item canonpath
+
+No physical check on the filesystem, but a logical cleanup of a
+path. On UNIX eliminated successive slashes and successive "/.".
+
+=cut
+
+sub canonpath {
+ my($self,$path) = @_;
+ $path =~ s/^([a-z]:)/\u$1/;
+ $path =~ s|/|\\|g;
+ $path =~ s|\\+|\\|g ; # xx////xx -> xx/xx
+ $path =~ s|(\\\.)+\\|\\|g ; # xx/././xx -> xx/xx
+ $path =~ s|^(\.\\)+|| unless $path eq ".\\"; # ./xx -> xx
+ $path =~ s|\\$||
+ unless $path =~ m#^([a-z]:)?\\#; # xx/ -> xx
+ $path .= '.' if $path =~ m#\\$#;
+ $path;
+}
+
+1;
+__END__
+
+=back
+
+=cut
+
diff --git a/lib/Math/BigFloat.pm b/lib/Math/BigFloat.pm
index 77fb5dd818..576f3410c7 100644
--- a/lib/Math/BigFloat.pm
+++ b/lib/Math/BigFloat.pm
@@ -274,7 +274,7 @@ Math::BigFloat - Arbitrary length float math package
=head1 SYNOPSIS
- use Math::BogFloat;
+ use Math::BigFloat;
$f = Math::BigFloat->new($string);
$f->fadd(NSTR) return NSTR addition
diff --git a/malloc.c b/malloc.c
index c87f3cd68c..ea00e5a5e5 100644
--- a/malloc.c
+++ b/malloc.c
@@ -2,6 +2,106 @@
*
*/
+/*
+ Here are some notes on configuring Perl's malloc.
+
+ There are two macros which serve as bulk disablers of advanced
+ features of this malloc: NO_FANCY_MALLOC, PLAIN_MALLOC (undef by
+ default). Look in the list of default values below to understand
+ their exact effect. Defining NO_FANCY_MALLOC returns malloc.c to the
+ state of the malloc in Perl 5.004. Additionally defining PLAIN_MALLOC
+ returns it to the state as of Perl 5.000.
+
+ Note that some of the settings below may be ignored in the code based
+ on values of other macros. The PERL_CORE symbol is only defined when
+ perl itself is being compiled (so malloc can make some assumptions
+ about perl's facilities being available to it).
+
+ Each config option has a short description, followed by its name,
+ default value, and a comment about the default (if applicable). Some
+ options take a precise value, while the others are just boolean.
+ The boolean ones are listed first.
+
+ # Enable code for an emergency memory pool in $^M. See perlvar.pod
+ # for a description of $^M.
+ PERL_EMERGENCY_SBRK (!PLAIN_MALLOC && PERL_CORE)
+
+ # Enable code for printing memory statistics.
+ DEBUGGING_MSTATS (!PLAIN_MALLOC && PERL_CORE)
+
+ # Move allocation info for small buckets into separate areas.
+ # Memory optimization (especially for small allocations, of the
+ # less than 64 bytes). Since perl usually makes a large number
+ # of small allocations, this is usually a win.
+ PACK_MALLOC (!PLAIN_MALLOC && !RCHECK)
+
+ # Add one page to big powers of two when calculating bucket size.
+ # This is targeted at big allocations, as are common in image
+ # processing.
+ TWO_POT_OPTIMIZE !PLAIN_MALLOC
+
+ # Use intermediate bucket sizes between powers-of-two. This is
+ # generally a memory optimization, and a (small) speed pessimization.
+ BUCKETS_ROOT2 !NO_FANCY_MALLOC
+
+ # Do not check small deallocations for bad free(). Memory
+ # and speed optimization, error reporting pessimization.
+ IGNORE_SMALL_BAD_FREE (!NO_FANCY_MALLOC && !RCHECK)
+
+ # Use table lookup to decide in which bucket a given allocation will go.
+ SMALL_BUCKET_VIA_TABLE !NO_FANCY_MALLOC
+
+ # Use system-malloc() to emulate sbrk(). Normally only used with broken
+ # sbrk()s.
+ PERL_SBRK_VIA_MALLOC undef
+
+ # Disable memory overwrite checking with DEBUGGING. Memory and speed
+ # optimization, error reporting pessimization.
+ NO_RCHECK undef
+
+ # Enable memory overwrite checking with DEBUGGING. Memory and speed
+ # pessimization, error reporting optimization
+ RCHECK (DEBUGGING && !NO_RCHECK)
+
+ # Failed allocations bigger than this size croak (if
+ # PERL_EMERGENCY_SBRK is enabled) without touching $^M. See
+ # perlvar.pod for a description of $^M.
+ BIG_SIZE (1<<16) # 64K
+
+ # Starting from this power of two, add an extra page to the
+ # size of the bucket. This enables optimized allocations of sizes
+ # close to powers of 2. Note that the value is indexed at 0.
+ FIRST_BIG_POW2 15 # 32K, 16K is used too often
+
+ # Estimate of minimal memory footprint. malloc uses this value to
+ # request the most reasonable largest blocks of memory from the system.
+ FIRST_SBRK (48*1024)
+
+ # Round up sbrk()s to multiples of this.
+ MIN_SBRK 2048
+
+ # Round up sbrk()s to multiples of this percent of footprint.
+ MIN_SBRK_FRAC 3
+
+ # Add this much memory to big powers of two to get the bucket size.
+ PERL_PAGESIZE 4096
+
+ # This many sbrk() discontinuities should be tolerated even
+ # from the start without deciding that sbrk() is usually
+ # discontinuous.
+ SBRK_ALLOW_FAILURES 3
+
+ # This many continuous sbrk()s compensate for one discontinuous one.
+ SBRK_FAILURE_PRICE 50
+
+ # Which allocator to use if PERL_SBRK_VIA_MALLOC
+ SYSTEM_ALLOC(a) malloc(a)
+
+ This implementation assumes that calling PerlIO_printf() does not
+ result in any memory allocation calls (used during a panic).
+
+ */
+
#ifndef NO_FANCY_MALLOC
# ifndef SMALL_BUCKET_VIA_TABLE
# define SMALL_BUCKET_VIA_TABLE
@@ -21,8 +121,8 @@
# ifndef TWO_POT_OPTIMIZE
# define TWO_POT_OPTIMIZE
# endif
-# if defined(PERL_CORE) && !defined(EMERGENCY_SBRK)
-# define EMERGENCY_SBRK
+# if defined(PERL_CORE) && !defined(PERL_EMERGENCY_SBRK)
+# define PERL_EMERGENCY_SBRK
# endif
# if defined(PERL_CORE) && !defined(DEBUGGING_MSTATS)
# define DEBUGGING_MSTATS
@@ -61,12 +161,46 @@
* but bombs when it runs out.
*/
-#include "EXTERN.h"
-#include "perl.h"
-
-#ifndef PERL_CORE
+#ifdef PERL_CORE
+# include "EXTERN.h"
+# include "perl.h"
+#else
+# ifdef PERL_FOR_X2P
+# include "../EXTERN.h"
+# include "../perl.h"
+# else
+# include <stdlib.h>
+# include <stdio.h>
+# include <memory.h>
+# define _(arg) arg
+# ifndef Malloc_t
+# define Malloc_t void *
+# endif
+# ifndef MEM_SIZE
+# define MEM_SIZE unsigned long
+# endif
+# ifndef LONG_MAX
+# define LONG_MAX 0x7FFFFFFF
+# endif
+# ifndef UV
+# define UV unsigned long
+# endif
+# ifndef caddr_t
+# define caddr_t char *
+# endif
+# ifndef Free_t
+# define Free_t void
+# endif
+# define Copy(s,d,n,t) (void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
+# define PerlEnv_getenv getenv
+# define PerlIO_printf fprintf
+# define PerlIO_stderr() stderr
+# endif
# ifndef croak /* make depend */
-# define croak(mess) fprintf(stderr,mess); exit(1);
+# define croak(mess, arg) warn((mess), (arg)); exit(1);
+# endif
+# ifndef warn
+# define warn(mess, arg) fprintf(stderr, (mess), (arg));
# endif
# ifdef DEBUG_m
# undef DEBUG_m
@@ -139,7 +273,7 @@ union overhead {
};
#ifdef DEBUGGING
-static void botch _((char *s));
+static void botch _((char *diag, char *s));
#endif
static void morecore _((int bucket));
static int findbucket _((union overhead *freep, int srchlen));
@@ -173,6 +307,19 @@ static int findbucket _((union overhead *freep, int srchlen));
# define BUCKETS_PER_POW2 1
#endif
+#if !defined(MEM_ALIGNBYTES) || ((MEM_ALIGNBYTES > 4) && !defined(STRICT_ALIGNMENT))
+/* Figure out the alignment of void*. */
+struct aligner {
+ char c;
+ void *p;
+};
+# define ALIGN_SMALL ((int)((caddr_t)&(((struct aligner*)0)->p)))
+#else
+# define ALIGN_SMALL MEM_ALIGNBYTES
+#endif
+
+#define IF_ALIGN_8(yes,no) ((ALIGN_SMALL>4) ? (yes) : (no))
+
#ifdef BUCKETS_ROOT2
# define MAX_BUCKET_BY_TABLE 13
static u_short buck_size[MAX_BUCKET_BY_TABLE + 1] =
@@ -317,7 +464,7 @@ static char bucket_of[] =
/* 0 to 15 in 4-byte increments. */
(sizeof(void*) > 4 ? 6 : 5), /* 4/8, 5-th bucket for better reports */
6, /* 8 */
- 7, 8, /* 12, 16 */
+ IF_ALIGN_8(8,7), 8, /* 16/12, 16 */
9, 9, 10, 10, /* 24, 32 */
11, 11, 11, 11, /* 48 */
12, 12, 12, 12, /* 64 */
@@ -391,7 +538,7 @@ static char bucket_of[] =
#endif
#ifndef FIRST_SBRK
-# define FIRST_SBRK (32*1024)
+# define FIRST_SBRK (48*1024)
#endif
/* Minimal sbrk in percents of what is already alloced. */
@@ -422,8 +569,8 @@ emergency_sbrk(size)
{
if (size >= BIG_SIZE) {
/* Give the possibility to recover: */
- die("Out of memory during request for %i bytes", size);
- /* croak may eat too much memory. */
+ MUTEX_UNLOCK(&malloc_mutex);
+ croak("Out of memory during \"large\" request for %i bytes", size);
}
if (!emergency_buffer) {
@@ -451,7 +598,8 @@ emergency_sbrk(size)
emergency_buffer_size = SvLEN(sv) + M_OVERHEAD;
SvPOK_off(sv);
SvREADONLY_on(sv);
- die("Out of memory!"); /* croak may eat too much memory. */
+ MUTEX_UNLOCK(&malloc_mutex);
+ croak("Out of memory during request for %i bytes", size);
}
else if (emergency_buffer_size >= size) {
emergency_buffer_size -= size;
@@ -499,15 +647,15 @@ static u_int start_slack;
static u_int goodsbrk;
#ifdef DEBUGGING
-#define ASSERT(p) if (!(p)) botch(STRINGIFY(p)); else
+#define ASSERT(p,diag) if (!(p)) botch(diag,STRINGIFY(p)); else
static void
-botch(char *s)
+botch(char *diag, char *s)
{
- PerlIO_printf(PerlIO_stderr(), "assertion botched: %s\n", s);
+ PerlIO_printf(PerlIO_stderr(), "assertion botched (%s?): %s\n", diag, s);
PerlProc_abort();
}
#else
-#define ASSERT(p)
+#define ASSERT(p, diag)
#endif
Malloc_t
@@ -524,7 +672,7 @@ malloc(register size_t nbytes)
BARK_64K_LIMIT("Allocation",nbytes,nbytes);
#ifdef DEBUGGING
if ((long)nbytes < 0)
- croak("panic: malloc");
+ croak("%s", "panic: malloc");
#endif
MUTEX_LOCK(&malloc_mutex);
@@ -719,6 +867,184 @@ get_from_bigger_buckets(int bucket, MEM_SIZE size)
return NULL;
}
+static union overhead *
+getpages(int needed, int *nblksp, int bucket)
+{
+ /* Need to do (possibly expensive) system call. Try to
+ optimize it for rare calling. */
+ MEM_SIZE require = needed - sbrked_remains;
+ char *cp;
+ union overhead *ovp;
+ int slack = 0;
+
+ if (sbrk_good > 0) {
+ if (!last_sbrk_top && require < FIRST_SBRK)
+ require = FIRST_SBRK;
+ else if (require < MIN_SBRK) require = MIN_SBRK;
+
+ if (require < goodsbrk * MIN_SBRK_FRAC / 100)
+ require = goodsbrk * MIN_SBRK_FRAC / 100;
+ require = ((require - 1 + MIN_SBRK) / MIN_SBRK) * MIN_SBRK;
+ } else {
+ require = needed;
+ last_sbrk_top = 0;
+ sbrked_remains = 0;
+ }
+
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+ "sbrk(%ld) for %ld-byte-long arena\n",
+ (long)require, (long) needed));
+ cp = (char *)sbrk(require);
+#ifdef DEBUGGING_MSTATS
+ sbrks++;
+#endif
+ if (cp == last_sbrk_top) {
+ /* Common case, anything is fine. */
+ sbrk_good++;
+ ovp = (union overhead *) (cp - sbrked_remains);
+ sbrked_remains = require - (needed - sbrked_remains);
+ } else if (cp == (char *)-1) { /* no more room! */
+ ovp = (union overhead *)emergency_sbrk(needed);
+ if (ovp == (union overhead *)-1)
+ return 0;
+ return ovp;
+ } else { /* Non-continuous or first sbrk(). */
+ long add = sbrked_remains;
+ char *newcp;
+
+ if (sbrked_remains) { /* Put rest into chain, we
+ cannot use it right now. */
+ add_to_chain((void*)(last_sbrk_top - sbrked_remains),
+ sbrked_remains, 0);
+ }
+
+ /* Second, check alignment. */
+ slack = 0;
+
+#ifndef atarist /* on the atari we dont have to worry about this */
+# ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
+
+ /* CHUNK_SHIFT is 1 for PACK_MALLOC, 0 otherwise. */
+ if ((UV)cp & (0x7FF >> CHUNK_SHIFT)) { /* Not aligned. */
+ slack = (0x800 >> CHUNK_SHIFT)
+ - ((UV)cp & (0x7FF >> CHUNK_SHIFT));
+ add += slack;
+ }
+# endif
+#endif /* atarist */
+
+ if (add) {
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+ "sbrk(%ld) to fix non-continuous/off-page sbrk:\n\t%ld for alignement,\t%ld were assumed to come from the tail of the previous sbrk\n",
+ (long)add, (long) slack,
+ (long) sbrked_remains));
+ newcp = (char *)sbrk(add);
+#if defined(DEBUGGING_MSTATS)
+ sbrks++;
+ sbrk_slack += add;
+#endif
+ if (newcp != cp + require) {
+ /* Too bad: even rounding sbrk() is not continuous.*/
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+ "failed to fix bad sbrk()\n"));
+#ifdef PACK_MALLOC
+ if (slack) {
+ MUTEX_UNLOCK(&malloc_mutex);
+ croak("%s", "panic: Off-page sbrk");
+ }
+#endif
+ if (sbrked_remains) {
+ /* Try again. */
+#if defined(DEBUGGING_MSTATS)
+ sbrk_slack += require;
+#endif
+ require = needed;
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+ "straight sbrk(%ld)\n",
+ (long)require));
+ cp = (char *)sbrk(require);
+#ifdef DEBUGGING_MSTATS
+ sbrks++;
+#endif
+ if (cp == (char *)-1)
+ return 0;
+ }
+ sbrk_good = -1; /* Disable optimization!
+ Continue with not-aligned... */
+ } else {
+ cp += slack;
+ require += sbrked_remains;
+ }
+ }
+
+ if (last_sbrk_top) {
+ sbrk_good -= SBRK_FAILURE_PRICE;
+ }
+
+ ovp = (union overhead *) cp;
+ /*
+ * Round up to minimum allocation size boundary
+ * and deduct from block count to reflect.
+ */
+
+#ifndef I286 /* Again, this should always be ok on an 80286 */
+ if ((UV)ovp & 7) {
+ ovp = (union overhead *)(((UV)ovp + 8) & ~7);
+ DEBUG_m(PerlIO_printf(Perl_debug_log,
+ "fixing sbrk(): %d bytes off machine alignement\n",
+ (int)((UV)ovp & 7)));
+ (*nblksp)--;
+# if defined(DEBUGGING_MSTATS)
+ /* This is only approx. if TWO_POT_OPTIMIZE: */
+ sbrk_slack += (1 << bucket);
+# endif
+ }
+#endif
+ sbrked_remains = require - needed;
+ }
+ last_sbrk_top = cp + require;
+ last_op = (char*) cp;
+#ifdef DEBUGGING_MSTATS
+ goodsbrk += require;
+#endif
+ return ovp;
+}
+
+static int
+getpages_adjacent(int require)
+{
+ if (require <= sbrked_remains) {
+ sbrked_remains -= require;
+ } else {
+ char *cp;
+
+ require -= sbrked_remains;
+ /* We do not try to optimize sbrks here, we go for place. */
+ cp = (char*) sbrk(require);
+#ifdef DEBUGGING_MSTATS
+ sbrks++;
+ goodsbrk += require;
+#endif
+ if (cp == last_sbrk_top) {
+ sbrked_remains = 0;
+ last_sbrk_top = cp + require;
+ } else {
+ /* Report the failure: */
+ if (sbrked_remains)
+ add_to_chain((void*)(last_sbrk_top - sbrked_remains),
+ sbrked_remains, 0);
+ add_to_chain((void*)cp, require, 0);
+ sbrk_good -= SBRK_FAILURE_PRICE;
+ sbrked_remains = 0;
+ last_sbrk_top = 0;
+ last_op = 0;
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
/*
* Allocate more memory to the indicated bucket.
*/
@@ -727,19 +1053,18 @@ morecore(register int bucket)
{
register union overhead *ovp;
register int rnu; /* 2^rnu bytes will be requested */
- register int nblks; /* become nblks blocks of the desired size */
+ int nblks; /* become nblks blocks of the desired size */
register MEM_SIZE siz, needed;
- int slack = 0;
if (nextf[bucket])
return;
if (bucket == sizeof(MEM_SIZE)*8*BUCKETS_PER_POW2) {
- croak("Allocation too large");
+ MUTEX_UNLOCK(&malloc_mutex);
+ croak("%s", "Out of memory during ridiculously large request");
}
-
- if (bucket > max_bucket) {
+ if (bucket > max_bucket)
max_bucket = bucket;
- }
+
rnu = ( (bucket <= (LOG_OF_MIN_ARENA << BUCKET_POW2_SHIFT))
? LOG_OF_MIN_ARENA
: (bucket >> BUCKET_POW2_SHIFT) );
@@ -762,9 +1087,9 @@ morecore(register int bucket)
DEBUG_m(PerlIO_printf(Perl_debug_log,
"stealing %ld bytes from chain\n",
(long) needed));
- } else if (ovp = (union overhead*)
- get_from_bigger_buckets((rnu << BUCKET_POW2_SHIFT) + 1,
- needed)) {
+ } else if ( (ovp = (union overhead*)
+ get_from_bigger_buckets((rnu << BUCKET_POW2_SHIFT) + 1,
+ needed)) ) {
DEBUG_m(PerlIO_printf(Perl_debug_log,
"stealing %ld bytes from bigger buckets\n",
(long) needed));
@@ -772,143 +1097,12 @@ morecore(register int bucket)
ovp = (union overhead *)(last_sbrk_top - sbrked_remains);
sbrked_remains -= needed;
last_op = (char*)ovp;
- } else {
- /* Need to do (possibly expensive) system call. Try to
- optimize it for rare calling. */
- MEM_SIZE require = needed - sbrked_remains;
- char *cp;
-
- if (sbrk_good > 0) {
- if (!last_sbrk_top && require < FIRST_SBRK)
- require = FIRST_SBRK;
- else if (require < MIN_SBRK) require = MIN_SBRK;
-
- if (require < goodsbrk * MIN_SBRK_FRAC / 100)
- require = goodsbrk * MIN_SBRK_FRAC / 100;
- require = ((require - 1 + MIN_SBRK) / MIN_SBRK) * MIN_SBRK;
- } else {
- require = needed;
- last_sbrk_top = 0;
- sbrked_remains = 0;
- }
-
- DEBUG_m(PerlIO_printf(Perl_debug_log,
- "sbrk(%ld) for %ld-byte-long arena\n",
- (long)require, (long) needed));
- cp = (char *)sbrk(require);
-#ifdef DEBUGGING_MSTATS
- sbrks++;
-#endif
- if (cp == last_sbrk_top) {
- /* Common case, anything is fine. */
- sbrk_good++;
- ovp = (union overhead *) (cp - sbrked_remains);
- sbrked_remains = require - (needed - sbrked_remains);
- } else if (cp == (char *)-1) { /* no more room! */
- ovp = (union overhead *)emergency_sbrk(needed);
- if (ovp == (union overhead *)-1)
- return;
- goto gotit;
- } else { /* Non-continuous or first sbrk(). */
- long add = sbrked_remains;
- char *newcp;
-
- if (sbrked_remains) { /* Put rest into chain, we
- cannot use it right now. */
- add_to_chain((void*)(last_sbrk_top - sbrked_remains),
- sbrked_remains, 0);
- }
+ } else
+ ovp = getpages(needed, &nblks, bucket);
- /* Second, check alignment. */
- slack = 0;
+ if (!ovp)
+ return;
-#ifndef atarist /* on the atari we dont have to worry about this */
-# ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
-
- /* CHUNK_SHIFT is 1 for PACK_MALLOC, 0 otherwise. */
- if ((UV)cp & (0x7FF >> CHUNK_SHIFT)) { /* Not aligned. */
- slack = (0x800 >> CHUNK_SHIFT)
- - ((UV)cp & (0x7FF >> CHUNK_SHIFT));
- add += slack;
- }
-# endif
-#endif /* atarist */
-
- if (add) {
- DEBUG_m(PerlIO_printf(Perl_debug_log,
-"sbrk(%ld) to fix non-continuous/off-page sbrk:\n\t%ld for alignement,\t%ld were assumed to come from the tail of the previous sbrk\n",
- (long)add, (long) slack,
- (long) sbrked_remains));
- newcp = (char *)sbrk(add);
-#if defined(DEBUGGING_MSTATS)
- sbrks++;
- sbrk_slack += add;
-#endif
- if (newcp != cp + require) {
- /* Too bad: even rounding sbrk() is not continuous.*/
- DEBUG_m(PerlIO_printf(Perl_debug_log,
- "failed to fix bad sbrk()\n"));
-#ifdef PACK_MALLOC
- if (slack)
- croak("panic: Off-page sbrk");
-#endif
- if (sbrked_remains) {
- /* Try again. */
-#if defined(DEBUGGING_MSTATS)
- sbrk_slack += require;
-#endif
- require = needed;
- DEBUG_m(PerlIO_printf(Perl_debug_log,
- "straight sbrk(%ld)\n",
- (long)require));
- cp = (char *)sbrk(require);
-#ifdef DEBUGGING_MSTATS
- sbrks++;
-#endif
- if (cp == (char *)-1)
- return;
- }
- sbrk_good = -1; /* Disable optimization!
- Continue with not-aligned... */
- } else {
- cp += slack;
- require += sbrked_remains;
- }
- }
-
- if (last_sbrk_top) {
- sbrk_good -= SBRK_FAILURE_PRICE;
- }
-
- ovp = (union overhead *) cp;
- /*
- * Round up to minimum allocation size boundary
- * and deduct from block count to reflect.
- */
-
-#ifndef I286 /* Again, this should always be ok on an 80286 */
- if ((UV)ovp & 7) {
- ovp = (union overhead *)(((UV)ovp + 8) & ~7);
- DEBUG_m(PerlIO_printf(Perl_debug_log,
- "fixing sbrk(): %d bytes off machine alignement\n",
- (int)((UV)ovp & 7)));
- nblks--;
-# if defined(DEBUGGING_MSTATS)
- /* This is only approx. if TWO_POT_OPTIMIZE: */
- sbrk_slack += (1 << bucket);
-# endif
- }
-#endif
- sbrked_remains = require - needed;
- }
- last_sbrk_top = cp + require;
- last_op = (char*) cp;
-#ifdef DEBUGGING_MSTATS
- goodsbrk += require;
-#endif
- }
-
- gotit:
/*
* Add new memory allocated to that on
* free list for this hash bucket.
@@ -990,13 +1184,13 @@ free(void *mp)
warn("%s free() ignored",
ovp->ov_rmagic == RMAGIC - 1 ? "Duplicate" : "Bad");
#else
- warn("Bad free() ignored");
+ warn("%s", "Bad free() ignored");
#endif
return; /* sanity */
}
MUTEX_LOCK(&malloc_mutex);
#ifdef RCHECK
- ASSERT(ovp->ov_rmagic == RMAGIC);
+ ASSERT(ovp->ov_rmagic == RMAGIC, "chunk's head overwrite");
if (OV_INDEX(ovp) <= MAX_SHORT_BUCKET) {
int i;
MEM_SIZE nbytes = ovp->ov_size + 1;
@@ -1005,15 +1199,15 @@ free(void *mp)
i = 4 - i;
while (i--) {
ASSERT(*((char *)((caddr_t)ovp + nbytes - RSLOP + i))
- == RMAGIC_C);
+ == RMAGIC_C, "chunk's tail overwrite");
}
}
nbytes = (nbytes + 3) &~ 3;
- ASSERT(*(u_int *)((caddr_t)ovp + nbytes - RSLOP) == RMAGIC);
+ ASSERT(*(u_int *)((caddr_t)ovp + nbytes - RSLOP) == RMAGIC, "chunk's tail overwrite");
}
ovp->ov_rmagic = RMAGIC - 1;
#endif
- ASSERT(OV_INDEX(ovp) < NBUCKETS);
+ ASSERT(OV_INDEX(ovp) < NBUCKETS, "chunk's head overwrite");
size = OV_INDEX(ovp);
ovp->ov_next = nextf[size];
nextf[size] = ovp;
@@ -1038,7 +1232,8 @@ realloc(void *mp, size_t nbytes)
{
register MEM_SIZE onb;
union overhead *ovp;
- char *res, prev_bucket;
+ char *res;
+ int prev_bucket;
register int bucket;
int was_alloced = 0, incr;
char *cp = (char*)mp;
@@ -1047,7 +1242,7 @@ realloc(void *mp, size_t nbytes)
MEM_SIZE size = nbytes;
if ((long)nbytes < 0)
- croak("panic: realloc");
+ croak("%s", "panic: realloc");
#endif
BARK_64K_LIMIT("Reallocation",nbytes,size);
@@ -1128,11 +1323,11 @@ realloc(void *mp, size_t nbytes)
if ((i = nb & 3)) {
i = 4 - i;
while (i--) {
- ASSERT(*((char *)((caddr_t)ovp + nb - RSLOP + i)) == RMAGIC_C);
+ ASSERT(*((char *)((caddr_t)ovp + nb - RSLOP + i)) == RMAGIC_C, "chunk's tail overwrite");
}
}
nb = (nb + 3) &~ 3;
- ASSERT(*(u_int *)((caddr_t)ovp + nb - RSLOP) == RMAGIC);
+ ASSERT(*(u_int *)((caddr_t)ovp + nb - RSLOP) == RMAGIC, "chunk's tail overwrite");
/*
* Convert amount of memory requested into
* closest block size stored in hash buckets
@@ -1169,41 +1364,15 @@ realloc(void *mp, size_t nbytes)
newarena = (1 << pow) + POW2_OPTIMIZE_SURPLUS(pow * BUCKETS_PER_POW2);
require = newarena - onb - M_OVERHEAD;
- if (require <= sbrked_remains) {
- sbrked_remains -= require;
- } else {
- char *cp;
-
- require -= sbrked_remains;
- /* We do not try to optimize sbrks here, we go for place. */
- cp = (char*) sbrk(require);
+ if (getpages_adjacent(require)) {
#ifdef DEBUGGING_MSTATS
- sbrks++;
- goodsbrk += require;
-#endif
- if (cp == last_sbrk_top) {
- sbrked_remains = 0;
- last_sbrk_top = cp + require;
- } else {
- /* Report the failure: */
- if (sbrked_remains)
- add_to_chain((void*)(last_sbrk_top - sbrked_remains),
- sbrked_remains, 0);
- add_to_chain((void*)cp, require, 0);
- sbrk_good -= SBRK_FAILURE_PRICE;
- sbrked_remains = 0;
- last_sbrk_top = 0;
- last_op = 0;
- goto hard_way;
- }
- }
-
-#ifdef DEBUGGING_MSTATS
- nmalloc[bucket]--;
- nmalloc[pow * BUCKETS_PER_POW2]++;
+ nmalloc[bucket]--;
+ nmalloc[pow * BUCKETS_PER_POW2]++;
#endif
- *(cp - M_OVERHEAD) = pow * BUCKETS_PER_POW2; /* Fill index. */
- goto inplace_label;
+ *(cp - M_OVERHEAD) = pow * BUCKETS_PER_POW2; /* Fill index. */
+ goto inplace_label;
+ } else
+ goto hard_way;
} else {
hard_way:
MUTEX_UNLOCK(&malloc_mutex);
@@ -1261,8 +1430,18 @@ calloc(register size_t elements, register size_t size)
MEM_SIZE
malloced_size(void *p)
{
- int bucket = OV_INDEX((union overhead *)p);
-
+ union overhead *ovp = (union overhead *)
+ ((caddr_t)p - sizeof (union overhead) * CHUNK_SHIFT);
+ int bucket = OV_INDEX(ovp);
+#ifdef RCHECK
+ /* The caller wants to have a complete control over the chunk,
+ disable the memory checking inside the chunk. */
+ if (bucket <= MAX_SHORT_BUCKET) {
+ MEM_SIZE size = BUCKET_SIZE_REAL(bucket);
+ ovp->ov_size = size + M_OVERHEAD - 1;
+ *((u_int *)((caddr_t)ovp + size + M_OVERHEAD - RSLOP)) = RMAGIC;
+ }
+#endif
return BUCKET_SIZE_REAL(bucket);
}
@@ -1303,11 +1482,11 @@ dump_mstats(char *s)
}
if (s)
PerlIO_printf(PerlIO_stderr(),
- "Memory allocation statistics %s (buckets %d(%d)..%d(%d)\n",
+ "Memory allocation statistics %s (buckets %ld(%ld)..%ld(%ld)\n",
s,
- BUCKET_SIZE_REAL(MIN_BUCKET),
- BUCKET_SIZE(MIN_BUCKET),
- BUCKET_SIZE_REAL(topbucket), BUCKET_SIZE(topbucket));
+ (long)BUCKET_SIZE_REAL(MIN_BUCKET),
+ (long)BUCKET_SIZE(MIN_BUCKET),
+ (long)BUCKET_SIZE_REAL(topbucket), (long)BUCKET_SIZE(topbucket));
PerlIO_printf(PerlIO_stderr(), "%8d free:", totfree);
for (i = MIN_EVEN_REPORT; i <= topbucket; i += BUCKETS_PER_POW2) {
PerlIO_printf(PerlIO_stderr(),
diff --git a/mg.h b/mg.h
index 1490470218..16efdb5d7a 100644
--- a/mg.h
+++ b/mg.h
@@ -7,6 +7,9 @@
*
*/
+#ifdef STRUCT_MGVTBL_DEFINITION
+STRUCT_MGVTBL_DEFINITION;
+#else
struct mgvtbl {
int (CPERLscope(*svt_get)) _((SV *sv, MAGIC* mg));
int (CPERLscope(*svt_set)) _((SV *sv, MAGIC* mg));
@@ -14,6 +17,7 @@ struct mgvtbl {
int (CPERLscope(*svt_clear)) _((SV *sv, MAGIC* mg));
int (CPERLscope(*svt_free)) _((SV *sv, MAGIC* mg));
};
+#endif
struct magic {
MAGIC* mg_moremagic;
diff --git a/objpp.h b/objpp.h
index 5a6dafb33b..75f8e69768 100644
--- a/objpp.h
+++ b/objpp.h
@@ -67,8 +67,6 @@
#define avhv_delete CPerlObj::Perl_avhv_delete
#undef avhv_delete_ent
#define avhv_delete_ent CPerlObj::Perl_avhv_delete_ent
-#undef avhv_iterinit
-#define avhv_iterinit CPerlObj::Perl_avhv_iterinit
#undef avhv_iternext
#define avhv_iternext CPerlObj::Perl_avhv_iternext
#undef avhv_iterval
@@ -499,6 +497,8 @@
#define init_debugger CPerlObj::init_debugger
#undef init_ids
#define init_ids CPerlObj::init_ids
+#undef init_interp
+#define init_interp CPerlObj::init_interp
#undef init_main_thread
#define init_main_thread CPerlObj::init_main_thread
#undef init_main_stash
@@ -651,6 +651,8 @@
#define magic_wipepack CPerlObj::Perl_magic_wipepack
#undef magicname
#define magicname CPerlObj::Perl_magicname
+#undef malloced_size
+#define malloced_size CPerlObj::Perl_malloced_size
#undef markstack_grow
#define markstack_grow CPerlObj::Perl_markstack_grow
#undef markstack_ptr
diff --git a/op.c b/op.c
index 472a475312..d39020504c 100644
--- a/op.c
+++ b/op.c
@@ -3383,7 +3383,7 @@ newSUB(I32 floor, OP *o, OP *proto, OP *block)
GV *gv = gv_fetchpv(name ? name : "__ANON__",
GV_ADDMULTI | (block ? 0 : GV_NOINIT), SVt_PVCV);
char *ps = proto ? SvPVx(((SVOP*)proto)->op_sv, na) : Nullch;
- register CV *cv;
+ register CV *cv=0;
I32 ix;
if (o)
diff --git a/op.h b/op.h
index 7c60aec46e..fee95f7c5d 100644
--- a/op.h
+++ b/op.h
@@ -32,6 +32,9 @@ typedef U32 PADOFFSET;
#define OPCODE U16
#endif
+#ifdef BASEOP_DEFINITION
+#define BASEOP BASEOP_DEFINITION
+#else
#define BASEOP \
OP* op_next; \
OP* op_sibling; \
@@ -41,6 +44,7 @@ typedef U32 PADOFFSET;
U16 op_seq; \
U8 op_flags; \
U8 op_private;
+#endif
#define OP_GIMME(op,dfl) \
(((op)->op_flags & OPf_WANT) == OPf_WANT_VOID ? G_VOID : \
diff --git a/patchlevel.h b/patchlevel.h
index 52866bbfc9..a5d7580941 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -1,6 +1,6 @@
#ifndef __PATCHLEVEL_H_INCLUDED__
#define PATCHLEVEL 4
-#define SUBVERSION 67
+#define SUBVERSION 68
/*
local_patches -- list of locally applied less-than-subversion patches.
diff --git a/perl.c b/perl.c
index 7e2d562101..0cacfc9262 100644
--- a/perl.c
+++ b/perl.c
@@ -45,41 +45,13 @@ dEXTCONST char rcsid[] = "perl.c\nPatch level: ###\n";
#endif
#endif
-#define I_REINIT \
- STMT_START { \
- chopset = " \n-"; \
- copline = NOLINE; \
- curcop = &compiling; \
- curcopdb = NULL; \
- dbargs = 0; \
- dlmax = 128; \
- laststatval = -1; \
- laststype = OP_STAT; \
- maxscream = -1; \
- maxsysfd = MAXSYSFD; \
- statname = Nullsv; \
- tmps_floor = -1; \
- tmps_ix = -1; \
- op_mask = NULL; \
- dlmax = 128; \
- laststatval = -1; \
- laststype = OP_STAT; \
- mess_sv = Nullsv; \
- splitstr = " "; \
- generation = 100; \
- exitlist = NULL; \
- exitlistlen = 0; \
- regindent = 0; \
- in_clean_objs = FALSE; \
- in_clean_all= FALSE; \
- } STMT_END
-
#ifdef PERL_OBJECT
static I32 read_e_script _((CPerlObj* pPerl, int idx, SV *buf_sv, int maxlen));
#else
static void find_beginning _((void));
static void forbid_setid _((char *));
static void incpush _((char *, int));
+static void init_interp _((void));
static void init_ids _((void));
static void init_debugger _((void));
static void init_lexer _((void));
@@ -140,6 +112,7 @@ perl_construct(register PerlInterpreter *sv_interp)
#endif
#ifdef MULTIPLICITY
+ ++ninterps;
Zero(sv_interp, 1, PerlInterpreter);
#endif
@@ -170,7 +143,7 @@ perl_construct(register PerlInterpreter *sv_interp)
thr = init_main_thread();
#endif /* USE_THREADS */
- linestr = NEWSV(65,80);
+ linestr = NEWSV(65,79);
sv_upgrade(linestr,SVt_PVIV);
if (!SvREADONLY(&sv_undef)) {
@@ -209,11 +182,11 @@ perl_construct(register PerlInterpreter *sv_interp)
init_stacks(ARGS);
#ifdef MULTIPLICITY
- I_REINIT;
+ init_interp();
perl_destruct_level = 1;
#else
- if(perl_destruct_level > 0)
- I_REINIT;
+ if (perl_destruct_level > 0)
+ init_interp();
#endif
init_ids();
@@ -357,6 +330,10 @@ perl_destruct(register PerlInterpreter *sv_interp)
LEAVE;
FREETMPS;
+#ifdef MULTIPLICITY
+ --ninterps;
+#endif
+
/* We must account for everything. */
/* Destroy the main CV and syntax tree */
@@ -1798,6 +1775,72 @@ my_unexec(void)
#endif
}
+/* initialize curinterp */
+STATIC void
+init_interp(void)
+{
+
+#ifdef PERL_OBJECT /* XXX kludge */
+#define I_REINIT \
+ STMT_START { \
+ chopset = " \n-"; \
+ copline = NOLINE; \
+ curcop = &compiling; \
+ curcopdb = NULL; \
+ dbargs = 0; \
+ dlmax = 128; \
+ laststatval = -1; \
+ laststype = OP_STAT; \
+ maxscream = -1; \
+ maxsysfd = MAXSYSFD; \
+ statname = Nullsv; \
+ tmps_floor = -1; \
+ tmps_ix = -1; \
+ op_mask = NULL; \
+ dlmax = 128; \
+ laststatval = -1; \
+ laststype = OP_STAT; \
+ mess_sv = Nullsv; \
+ splitstr = " "; \
+ generation = 100; \
+ exitlist = NULL; \
+ exitlistlen = 0; \
+ regindent = 0; \
+ in_clean_objs = FALSE; \
+ in_clean_all= FALSE; \
+ profiledata = NULL; \
+ rsfp = Nullfp; \
+ rsfp_filters= Nullav; \
+ } STMT_END
+ I_REINIT;
+#else
+# ifdef MULTIPLICITY
+# define PERLVAR(var,type)
+# define PERLVARI(var,type,init) curinterp->var = init;
+# define PERLVARIC(var,type,init) curinterp->var = init;
+# include "intrpvar.h"
+# ifndef USE_THREADS
+# include "thrdvar.h"
+# endif
+# undef PERLVAR
+# undef PERLVARI
+# undef PERLVARIC
+# else
+# define PERLVAR(var,type)
+# define PERLVARI(var,type,init) var = init;
+# define PERLVARIC(var,type,init) var = init;
+# include "intrpvar.h"
+# ifndef USE_THREADS
+# include "thrdvar.h"
+# endif
+# undef PERLVAR
+# undef PERLVARI
+# undef PERLVARIC
+# endif
+#endif
+
+}
+
STATIC void
init_main_stash(void)
{
@@ -2303,44 +2346,23 @@ init_stacks(ARGSproto)
tmps_ix = -1;
tmps_max = REASONABLE(128);
- /*
- * The following stacks almost certainly should be per-interpreter,
- * but for now they're not. XXX
- */
-
- if (markstack) {
- markstack_ptr = markstack;
- } else {
- New(54,markstack,REASONABLE(32),I32);
- markstack_ptr = markstack;
- markstack_max = markstack + REASONABLE(32);
- }
+ New(54,markstack,REASONABLE(32),I32);
+ markstack_ptr = markstack;
+ markstack_max = markstack + REASONABLE(32);
SET_MARKBASE;
- if (scopestack) {
- scopestack_ix = 0;
- } else {
- New(54,scopestack,REASONABLE(32),I32);
- scopestack_ix = 0;
- scopestack_max = REASONABLE(32);
- }
+ New(54,scopestack,REASONABLE(32),I32);
+ scopestack_ix = 0;
+ scopestack_max = REASONABLE(32);
- if (savestack) {
- savestack_ix = 0;
- } else {
- New(54,savestack,REASONABLE(128),ANY);
- savestack_ix = 0;
- savestack_max = REASONABLE(128);
- }
+ New(54,savestack,REASONABLE(128),ANY);
+ savestack_ix = 0;
+ savestack_max = REASONABLE(128);
- if (retstack) {
- retstack_ix = 0;
- } else {
- New(54,retstack,REASONABLE(16),OP*);
- retstack_ix = 0;
- retstack_max = REASONABLE(16);
- }
+ New(54,retstack,REASONABLE(16),OP*);
+ retstack_ix = 0;
+ retstack_max = REASONABLE(16);
}
#undef REASONABLE
@@ -2359,12 +2381,10 @@ nuke_stacks(void)
curstackinfo = p;
}
Safefree(tmps_stack);
- /* XXX refcount interpreters to determine when to free global data
Safefree(markstack);
Safefree(scopestack);
Safefree(savestack);
Safefree(retstack);
- */
DEBUG( {
Safefree(debname);
Safefree(debdelim);
diff --git a/perl.h b/perl.h
index c8bd8b5e0e..3d20cf610f 100644
--- a/perl.h
+++ b/perl.h
@@ -90,8 +90,8 @@ are local to a function.
PERL HOST
1. The perl host is linked with perlX.lib to get perl_alloc. This
function will return a pointer to CPerlObj (the PERL_OBJECT). It
-takes pointers to the various PerlXXX_YYY interfaces (see ipdir.h for
-information on this).
+takes pointers to the various PerlXXX_YYY interfaces (see iperlsys.h
+for more information on this).
2. The perl host calls the same functions as normally would be
called in setting up and running a perl script, except that the
functions are now member functions of the PERL_OBJECT.
@@ -312,13 +312,7 @@ register struct op *op asm(stringify(OP_IN_REGISTER));
# endif
#endif
-#include "perlio.h"
-#include "perlmem.h"
-#include "perllio.h"
-#include "perlsock.h"
-#include "perlproc.h"
-#include "perlenv.h"
-#include "perldir.h"
+#include "iperlsys.h"
#ifdef USE_NEXT_CTYPE
@@ -379,7 +373,7 @@ register struct op *op asm(stringify(OP_IN_REGISTER));
# ifdef HIDEMYMALLOC
# define malloc Mymalloc
# define calloc Mycalloc
-# define realloc Myremalloc
+# define realloc Myrealloc
# define free Myfree
Malloc_t Mymalloc _((MEM_SIZE nbytes));
Malloc_t Mycalloc _((MEM_SIZE elements, MEM_SIZE size));
@@ -390,11 +384,21 @@ Free_t Myfree _((Malloc_t where));
# define malloc Perl_malloc
# define calloc Perl_calloc
# define realloc Perl_realloc
+/* VMS' external symbols are case-insensitive, and there's already a */
+/* perl_free in perl.h */
+#ifdef VMS
+# define free Perl_myfree
+#else
# define free Perl_free
+#endif
Malloc_t Perl_malloc _((MEM_SIZE nbytes));
Malloc_t Perl_calloc _((MEM_SIZE elements, MEM_SIZE size));
Malloc_t Perl_realloc _((Malloc_t where, MEM_SIZE nbytes));
+#ifdef VMS
+Free_t Perl_myfree _((Malloc_t where));
+#else
Free_t Perl_free _((Malloc_t where));
+#endif
# endif
# undef safemalloc
@@ -559,12 +563,6 @@ Free_t Perl_free _((Malloc_t where));
# undef HAS_STRERROR
#endif
-#ifndef HAS_MKFIFO
-# ifndef mkfifo
-# define mkfifo(path, mode) (mknod((path), (mode) | S_IFIFO, 0))
-# endif
-#endif /* !HAS_MKFIFO */
-
#include <errno.h>
#ifdef HAS_SOCKET
# ifdef I_NET_ERRNO
@@ -1117,6 +1115,10 @@ typedef I32 (*filter_t) _((int, SV *, int));
*/
#ifdef USE_THREADS
+ /* pending resolution of licensing issues, we avoid the erstwhile
+ * atomic.h everywhere */
+# define EMULATE_ATOMIC_REFCOUNTS
+
# ifdef FAKE_THREADS
# include "fakethr.h"
# else
@@ -1207,17 +1209,17 @@ typedef pthread_key_t perl_key;
# endif
#endif
+#ifdef UNION_ANY_DEFINITION
+UNION_ANY_DEFINITION;
+#else
union any {
void* any_ptr;
I32 any_i32;
IV any_iv;
long any_long;
void (CPERLscope(*any_dptr)) _((void*));
-#if defined(WIN32) && !defined(PERL_OBJECT)
- /* Visual C thinks that a pointer to a member variable is 16 bytes in size. */
- char handle_VC_problem[16];
-#endif
};
+#endif
#ifdef USE_THREADS
#define ARGSproto struct perl_thread *thr
@@ -1942,11 +1944,11 @@ typedef void *Thread;
#ifndef MULTIPLICITY
-#ifndef USE_THREADS
-#include "thrdvar.h"
-#endif
+# include "intrpvar.h"
+# ifndef USE_THREADS
+# include "thrdvar.h"
+# endif
-#include "intrpvar.h"
#endif
#ifdef PERL_OBJECT
diff --git a/perl_exp.SH b/perl_exp.SH
index f8fd973e30..ab1866bfaa 100644
--- a/perl_exp.SH
+++ b/perl_exp.SH
@@ -44,8 +44,8 @@ syms=`ls -1 *.sym|egrep -v 'compat3|perlio'`
sed -n '/^[A-Za-z]/ s/^/Perl_/p' $syms >> perl.exp
-sed -n 's/^PERLVAR.*(G\([^,]*\).*/Perl_\1/p' perlvars.h >> perl.exp
-sed -n 's/^PERLVAR.*(T\([^,]*\).*/Perl_\1/p' thrdvar.h >> perl.exp
+sed -n 's/^PERLVAR.*(G\([^,[]*\).*/Perl_\1/p' perlvars.h >> perl.exp
+sed -n 's/^PERLVAR.*(T\([^,[]*\).*/Perl_\1/p' thrdvar.h >> perl.exp
#
# If we use the PerlIO abstraction layer, add its symbols
diff --git a/perldir.h b/perldir.h
deleted file mode 100644
index 0272bac1c8..0000000000
--- a/perldir.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef H_PERLDIR
-#define H_PERLDIR 1
-
-#ifdef PERL_OBJECT
-
-#include "ipdir.h"
-
-#define PerlDir_mkdir(name, mode) piDir->Makedir((name), (mode), ErrorNo())
-#define PerlDir_chdir(name) piDir->Chdir((name), ErrorNo())
-#define PerlDir_rmdir(name) piDir->Rmdir((name), ErrorNo())
-#define PerlDir_close(dir) piDir->Close((dir), ErrorNo())
-#define PerlDir_open(name) piDir->Open((name), ErrorNo())
-#define PerlDir_read(dir) piDir->Read((dir), ErrorNo())
-#define PerlDir_rewind(dir) piDir->Rewind((dir), ErrorNo())
-#define PerlDir_seek(dir, loc) piDir->Seek((dir), (loc), ErrorNo())
-#define PerlDir_tell(dir) piDir->Tell((dir), ErrorNo())
-#else
-#define PerlDir_mkdir(name, mode) Mkdir((name), (mode))
-#ifdef VMS
-# define PerlDir_chdir(name) chdir(((name) && *(name)) ? (name) : "SYS$LOGIN")
-#else
-# define PerlDir_chdir(name) chdir((name))
-#endif
-#define PerlDir_rmdir(name) rmdir((name))
-#define PerlDir_close(dir) closedir((dir))
-#define PerlDir_open(name) opendir((name))
-#define PerlDir_read(dir) readdir((dir))
-#define PerlDir_rewind(dir) rewinddir((dir))
-#define PerlDir_seek(dir, loc) seekdir((dir), (loc))
-#define PerlDir_tell(dir) telldir((dir))
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
-
diff --git a/perlenv.h b/perlenv.h
deleted file mode 100644
index 07cce76e78..0000000000
--- a/perlenv.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef H_PERLENV
-#define H_PERLENV 1
-
-#ifdef PERL_OBJECT
-
-#include "ipenv.h"
-
-#define PerlEnv_putenv(str) piENV->Putenv((str), ErrorNo())
-#define PerlEnv_getenv(str) piENV->Getenv((str), ErrorNo())
-#ifdef WIN32
-#define PerlEnv_lib_path(str) piENV->LibPath((str))
-#define PerlEnv_sitelib_path(str) piENV->SiteLibPath((str))
-#endif
-#else
-#define PerlEnv_putenv(str) putenv((str))
-#define PerlEnv_getenv(str) getenv((str))
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
diff --git a/perlio.c b/perlio.c
index c293f540b6..314881e57e 100644
--- a/perlio.c
+++ b/perlio.c
@@ -16,7 +16,7 @@
#endif
/*
* This file provides those parts of PerlIO abstraction
- * which are not #defined in perlio.h.
+ * which are not #defined in iperlsys.h.
* Which these are depends on various Configure #ifdef's
*/
diff --git a/perlio.h b/perlio.h
deleted file mode 100644
index 8d453a5977..0000000000
--- a/perlio.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef H_PERLIO
-#define H_PERLIO 1
-
-/* Clean up (or at least document) the various possible #defines.
- This section attempts to match the 5.003_03 Configure variables
- onto the 5.003_02 header file values.
- I can't figure out where USE_STDIO was supposed to be set.
- --AD
-*/
-#ifndef USE_PERLIO
-# define PERLIO_IS_STDIO
-#endif
-
-/* Below is the 5.003_02 stuff. */
-#ifdef USE_STDIO
-# ifndef PERLIO_IS_STDIO
-# define PERLIO_IS_STDIO
-# endif
-#else
-extern void PerlIO_init _((void));
-#endif
-
-#ifdef PERL_OBJECT
-
-#include "ipstdio.h"
-
-#define PerlIO_canset_cnt(f) 1
-#define PerlIO_has_base(f) 1
-#define PerlIO_has_cntptr(f) 1
-#define PerlIO_fast_gets(f) 1
-
-#define PerlIO_stdin() piStdIO->Stdin()
-#define PerlIO_stdout() piStdIO->Stdout()
-#define PerlIO_stderr() piStdIO->Stderr()
-#define PerlIO_open(x,y) piStdIO->Open((x),(y), ErrorNo())
-#define PerlIO_close(f) piStdIO->Close((f), ErrorNo())
-#define PerlIO_eof(f) piStdIO->Eof((f), ErrorNo())
-#define PerlIO_error(f) piStdIO->Error((f), ErrorNo())
-#define PerlIO_clearerr(f) piStdIO->Clearerr((f), ErrorNo())
-#define PerlIO_getc(f) piStdIO->Getc((f), ErrorNo())
-#define PerlIO_get_base(f) piStdIO->GetBase((f), ErrorNo())
-#define PerlIO_get_bufsiz(f) piStdIO->GetBufsiz((f), ErrorNo())
-#define PerlIO_get_cnt(f) piStdIO->GetCnt((f), ErrorNo())
-#define PerlIO_get_ptr(f) piStdIO->GetPtr((f), ErrorNo())
-#define PerlIO_putc(f,c) piStdIO->Putc((f),(c), ErrorNo())
-#define PerlIO_puts(f,s) piStdIO->Puts((f),(s), ErrorNo())
-#define PerlIO_flush(f) piStdIO->Flush((f), ErrorNo())
-#define PerlIO_gets(s, n, fp) piStdIO->Gets((fp), s, n, ErrorNo())
-#define PerlIO_ungetc(f,c) piStdIO->Ungetc((f),(c), ErrorNo())
-#define PerlIO_fileno(f) piStdIO->Fileno((f), ErrorNo())
-#define PerlIO_fdopen(f, s) piStdIO->Fdopen((f),(s), ErrorNo())
-#define PerlIO_reopen(p, m, f) piStdIO->Reopen((p), (m), (f), ErrorNo())
-#define PerlIO_read(f,buf,count) (SSize_t)piStdIO->Read((f), (buf), (count), ErrorNo())
-#define PerlIO_write(f,buf,count) piStdIO->Write((f), (buf), (count), ErrorNo())
-#define PerlIO_setbuf(f,b) piStdIO->SetBuf((f), (b), ErrorNo())
-#define PerlIO_setvbuf(f,b,t,s) piStdIO->SetVBuf((f), (b), (t), (s), ErrorNo())
-#define PerlIO_set_cnt(f,c) piStdIO->SetCnt((f), (c), ErrorNo())
-#define PerlIO_set_ptrcnt(f,p,c) piStdIO->SetPtrCnt((f), (p), (c), ErrorNo())
-#define PerlIO_setlinebuf(f) piStdIO->Setlinebuf((f), ErrorNo())
-#define PerlIO_printf fprintf
-#define PerlIO_stdoutf piStdIO->Printf
-#define PerlIO_vprintf(f,fmt,a) piStdIO->Vprintf((f), ErrorNo(), (fmt),a)
-#define PerlIO_tell(f) piStdIO->Tell((f), ErrorNo())
-#define PerlIO_seek(f,o,w) piStdIO->Seek((f),(o),(w), ErrorNo())
-#define PerlIO_getpos(f,p) piStdIO->Getpos((f),(p), ErrorNo())
-#define PerlIO_setpos(f,p) piStdIO->Setpos((f),(p), ErrorNo())
-#define PerlIO_rewind(f) piStdIO->Rewind((f), ErrorNo())
-#define PerlIO_tmpfile() piStdIO->Tmpfile(ErrorNo())
-#define PerlIO_init() piStdIO->Init(ErrorNo())
-#undef init_os_extras
-#define init_os_extras() piStdIO->InitOSExtras(this)
-
-#else
-#include "perlsdio.h"
-#endif
-
-#ifndef PERLIO_IS_STDIO
-#ifdef USE_SFIO
-#include "perlsfio.h"
-#endif /* USE_SFIO */
-#endif /* PERLIO_IS_STDIO */
-
-#ifndef EOF
-#define EOF (-1)
-#endif
-
-/* This is to catch case with no stdio */
-#ifndef BUFSIZ
-#define BUFSIZ 1024
-#endif
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-
-#ifndef SEEK_CUR
-#define SEEK_CUR 1
-#endif
-
-#ifndef SEEK_END
-#define SEEK_END 2
-#endif
-
-#ifndef PerlIO
-struct _PerlIO;
-#define PerlIO struct _PerlIO
-#endif /* No PerlIO */
-
-#ifndef Fpos_t
-#define Fpos_t long
-#endif
-
-#ifndef NEXT30_NO_ATTRIBUTE
-#ifndef HASATTRIBUTE /* disable GNU-cc attribute checking? */
-#ifdef __attribute__ /* Avoid possible redefinition errors */
-#undef __attribute__
-#endif
-#define __attribute__(attr)
-#endif
-#endif
-
-#ifndef PerlIO_stdoutf
-extern int PerlIO_stdoutf _((const char *,...))
- __attribute__((format (printf, 1, 2)));
-#endif
-#ifndef PerlIO_puts
-extern int PerlIO_puts _((PerlIO *,const char *));
-#endif
-#ifndef PerlIO_open
-extern PerlIO * PerlIO_open _((const char *,const char *));
-#endif
-#ifndef PerlIO_close
-extern int PerlIO_close _((PerlIO *));
-#endif
-#ifndef PerlIO_eof
-extern int PerlIO_eof _((PerlIO *));
-#endif
-#ifndef PerlIO_error
-extern int PerlIO_error _((PerlIO *));
-#endif
-#ifndef PerlIO_clearerr
-extern void PerlIO_clearerr _((PerlIO *));
-#endif
-#ifndef PerlIO_getc
-extern int PerlIO_getc _((PerlIO *));
-#endif
-#ifndef PerlIO_putc
-extern int PerlIO_putc _((PerlIO *,int));
-#endif
-#ifndef PerlIO_flush
-extern int PerlIO_flush _((PerlIO *));
-#endif
-#ifndef PerlIO_ungetc
-extern int PerlIO_ungetc _((PerlIO *,int));
-#endif
-#ifndef PerlIO_fileno
-extern int PerlIO_fileno _((PerlIO *));
-#endif
-#ifndef PerlIO_fdopen
-extern PerlIO * PerlIO_fdopen _((int, const char *));
-#endif
-#ifndef PerlIO_importFILE
-extern PerlIO * PerlIO_importFILE _((FILE *,int));
-#endif
-#ifndef PerlIO_exportFILE
-extern FILE * PerlIO_exportFILE _((PerlIO *,int));
-#endif
-#ifndef PerlIO_findFILE
-extern FILE * PerlIO_findFILE _((PerlIO *));
-#endif
-#ifndef PerlIO_releaseFILE
-extern void PerlIO_releaseFILE _((PerlIO *,FILE *));
-#endif
-#ifndef PerlIO_read
-extern SSize_t PerlIO_read _((PerlIO *,void *,Size_t));
-#endif
-#ifndef PerlIO_write
-extern SSize_t PerlIO_write _((PerlIO *,const void *,Size_t));
-#endif
-#ifndef PerlIO_setlinebuf
-extern void PerlIO_setlinebuf _((PerlIO *));
-#endif
-#ifndef PerlIO_printf
-extern int PerlIO_printf _((PerlIO *, const char *,...))
- __attribute__((format (printf, 2, 3)));
-#endif
-#ifndef PerlIO_sprintf
-extern int PerlIO_sprintf _((char *, int, const char *,...))
- __attribute__((format (printf, 3, 4)));
-#endif
-#ifndef PerlIO_vprintf
-extern int PerlIO_vprintf _((PerlIO *, const char *, va_list));
-#endif
-#ifndef PerlIO_tell
-extern long PerlIO_tell _((PerlIO *));
-#endif
-#ifndef PerlIO_seek
-extern int PerlIO_seek _((PerlIO *,off_t,int));
-#endif
-#ifndef PerlIO_rewind
-extern void PerlIO_rewind _((PerlIO *));
-#endif
-#ifndef PerlIO_has_base
-extern int PerlIO_has_base _((PerlIO *));
-#endif
-#ifndef PerlIO_has_cntptr
-extern int PerlIO_has_cntptr _((PerlIO *));
-#endif
-#ifndef PerlIO_fast_gets
-extern int PerlIO_fast_gets _((PerlIO *));
-#endif
-#ifndef PerlIO_canset_cnt
-extern int PerlIO_canset_cnt _((PerlIO *));
-#endif
-#ifndef PerlIO_get_ptr
-extern STDCHAR * PerlIO_get_ptr _((PerlIO *));
-#endif
-#ifndef PerlIO_get_cnt
-extern int PerlIO_get_cnt _((PerlIO *));
-#endif
-#ifndef PerlIO_set_cnt
-extern void PerlIO_set_cnt _((PerlIO *,int));
-#endif
-#ifndef PerlIO_set_ptrcnt
-extern void PerlIO_set_ptrcnt _((PerlIO *,STDCHAR *,int));
-#endif
-#ifndef PerlIO_get_base
-extern STDCHAR * PerlIO_get_base _((PerlIO *));
-#endif
-#ifndef PerlIO_get_bufsiz
-extern int PerlIO_get_bufsiz _((PerlIO *));
-#endif
-#ifndef PerlIO_tmpfile
-extern PerlIO * PerlIO_tmpfile _((void));
-#endif
-#ifndef PerlIO_stdin
-extern PerlIO * PerlIO_stdin _((void));
-#endif
-#ifndef PerlIO_stdout
-extern PerlIO * PerlIO_stdout _((void));
-#endif
-#ifndef PerlIO_stderr
-extern PerlIO * PerlIO_stderr _((void));
-#endif
-#ifndef PerlIO_getpos
-extern int PerlIO_getpos _((PerlIO *,Fpos_t *));
-#endif
-#ifndef PerlIO_setpos
-extern int PerlIO_setpos _((PerlIO *,const Fpos_t *));
-#endif
-#endif /* Include guard */
diff --git a/perllio.h b/perllio.h
deleted file mode 100644
index 8ae606dc63..0000000000
--- a/perllio.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef H_PERLLIO
-#define H_PERLLIO 1
-
-#ifdef PERL_OBJECT
-
-#include "iplio.h"
-
-#define PerlLIO_access(file, mode) piLIO->Access((file), (mode), ErrorNo())
-#define PerlLIO_chmod(file, mode) piLIO->Chmod((file), (mode), ErrorNo())
-#define PerlLIO_chown(file, owner, group) piLIO->Chown((file), (owner), (group), ErrorNo())
-#define PerlLIO_chsize(fd, size) piLIO->Chsize((fd), (size), ErrorNo())
-#define PerlLIO_close(fd) piLIO->Close((fd), ErrorNo())
-#define PerlLIO_dup(fd) piLIO->Dup((fd), ErrorNo())
-#define PerlLIO_dup2(fd1, fd2) piLIO->Dup2((fd1), (fd2), ErrorNo())
-#define PerlLIO_flock(fd, op) piLIO->Flock((fd), (op), ErrorNo())
-#define PerlLIO_fstat(fd, buf) piLIO->FileStat((fd), (buf), ErrorNo())
-#define PerlLIO_ioctl(fd, u, buf) piLIO->IOCtl((fd), (u), (buf), ErrorNo())
-#define PerlLIO_isatty(fd) piLIO->Isatty((fd), ErrorNo())
-#define PerlLIO_lseek(fd, offset, mode) piLIO->Lseek((fd), (offset), (mode), ErrorNo())
-#define PerlLIO_lstat(name, buf) piLIO->Lstat((name), (buf), ErrorNo())
-#define PerlLIO_mktemp(file) piLIO->Mktemp((file), ErrorNo())
-#define PerlLIO_open(file, flag) piLIO->Open((file), (flag), ErrorNo())
-#define PerlLIO_open3(file, flag, perm) piLIO->Open((file), (flag), (perm), ErrorNo())
-#define PerlLIO_read(fd, buf, count) piLIO->Read((fd), (buf), (count), ErrorNo())
-#define PerlLIO_rename(oldname, newname) piLIO->Rename((oldname), (newname), ErrorNo())
-#define PerlLIO_setmode(fd, mode) piLIO->Setmode((fd), (mode), ErrorNo())
-#define PerlLIO_stat(name, buf) piLIO->NameStat((name), (buf), ErrorNo())
-#define PerlLIO_tmpnam(str) piLIO->Tmpnam((str), ErrorNo())
-#define PerlLIO_umask(mode) piLIO->Umask((mode), ErrorNo())
-#define PerlLIO_unlink(file) piLIO->Unlink((file), ErrorNo())
-#define PerlLIO_utime(file, time) piLIO->Utime((file), (time), ErrorNo())
-#define PerlLIO_write(fd, buf, count) piLIO->Write((fd), (buf), (count), ErrorNo())
-#else
-#define PerlLIO_access(file, mode) access((file), (mode))
-#define PerlLIO_chmod(file, mode) chmod((file), (mode))
-#define PerlLIO_chown(file, owner, group) chown((file), (owner), (group))
-#define PerlLIO_chsize(fd, size) chsize((fd), (size))
-#define PerlLIO_close(fd) close((fd))
-#define PerlLIO_dup(fd) dup((fd))
-#define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
-#define PerlLIO_flock(fd, op) FLOCK((fd), (op))
-#define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
-#define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
-#define PerlLIO_isatty(fd) isatty((fd))
-#define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
-#define PerlLIO_lstat(name, buf) lstat((name), (buf))
-#define PerlLIO_mktemp(file) mktemp((file))
-#define PerlLIO_mkstemp(file) mkstemp((file))
-#define PerlLIO_open(file, flag) open((file), (flag))
-#define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
-#define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
-#define PerlLIO_rename(oldname, newname) rename((oldname), (newname))
-#define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
-#define PerlLIO_stat(name, buf) Stat((name), (buf))
-#define PerlLIO_tmpnam(str) tmpnam((str))
-#define PerlLIO_umask(mode) umask((mode))
-#define PerlLIO_unlink(file) unlink((file))
-#define PerlLIO_utime(file, time) utime((file), (time))
-#define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
-
diff --git a/perlmem.h b/perlmem.h
deleted file mode 100644
index 5c2efdbf23..0000000000
--- a/perlmem.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef H_PERLMEM
-#define H_PERLMEM 1
-
-#ifdef PERL_OBJECT
-
-#include "ipmem.h"
-
-#define PerlMem_malloc(size) piMem->Malloc((size))
-#define PerlMem_realloc(buf, size) piMem->Realloc((buf), (size))
-#define PerlMem_free(buf) piMem->Free((buf))
-#else
-#define PerlMem_malloc(size) malloc((size))
-#define PerlMem_realloc(buf, size) realloc((buf), (size))
-#define PerlMem_free(buf) free((buf))
-
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
-
diff --git a/perlproc.h b/perlproc.h
deleted file mode 100644
index adf66a2940..0000000000
--- a/perlproc.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef H_PERLPROC
-#define H_PERLPROC 1
-
-#ifdef PERL_OBJECT
-
-#include "ipproc.h"
-
-#define PerlProc_abort() piProc->Abort()
-#define PerlProc_exit(s) piProc->Exit((s))
-#define PerlProc__exit(s) piProc->_Exit((s))
-#define PerlProc_execl(c, w, x, y, z) piProc->Execl((c), (w), (x), (y), (z))
-#define PerlProc_execv(c, a) piProc->Execv((c), (a))
-#define PerlProc_execvp(c, a) piProc->Execvp((c), (a))
-#define PerlProc_getuid() piProc->Getuid()
-#define PerlProc_geteuid() piProc->Geteuid()
-#define PerlProc_getgid() piProc->Getgid()
-#define PerlProc_getegid() piProc->Getegid()
-#define PerlProc_getlogin() piProc->Getlogin()
-#define PerlProc_kill(i, a) piProc->Kill((i), (a))
-#define PerlProc_killpg(i, a) piProc->Killpg((i), (a))
-#define PerlProc_pause() piProc->PauseProc()
-#define PerlProc_popen(c, m) piProc->Popen((c), (m))
-#define PerlProc_pclose(f) piProc->Pclose((f))
-#define PerlProc_pipe(fd) piProc->Pipe((fd))
-#define PerlProc_setuid(u) piProc->Setuid((u))
-#define PerlProc_setgid(g) piProc->Setgid((g))
-#define PerlProc_sleep(t) piProc->Sleep((t))
-#define PerlProc_times(t) piProc->Times((t))
-#define PerlProc_wait(t) piProc->Wait((t))
-#define PerlProc_waitpid(p, s, f) piProc->Waitpid((p), (s), (f))
-#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
-#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
-#define PerlProc_signal(n, h) piProc->Signal((n), (h))
-#ifdef WIN32
-#define PerlProc_GetSysMsg(s,l,e) piProc->GetSysMsg((s), (l), (e))
-#define PerlProc_FreeBuf(s) piProc->FreeBuf((s))
-#define PerlProc_Cmd(s) piProc->DoCmd((s))
-#define do_spawn(s) piProc->Spawn((s))
-#define do_spawnvp(m, c, a) piProc->Spawnvp((m), (c), (a))
-#define PerlProc_aspawn(m, c, a) piProc->ASpawn((m), (c), (a))
-#endif
-#else
-#define PerlProc_abort() abort()
-#define PerlProc_exit(s) exit((s))
-#define PerlProc__exit(s) _exit((s))
-#define PerlProc_execl(c, w, x, y, z) execl((c), (w), (x), (y), (z))
-#define PerlProc_execv(c, a) execv((c), (a))
-#define PerlProc_execvp(c, a) execvp((c), (a))
-#define PerlProc_getuid() getuid()
-#define PerlProc_geteuid() geteuid()
-#define PerlProc_getgid() getgid()
-#define PerlProc_getegid() getegid()
-#define PerlProc_getlogin() getlogin()
-#define PerlProc_kill(i, a) kill((i), (a))
-#define PerlProc_killpg(i, a) killpg((i), (a))
-#define PerlProc_pause() Pause()
-#define PerlProc_popen(c, m) my_popen((c), (m))
-#define PerlProc_pclose(f) my_pclose((f))
-#define PerlProc_pipe(fd) pipe((fd))
-#define PerlProc_setuid(u) setuid((u))
-#define PerlProc_setgid(g) setgid((g))
-#define PerlProc_sleep(t) sleep((t))
-#define PerlProc_times(t) times((t))
-#define PerlProc_wait(t) wait((t))
-#define PerlProc_waitpid(p, s, f) waitpid((p), (s), (f))
-#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
-#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
-#define PerlProc_signal(n, h) signal((n), (h))
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
diff --git a/perlsock.h b/perlsock.h
deleted file mode 100644
index 70350bef54..0000000000
--- a/perlsock.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef H_PERLSOCK
-#define H_PERLSOCK 1
-
-#ifdef PERL_OBJECT
-
-#include "ipsock.h"
-
-#define PerlSock_htonl(x) piSock->Htonl(x)
-#define PerlSock_htons(x) piSock->Htons(x)
-#define PerlSock_ntohl(x) piSock->Ntohl(x)
-#define PerlSock_ntohs(x) piSock->Ntohs(x)
-#define PerlSock_accept(s, a, l) piSock->Accept(s, a, l, ErrorNo())
-#define PerlSock_bind(s, n, l) piSock->Bind(s, n, l, ErrorNo())
-#define PerlSock_connect(s, n, l) piSock->Connect(s, n, l, ErrorNo())
-#define PerlSock_endhostent() piSock->Endhostent(ErrorNo())
-#define PerlSock_endnetent() piSock->Endnetent(ErrorNo())
-#define PerlSock_endprotoent() piSock->Endprotoent(ErrorNo())
-#define PerlSock_endservent() piSock->Endservent(ErrorNo())
-#define PerlSock_gethostbyaddr(a, l, t) piSock->Gethostbyaddr(a, l, t, ErrorNo())
-#define PerlSock_gethostbyname(n) piSock->Gethostbyname(n, ErrorNo())
-#define PerlSock_gethostent() piSock->Gethostent(ErrorNo())
-#define PerlSock_gethostname(n, l) piSock->Gethostname(n, l, ErrorNo())
-#define PerlSock_getnetbyaddr(n, t) piSock->Getnetbyaddr(n, t, ErrorNo())
-#define PerlSock_getnetbyname(c) piSock->Getnetbyname(c, ErrorNo())
-#define PerlSock_getnetent() piSock->Getnetent(ErrorNo())
-#define PerlSock_getpeername(s, n, l) piSock->Getpeername(s, n, l, ErrorNo())
-#define PerlSock_getprotobyname(n) piSock->Getprotobyname(n, ErrorNo())
-#define PerlSock_getprotobynumber(n) piSock->Getprotobynumber(n, ErrorNo())
-#define PerlSock_getprotoent() piSock->Getprotoent(ErrorNo())
-#define PerlSock_getservbyname(n, p) piSock->Getservbyname(n, p, ErrorNo())
-#define PerlSock_getservbyport(port, p) piSock->Getservbyport(port, p, ErrorNo())
-#define PerlSock_getservent() piSock->Getservent(ErrorNo())
-#define PerlSock_getsockname(s, n, l) piSock->Getsockname(s, n, l, ErrorNo())
-#define PerlSock_getsockopt(s, l, n, v, i) piSock->Getsockopt(s, l, n, v, i, ErrorNo())
-#define PerlSock_inet_addr(c) piSock->InetAddr(c, ErrorNo())
-#define PerlSock_inet_ntoa(i) piSock->InetNtoa(i, ErrorNo())
-#define PerlSock_listen(s, b) piSock->Listen(s, b, ErrorNo())
-#define PerlSock_recv(s, b, l, f) piSock->Recv(s, b, l, f, ErrorNo())
-#define PerlSock_recvfrom(s, b, l, f, from, fromlen) piSock->Recvfrom(s, b, l, f, from, fromlen, ErrorNo())
-#define PerlSock_select(n, r, w, e, t) piSock->Select(n, (char*)r, (char*)w, (char*)e, t, ErrorNo())
-#define PerlSock_send(s, b, l, f) piSock->Send(s, b, l, f, ErrorNo())
-#define PerlSock_sendto(s, b, l, f, t, tlen) piSock->Sendto(s, b, l, f, t, tlen, ErrorNo())
-#define PerlSock_sethostent(f) piSock->Sethostent(f, ErrorNo())
-#define PerlSock_setnetent(f) piSock->Setnetent(f, ErrorNo())
-#define PerlSock_setprotoent(f) piSock->Setprotoent(f, ErrorNo())
-#define PerlSock_setservent(f) piSock->Setservent(f, ErrorNo())
-#define PerlSock_setsockopt(s, l, n, v, len) piSock->Setsockopt(s, l, n, v, len, ErrorNo())
-#define PerlSock_shutdown(s, h) piSock->Shutdown(s, h, ErrorNo())
-#define PerlSock_socket(a, t, p) piSock->Socket(a, t, p, ErrorNo())
-#define PerlSock_socketpair(a, t, p, f) piSock->Socketpair(a, t, p, f, ErrorNo())
-#else
-#define PerlSock_htonl(x) htonl(x)
-#define PerlSock_htons(x) htons(x)
-#define PerlSock_ntohl(x) ntohl(x)
-#define PerlSock_ntohs(x) ntohs(x)
-#define PerlSock_accept(s, a, l) accept(s, a, l)
-#define PerlSock_bind(s, n, l) bind(s, n, l)
-#define PerlSock_connect(s, n, l) connect(s, n, l)
-
-#define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t)
-#define PerlSock_gethostbyname(n) gethostbyname(n)
-#define PerlSock_gethostent gethostent
-#define PerlSock_endhostent endhostent
-#define PerlSock_gethostname(n, l) gethostname(n, l)
-
-#define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t)
-#define PerlSock_getnetbyname(n) getnetbyname(n)
-#define PerlSock_getnetent getnetent
-#define PerlSock_endnetent endnetent
-#define PerlSock_getpeername(s, n, l) getpeername(s, n, l)
-
-#define PerlSock_getprotobyname(n) getprotobyname(n)
-#define PerlSock_getprotobynumber(n) getprotobynumber(n)
-#define PerlSock_getprotoent getprotoent
-#define PerlSock_endprotoent endprotoent
-
-#define PerlSock_getservbyname(n, p) getservbyname(n, p)
-#define PerlSock_getservbyport(port, p) getservbyport(port, p)
-#define PerlSock_getservent getservent
-#define PerlSock_endservent endservent
-
-#define PerlSock_getsockname(s, n, l) getsockname(s, n, l)
-#define PerlSock_getsockopt(s, l, n, v, i) getsockopt(s, l, n, v, i)
-#define PerlSock_inet_addr(c) inet_addr(c)
-#define PerlSock_inet_ntoa(i) inet_ntoa(i)
-#define PerlSock_listen(s, b) listen(s, b)
-#define PerlSock_recvfrom(s, b, l, f, from, fromlen) recvfrom(s, b, l, f, from, fromlen)
-#define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t)
-#define PerlSock_send(s, b, l, f) send(s, b, l, f)
-#define PerlSock_sendto(s, b, l, f, t, tlen) sendto(s, b, l, f, t, tlen)
-#define PerlSock_sethostent(f) sethostent(f)
-#define PerlSock_setnetent(f) setnetent(f)
-#define PerlSock_setprotoent(f) setprotoent(f)
-#define PerlSock_setservent(f) setservent(f)
-#define PerlSock_setsockopt(s, l, n, v, len) setsockopt(s, l, n, v, len)
-#define PerlSock_shutdown(s, h) shutdown(s, h)
-#define PerlSock_socket(a, t, p) socket(a, t, p)
-#define PerlSock_socketpair(a, t, p, f) socketpair(a, t, p, f)
-#endif /* PERL_OBJECT */
-
-#endif /* Include guard */
-
diff --git a/perlvars.h b/perlvars.h
index 9bbd6155d0..6b162794f8 100644
--- a/perlvars.h
+++ b/perlvars.h
@@ -1,79 +1,94 @@
-/* This file describes the "global" variables used by perl */
-/* This used to be in perl.h directly but we want to */
-/* abstract out which are per-thread per-interpreter really */
-/* global and how initialized into one file */
-
/****************/
/* Truly global */
/****************/
+/* Don't forget to re-run embed.pl to propagate changes! */
+
+/* This file describes the "global" variables used by perl
+ * This used to be in perl.h directly but we want to abstract out into
+ * distinct files which are per-thread, per-interpreter or really global,
+ * and how they're initialized.
+ *
+ * The 'G' prefix is only needed for vars that need appropriate #defines
+ * generated when built with or without EMBED. It is also used to generate
+ * the appropriate export list for win32.
+ *
+ * Avoid build-specific #ifdefs here, like DEBUGGING. That way,
+ * we can keep binary compatibility of the curinterp structure */
+
+
/* global state */
-PERLVAR(Gcurinterp, PerlInterpreter *) /* currently running interpreter */
+PERLVAR(Gcurinterp, PerlInterpreter *)
+ /* currently running interpreter */
#ifdef USE_THREADS
-PERLVAR(Gthr_key, perl_key) /* For per-thread struct perl_thread* */
-PERLVAR(Gsv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */
-PERLVAR(Gmalloc_mutex, perl_mutex) /* Mutex for malloc */
-PERLVAR(Geval_mutex, perl_mutex) /* Mutex for doeval */
-PERLVAR(Geval_cond, perl_cond) /* Condition variable for doeval */
-PERLVAR(Geval_owner, struct perl_thread *) /* Owner thread for doeval */
+PERLVAR(Gthr_key, perl_key) /* For per-thread struct perl_thread* */
+PERLVAR(Gsv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */
+PERLVAR(Gmalloc_mutex, perl_mutex) /* Mutex for malloc */
+PERLVAR(Geval_mutex, perl_mutex) /* Mutex for doeval */
+PERLVAR(Geval_cond, perl_cond) /* Condition variable for doeval */
+PERLVAR(Geval_owner, struct perl_thread *)
+ /* Owner thread for doeval */
PERLVAR(Gnthreads, int) /* Number of threads currently */
-PERLVAR(Gthreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */
-PERLVAR(Gnthreads_cond, perl_cond) /* Condition variable for nthreads */
-PERLVAR(Gsvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */
-PERLVARI(Gthreadsv_names, char *, THREADSV_NAMES)
+PERLVAR(Gthreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */
+PERLVAR(Gnthreads_cond, perl_cond) /* Condition variable for nthreads */
+PERLVAR(Gsvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */
+PERLVARI(Gthreadsv_names,char *, THREADSV_NAMES)
#ifdef FAKE_THREADS
-PERLVAR(Gcurthr, struct perl_thread *) /* Currently executing (fake) thread */
+PERLVAR(Gcurthr, struct perl_thread *)
+ /* Currently executing (fake) thread */
#endif
#endif /* USE_THREADS */
-PERLVAR(Guid, int) /* current real user id */
-PERLVAR(Geuid, int) /* current effective user id */
-PERLVAR(Ggid, int) /* current real group id */
-PERLVAR(Gegid, int) /* current effective group id */
+PERLVAR(Gninterps, int) /* number of active interpreters */
+
+PERLVAR(Guid, int) /* current real user id */
+PERLVAR(Geuid, int) /* current effective user id */
+PERLVAR(Ggid, int) /* current real group id */
+PERLVAR(Gegid, int) /* current effective group id */
PERLVAR(Gnomemok, bool) /* let malloc context handle nomem */
-PERLVAR(Gan, U32) /* malloc sequence number */
+PERLVAR(Gan, U32) /* malloc sequence number */
PERLVAR(Gcop_seqmax, U32) /* statement sequence number */
PERLVAR(Gop_seqmax, U16) /* op sequence number */
PERLVAR(Gevalseq, U32) /* eval sequence number */
-PERLVAR(Gsub_generation, U32) /* inc to force methods to be looked up again */
-PERLVAR(Gorigenviron, char **)
-PERLVAR(Gorigalen, U32)
+PERLVAR(Gsub_generation,U32) /* incr to invalidate method cache */
+PERLVAR(Gorigenviron, char **)
+PERLVAR(Gorigalen, U32)
PERLVAR(Gpidstatus, HV *) /* pid-to-status mappings for waitpid */
-PERLVAR(Gprofiledata, U32 *)
-PERLVARI(Gmaxo, int, MAXO) /* Number of ops */
+PERLVARI(Gmaxo, int, MAXO) /* maximum number of ops */
PERLVAR(Gosname, char *) /* operating system */
-PERLVARI(Gsh_path, char *, SH_PATH) /* full path of shell */
-PERLVAR(Gsighandlerp, Sighandler_t)
+PERLVARI(Gsh_path, char *, SH_PATH)/* full path of shell */
+PERLVAR(Gsighandlerp, Sighandler_t)
PERLVAR(Gxiv_arenaroot, XPV*) /* list of allocated xiv areas */
PERLVAR(Gxiv_root, IV **) /* free xiv list--shared by interpreters */
-PERLVAR(Gxnv_root, double *) /* free xnv list--shared by interpreters */
+PERLVAR(Gxnv_root, double *) /* free xnv list--shared by interpreters */
PERLVAR(Gxrv_root, XRV *) /* free xrv list--shared by interpreters */
PERLVAR(Gxpv_root, XPV *) /* free xpv list--shared by interpreters */
PERLVAR(Ghe_root, HE *) /* free he list--shared by interpreters */
PERLVAR(Gnice_chunk, char *) /* a nice chunk of memory to reuse */
-PERLVAR(Gnice_chunk_size, U32) /* how nice the chunk of memory is */
+PERLVAR(Gnice_chunk_size, U32) /* how nice the chunk of memory is */
#ifdef PERL_OBJECT
-PERLVARI(Grunops, runops_proc_t, FUNC_NAME_TO_PTR(RUNOPS_DEFAULT))
+PERLVARI(Grunops, runops_proc_t, FUNC_NAME_TO_PTR(RUNOPS_DEFAULT))
#else
-PERLVARI(Grunops, runops_proc_t *, RUNOPS_DEFAULT)
+PERLVARI(Grunops, runops_proc_t *, RUNOPS_DEFAULT)
#endif
-PERLVAR(Gtokenbuf[256], char)
-PERLVAR(Gna, STRLEN) /* for use in SvPV when length is Not Applicable */
+PERLVAR(Gtokenbuf[256], char)
+PERLVAR(Gna, STRLEN) /* for use in SvPV when length is
+ Not Applicable */
-PERLVAR(Gsv_undef, SV)
-PERLVAR(Gsv_no, SV)
-PERLVAR(Gsv_yes, SV)
+PERLVAR(Gsv_undef, SV)
+PERLVAR(Gsv_no, SV)
+PERLVAR(Gsv_yes, SV)
#ifdef CSH
-PERLVARI(Gcshname, char *, CSH)
-PERLVAR(Gcshlen, I32)
+PERLVARI(Gcshname, char *, CSH)
+PERLVAR(Gcshlen, I32)
#endif
PERLVAR(Glex_state, U32) /* next token is determined */
PERLVAR(Glex_defer, U32) /* state after determined token */
-PERLVAR(Glex_expect, expectation) /* expect after determined token */
+PERLVAR(Glex_expect, expectation) /* expect after determined token */
PERLVAR(Glex_brackets, I32) /* bracket count */
PERLVAR(Glex_formbrack, I32) /* bracket count at outer format level */
PERLVAR(Glex_fakebrack, I32) /* outer bracket is mere delimiter */
@@ -85,22 +100,20 @@ PERLVAR(Glex_repl, SV *) /* runtime replacement from s/// */
PERLVAR(Glex_op, OP *) /* extra info to pass back on op */
PERLVAR(Glex_inpat, OP *) /* in pattern $) and $| are special */
PERLVAR(Glex_inwhat, I32) /* what kind of quoting are we in */
-PERLVAR(Glex_brackstack, char *) /* what kind of brackets to pop */
+PERLVAR(Glex_brackstack,char *) /* what kind of brackets to pop */
PERLVAR(Glex_casestack, char *) /* what kind of case mods in effect */
/* What we know when we're in LEX_KNOWNEXT state. */
-PERLVAR(Gnextval[5], YYSTYPE) /* value of next token, if any */
+PERLVAR(Gnextval[5], YYSTYPE) /* value of next token, if any */
PERLVAR(Gnexttype[5], I32) /* type of next token */
-PERLVAR(Gnexttoke, I32)
+PERLVAR(Gnexttoke, I32)
-PERLVARI(Grsfp, PerlIO * VOL, Nullfp)
-PERLVAR(Glinestr, SV *)
-PERLVAR(Gbufptr, char *)
-PERLVAR(Goldbufptr, char *)
-PERLVAR(Goldoldbufptr, char *)
-PERLVAR(Gbufend, char *)
-PERLVARI(Gexpect, expectation, XSTATE) /* how to interpret ambiguous tokens */
-PERLVAR(Grsfp_filters, AV *)
+PERLVAR(Glinestr, SV *)
+PERLVAR(Gbufptr, char *)
+PERLVAR(Goldbufptr, char *)
+PERLVAR(Goldoldbufptr, char *)
+PERLVAR(Gbufend, char *)
+PERLVARI(Gexpect,expectation, XSTATE) /* how to interpret ambiguous tokens */
PERLVAR(Gmulti_start, I32) /* 1st line of multi-line string */
PERLVAR(Gmulti_end, I32) /* last line of multi-line string */
@@ -111,53 +124,50 @@ PERLVAR(Gerror_count, I32) /* how many errors so far, max 10 */
PERLVAR(Gsubline, I32) /* line this subroutine began on */
PERLVAR(Gsubname, SV *) /* name of current subroutine */
-PERLVAR(Gcompcv, CV *) /* currently compiling subroutine */
-PERLVAR(Gcomppad, AV *) /* storage for lexically scoped temporaries */
-PERLVAR(Gcomppad_name, AV *) /* variable names for "my" variables */
-PERLVAR(Gcomppad_name_fill, I32) /* last "introduced" variable offset */
-PERLVAR(Gcomppad_name_floor, I32) /* start of vars in innermost block */
-PERLVAR(Gmin_intro_pending, I32) /* start of vars to introduce */
-PERLVAR(Gmax_intro_pending, I32) /* end of vars to introduce */
-PERLVAR(Gpadix, I32) /* max used index in current "register" pad */
+PERLVAR(Gmin_intro_pending, I32) /* start of vars to introduce */
+PERLVAR(Gmax_intro_pending, I32) /* end of vars to introduce */
+PERLVAR(Gpadix, I32) /* max used index in current "register" pad */
PERLVAR(Gpadix_floor, I32) /* how low may inner block reset padix */
-PERLVAR(Gpad_reset_pending, I32) /* reset pad on next attempted alloc */
-PERLVAR(Gcompiling, COP)
+PERLVAR(Gpad_reset_pending, I32) /* reset pad on next attempted alloc */
PERLVAR(Gthisexpr, I32) /* name id for nothing_in_common() */
-PERLVAR(Glast_uni, char *) /* position of last named-unary operator */
+PERLVAR(Glast_uni, char *) /* position of last named-unary op */
PERLVAR(Glast_lop, char *) /* position of last list operator */
PERLVAR(Glast_lop_op, OPCODE) /* last list operator */
-PERLVAR(Gin_my, bool) /* we're compiling a "my" declaration */
+PERLVAR(Gin_my, bool) /* we're compiling a "my" declaration */
PERLVAR(Gin_my_stash, HV *) /* declared class of this "my" declaration */
#ifdef FCRYPT
PERLVAR(Gcryptseen, I32) /* has fast crypt() been initialized? */
#endif
-PERLVAR(Ghints, U32) /* various compilation flags */
+PERLVAR(Ghints, U32) /* pragma-tic compile-time flags */
PERLVAR(Gdo_undump, bool) /* -u or dump seen? */
-PERLVAR(Gdebug, VOL U32)
+PERLVAR(Gdebug, VOL U32) /* flags given to -D switch */
#ifdef OVERLOAD
-PERLVAR(Gamagic_generation, long)
+PERLVAR(Gamagic_generation, long)
#endif
#ifdef USE_LOCALE_COLLATE
PERLVAR(Gcollation_ix, U32) /* Collation generation index */
-PERLVAR(Gcollation_name, char *) /* Name of current collation */
-PERLVARI(Gcollation_standard, bool, TRUE) /* Assume simple collation */
+PERLVAR(Gcollation_name,char *) /* Name of current collation */
+PERLVARI(Gcollation_standard, bool, TRUE)
+ /* Assume simple collation */
PERLVAR(Gcollxfrm_base, Size_t) /* Basic overhead in *xfrm() */
-PERLVARI(Gcollxfrm_mult, Size_t, 2) /* Expansion factor in *xfrm() */
+PERLVARI(Gcollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
#endif /* USE_LOCALE_COLLATE */
#ifdef USE_LOCALE_NUMERIC
PERLVAR(Gnumeric_name, char *) /* Name of current numeric locale */
-PERLVARI(Gnumeric_standard, bool, TRUE) /* Assume simple numerics */
-PERLVARI(Gnumeric_local, bool, TRUE) /* Assume local numerics */
+PERLVARI(Gnumeric_standard, bool, TRUE)
+ /* Assume simple numerics */
+PERLVARI(Gnumeric_local, bool, TRUE)
+ /* Assume local numerics */
#endif /* !USE_LOCALE_NUMERIC */
@@ -167,5 +177,5 @@ PERLVARIC(GNo, char *, "")
PERLVARIC(Ghexdigit, char *, "0123456789abcdef0123456789ABCDEFx")
PERLVARIC(Gpatleave, char *, "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}")
-PERLVAR(Gspecialsv_list[4], SV *) /* from byterun.h */
+PERLVAR(Gspecialsv_list[4],SV *) /* from byterun.h */
diff --git a/pod/Makefile b/pod/Makefile
index 16f90a1891..785f9775dd 100644
--- a/pod/Makefile
+++ b/pod/Makefile
@@ -8,6 +8,8 @@ POD2HTML = pod2html \
all: $(CONVERTERS) man
+converters: $(CONVERTERS)
+
PERL = ../miniperl
REALPERL = ../perl
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 8dd2f823a0..7d39630240 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -188,10 +188,6 @@ the return value of your socket() call? See L<perlfunc/accept>.
(X) You can't allocate more than 64K on an MS-DOS machine.
-=item Allocation too large
-
-(F) You can't allocate more than 2^31+"small amount" bytes.
-
=item Applying %s to %s will act on scalar(%s)
(W) The pattern match (//), substitution (s///), and transliteration (tr///)
@@ -1754,7 +1750,7 @@ if you said "*foo * 'foo'".
(F) The yacc parser wanted to grow its stack so it could continue parsing,
but realloc() wouldn't give it more memory, virtual or otherwise.
-=item Out of memory!
+=item Out of memory during request for %s
(X|F) The malloc() function returned 0, indicating there was insufficient
remaining memory (or virtual memory) to satisfy the request.
@@ -1765,13 +1761,19 @@ However, if compiled for this, Perl may use the contents of C<$^M> as
an emergency pool after die()ing with this message. In this case the
error is trappable I<once>.
-=item Out of memory during request for %s
+=item Out of memory during "large" request for %s
(F) The malloc() function returned 0, indicating there was insufficient
remaining memory (or virtual memory) to satisfy the request. However,
the request was judged large enough (compile-time default is 64K), so
a possibility to shut down by trapping this error is granted.
+=item Out of memory during ridiculously large request
+
+(F) You can't allocate more than 2^31+"small amount" bytes. This error
+is most likely to be caused by a typo in the Perl program. e.g., C<$arr[time]>
+instead of C<$arr[$time]>.
+
=item page overflow
(W) A single call to write() produced more lines than can fit on a page.
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 25a97ffddb..bfb1c30577 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -2127,8 +2127,9 @@ to open.)
If the filename begins with '<' or nothing, the file is opened for input.
If the filename begins with '>', the file is truncated and opened for
-output. If the filename begins with '>>', the file is opened for
-appending. You can put a '+' in front of the '>' or '<' to indicate that
+output, being created if necessary. If the filename begins with '>>',
+the file is opened for appending, again being created if necessary.
+You can put a '+' in front of the '>' or '<' to indicate that
you want both read and write access to the file; thus '+<' is almost
always preferred for read/write updates--the '+>' mode would clobber the
file first. You can't usually use either read-write mode for updating
@@ -3835,7 +3836,17 @@ the new position.
Does exactly the same thing as "exec LIST" except that a fork is done
first, and the parent process waits for the child process to complete.
Note that argument processing varies depending on the number of
-arguments. The return value is the exit status of the program as
+arguments. If there is more than one argument in LIST, or if LIST is
+an array with more than one value, starts the program given by the
+first element of the list with arguments given by the rest of the list.
+If there is only one scalar argument, the argument is
+checked for shell metacharacters, and if there are any, the entire
+argument is passed to the system's command shell for parsing (this is
+C</bin/sh -c> on Unix platforms, but varies on other platforms). If
+there are no shell metacharacters in the argument, it is split into
+words and passed directly to execvp(), which is more efficient.
+
+The return value is the exit status of the program as
returned by the wait() call. To get the actual exit value divide by
256. See also L</exec>. This is I<NOT> what you want to use to capture
the output from a command, for that you should use merely backticks or
diff --git a/pod/perlop.pod b/pod/perlop.pod
index fe6ba1e90f..0a081b56d1 100644
--- a/pod/perlop.pod
+++ b/pod/perlop.pod
@@ -620,7 +620,7 @@ the same character fore and aft, but the 4 sorts of brackets
Customary Generic Meaning Interpolates
'' q{} Literal no
"" qq{} Literal yes
- `` qx{} Command yes
+ `` qx{} Command yes (unless '' is delimiter)
qw{} Word list no
// m{} Pattern match yes
s{}{} Substitution yes
@@ -695,6 +695,18 @@ evaluation of variables when used within double quotes.
Here are the quote-like operators that apply to pattern
matching and related activities.
+Most of this section is related to use of regular expressions from Perl.
+Such a use may be considered from two points of view: Perl handles a
+a string and a "pattern" to RE (regular expression) engine to match,
+RE engine finds (or does not find) the match, and Perl uses the findings
+of RE engine for its operation, possibly asking the engine for other matches.
+
+RE engine has no idea what Perl is going to do with what it finds,
+similarly, the rest of Perl has no idea what a particular regular expression
+means to RE engine. This creates a clean separation, and in this section
+we discuss matching from Perl point of view only. The other point of
+view may be found in L<perlre>.
+
=over 8
=item ?PATTERN?
@@ -741,8 +753,11 @@ Options are:
x Use extended regular expressions.
If "/" is the delimiter then the initial C<m> is optional. With the C<m>
-you can use any pair of non-alphanumeric, non-whitespace characters as
-delimiters. This is particularly useful for matching Unix path names
+you can use any pair of non-alphanumeric, non-whitespace characters
+as delimiters (if single quotes are used, no interpretation is done
+on the replacement string. Unlike Perl 4, Perl 5 treats backticks as normal
+delimiters; the replacement text is not evaluated as a command).
+This is particularly useful for matching Unix path names
that contain "/", to avoid LTS (leaning toothpick syndrome). If "?" is
the delimiter, then the match-only-once rule of C<?PATTERN?> applies.
@@ -759,9 +774,10 @@ If you change them, Perl won't even notice.
If the PATTERN evaluates to the empty string, the last
I<successfully> matched regular expression is used instead.
-If used in a context that requires a list value, a pattern match returns a
+If the C</g> option is not used, C<m//> in a list context returns a
list consisting of the subexpressions matched by the parentheses in the
-pattern, i.e., (C<$1>, $2, $3...). (Note that here $1 etc. are also set, and
+pattern, i.e., (C<$1>, C<$2>, C<$3>...). (Note that here
+C<$1> etc. are also set, and
that this differs from Perl 4's behavior.) If there are no parentheses,
the return value is the list C<(1)> for success or C<('')> upon failure.
With parentheses, C<()> is returned upon failure.
@@ -1169,6 +1185,182 @@ an eval():
=back
+=head2 Gory details of parsing quoted constructs
+
+When presented with something which may have several different
+interpretations, Perl uses the principle B<DWIM> (expanded to Do What I Mean
+- not what I wrote) to pick up the most probable interpretation of the
+source. This strategy is so successful that Perl users usually do not
+suspect ambivalence of what they write. However, time to time Perl's ideas
+differ from what the author meant.
+
+The target of this section is to clarify the Perl's way of interpreting
+quoted constructs. The most frequent reason one may have to want to know the
+details discussed in this section is hairy regular expressions. However, the
+first steps of parsing are the same for all Perl quoting operators, so here
+they are discussed together.
+
+Some of the passes discussed below are performed concurrently, but as
+far as results are the same, we consider them one-by-one. For different
+quoting constructs Perl performs different number of passes, from
+one to five, but they are always performed in the same order.
+
+=over
+
+=item Finding the end
+
+First pass is finding the end of the quoted construct, be it multichar ender
+C<"\nEOF\n"> of C<<<EOF> construct, C</> which terminates C<qq/> construct,
+C<E<]>> which terminates C<qq[> construct, or C<E<gt>> which terminates a
+fileglob started with C<<>.
+
+When searching for multichar construct no skipping is performed. When
+searching for one-char non-matching delimiter, such as C</>, combinations
+C<\\> and C<\/> are skipped. When searching for one-char matching delimiter,
+such as C<]>, combinations C<\\>, C<\]> and C<\[> are skipped, and
+nested C<[>, C<]> are skipped as well.
+
+For 3-parts constructs C<s///> etc. the search is repeated once more.
+
+During this search no attension is paid to the semantic of the construct, thus
+
+ "$hash{"$foo/$bar"}"
+
+or
+
+ m/
+ bar # This is not a comment, this slash / terminated m//!
+ /x
+
+do not form legal quoted expressions. Note that since the slash which
+terminated C<m//> was followed by a C<SPACE>, this is not C<m//x>,
+thus C<#> was interpreted as a literal C<#>.
+
+=item Removal of backslashes before delimiters
+
+During the second pass the text between the starting delimiter and
+the ending delimiter is copied to a safe location, and the C<\> is
+removed from combinations consisting of C<\> and delimiter(s) (both starting
+and ending delimiter if they differ).
+
+The removal does not happen for multi-char delimiters.
+
+Note that the combination C<\\> is left as it was!
+
+Starting from this step no information about the delimiter(s) is used in the
+parsing.
+
+=item Interpolation
+
+Next step is interpolation in the obtained delimiter-independent text.
+There are many different cases.
+
+=over
+
+=item C<<<'EOF'>, C<m''>, C<s'''>, C<tr///>, C<y///>
+
+No interpolation is performed.
+
+=item C<''>, C<q//>
+
+The only interpolation is removal of C<\> from pairs C<\\>.
+
+=item C<"">, C<``>, C<qq//>, C<qx//>, C<<file*globE<gt>>
+
+C<\Q>, C<\U>, C<\u>, C<\L>, C<\l> (possibly paired with C<\E>) are converted
+to corresponding Perl constructs, thus C<"$foo\Qbaz$bar"> is converted to
+
+ $foo . (quotemeta("baz" . $bar));
+
+Other combinations of C<\> with following chars are substituted with
+appropriate expansions.
+
+Interpolated scalars and arrays are converted to C<join> and C<.> Perl
+constructs, thus C<"'@arr'"> becomes
+
+ "'" . (join $", @arr) . "'";
+
+Since all three above steps are performed simultaneously left-to-right,
+the is no way to insert a literal C<$> or C<@> inside C<\Q\E> pair: it
+cannot be protected by C<\>, since any C<\> (except in C<\E>) is
+interpreted as a literal inside C<\Q\E>, and any $ is
+interpreted as starting an interpolated scalar.
+
+Note also that the interpolating code needs to make decision where the
+interpolated scalar ends, say, whether C<"a $b -> {c}"> means
+
+ "a " . $b . " -> {c}";
+
+or
+
+ "a " . $b -> {c};
+
+Most the time the decision is to take the longest possible text which does
+not include spaces between components and contains matching braces/brackets.
+
+=item C<?RE?>, C</RE/>, C<m/RE/>, C<s/RE/foo/>,
+
+Processing of C<\Q>, C<\U>, C<\u>, C<\L>, C<\l> and interpolation happens
+(almost) as with qq// constructs, but I<the substitution of C<\> followed by
+other chars is not performed>! Moreover, inside C<(?{BLOCK})> no processing
+is performed at all.
+
+Interpolation has several quirks: $|, $( and $) are not interpolated, and
+constructs C<$var[SOMETHING]> are I<voted> (by several different estimators)
+to be an array element or $var followed by a RE alternative. This is
+the place where the notation C<${arr[$bar]}> comes handy: C</${arr[0-9]}/>
+is interpreted as an array element -9, not as a regular expression from
+variable $arr followed by a digit, which is the interpretation of
+C</$arr[0-9]/>.
+
+Note that absense of processing of C<\\> creates specific restrictions on the
+post-processed text: if the delimeter is C</>, one cannot get the combination
+C<\/> into the result of this step: C</> will finish the regular expression,
+C<\/> will be stripped to C</> on the previous step, and C<\\/> will be left
+as is. Since C</> is equivalent to C<\/> inside a regular expression, this
+does not matter unless the delimiter is special character for RE engine, as
+in C<s*foo*bar*>, C<m[foo]>, or C<?foo?>.
+
+=back
+
+This step is the last one for all the constructs except regular expressions,
+which are processed further.
+
+=item Interpolation of regular expressions
+
+All the previous steps were performed during the compilation of Perl code,
+this one happens in run time (though it may be optimized to be calculated
+at compile time if appropriate). After all the preprocessing performed
+above (and possibly after evaluation if catenation, joining, up/down-casing
+and quotemeta()ing are involved) the resulting I<string> is passed to RE
+engine for compilation.
+
+Whatever happens in the RE engine is better be discussed in L<perlre>,
+but for the sake of continuity let us do it here.
+
+This is the first step where presense of the C<//x> switch is relevant.
+RE engine scans the string left-to-right, and converts it to a finite
+automaton.
+
+Backslashed chars are either substituted by corresponding literal
+strings, or generate special nodes of the finite automaton. Characters
+which are special to RE engine generate corresponding nodes. C<(?#...)>
+comments are ignored. All the rest is either converted to literal strings
+to match, or is ignored (as is whitespace and C<#>-style comments if
+C<//x> is present).
+
+Note that the parsing of the construct C<[...]> is performed using
+absolutely different rules than the rest of the regular expression.
+Similarly, the C<(?{...})> is only checked for matching braces.
+
+=item Optimization of regular expressions
+
+This step is listed for compeleteness only. Since it does not change
+semantics, details of this step are not documented and are subject
+to change.
+
+=back
+
=head2 I/O Operators
There are several I/O operators you should know about.
diff --git a/pod/perlre.pod b/pod/perlre.pod
index 927d088edb..b8c566228a 100644
--- a/pod/perlre.pod
+++ b/pod/perlre.pod
@@ -6,13 +6,13 @@ perlre - Perl regular expressions
This page describes the syntax of regular expressions in Perl. For a
description of how to I<use> regular expressions in matching
-operations, plus various examples of the same, see C<m//> and C<s///> in
-L<perlop>.
+operations, plus various examples of the same, see discussion
+of C<m//>, C<s///>, and C<??> in L<perlop/Regexp Quote-Like Operators>.
The matching operations can have various modifiers. The modifiers
that relate to the interpretation of the regular expression inside
-are listed below. For the modifiers that alter the behaviour of the
-operation, see L<perlop/"m//"> and L<perlop/"s//">.
+are listed below. For the modifiers that alter the way regular expression
+is used by Perl, see L<perlop/Regexp Quote-Like Operators>.
=over 4
@@ -270,7 +270,9 @@ function of the extension. Several extensions are already supported:
=item C<(?#text)>
A comment. The text is ignored. If the C</x> switch is used to enable
-whitespace formatting, a simple C<#> will suffice.
+whitespace formatting, a simple C<#> will suffice. Note that perl closes
+the comment as soon as it sees a C<)>, so there is no way to put a literal
+C<)> in the comment.
=item C<(?:pattern)>
diff --git a/pod/perlrun.pod b/pod/perlrun.pod
index 72c772e4bb..b0790d7093 100644
--- a/pod/perlrun.pod
+++ b/pod/perlrun.pod
@@ -336,6 +336,11 @@ You can use C<eof> without parentheses to locate the end of each input file,
in case you want to append to each file, or reset line numbering (see
example in L<perlfunc/eof>).
+Finally, note that the B<-i> switch does not impede execution when no
+files are given on the command line. In this case, no backup is made
+(the original file cannot, of course, be determined) and processing
+proceeds from STDIN to STDOUT as might be expected.
+
=item B<-I>I<directory>
Directories specified by B<-I> are prepended to the search path for
diff --git a/pod/perlvar.pod b/pod/perlvar.pod
index 1a120118d0..d10fe35cbd 100644
--- a/pod/perlvar.pod
+++ b/pod/perlvar.pod
@@ -448,6 +448,8 @@ Under VMS, the pragma C<use vmsish 'status'> makes C<$?> reflect the
actual VMS exit status, instead of the default emulation of POSIX
status.
+Also see L<Error Indicators>.
+
=item $OS_ERROR
=item $ERRNO
@@ -463,6 +465,8 @@ to C<$!> to set I<errno> if, for instance, you want C<"$!"> to return the
string for error I<n>, or you want to set the exit value for the die()
operator. (Mnemonic: What just went bang?)
+Also see L<Error Indicators>.
+
=item $EXTENDED_OS_ERROR
=item $^E
@@ -490,6 +494,8 @@ via C<$!>.
Caveats mentioned in the description of C<$!> generally apply to
C<$^E>, also. (Mnemonic: Extra error explanation.)
+Also see L<Error Indicators>.
+
=item $EVAL_ERROR
=item $@
@@ -503,6 +509,8 @@ Note that warning messages are not collected in this variable. You can,
however, set up a routine to process warnings by setting C<$SIG{__WARN__}>
as described below.
+Also see L<Error Indicators>.
+
=item $PROCESS_ID
=item $PID
@@ -869,3 +877,54 @@ See L<perlfunc/die>, L<perlfunc/warn> and L<perlfunc/eval> for
additional info.
=back
+
+=head2 Error Indicators
+
+The variables L<$@>, L<$!>, L<$^E>, and L<$?> contain information about
+different types of error conditions that may appear during execution of
+Perl script. The variables are shown ordered by the "distance" between
+the subsystem which reported the error and the Perl process, and
+correspond to errors detected by the Perl interpreter, C library,
+operating system, or an external program, respectively.
+
+To illustrate the differences between these variables, consider the
+following Perl expression:
+
+ eval '
+ open PIPE, "/cdrom/install |";
+ @res = <PIPE>;
+ close PIPE or die "bad pipe: $?, $!";
+ ';
+
+After execution of this statement all 4 variables may have been set.
+
+$@ is set if the string to be C<eval>-ed did not compile (this may happen if
+C<open> or C<close> were imported with bad prototypes), or if Perl
+code executed during evaluation die()d (either implicitly, say,
+if C<open> was imported from module L<Fatal>, or the C<die> after
+C<close> was triggered). In these cases the value of $@ is the compile
+error, or C<Fatal> error (which will interpolate C<$!>!), or the argument
+to C<die> (which will interpolate C<$!> and C<$?>!).
+
+When the above expression is executed, open(), C<<PIPEE<gt>>, and C<close>
+are translated to C run-time library calls. $! is set if one of these
+calls fails. The value is a symbolic indicator chosen by the C run-time
+library, say C<No such file or directory>.
+
+On some systems the above C library calls are further translated
+to calls to the kernel. The kernel may have set more verbose error
+indicator that one of the handful of standard C errors. In such cases $^E
+contains this verbose error indicator, which may be, say, C<CDROM tray not
+closed>. On systems where C library calls are identical to system calls
+$^E is a duplicate of $!.
+
+Finally, $? may be set to non-C<0> value if the external program
+C</cdrom/install> fails. Upper bits of the particular value may reflect
+specific error conditions encountered by this program (this is
+program-dependent), lower-bits reflect mode of failure (segfault, completion,
+etc.). Note that in contrast to $@, $!, and $^E, which are set only
+if error condition is detected, the variable $? is set on each C<wait> or
+pipe C<close>, overwriting the old value.
+
+For more details, see the individual descriptions at L<$@>, L<$!>, L<$^E>,
+and L<$?>.
diff --git a/pp.c b/pp.c
index aeaca4c607..7d51e49206 100644
--- a/pp.c
+++ b/pp.c
@@ -2418,7 +2418,6 @@ PP(pp_exists)
PP(pp_hslice)
{
djSP; dMARK; dORIGMARK;
- register HE *he;
register HV *hv = (HV*)POPs;
register I32 lval = op->op_flags & OPf_MOD;
I32 realhv = (SvTYPE(hv) == SVt_PVHV);
@@ -2428,18 +2427,18 @@ PP(pp_hslice)
SV *keysv = *MARK;
SV **svp;
if (realhv) {
- he = hv_fetch_ent(hv, keysv, lval, 0);
+ HE *he = hv_fetch_ent(hv, keysv, lval, 0);
svp = he ? &HeVAL(he) : 0;
} else {
svp = avhv_fetch_ent((AV*)hv, keysv, lval, 0);
}
if (lval) {
- if (!he || HeVAL(he) == &sv_undef)
+ if (!svp || *svp == &sv_undef)
DIE(no_helem, SvPV(keysv, na));
if (op->op_private & OPpLVAL_INTRO)
- save_helem(hv, keysv, &HeVAL(he));
+ save_helem(hv, keysv, svp);
}
- *MARK = he ? HeVAL(he) : &sv_undef;
+ *MARK = svp ? *svp : &sv_undef;
}
}
if (GIMME != G_ARRAY) {
diff --git a/pp_ctl.c b/pp_ctl.c
index 444036ea7e..1209f7cf79 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1486,10 +1486,22 @@ PP(pp_return)
TAINT_NOT;
if (gimme == G_SCALAR) {
- if (MARK < SP)
- *++newsp = (popsub2 && SvTEMP(*SP))
- ? *SP : sv_mortalcopy(*SP);
- else
+ if (MARK < SP) {
+ if (popsub2) {
+ if (cxsub.cv && CvDEPTH(cxsub.cv) > 1) {
+ if (SvTEMP(TOPs)) {
+ *++newsp = SvREFCNT_inc(*SP);
+ FREETMPS;
+ sv_2mortal(*newsp);
+ } else {
+ FREETMPS;
+ *++newsp = sv_mortalcopy(*SP);
+ }
+ } else
+ *++newsp = (SvTEMP(*SP)) ? *SP : sv_mortalcopy(*SP);
+ } else
+ *++newsp = sv_mortalcopy(*SP);
+ } else
*++newsp = &sv_undef;
}
else if (gimme == G_ARRAY) {
diff --git a/pp_hot.c b/pp_hot.c
index 9fbd176bf4..dd5ef14e8a 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1027,8 +1027,11 @@ do_readline(void)
IoFLAGS(io) &= ~IOf_START;
IoLINES(io) = 0;
if (av_len(GvAVn(last_in_gv)) < 0) {
- SV *tmpstr = newSVpv("-", 1); /* assume stdin */
- av_push(GvAVn(last_in_gv), tmpstr);
+ do_open(last_in_gv,"-",1,FALSE,0,0,Nullfp);
+ sv_setpvn(GvSV(last_in_gv), "-", 1);
+ SvSETMAGIC(GvSV(last_in_gv));
+ fp = IoIFP(io);
+ goto have_fp;
}
}
fp = nextargv(last_in_gv);
@@ -1176,6 +1179,7 @@ do_readline(void)
}
RETURN;
}
+ have_fp:
if (gimme == G_SCALAR) {
sv = TARG;
if (SvROK(sv))
@@ -1774,9 +1778,19 @@ PP(pp_leavesub)
TAINT_NOT;
if (gimme == G_SCALAR) {
MARK = newsp + 1;
- if (MARK <= SP)
- *MARK = SvTEMP(TOPs) ? TOPs : sv_mortalcopy(TOPs);
- else {
+ if (MARK <= SP) {
+ if (cxsub.cv && CvDEPTH(cxsub.cv) > 1) {
+ if (SvTEMP(TOPs)) {
+ *MARK = SvREFCNT_inc(TOPs);
+ FREETMPS;
+ sv_2mortal(*MARK);
+ } else {
+ FREETMPS;
+ *MARK = sv_mortalcopy(TOPs);
+ }
+ } else
+ *MARK = SvTEMP(TOPs) ? TOPs : sv_mortalcopy(TOPs);
+ } else {
MEXTEND(MARK, 0);
*MARK = &sv_undef;
}
diff --git a/pp_sys.c b/pp_sys.c
index 1814a59e15..df2b7ae596 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -207,7 +207,7 @@ PP(pp_backtick)
SV *sv;
for (;;) {
- sv = NEWSV(56, 80);
+ sv = NEWSV(56, 79);
if (sv_gets(sv, fp, 0) == Nullch) {
SvREFCNT_dec(sv);
break;
diff --git a/proto.h b/proto.h
index d7b7762d10..0beb3849be 100644
--- a/proto.h
+++ b/proto.h
@@ -1,11 +1,4 @@
#ifdef PERL_OBJECT
-#include "ipstdio.h"
-#include "ipdir.h"
-#include "ipenv.h"
-#include "iplio.h"
-#include "ipmem.h"
-#include "ipproc.h"
-#include "ipsock.h"
#define VIRTUAL virtual
#else
#define VIRTUAL
@@ -34,7 +27,6 @@ VIRTUAL bool avhv_exists _((AV *ar, char* key, U32 klen));
VIRTUAL bool avhv_exists_ent _((AV *ar, SV* keysv, U32 hash));
VIRTUAL SV** avhv_fetch _((AV *ar, char* key, U32 klen, I32 lval));
VIRTUAL SV** avhv_fetch_ent _((AV *ar, SV* keysv, I32 lval, U32 hash));
-VIRTUAL I32 avhv_iterinit _((AV *ar));
VIRTUAL HE* avhv_iternext _((AV *ar));
VIRTUAL SV * avhv_iternextsv _((AV *ar, char** key, I32* retlen));
VIRTUAL SV* avhv_iterval _((AV *ar, HE* entry));
@@ -272,6 +264,9 @@ VIRTUAL U32 magic_sizepack _((SV* sv, MAGIC* mg));
VIRTUAL int magic_wipepack _((SV* sv, MAGIC* mg));
VIRTUAL void magicname _((char* sym, char* name, I32 namlen));
int main _((int argc, char** argv, char** env));
+#ifdef MYMALLOC
+VIRTUAL MEM_SIZE malloced_size _((void *p));
+#endif
VIRTUAL void markstack_grow _((void));
#ifdef USE_LOCALE_COLLATE
VIRTUAL char* mem_collxfrm _((const char* s, STRLEN len, STRLEN* xlen));
@@ -779,6 +774,7 @@ CV *cv_clone2 _((CV *proto, CV *outside));
void find_beginning _((void));
void forbid_setid _((char *));
void incpush _((char *, int));
+void init_interp _((void));
void init_ids _((void));
void init_debugger _((void));
void init_lexer _((void));
diff --git a/regcomp.c b/regcomp.c
index 45f1e9a91f..2b71d99a40 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -267,6 +267,10 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
/* Allow dumping */
n = scan + (*OPERAND(scan) + 2 - 1)/sizeof(regnode) + 2;
while (n <= stop) {
+ /* Purify reports a benign UMR here sometimes, because we
+ * don't initialize the OP() slot of a node when that node
+ * is occupied by just the trailing null of the string in
+ * an EXACT node */
if (regkind[(U8)OP(n)] != NOTHING || OP(n) == NOTHING) {
OP(n) = OPTIMIZED;
NEXT_OFF(n) = 0;
diff --git a/regcomp.h b/regcomp.h
index be6e5b1c33..6a01eec63e 100644
--- a/regcomp.h
+++ b/regcomp.h
@@ -49,174 +49,6 @@ typedef OP OP_4tree; /* Will be redefined later. */
* to the thing following the set of BRANCHes.) The opcodes are:
*/
-/* definition number opnd? meaning */
-#define END 0 /* no End of program. */
-#define BOL 1 /* no Match "" at beginning of line. */
-#define MBOL 2 /* no Same, assuming multiline. */
-#define SBOL 3 /* no Same, assuming singleline. */
-#define EOL 4 /* no Match "" at end of line. */
-#define MEOL 5 /* no Same, assuming multiline. */
-#define SEOL 6 /* no Same, assuming singleline. */
-#define ANY 7 /* no Match any one character (except newline). */
-#define SANY 8 /* no Match any one character. */
-#define ANYOF 9 /* sv Match character in (or not in) this class. */
-#define CURLY 10 /* sv Match this simple thing {n,m} times. */
-#define CURLYX 11 /* sv Match this complex thing {n,m} times. */
-#define BRANCH 12 /* node Match this alternative, or the next... */
-#define BACK 13 /* no Match "", "next" ptr points backward. */
-#define EXACT 14 /* sv Match this string (preceded by length). */
-#define EXACTF 15 /* sv Match this string, folded (prec. by length). */
-#define EXACTFL 16 /* sv Match this string, folded in locale (w/len). */
-#define NOTHING 17 /* no Match empty string. */
-#define STAR 18 /* node Match this (simple) thing 0 or more times. */
-#define PLUS 19 /* node Match this (simple) thing 1 or more times. */
-#define BOUND 20 /* no Match "" at any word boundary */
-#define BOUNDL 21 /* no Match "" at any word boundary */
-#define NBOUND 22 /* no Match "" at any word non-boundary */
-#define NBOUNDL 23 /* no Match "" at any word non-boundary */
-#define REF 24 /* num Match some already matched string */
-#define OPEN 25 /* num Mark this point in input as start of #n. */
-#define CLOSE 26 /* num Analogous to OPEN. */
-#define MINMOD 27 /* no Next operator is not greedy. */
-#define GPOS 28 /* no Matches where last m//g left off. */
-#define IFMATCH 29 /* off Succeeds if the following matches. */
-#define UNLESSM 30 /* off Fails if the following matches. */
-#define SUCCEED 31 /* no Return from a subroutine, basically. */
-#define WHILEM 32 /* no Do curly processing and see if rest matches. */
-#define ALNUM 33 /* no Match any alphanumeric character */
-#define ALNUML 34 /* no Match any alphanumeric char in locale */
-#define NALNUM 35 /* no Match any non-alphanumeric character */
-#define NALNUML 36 /* no Match any non-alphanumeric char in locale */
-#define SPACE 37 /* no Match any whitespace character */
-#define SPACEL 38 /* no Match any whitespace char in locale */
-#define NSPACE 39 /* no Match any non-whitespace character */
-#define NSPACEL 40 /* no Match any non-whitespace char in locale */
-#define DIGIT 41 /* no Match any numeric character */
-#define NDIGIT 42 /* no Match any non-numeric character */
-#define CURLYM 43 /* no Match this medium-complex thing {n,m} times. */
-#define CURLYN 44 /* no Match next-after-this simple thing
- {n,m} times, set parenths. */
-#define TAIL 45 /* no Match empty string. Can jump here from outside. */
-#define REFF 46 /* num Match already matched string, folded */
-#define REFFL 47 /* num Match already matched string, folded in loc. */
-#define EVAL 48 /* evl Execute some Perl code. */
-#define LONGJMP 49 /* off Jump far away. */
-#define BRANCHJ 50 /* off BRANCH with long offset. */
-#define IFTHEN 51 /* off Switch, should be preceeded by switcher . */
-#define GROUPP 52 /* num Whether the group matched. */
-#define LOGICAL 53 /* no Next opcode should set the flag only. */
-#define SUSPEND 54 /* off "Independent" sub-RE. */
-#define RENUM 55 /* off Group with independently numbered parens. */
-#define OPTIMIZED 56 /* off Placeholder for dump. */
-
-/*
- * Opcode notes:
- *
- * BRANCH The set of branches constituting a single choice are hooked
- * together with their "next" pointers, since precedence prevents
- * anything being concatenated to any individual branch. The
- * "next" pointer of the last BRANCH in a choice points to the
- * thing following the whole choice. This is also where the
- * final "next" pointer of each individual branch points; each
- * branch starts with the operand node of a BRANCH node.
- *
- * BACK Normal "next" pointers all implicitly point forward; BACK
- * exists to make loop structures possible.
- *
- * STAR,PLUS '?', and complex '*' and '+', are implemented as circular
- * BRANCH structures using BACK. Simple cases (one character
- * per match) are implemented with STAR and PLUS for speed
- * and to minimize recursive plunges.
- *
- * OPEN,CLOSE,GROUPP ...are numbered at compile time.
- */
-
-#ifndef DOINIT
-EXTCONST U8 regkind[];
-#else
-EXTCONST U8 regkind[] = {
- END,
- BOL,
- BOL,
- BOL,
- EOL,
- EOL,
- EOL,
- ANY,
- ANY,
- ANYOF,
- CURLY,
- CURLY,
- BRANCH,
- BACK,
- EXACT,
- EXACT,
- EXACT,
- NOTHING,
- STAR,
- PLUS,
- BOUND,
- BOUND,
- NBOUND,
- NBOUND,
- REF,
- OPEN,
- CLOSE,
- MINMOD,
- GPOS,
- BRANCHJ,
- BRANCHJ,
- END,
- WHILEM,
- ALNUM,
- ALNUM,
- NALNUM,
- NALNUM,
- SPACE,
- SPACE,
- NSPACE,
- NSPACE,
- DIGIT,
- NDIGIT,
- CURLY,
- CURLY,
- NOTHING,
- REF,
- REF,
- EVAL,
- LONGJMP,
- BRANCHJ,
- BRANCHJ,
- GROUPP,
- LOGICAL,
- BRANCHJ,
- BRANCHJ,
- NOTHING,
-};
-#endif
-
-/* The following have no fixed length. char* since we do strchr on it. */
-#ifndef DOINIT
-EXTCONST char varies[];
-#else
-EXTCONST char varies[] = {
- BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL,
- WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, 0
-};
-#endif
-
-/* The following always have a length of 1. char* since we do strchr on it. */
-#ifndef DOINIT
-EXTCONST char simple[];
-#else
-EXTCONST char simple[] = {
- ANY, SANY, ANYOF,
- ALNUM, ALNUML, NALNUM, NALNUML,
- SPACE, SPACEL, NSPACE, NSPACEL,
- DIGIT, NDIGIT, 0
-};
-#endif
-
/*
* A node is one char of opcode followed by two chars of "next" pointer.
* "Next" pointers are stored as two 8-bit pieces, high order first. The
@@ -359,44 +191,32 @@ struct regnode_2 {
#define EXTRA_SIZE(guy) ((sizeof(guy)-1)/sizeof(struct regnode))
-#ifdef REG_COMP_C
-const static U8 regarglen[] = {
- 0,0,0,0,0,0,0,0,0,0,
- /*CURLY*/ EXTRA_SIZE(struct regnode_2),
- /*CURLYX*/ EXTRA_SIZE(struct regnode_2),
- 0,0,0,0,0,0,0,0,0,0,0,0,
- /*REF*/ EXTRA_SIZE(struct regnode_1),
- /*OPEN*/ EXTRA_SIZE(struct regnode_1),
- /*CLOSE*/ EXTRA_SIZE(struct regnode_1),
- 0,0,
- /*IFMATCH*/ EXTRA_SIZE(struct regnode_1),
- /*UNLESSM*/ EXTRA_SIZE(struct regnode_1),
- 0,0,0,0,0,0,0,0,0,0,0,0,
- /*CURLYM*/ EXTRA_SIZE(struct regnode_2),
- /*CURLYN*/ EXTRA_SIZE(struct regnode_2),
- 0,
- /*REFF*/ EXTRA_SIZE(struct regnode_1),
- /*REFFL*/ EXTRA_SIZE(struct regnode_1),
- /*EVAL*/ EXTRA_SIZE(struct regnode_1),
- /*LONGJMP*/ EXTRA_SIZE(struct regnode_1),
- /*BRANCHJ*/ EXTRA_SIZE(struct regnode_1),
- /*IFTHEN*/ EXTRA_SIZE(struct regnode_1),
- /*GROUPP*/ EXTRA_SIZE(struct regnode_1),
- /*LOGICAL*/ 0,
- /*SUSPEND*/ EXTRA_SIZE(struct regnode_1),
- /*RENUM*/ EXTRA_SIZE(struct regnode_1), 0,
+#define REG_SEEN_ZERO_LEN 1
+#define REG_SEEN_LOOKBEHIND 2
+#define REG_SEEN_GPOS 4
+#define REG_SEEN_EVAL 8
+
+#include "regnodes.h"
+
+/* The following have no fixed length. char* since we do strchr on it. */
+#ifndef DOINIT
+EXTCONST char varies[];
+#else
+EXTCONST char varies[] = {
+ BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL,
+ WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, 0
};
+#endif
-const static char reg_off_by_arg[] = {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0 .. 15 */
- 0,0,0,0,0,0,0,0,0,0,0,0,0, /*IFMATCH*/ 2, /*UNLESSM*/ 2, 0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 32 .. 47 */
- 0, /*LONGJMP*/ 1, /*BRANCHJ*/ 1, /*IFTHEN*/ 1, 0, 0,
- /*RENUM*/ 1, /*RENUM*/ 1,0,
+/* The following always have a length of 1. char* since we do strchr on it. */
+#ifndef DOINIT
+EXTCONST char simple[];
+#else
+EXTCONST char simple[] = {
+ ANY, SANY, ANYOF,
+ ALNUM, ALNUML, NALNUM, NALNUML,
+ SPACE, SPACEL, NSPACE, NSPACEL,
+ DIGIT, NDIGIT, 0
};
#endif
-#define REG_SEEN_ZERO_LEN 1
-#define REG_SEEN_LOOKBEHIND 2
-#define REG_SEEN_GPOS 4
-#define REG_SEEN_EVAL 8
diff --git a/regcomp.pl b/regcomp.pl
new file mode 100644
index 0000000000..cfe59adc22
--- /dev/null
+++ b/regcomp.pl
@@ -0,0 +1,98 @@
+#use Fatal qw(open close rename chmod unlink);
+open DESC, 'regcomp.sym';
+$ind = 0;
+
+while (<DESC>) {
+ next if /^\s*($|\#)/;
+ $ind++;
+ chomp;
+ ($name[$ind], $desc, $rest[$ind]) = split /\t+/, $_, 3;
+ ($type[$ind], $code[$ind], $args[$ind], $longj[$ind])
+ = split /[,\s]\s*/, $desc, 4;
+}
+close DESC;
+$tot = $ind;
+
+$tmp_h = 'tmp_reg.h';
+
+unlink $tmp_h if -f $tmp_h;
+
+open OUT, ">$tmp_h";
+
+print OUT <<EOP;
+/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ This file is built by regcomp.pl from regcomp.sym.
+ Any changes made here will be lost!
+*/
+
+EOP
+
+$ind = 0;
+while (++$ind <= $tot) {
+ $oind = $ind - 1;
+ $hind = sprintf "%#4x", $oind;
+ print OUT <<EOP;
+#define $name[$ind] $oind /* $hind $rest[$ind] */
+EOP
+}
+
+print OUT <<EOP;
+
+#ifndef DOINIT
+EXTCONST U8 regkind[];
+#else
+EXTCONST U8 regkind[] = {
+EOP
+
+$ind = 0;
+while (++$ind <= $tot) {
+ print OUT <<EOP;
+ $type[$ind], /* $name[$ind] */
+EOP
+}
+
+print OUT <<EOP;
+};
+#endif
+
+
+#ifdef REG_COMP_C
+const static U8 regarglen[] = {
+EOP
+
+$ind = 0;
+while (++$ind <= $tot) {
+ $size = 0;
+ $size = "EXTRA_SIZE(struct regnode_$args[$ind])" if $args[$ind];
+
+ print OUT <<EOP;
+ $size, /* $name[$ind] */
+EOP
+}
+
+print OUT <<EOP;
+};
+
+const static char reg_off_by_arg[] = {
+EOP
+
+$ind = 0;
+while (++$ind <= $tot) {
+ $size = $longj[$ind] || 0;
+
+ print OUT <<EOP;
+ $size, /* $name[$ind] */
+EOP
+}
+
+print OUT <<EOP;
+};
+#endif /* REG_COMP_C */
+
+EOP
+
+close OUT;
+
+chmod 0666, 'regnodes.h';
+unlink 'regnodes.h';
+rename $tmp_h, 'regnodes.h';
diff --git a/regcomp.sym b/regcomp.sym
new file mode 100644
index 0000000000..aa18d119cc
--- /dev/null
+++ b/regcomp.sym
@@ -0,0 +1,111 @@
+# Format:
+# NAME \t TYPE, arg-description [num-args] [longjump-len] \t DESCRIPTION
+
+# Empty rows and #-comment rows are ignored.
+
+# Exit points
+END END, no End of program.
+SUCCEED END, no Return from a subroutine, basically.
+
+# Anchors:
+BOL BOL, no Match "" at beginning of line.
+MBOL BOL, no Same, assuming multiline.
+SBOL BOL, no Same, assuming singleline.
+EOL EOL, no Match "" at end of line.
+MEOL EOL, no Same, assuming multiline.
+SEOL EOL, no Same, assuming singleline.
+BOUND BOUND, no Match "" at any word boundary
+BOUNDL BOUND, no Match "" at any word boundary
+NBOUND NBOUND, no Match "" at any word non-boundary
+NBOUNDL NBOUND, no Match "" at any word non-boundary
+GPOS GPOS, no Matches where last m//g left off.
+
+# [Special] alternatives
+ANY ANY, no Match any one character (except newline).
+SANY ANY, no Match any one character.
+ANYOF ANYOF, sv Match character in (or not in) this class.
+ALNUM ALNUM, no Match any alphanumeric character
+ALNUML ALNUM, no Match any alphanumeric char in locale
+NALNUM NALNUM, no Match any non-alphanumeric character
+NALNUML NALNUM, no Match any non-alphanumeric char in locale
+SPACE SPACE, no Match any whitespace character
+SPACEL SPACE, no Match any whitespace char in locale
+NSPACE NSPACE, no Match any non-whitespace character
+NSPACEL NSPACE, no Match any non-whitespace char in locale
+DIGIT DIGIT, no Match any numeric character
+NDIGIT NDIGIT, no Match any non-numeric character
+
+# BRANCH The set of branches constituting a single choice are hooked
+# together with their "next" pointers, since precedence prevents
+# anything being concatenated to any individual branch. The
+# "next" pointer of the last BRANCH in a choice points to the
+# thing following the whole choice. This is also where the
+# final "next" pointer of each individual branch points; each
+# branch starts with the operand node of a BRANCH node.
+#
+BRANCH BRANCH, node Match this alternative, or the next...
+
+# BACK Normal "next" pointers all implicitly point forward; BACK
+# exists to make loop structures possible.
+# not used
+BACK BACK, no Match "", "next" ptr points backward.
+
+# Literals
+EXACT EXACT, sv Match this string (preceded by length).
+EXACTF EXACT, sv Match this string, folded (prec. by length).
+EXACTFL EXACT, sv Match this string, folded in locale (w/len).
+
+# Do nothing
+NOTHING NOTHING,no Match empty string.
+# A variant of above which delimits a group, thus stops optimizations
+TAIL NOTHING,no Match empty string. Can jump here from outside.
+
+# STAR,PLUS '?', and complex '*' and '+', are implemented as circular
+# BRANCH structures using BACK. Simple cases (one character
+# per match) are implemented with STAR and PLUS for speed
+# and to minimize recursive plunges.
+#
+STAR STAR, node Match this (simple) thing 0 or more times.
+PLUS PLUS, node Match this (simple) thing 1 or more times.
+
+CURLY CURLY, sv 2 Match this simple thing {n,m} times.
+CURLYN CURLY, no 2 Match next-after-this simple thing
+# {n,m} times, set parenths.
+CURLYM CURLY, no 2 Match this medium-complex thing {n,m} times.
+CURLYX CURLY, sv 2 Match this complex thing {n,m} times.
+
+# This terminator creates a loop structure for CURLYX
+WHILEM WHILEM, no Do curly processing and see if rest matches.
+
+# OPEN,CLOSE,GROUPP ...are numbered at compile time.
+OPEN OPEN, num 1 Mark this point in input as start of #n.
+CLOSE CLOSE, num 1 Analogous to OPEN.
+
+REF REF, num 1 Match some already matched string
+REFF REF, num 1 Match already matched string, folded
+REFFL REF, num 1 Match already matched string, folded in loc.
+
+# grouping assertions
+IFMATCH BRANCHJ,off 1 2 Succeeds if the following matches.
+UNLESSM BRANCHJ,off 1 2 Fails if the following matches.
+SUSPEND BRANCHJ,off 1 1 "Independent" sub-RE.
+IFTHEN BRANCHJ,off 1 1 Switch, should be preceeded by switcher .
+GROUPP GROUPP, num 1 Whether the group matched.
+
+# Support for long RE
+LONGJMP LONGJMP,off 1 1 Jump far away.
+BRANCHJ BRANCHJ,off 1 1 BRANCH with long offset.
+
+# The heavy worker
+EVAL EVAL, evl 1 Execute some Perl code.
+
+# Modifiers
+MINMOD MINMOD, no Next operator is not greedy.
+LOGICAL LOGICAL,no Next opcode should set the flag only.
+
+# This is not used yet
+RENUM BRANCHJ,off 1 1 Group with independently numbered parens.
+
+# This is not really a node, but an optimized away piece of a "long" node.
+# To simplify debugging output, we mark it as if it were a node
+OPTIMIZED NOTHING,off Placeholder for dump.
diff --git a/regexec.c b/regexec.c
index b6d2ca4ff4..dd51bc1e22 100644
--- a/regexec.c
+++ b/regexec.c
@@ -697,7 +697,7 @@ regtry(regexp *prog, char *startpos)
}
}
REGCP_SET;
- if (regmatch(prog->program + 1) && reginput >= regtill) {
+ if (regmatch(prog->program + 1)) {
prog->startp[0] = startpos;
prog->endp[0] = reginput;
return 1;
@@ -1504,8 +1504,11 @@ regmatch(regnode *prog)
}
sayNO;
break;
- case SUCCEED:
case END:
+ if (locinput < regtill)
+ sayNO; /* Cannot match: too short. */
+ /* Fall through */
+ case SUCCEED:
reginput = locinput; /* put where regtry can find it */
sayYES; /* Success! */
case SUSPEND:
diff --git a/regnodes.h b/regnodes.h
new file mode 100644
index 0000000000..445d0b2803
--- /dev/null
+++ b/regnodes.h
@@ -0,0 +1,250 @@
+/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ This file is built by regcomp.pl from regcomp.sym.
+ Any changes made here will be lost!
+*/
+
+#define END 0 /* 0 End of program. */
+#define SUCCEED 1 /* 0x1 Return from a subroutine, basically. */
+#define BOL 2 /* 0x2 Match "" at beginning of line. */
+#define MBOL 3 /* 0x3 Same, assuming multiline. */
+#define SBOL 4 /* 0x4 Same, assuming singleline. */
+#define EOL 5 /* 0x5 Match "" at end of line. */
+#define MEOL 6 /* 0x6 Same, assuming multiline. */
+#define SEOL 7 /* 0x7 Same, assuming singleline. */
+#define BOUND 8 /* 0x8 Match "" at any word boundary */
+#define BOUNDL 9 /* 0x9 Match "" at any word boundary */
+#define NBOUND 10 /* 0xa Match "" at any word non-boundary */
+#define NBOUNDL 11 /* 0xb Match "" at any word non-boundary */
+#define GPOS 12 /* 0xc Matches where last m//g left off. */
+#define ANY 13 /* 0xd Match any one character (except newline). */
+#define SANY 14 /* 0xe Match any one character. */
+#define ANYOF 15 /* 0xf Match character in (or not in) this class. */
+#define ALNUM 16 /* 0x10 Match any alphanumeric character */
+#define ALNUML 17 /* 0x11 Match any alphanumeric char in locale */
+#define NALNUM 18 /* 0x12 Match any non-alphanumeric character */
+#define NALNUML 19 /* 0x13 Match any non-alphanumeric char in locale */
+#define SPACE 20 /* 0x14 Match any whitespace character */
+#define SPACEL 21 /* 0x15 Match any whitespace char in locale */
+#define NSPACE 22 /* 0x16 Match any non-whitespace character */
+#define NSPACEL 23 /* 0x17 Match any non-whitespace char in locale */
+#define DIGIT 24 /* 0x18 Match any numeric character */
+#define NDIGIT 25 /* 0x19 Match any non-numeric character */
+#define BRANCH 26 /* 0x1a Match this alternative, or the next... */
+#define BACK 27 /* 0x1b Match "", "next" ptr points backward. */
+#define EXACT 28 /* 0x1c Match this string (preceded by length). */
+#define EXACTF 29 /* 0x1d Match this string, folded (prec. by length). */
+#define EXACTFL 30 /* 0x1e Match this string, folded in locale (w/len). */
+#define NOTHING 31 /* 0x1f Match empty string. */
+#define TAIL 32 /* 0x20 Match empty string. Can jump here from outside. */
+#define STAR 33 /* 0x21 Match this (simple) thing 0 or more times. */
+#define PLUS 34 /* 0x22 Match this (simple) thing 1 or more times. */
+#define CURLY 35 /* 0x23 Match this simple thing {n,m} times. */
+#define CURLYN 36 /* 0x24 Match next-after-this simple thing */
+#define CURLYM 37 /* 0x25 Match this medium-complex thing {n,m} times. */
+#define CURLYX 38 /* 0x26 Match this complex thing {n,m} times. */
+#define WHILEM 39 /* 0x27 Do curly processing and see if rest matches. */
+#define OPEN 40 /* 0x28 Mark this point in input as start of #n. */
+#define CLOSE 41 /* 0x29 Analogous to OPEN. */
+#define REF 42 /* 0x2a Match some already matched string */
+#define REFF 43 /* 0x2b Match already matched string, folded */
+#define REFFL 44 /* 0x2c Match already matched string, folded in loc. */
+#define IFMATCH 45 /* 0x2d Succeeds if the following matches. */
+#define UNLESSM 46 /* 0x2e Fails if the following matches. */
+#define SUSPEND 47 /* 0x2f "Independent" sub-RE. */
+#define IFTHEN 48 /* 0x30 Switch, should be preceeded by switcher . */
+#define GROUPP 49 /* 0x31 Whether the group matched. */
+#define LONGJMP 50 /* 0x32 Jump far away. */
+#define BRANCHJ 51 /* 0x33 BRANCH with long offset. */
+#define EVAL 52 /* 0x34 Execute some Perl code. */
+#define MINMOD 53 /* 0x35 Next operator is not greedy. */
+#define LOGICAL 54 /* 0x36 Next opcode should set the flag only. */
+#define RENUM 55 /* 0x37 Group with independently numbered parens. */
+#define OPTIMIZED 56 /* 0x38 Placeholder for dump. */
+
+#ifndef DOINIT
+EXTCONST U8 regkind[];
+#else
+EXTCONST U8 regkind[] = {
+ END, /* END */
+ END, /* SUCCEED */
+ BOL, /* BOL */
+ BOL, /* MBOL */
+ BOL, /* SBOL */
+ EOL, /* EOL */
+ EOL, /* MEOL */
+ EOL, /* SEOL */
+ BOUND, /* BOUND */
+ BOUND, /* BOUNDL */
+ NBOUND, /* NBOUND */
+ NBOUND, /* NBOUNDL */
+ GPOS, /* GPOS */
+ ANY, /* ANY */
+ ANY, /* SANY */
+ ANYOF, /* ANYOF */
+ ALNUM, /* ALNUM */
+ ALNUM, /* ALNUML */
+ NALNUM, /* NALNUM */
+ NALNUM, /* NALNUML */
+ SPACE, /* SPACE */
+ SPACE, /* SPACEL */
+ NSPACE, /* NSPACE */
+ NSPACE, /* NSPACEL */
+ DIGIT, /* DIGIT */
+ NDIGIT, /* NDIGIT */
+ BRANCH, /* BRANCH */
+ BACK, /* BACK */
+ EXACT, /* EXACT */
+ EXACT, /* EXACTF */
+ EXACT, /* EXACTFL */
+ NOTHING, /* NOTHING */
+ NOTHING, /* TAIL */
+ STAR, /* STAR */
+ PLUS, /* PLUS */
+ CURLY, /* CURLY */
+ CURLY, /* CURLYN */
+ CURLY, /* CURLYM */
+ CURLY, /* CURLYX */
+ WHILEM, /* WHILEM */
+ OPEN, /* OPEN */
+ CLOSE, /* CLOSE */
+ REF, /* REF */
+ REF, /* REFF */
+ REF, /* REFFL */
+ BRANCHJ, /* IFMATCH */
+ BRANCHJ, /* UNLESSM */
+ BRANCHJ, /* SUSPEND */
+ BRANCHJ, /* IFTHEN */
+ GROUPP, /* GROUPP */
+ LONGJMP, /* LONGJMP */
+ BRANCHJ, /* BRANCHJ */
+ EVAL, /* EVAL */
+ MINMOD, /* MINMOD */
+ LOGICAL, /* LOGICAL */
+ BRANCHJ, /* RENUM */
+ NOTHING, /* OPTIMIZED */
+};
+#endif
+
+
+#ifdef REG_COMP_C
+const static U8 regarglen[] = {
+ 0, /* END */
+ 0, /* SUCCEED */
+ 0, /* BOL */
+ 0, /* MBOL */
+ 0, /* SBOL */
+ 0, /* EOL */
+ 0, /* MEOL */
+ 0, /* SEOL */
+ 0, /* BOUND */
+ 0, /* BOUNDL */
+ 0, /* NBOUND */
+ 0, /* NBOUNDL */
+ 0, /* GPOS */
+ 0, /* ANY */
+ 0, /* SANY */
+ 0, /* ANYOF */
+ 0, /* ALNUM */
+ 0, /* ALNUML */
+ 0, /* NALNUM */
+ 0, /* NALNUML */
+ 0, /* SPACE */
+ 0, /* SPACEL */
+ 0, /* NSPACE */
+ 0, /* NSPACEL */
+ 0, /* DIGIT */
+ 0, /* NDIGIT */
+ 0, /* BRANCH */
+ 0, /* BACK */
+ 0, /* EXACT */
+ 0, /* EXACTF */
+ 0, /* EXACTFL */
+ 0, /* NOTHING */
+ 0, /* TAIL */
+ 0, /* STAR */
+ 0, /* PLUS */
+ EXTRA_SIZE(struct regnode_2), /* CURLY */
+ EXTRA_SIZE(struct regnode_2), /* CURLYN */
+ EXTRA_SIZE(struct regnode_2), /* CURLYM */
+ EXTRA_SIZE(struct regnode_2), /* CURLYX */
+ 0, /* WHILEM */
+ EXTRA_SIZE(struct regnode_1), /* OPEN */
+ EXTRA_SIZE(struct regnode_1), /* CLOSE */
+ EXTRA_SIZE(struct regnode_1), /* REF */
+ EXTRA_SIZE(struct regnode_1), /* REFF */
+ EXTRA_SIZE(struct regnode_1), /* REFFL */
+ EXTRA_SIZE(struct regnode_1), /* IFMATCH */
+ EXTRA_SIZE(struct regnode_1), /* UNLESSM */
+ EXTRA_SIZE(struct regnode_1), /* SUSPEND */
+ EXTRA_SIZE(struct regnode_1), /* IFTHEN */
+ EXTRA_SIZE(struct regnode_1), /* GROUPP */
+ EXTRA_SIZE(struct regnode_1), /* LONGJMP */
+ EXTRA_SIZE(struct regnode_1), /* BRANCHJ */
+ EXTRA_SIZE(struct regnode_1), /* EVAL */
+ 0, /* MINMOD */
+ 0, /* LOGICAL */
+ EXTRA_SIZE(struct regnode_1), /* RENUM */
+ 0, /* OPTIMIZED */
+};
+
+const static char reg_off_by_arg[] = {
+ 0, /* END */
+ 0, /* SUCCEED */
+ 0, /* BOL */
+ 0, /* MBOL */
+ 0, /* SBOL */
+ 0, /* EOL */
+ 0, /* MEOL */
+ 0, /* SEOL */
+ 0, /* BOUND */
+ 0, /* BOUNDL */
+ 0, /* NBOUND */
+ 0, /* NBOUNDL */
+ 0, /* GPOS */
+ 0, /* ANY */
+ 0, /* SANY */
+ 0, /* ANYOF */
+ 0, /* ALNUM */
+ 0, /* ALNUML */
+ 0, /* NALNUM */
+ 0, /* NALNUML */
+ 0, /* SPACE */
+ 0, /* SPACEL */
+ 0, /* NSPACE */
+ 0, /* NSPACEL */
+ 0, /* DIGIT */
+ 0, /* NDIGIT */
+ 0, /* BRANCH */
+ 0, /* BACK */
+ 0, /* EXACT */
+ 0, /* EXACTF */
+ 0, /* EXACTFL */
+ 0, /* NOTHING */
+ 0, /* TAIL */
+ 0, /* STAR */
+ 0, /* PLUS */
+ 0, /* CURLY */
+ 0, /* CURLYN */
+ 0, /* CURLYM */
+ 0, /* CURLYX */
+ 0, /* WHILEM */
+ 0, /* OPEN */
+ 0, /* CLOSE */
+ 0, /* REF */
+ 0, /* REFF */
+ 0, /* REFFL */
+ 2, /* IFMATCH */
+ 2, /* UNLESSM */
+ 1, /* SUSPEND */
+ 1, /* IFTHEN */
+ 0, /* GROUPP */
+ 1, /* LONGJMP */
+ 1, /* BRANCHJ */
+ 0, /* EVAL */
+ 0, /* MINMOD */
+ 0, /* LOGICAL */
+ 1, /* RENUM */
+ 0, /* OPTIMIZED */
+};
+#endif /* REG_COMP_C */
+
diff --git a/sv.c b/sv.c
index 245c4a50d4..cc3e37a723 100644
--- a/sv.c
+++ b/sv.c
@@ -1118,8 +1118,16 @@ sv_grow(SV* sv, unsigned long newlen)
else
s = SvPVX(sv);
if (newlen > SvLEN(sv)) { /* need more room? */
- if (SvLEN(sv) && s)
+ if (SvLEN(sv) && s) {
+#ifdef MYMALLOC
+ STRLEN l = malloced_size((void*)SvPVX(sv));
+ if (newlen <= l) {
+ SvLEN_set(sv, l);
+ return s;
+ } else
+#endif
Renew(s,newlen,char);
+ }
else
New(703,s,newlen,char);
SvPV_set(sv, s);
diff --git a/sv.h b/sv.h
index ca3a2dfa65..6bf7817cda 100644
--- a/sv.h
+++ b/sv.h
@@ -74,10 +74,6 @@ struct io {
#ifdef USE_THREADS
-# ifndef EMULATE_ATOMIC_REFCOUNTS
-# include "atomic.h"
-# endif
-
# ifdef EMULATE_ATOMIC_REFCOUNTS
# define ATOMIC_INC(count) STMT_START { \
MUTEX_LOCK(&svref_mutex); \
diff --git a/t/lib/filecopy.t b/t/lib/filecopy.t
index e4bde30040..329931f4b4 100755
--- a/t/lib/filecopy.t
+++ b/t/lib/filecopy.t
@@ -29,7 +29,7 @@ print "ok 1\n";
print "not " unless $foo eq "ok 3\n";
print "ok 2\n";
-binmode STDOUT; # Copy::copy works in binary mode
+binmode STDOUT unless $^O eq 'VMS'; # Copy::copy works in binary mode
copy "copy-$$", \*STDOUT;
unlink "copy-$$" or die "unlink: $!";
diff --git a/t/lib/filespec.t b/t/lib/filespec.t
new file mode 100755
index 0000000000..ca22d3e12b
--- /dev/null
+++ b/t/lib/filespec.t
@@ -0,0 +1,43 @@
+#!./perl
+
+BEGIN {
+ $^O = '';
+ chdir 't' if -d 't';
+ @INC = '../lib';
+}
+
+print "1..4\n";
+
+use File::Spec;
+
+
+if (File::Spec->catfile('a','b','c') eq 'a/b/c') {
+ print "ok 1\n";
+} else {
+ print "not ok 1\n";
+}
+
+use File::Spec::OS2;
+
+if (File::Spec::OS2->catfile('a','b','c') eq 'a/b/c') {
+ print "ok 2\n";
+} else {
+ print "not ok 2\n";
+}
+
+use File::Spec::Win32;
+
+if (File::Spec::Win32->catfile('a','b','c') eq 'a\b\c') {
+ print "ok 3\n";
+} else {
+ print "not ok 3\n";
+}
+
+use File::Spec::Mac;
+
+if (File::Spec::Mac->catfile('a','b','c') eq 'a:b:c') {
+ print "ok 4\n";
+} else {
+ print "not ok 4\n";
+}
+
diff --git a/t/op/avhv.t b/t/op/avhv.t
index a7ce58ab87..84d3f270fb 100755
--- a/t/op/avhv.t
+++ b/t/op/avhv.t
@@ -17,7 +17,7 @@ sub STORESIZE { $#{$_[0]} = $_[1]+1 }
package main;
-print "1..5\n";
+print "1..6\n";
$sch = {
'abc' => 1,
@@ -74,3 +74,8 @@ $a->[0] = \%fake;
$a->{'abc'} = 'ABC';
if ($a->{'abc'} eq 'ABC') {print "ok 5\n";} else {print "not ok 5\n";}
+
+# hash slice
+my $slice = join('', 'x',@$a{'abc','def'},'x');
+print "not " if $slice ne 'xABCx';
+print "ok 6\n";
diff --git a/t/op/defins.t b/t/op/defins.t
index 5dd614d4b8..0ed61ce2fb 100755
--- a/t/op/defins.t
+++ b/t/op/defins.t
@@ -10,6 +10,8 @@ BEGIN {
$SIG{__WARN__} = sub { $warns++; warn $_[0] };
print "1..14\n";
}
+
+$wanted_filename = $^O eq 'VMS' ? '0.' : '0';
print "not " if $warns;
print "ok 1\n";
@@ -64,7 +66,7 @@ opendir(DIR,'.');
$seen = 0;
while (my $name = readdir(DIR))
{
- $seen++ if $name eq '0';
+ $seen++ if $name eq $wanted_filename;
}
print "not " unless $seen;
print "ok 6\n";
@@ -74,7 +76,7 @@ $seen = 0;
$dummy = '';
while (($seen ? $dummy : $name) = readdir(DIR))
{
- $seen++ if $name eq '0';
+ $seen++ if $name eq $wanted_filename;
}
print "not " unless $seen;
print "ok 7\n";
@@ -83,7 +85,7 @@ rewinddir(DIR);
$seen = 0;
while ($where{$seen} = readdir(DIR))
{
- $seen++ if $where{$seen} eq '0';
+ $seen++ if $where{$seen} eq $wanted_filename;
}
print "not " unless $seen;
print "ok 8\n";
@@ -91,7 +93,7 @@ print "ok 8\n";
$seen = 0;
while (my $name = glob('*'))
{
- $seen++ if $name eq '0';
+ $seen++ if $name eq $wanted_filename;
}
print "not " unless $seen;
print "ok 9\n";
@@ -100,7 +102,7 @@ $seen = 0;
$dummy = '';
while (($seen ? $dummy : $name) = glob('*'))
{
- $seen++ if $name eq '0';
+ $seen++ if $name eq $wanted_filename;
}
print "not " unless $seen;
print "ok 10\n";
@@ -108,7 +110,7 @@ print "ok 10\n";
$seen = 0;
while ($where{$seen} = glob('*'))
{
- $seen++ if $where{$seen} eq '0';
+ $seen++ if $where{$seen} eq $wanted_filename;
}
print "not " unless $seen;
print "ok 11\n";
diff --git a/t/op/ipcsem.t b/t/op/ipcsem.t
index a1450ffd42..55e810415c 100755
--- a/t/op/ipcsem.t
+++ b/t/op/ipcsem.t
@@ -108,11 +108,6 @@ BEGIN {
use strict;
-# This test doesn't seem to work properly yet so skip it for _65
-print "1..0\n";
-exit;
-
-
print "1..10\n";
my $sem = semget($IPC_PRIVATE, 10, $S_IRWXU | $S_IRWXG | $S_IRWXO | $IPC_CREAT);
diff --git a/t/op/pat.t b/t/op/pat.t
index 5516ce595c..f0bbdbc315 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -2,7 +2,7 @@
# $RCSfile: pat.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:12 $
-print "1..107\n";
+print "1..113\n";
$x = "abc\ndef\n";
@@ -373,6 +373,27 @@ print "not " unless $^R eq '79' and $x eq '12';
print "ok $test\n";
$test++;
+# This should be changed to qr/\b\v$/ ASAP
+print "not " unless study(/\b\v$/) eq '\bv$';
+print "ok $test\n";
+$test++;
+
+$_ = 'xabcx';
+foreach $ans ('', 'c') {
+ /(?<=(?=a)..)((?=c)|.)/g;
+ print "not " unless $1 eq $ans;
+ print "ok $test\n";
+ $test++;
+}
+
+$_ = 'a';
+foreach $ans ('', 'a', '') {
+ /^|a|$/g;
+ print "not " unless $& eq $ans;
+ print "ok $test\n";
+ $test++;
+}
+
sub must_warn_pat {
my $warn_pat = shift;
return sub { print "not " unless $_[0] =~ /$warn_pat/ }
diff --git a/t/op/re_tests b/t/op/re_tests
index 9217fcca1f..6154bff340 100644
--- a/t/op/re_tests
+++ b/t/op/re_tests
@@ -354,9 +354,9 @@ a(?:b|(c|e){1,2}?|d)+?(.) ace y $1$2 ce
'(ab)\d\1'i Ab4ab y $1 Ab
'(ab)\d\1'i ab4Ab y $1 ab
foo\w*\d{4}baz foobar1234baz y $& foobar1234baz
-a{1,32766} aaa y $& aaa
-a{1,32767} - c - /a{1,32767}/: Quantifier in {,} bigger than
-a{1,32768} - c - /a{1,32768}/: Quantifier in {,} bigger than
+a{1,$reg_infty_m} aaa y $& aaa
+a{1,$reg_infty} - c - /a{1,$reg_infty}/: Quantifier in {,} bigger than
+a{1,$reg_infty_p} - c - /a{1,$reg_infty_p}/: Quantifier in {,} bigger than
a(?{})b cabd y $& ab
a(?{)b - c - /a(?{)b/: Sequence (?{...}) not terminated or not {}-balanced
a(?{{})b - c - /a(?{{})b/: Sequence (?{...}) not terminated or not {}-balanced
diff --git a/t/op/regexp.t b/t/op/regexp.t
index 273608433e..a4783bac2f 100755
--- a/t/op/regexp.t
+++ b/t/op/regexp.t
@@ -22,11 +22,22 @@
# interpolating that string after the match, or start of error message.
#
# Columns 1, 2 and 5 are \n-interpolated.
+#
+# The variables $reg_infty, $reg_infty_m and $reg_infty_m in columns 1
+# and 5 are replaced respectively with the configuration value reg_infty,
+# reg_infty-1 and reg_infty+1, or if reg_infty is not defined in the
+# configuration, default values. No other variables are substituted.
+
$iters = shift || 1; # Poor man performance suite, 10000 is OK.
-open(TESTS,'op/re_tests') || open(TESTS,'t/op/re_tests')
- || die "Can't open re_tests";
+chdir 't' if -d 't';
+@INC = "../lib";
+eval 'use Config'; # Defaults assumed if this fails
+$reg_infty = defined $Config{reg_infty} ? $Config{reg_infty} : 32767;
+$reg_infty_m = $reg_infty - 1; $reg_infty_p = $reg_infty + 1;
+
+open(TESTS,'op/re_tests') || die "Can't open re_tests";
while (<TESTS>) { }
$numtests = $.;
@@ -39,6 +50,8 @@ TEST:
while (<TESTS>) {
($pat, $subject, $result, $repl, $expect) = split(/[\t\n]/,$_);
$input = join(':',$pat,$subject,$result,$repl,$expect);
+ infty_subst(\$pat);
+ infty_subst(\$expect);
$pat = "'$pat'" unless $pat =~ /^[:']/;
$pat =~ s/\\n/\n/g;
$subject =~ s/\\n/\n/g;
@@ -69,3 +82,11 @@ while (<TESTS>) {
}
close(TESTS);
+
+sub infty_subst # Special-case substitution
+{ # of $reg_infty and friends
+ my $tp = shift;
+ $$tp =~ s/,\$reg_infty_m}/,$reg_infty_m}/o;
+ $$tp =~ s/,\$reg_infty_p}/,$reg_infty_p}/o;
+ $$tp =~ s/,\$reg_infty}/,$reg_infty}/o;
+}
diff --git a/t/op/taint.t b/t/op/taint.t
index 7f772834e5..5f85b3627e 100755
--- a/t/op/taint.t
+++ b/t/op/taint.t
@@ -232,7 +232,7 @@ print "1..145\n";
# Globs should be forbidden, except under VMS,
# which doesn't spawn an external program.
if ($Is_VMS) {
- for (29..30) { print "ok $_\n"; }
+ for (31..32) { print "ok $_\n"; }
}
else {
my @globs = eval { <*> };
diff --git a/thrdvar.h b/thrdvar.h
index 7c40481a64..529a7578ae 100644
--- a/thrdvar.h
+++ b/thrdvar.h
@@ -1,117 +1,129 @@
+/***********************************************/
+/* Global only to current thread */
+/***********************************************/
+
/* Don't forget to re-run embed.pl to propagate changes! */
-/* Per-thread variables
- The 'T' prefix is only needed for vars that need appropriate #defines
-generated when built with or without USE_THREADS. (It is also used
-to generate the appropriate the export list for win32.) */
+/* The 'T' prefix is only needed for vars that need appropriate #defines
+ * generated when built with or without USE_THREADS. It is also used
+ * to generate the appropriate export list for win32.
+ *
+ * When building without USE_THREADS, these variables will be truly global.
+ * When building without USE_THREADS but with MULTIPLICITY, these variables
+ * will be global per-interpreter.
+ *
+ * Avoid build-specific #ifdefs here, like DEBUGGING. That way,
+ * we can keep binary compatibility of the curinterp structure */
/* Important ones in the first cache line (if alignment is done right) */
-PERLVAR(Tstack_sp, SV **)
+PERLVAR(Tstack_sp, SV **) /* top of the stack */
#ifdef OP_IN_REGISTER
-PERLVAR(Topsave, OP *)
+PERLVAR(Topsave, OP *)
#else
-PERLVAR(Top, OP *)
+PERLVAR(Top, OP *) /* currently executing op */
#endif
-PERLVAR(Tcurpad, SV **)
+PERLVAR(Tcurpad, SV **) /* active pad (lexicals+tmps) */
+
+PERLVAR(Tstack_base, SV **)
+PERLVAR(Tstack_max, SV **)
+
+PERLVAR(Tscopestack, I32 *) /* scopes we've ENTERed */
+PERLVAR(Tscopestack_ix, I32)
+PERLVAR(Tscopestack_max,I32)
-PERLVAR(Tstack_base, SV **)
-PERLVAR(Tstack_max, SV **)
+PERLVAR(Tsavestack, ANY *) /* items that need to be restored
+ when LEAVEing scopes we've ENTERed */
+PERLVAR(Tsavestack_ix, I32)
+PERLVAR(Tsavestack_max, I32)
-PERLVAR(Tscopestack, I32 *)
-PERLVAR(Tscopestack_ix, I32)
-PERLVAR(Tscopestack_max,I32)
+PERLVAR(Ttmps_stack, SV **) /* mortals we've made */
+PERLVARI(Ttmps_ix, I32, -1)
+PERLVARI(Ttmps_floor, I32, -1)
+PERLVAR(Ttmps_max, I32)
-PERLVAR(Tsavestack, ANY *)
-PERLVAR(Tsavestack_ix, I32)
-PERLVAR(Tsavestack_max, I32)
+PERLVAR(Tmarkstack, I32 *) /* stack_sp locations we're remembering */
+PERLVAR(Tmarkstack_ptr, I32 *)
+PERLVAR(Tmarkstack_max, I32 *)
-PERLVAR(Tretstack, OP **)
-PERLVAR(Tretstack_ix, I32)
-PERLVAR(Tretstack_max, I32)
+PERLVAR(Tretstack, OP **) /* OPs we have postponed executing */
+PERLVAR(Tretstack_ix, I32)
+PERLVAR(Tretstack_max, I32)
-PERLVAR(Tmarkstack, I32 *)
-PERLVAR(Tmarkstack_ptr, I32 *)
-PERLVAR(Tmarkstack_max, I32 *)
+PERLVAR(TSv, SV *) /* used to hold temporary values */
+PERLVAR(TXpv, XPV *) /* used to hold temporary values */
-PERLVAR(TSv, SV *)
-PERLVAR(TXpv, XPV *)
-PERLVAR(Tstatbuf, Stat_t)
+PERLVAR(Tstatbuf, Stat_t)
#ifdef HAS_TIMES
-PERLVAR(Ttimesbuf, struct tms)
+PERLVAR(Ttimesbuf, struct tms)
#endif
-
-/* Now the fields that used to be "per interpreter" (even when global) */
/* Fields used by magic variables such as $@, $/ and so on */
PERLVAR(Ttainted, bool) /* using variables controlled by $< */
-PERLVAR(Tcurpm, PMOP *) /* what to do \ interps from */
-PERLVAR(Tnrs, SV *)
-PERLVAR(Trs, SV *) /* $/ */
-PERLVAR(Tlast_in_gv, GV *)
-PERLVAR(Tofs, char *) /* $, */
-PERLVAR(Tofslen, STRLEN)
-PERLVAR(Tdefoutgv, GV *)
+PERLVAR(Tcurpm, PMOP *) /* what to do \ interps in REs from */
+PERLVAR(Tnrs, SV *)
+PERLVAR(Trs, SV *) /* input record separator $/ */
+PERLVAR(Tlast_in_gv, GV *) /* GV used in last <FH> */
+PERLVAR(Tofs, char *) /* output field separator $, */
+PERLVAR(Tofslen, STRLEN)
+PERLVAR(Tdefoutgv, GV *) /* default FH for output */
PERLVARI(Tchopset, char *, " \n-") /* $: */
-PERLVAR(Tformtarget, SV *)
-PERLVAR(Tbodytarget, SV *)
-PERLVAR(Ttoptarget, SV *)
+PERLVAR(Tformtarget, SV *)
+PERLVAR(Tbodytarget, SV *)
+PERLVAR(Ttoptarget, SV *)
/* Stashes */
PERLVAR(Tdefstash, HV *) /* main symbol table */
PERLVAR(Tcurstash, HV *) /* symbol table for current package */
-/* Stacks */
-PERLVAR(Ttmps_stack, SV **)
-PERLVARI(Ttmps_ix, I32, -1)
-PERLVARI(Ttmps_floor, I32, -1)
-PERLVAR(Ttmps_max, I32)
-
-PERLVAR(Trestartop, OP *) /* Are we propagating an error from croak? */
-PERLVARI(Tcurcop, COP * VOL, &compiling)
+PERLVAR(Trestartop, OP *) /* propagating an error from croak? */
+PERLVARI(Tcurcop, COP * VOL, &compiling)
PERLVAR(Tin_eval, VOL int) /* trap "fatal" errors? */
PERLVAR(Tdelaymagic, int) /* ($<,$>) = ... */
-PERLVAR(Tdirty, bool) /* In the middle of tearing things down? */
+PERLVAR(Tdirty, bool) /* in the middle of tearing things down? */
PERLVAR(Tlocalizing, int) /* are we processing a local() list? */
-PERLVAR(Tcurstack, AV *) /* THE STACK */
-PERLVAR(Tcurstackinfo, PERL_SI *) /* current stack + context */
-PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */
-PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */
-PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */
+PERLVAR(Tcurstack, AV *) /* THE STACK */
+PERLVAR(Tcurstackinfo, PERL_SI *) /* current stack + context */
+PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */
+PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */
+PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */
/* statics "owned" by various functions */
-PERLVAR(Tav_fetch_sv, SV *)
-PERLVAR(Thv_fetch_sv, SV *)
-PERLVAR(Thv_fetch_ent_mh, HE)
-PERLVAR(Tmodcount, I32)
+PERLVAR(Tav_fetch_sv, SV *) /* owned by av_fetch() */
+PERLVAR(Thv_fetch_sv, SV *) /* owned by hv_fetch() */
+PERLVAR(Thv_fetch_ent_mh, HE) /* owned by hv_fetch_ent() */
+
+PERLVAR(Tmodcount, I32) /* how much mod()ification in assignment? */
/* XXX Sort stuff, firstgv secongv and so on? */
/* XXX What about regexp stuff? */
/* Note that the variables below are all explicitly referenced in the code
-as thr->whatever and therefore don't need the 'T' prefix. */
+ * as thr->whatever and therefore don't need the 'T' prefix. */
#ifdef USE_THREADS
-PERLVAR(oursv, SV *)
-PERLVAR(cvcache, HV *)
-PERLVAR(self, perl_os_thread) /* Underlying thread object */
-PERLVAR(flags, U32)
-PERLVAR(threadsv, AV *) /* Per-thread SVs ($_, $@ etc.) */
-PERLVAR(threadsvp, SV **) /* AvARRAY(threadsv) */
-PERLVAR(specific, AV *) /* Thread-specific user data */
-PERLVAR(errsv, SV *) /* Backing SV for $@ */
-PERLVAR(errhv, HV *) /* HV for what was %@ in pp_ctl.c */
-PERLVAR(mutex, perl_mutex) /* For the fields others can change */
-PERLVAR(tid, U32)
+PERLVAR(oursv, SV *)
+PERLVAR(cvcache, HV *)
+PERLVAR(self, perl_os_thread) /* Underlying thread object */
+PERLVAR(flags, U32)
+PERLVAR(threadsv, AV *) /* Per-thread SVs ($_, $@ etc.) */
+PERLVAR(threadsvp, SV **) /* AvARRAY(threadsv) */
+PERLVAR(specific, AV *) /* Thread-specific user data */
+PERLVAR(errsv, SV *) /* Backing SV for $@ */
+PERLVAR(errhv, HV *) /* HV for what was %@ in pp_ctl.c */
+PERLVAR(mutex, perl_mutex) /* For the fields others can change */
+PERLVAR(tid, U32)
PERLVAR(prev, struct perl_thread *)
-PERLVAR(next, struct perl_thread *) /* Circular linked list of threads */
+PERLVAR(next, struct perl_thread *)
+ /* Circular linked list of threads */
#ifdef HAVE_THREAD_INTERN
-PERLVAR(i, struct thread_intern) /* Platform-dependent internals */
+PERLVAR(i, struct thread_intern)
+ /* Platform-dependent internals */
#endif
-PERLVAR(trailing_nul, char) /* For the sake of thrsv and oursv */
+PERLVAR(trailing_nul, char) /* For the sake of thrsv and oursv */
#endif /* USE_THREADS */
diff --git a/toke.c b/toke.c
index c035563847..4aa96d3821 100644
--- a/toke.c
+++ b/toke.c
@@ -2893,8 +2893,11 @@ yylex(void)
oldoldbufptr < bufptr &&
(oldoldbufptr == last_lop || oldoldbufptr == last_uni) &&
/* NO SKIPSPACE BEFORE HERE! */
- (expect == XREF ||
- ((opargs[last_lop_op] >> OASHIFT)& 7) == OA_FILEREF) )
+ (expect == XREF
+ || ((opargs[last_lop_op] >> OASHIFT)& 7) == OA_FILEREF
+ || (last_lop_op == OP_ENTERSUB
+ && last_proto
+ && last_proto[last_proto[0] == ';' ? 1 : 0] == '*')) )
{
bool immediate_paren = *s == '(';
@@ -2975,16 +2978,17 @@ yylex(void)
/* Is there a prototype? */
if (SvPOK(cv)) {
STRLEN len;
- char *proto = SvPV((SV*)cv, len);
+ last_proto = SvPV((SV*)cv, len);
if (!len)
TERM(FUNC0SUB);
- if (strEQ(proto, "$"))
+ if (strEQ(last_proto, "$"))
OPERATOR(UNIOPSUB);
- if (*proto == '&' && *s == '{') {
+ if (*last_proto == '&' && *s == '{') {
sv_setpv(subname,"__ANON__");
PREBLOCK(LSTOPSUB);
}
- }
+ } else
+ last_proto = NULL;
nextval[nexttoke].opval = yylval.opval;
expect = XTERM;
force_next(WORD);
@@ -5045,7 +5049,7 @@ scan_heredoc(register char *s)
s--, herewas = newSVpv(s,d-s);
s += SvCUR(herewas);
- tmpstr = NEWSV(87,80);
+ tmpstr = NEWSV(87,79);
sv_upgrade(tmpstr, SVt_PVIV);
if (term == '\'') {
op_type = OP_CONST;
@@ -5303,8 +5307,8 @@ scan_str(char *start)
multi_close = term;
/* create a new SV to hold the contents. 87 is leak category, I'm
- assuming. 80 is the SV's initial length. What a random number. */
- sv = NEWSV(87,80);
+ assuming. 79 is the SV's initial length. What a random number. */
+ sv = NEWSV(87,79);
sv_upgrade(sv, SVt_PVIV);
SvIVX(sv) = term;
(void)SvPOK_only(sv); /* validate pointer */
diff --git a/util.c b/util.c
index 2fa77408a9..eb51151cb5 100644
--- a/util.c
+++ b/util.c
@@ -14,7 +14,6 @@
#include "EXTERN.h"
#include "perl.h"
-#include "perlmem.h"
#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
#include <signal.h>
@@ -2377,6 +2376,7 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
dTHR;
char *xfound = Nullch;
char *xfailed = Nullch;
+ char tmpbuf[512];
register char *s;
I32 len;
int retval;
@@ -2420,6 +2420,7 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
* + look *only* in the PATH for scriptname{,.foo,.bar} (note
* this will not look in '.' if it's not in the PATH)
*/
+ tmpbuf[0] = '\0';
#ifdef VMS
# ifdef ALWAYS_DEFTYPES
@@ -2439,16 +2440,16 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
/* The first time through, just add SEARCH_EXTS to whatever we
* already have, so we can check for default file types. */
while (deftypes ||
- (!hasdir && my_trnlnm("DCL$PATH",tokenbuf,idx++)) )
+ (!hasdir && my_trnlnm("DCL$PATH",tmpbuf,idx++)) )
{
if (deftypes) {
deftypes = 0;
- *tokenbuf = '\0';
+ *tmpbuf = '\0';
}
- if ((strlen(tokenbuf) + strlen(scriptname)
- + MAX_EXT_LEN) >= sizeof tokenbuf)
+ if ((strlen(tmpbuf) + strlen(scriptname)
+ + MAX_EXT_LEN) >= sizeof tmpbuf)
continue; /* don't search dir with too-long name */
- strcat(tokenbuf, scriptname);
+ strcat(tmpbuf, scriptname);
#else /* !VMS */
#ifdef DOSISH
@@ -2477,12 +2478,12 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
#ifdef SEARCH_EXTS
if (cur == scriptname) {
len = strlen(scriptname);
- if (len+MAX_EXT_LEN+1 >= sizeof(tokenbuf))
+ if (len+MAX_EXT_LEN+1 >= sizeof(tmpbuf))
break;
- cur = strcpy(tokenbuf, scriptname);
+ cur = strcpy(tmpbuf, scriptname);
}
} while (extidx >= 0 && ext[extidx] /* try an extension? */
- && strcpy(tokenbuf+len, ext[extidx++]));
+ && strcpy(tmpbuf+len, ext[extidx++]));
#endif
}
#endif
@@ -2502,44 +2503,44 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
&& *s != ','
# endif
&& *s != ';'; len++, s++) {
- if (len < sizeof tokenbuf)
- tokenbuf[len] = *s;
+ if (len < sizeof tmpbuf)
+ tmpbuf[len] = *s;
}
- if (len < sizeof tokenbuf)
- tokenbuf[len] = '\0';
+ if (len < sizeof tmpbuf)
+ tmpbuf[len] = '\0';
#else /* ! (atarist || DOSISH) */
- s = delimcpy(tokenbuf, tokenbuf + sizeof tokenbuf, s, bufend,
+ s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend,
':',
&len);
#endif /* ! (atarist || DOSISH) */
if (s < bufend)
s++;
- if (len + 1 + strlen(scriptname) + MAX_EXT_LEN >= sizeof tokenbuf)
+ if (len + 1 + strlen(scriptname) + MAX_EXT_LEN >= sizeof tmpbuf)
continue; /* don't search dir with too-long name */
if (len
#if defined(atarist) || defined(DOSISH)
- && tokenbuf[len - 1] != '/'
- && tokenbuf[len - 1] != '\\'
+ && tmpbuf[len - 1] != '/'
+ && tmpbuf[len - 1] != '\\'
#endif
)
- tokenbuf[len++] = '/';
- if (len == 2 && tokenbuf[0] == '.')
+ tmpbuf[len++] = '/';
+ if (len == 2 && tmpbuf[0] == '.')
seen_dot = 1;
- (void)strcpy(tokenbuf + len, scriptname);
+ (void)strcpy(tmpbuf + len, scriptname);
#endif /* !VMS */
#ifdef SEARCH_EXTS
- len = strlen(tokenbuf);
+ len = strlen(tmpbuf);
if (extidx > 0) /* reset after previous loop */
extidx = 0;
do {
#endif
- DEBUG_p(PerlIO_printf(Perl_debug_log, "Looking for %s\n",tokenbuf));
- retval = PerlLIO_stat(tokenbuf,&statbuf);
+ DEBUG_p(PerlIO_printf(Perl_debug_log, "Looking for %s\n",tmpbuf));
+ retval = PerlLIO_stat(tmpbuf,&statbuf);
#ifdef SEARCH_EXTS
} while ( retval < 0 /* not there */
&& extidx>=0 && ext[extidx] /* try an extension? */
- && strcpy(tokenbuf+len, ext[extidx++])
+ && strcpy(tmpbuf+len, ext[extidx++])
);
#endif
if (retval < 0)
@@ -2551,11 +2552,11 @@ find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
#endif
)
{
- xfound = tokenbuf; /* bingo! */
+ xfound = tmpbuf; /* bingo! */
break;
}
if (!xfailed)
- xfailed = savepv(tokenbuf);
+ xfailed = savepv(tmpbuf);
}
#ifndef DOSISH
if (!xfound && !seen_dot && !xfailed && (PerlLIO_stat(scriptname,&statbuf) < 0))
diff --git a/utils/perldoc.PL b/utils/perldoc.PL
index ac71dd6828..b7b16e832c 100644
--- a/utils/perldoc.PL
+++ b/utils/perldoc.PL
@@ -119,7 +119,7 @@ use Text::ParseWords;
unshift(@ARGV,shellwords($ENV{"PERLDOC"}));
-getopts("mhtluvriFf:Xq") || usage;
+getopts("mhtluvriFf:Xq:") || usage;
usage if $opt_h || $opt_h; # avoid -w warning
@@ -226,7 +226,7 @@ sub check_file {
return minus_f_nocase($dir,$file);
} else {
my $path = minus_f_nocase($dir,$file);
- return $path if containspod($path);
+ return $path if length $path and containspod($path);
}
return "";
}
@@ -524,6 +524,8 @@ B<perldoc> [B<-h>] [B<-v>] [B<-t>] [B<-u>] [B<-m>] [B<-l>] [B<-F>] [B<-X>] Page
B<perldoc> B<-f> BuiltinFunction
+B<perldoc> B<-q> FAQ Keyword
+
=head1 DESCRIPTION
I<perldoc> looks up a piece of documentation in .pod format that is embedded
@@ -576,6 +578,12 @@ Consider arguments as file names, no search in directories will be performed.
The B<-f> option followed by the name of a perl built in function will
extract the documentation of this function from L<perlfunc>.
+=item B<-q> perlfaq
+
+The B<-q> option takes a regular expression as an argument. It will search
+the question headings in perlfaq[1-9] and print the entries matching
+the regular expression.
+
=item B<-X> use an index if present
The B<-X> option looks for a entry whose basename matches the name given on the
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index e27fbebec5..1cf96bada5 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -10,31 +10,6 @@
#:
#: Lines beginning with "#:" will be removed by mms2make.pl when converting
#: this file to MAKE syntax.
-#:
-#: Usage:
-#: Building with VAX C, on system without DEC C installed or with VAX C default:
-#: $ MMS
-#: Building with VAX C, on system with DEC C installed as default C compiler:
-#: $ MMS /MACRO=("cc=CC/VAXC")
-#: Building with DEC C, on system without VAX C installed or with DEC C default:
-#: $ MMS /MACRO=("decc=1")
-#: Building with DEC C, on system with VAX C installed as default C compiler:
-#: $ MMS /MACRO=("decc=1","cc=CC/DECC")
-#: Building with GNU C
-#: $ MMS /MACRO=("gnuc=1")
-#: To each of the above, add /Macro="__AXP__=1" if building on an AXP,
-#: /Macro="__DEBUG__=1" to build a debug version
-#: (i.e. VMS debugger, not perl -D), and
-#: /Macro="SOCKETSHR_SOCKETS=1" to include
-#: SOCKETSHR socket support.
-#: /Macro="DECC_SOCKETS=1" to include UCX (or
-#: compatible) socket support
-#: /Macro="OLDTHREADED=1" to compile with the old
-#: pthreads API (VMS version 6.2 and previous)
-#: /Macro="THREADED=1" to compile with full POSIX
-#: threads. (VMS 7.0 and above)
-#: /Macro="FAKETHREADED=1" to compile with the
-#: fake threads package
#
# tidy -- purge files generated by executing this file
# clean -- remove all intermediate (e.g. object files, C files generated
@@ -52,6 +27,9 @@
~ARCH-TYPE~ = 1
~THREAD~
~SOCKET~
+~MALLOC~
+~CC~
+~MT~
#: >>>>> Architecture-specific options <<<<<
.ifdef AXE
@@ -71,7 +49,6 @@ E = .exe
.endif
.ifdef __AXP__
-DECC = 1
ARCH = VMS_AXP
OBJVAL = $(O)
.else
@@ -79,9 +56,13 @@ ARCH = VMS_VAX
OBJVAL = $(MMS$TARGET_NAME)$(O)
.endif
-# Updated by fndvers.com -- do not edit by hand
PERL_VERSION = 5_00$PATCHLEVEL$SUBVERSION
+.ifdef MALLOC
+MALLOC_O = ,malloc$(O)
+MALLOC_C = ,malloc$(C)
+.endif
+
.ifdef DECC_SOCKETS
SOCKET=1
.endif
@@ -127,7 +108,7 @@ PIPES_BROKEN = 1
# (fixed in gcc 2.6.3)
XTRACCFLAGS = /Obj=$(MMS$TARGET_NAME)$(O)/NoCase_Hack/Optimize=2
DBGSPECFLAGS =
-XTRADEF = ,GNUC_ATTRIBUTE_CHECK
+XTRADEF =
XTRAOBJS =
LIBS1 = GNU_CC:[000000]GCCLIB.OLB/Library
LIBS2 = Sys$Share:VAXCRTL/Shareable
@@ -151,7 +132,6 @@ DBGSPECFLAGS = /Show=All
@ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").eqs."" Then Define/NoLog SYS DECC$Library_Include
.endif
-LIBS2 =
XTRACCFLAGS = /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=$(OBJVAL)
XTRADEF =
POSIX = POSIX
@@ -185,10 +165,10 @@ DBG =
#: for information on changing socket support
.ifdef SOCKET
.ifdef DECC_SOCKETS
-SOCKDEF = ,VMS_DO_SOCKETS,DECCRTL_SOCKETS
+SOCKDEF =
SOCKLIB =
.else
-SOCKDEF = ,VMS_DO_SOCKETS
+SOCKDEF =
SOCKLIB = SocketShr/Share
.endif
# N.B. the targets for $(SOCKC) and $(SOCKH) assume that the permanent
@@ -211,24 +191,26 @@ SOCKOBJ =
SOCKPM =
.endif
-THREAD =
-
.ifdef THREADED
THREADDEF =
THREAD = THREAD
.endif
.ifdef OLDTHREADED
-THREADDEF = ,OLD_PTHREADS_API
+THREADDEF =
THREAD = THREAD
+.ifdef LIBS2
+LIBS2 = $(LIBS2),sys$share:cma$lib_shr/share,cma$rtl/share
+.else
LIBS2 = sys$share:cma$lib_shr/share,cma$rtl/share
+.endif
.ifdef __AXP__
LIBS2 = $(LIBS2),sys$share:cma$open_lib_shr/share,cma$open_rtl/share
.endif
.endif
.ifdef FAKETHREADED
-THREADDEF = ,FAKE_THREADS
+THREADDEF =
THREADH = fakethr.h
acth = $(ARCHCORE)fakethr.h
THREAD = THREAD
@@ -238,7 +220,7 @@ acth =
.endif
# C preprocessor manifest "DEBUGGING" ==> perl -D, not the VMS debugger
-CFLAGS = /Define=(DEBUGGING$(SOCKDEF)$(XTRADEF)$(THREADDEF))$(XTRACCFLAGS)$(DBGCCFLAGS)
+CFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)
LINKFLAGS = $(DBGLINKFLAGS)
MAKE = $(MMS)
@@ -273,6 +255,10 @@ EXT = $(MYEXT)
extobj = $(myextobj)
.endif
+.ifdef LIBS2
+.else
+LIBS2=
+.endif
#### End of system configuration section. ####
@@ -285,12 +271,12 @@ h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h, atomic.h
h = $(h1), $(h2), $(h3), $(h4), $(h5) $(SOCKHLIS) $(THREADH)
c1 = av.c, scope.c, op.c, doop.c, doio.c, dump.c, hv.c, mg.c, universal.c, perlio.c
-c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c
+c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c $(MALLOC_C)
c3 = gv.c, sv.c, taint.c, toke.c, util.c, deb.c, run.c, globals.c, vms.c, byterun.c $(SOCKCLIS)
c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c, byteperl.c
-obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), util$(O), mg$(O), perlio$(O)
+obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), util$(O), mg$(O), perlio$(O) $(MALLOC_O)
obj2 = hv$(O), av$(O), run$(O), pp_hot$(O), sv$(O), pp$(O), scope$(O), pp_ctl$(O), pp_sys$(O)
obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O), byterun$(O) $(SOCKOBJ)
@@ -408,7 +394,11 @@ perl : $(DBG)perl$(E) $(DBG)byteperl$(E)
$(DBG)perl$(E) : perlmain$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
@ @[.vms]genopt "PerlShr.Opt/Write" "|" "''F$Environment("Default")'$(DBG)PerlShr$(E)/Share"
+.ifdef MT
+ Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)/THREAD=(MULTI,UPCALL)
+.else
Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
+.endif
$(DBG)byteperl$(E) : byteperl$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
@ @[.vms]genopt "PerlShr.Opt/Write" "|" "''F$Environment("Default")'$(DBG)PerlShr$(E)/Share"
@@ -450,7 +440,7 @@ $(ARCHDIR)config.pm : [.lib]config.pm
[.lib]config.pm : config.h $(MINIPERL_EXE)
$(MINIPERL) ConfigPM.
-[.ext.dynaloader]dl_vms.c : $(ARCHDIR)Config.pm [.ext.dynaloader]dl_vms.xs [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE)
+[.ext.dynaloader]dl_vms.c : [.ext.dynaloader]dl_vms.xs $(ARCHDIR)Config.pm [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE)
$(XSUBPP) $(MMS$SOURCE) >$(MMS$TARGET)
[.ext.dynaloader]dl_vms$(O) : [.ext.dynaloader]dl_vms.c
@@ -461,7 +451,7 @@ $(ARCHDIR)config.pm : [.lib]config.pm
@ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
@ $(MINIPERL) -e "use AutoSplit; autosplit_lib_modules(@ARGV)" [.lib]DynaLoader.pm
-[.ext.dynaloader]dynaloader.pm : [.ext.dynaloader]dynaloader.pm_pl
+[.ext.dynaloader]dynaloader.pm : [.ext.dynaloader]dynaloader_pm.pl
$(MINIPERL) $(MMS$SOURCE)
@ Rename/Log dynaloader.pm [.ext.dynaloader]
diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl
index 9d5748d499..f07b8850ac 100644
--- a/vms/gen_shrfls.pl
+++ b/vms/gen_shrfls.pl
@@ -64,11 +64,24 @@ $docc = ($cc_cmd !~ /^~~/);
print "\$docc = $docc\n" if $debug;
if ($docc) {
+ if (-f 'perl.h') { $dir = '[]'; }
+ elsif (-f '[-]perl.h') { $dir = '[-]'; }
+ else { die "$0: Can't find perl.h\n"; }
+
+ # Go see if debugging is enabled in config.h
+ $config = $dir . "config.h";
+ open CONFIG, "< $config";
+ while(<CONFIG>) {
+ $debugging_enabled++ if /define\s+DEBUGGING/;
+ $hide_mymalloc++ if /define\s+EMBEDMYMALLOC/;
+ $use_mymalloc++ if /define\s+MYMALLOC/;
+ }
+
# put quotes back onto defines - they were removed by DCL on the way in
if (($prefix,$defines,$suffix) =
($cc_cmd =~ m#(.*)/Define=(.*?)([/\s].*)#i)) {
$defines =~ s/^\((.*)\)$/$1/;
- $debugging_enabled = $defines =~ /\bDEBUGGING\b/;
+ $debugging_enabled ||= $defines =~ /\bDEBUGGING\b/;
@defines = split(/,/,$defines);
$cc_cmd = "$prefix/Define=(" . join(',',grep($_ = "\"$_\"",@defines))
. ')' . $suffix;
@@ -88,9 +101,6 @@ if ($docc) {
print "\$isvaxc: $isvaxc\n" if $debug;
print "\$debugging_enabled: $debugging_enabled\n" if $debug;
- if (-f 'perl.h') { $dir = '[]'; }
- elsif (-f '[-]perl.h') { $dir = '[-]'; }
- else { die "$0: Can't find perl.h\n"; }
}
else {
($junk,$junk,$cpp_file,$cc_cmd) = split(/~~/,$cc_cmd,4);
@@ -188,6 +198,14 @@ sub scan_func {
}
}
+# Go add some right up front if we need 'em
+if ($use_mymalloc) {
+ $fcns{'Perl_malloc'}++;
+ $fcns{'Perl_calloc'}++;
+ $fcns{'Perl_realloc'}++;
+ $fcns{'Perl_myfree'}++;
+}
+
$used_expectation_enum = $used_opcode_enum = 0; # avoid warnings
if ($docc) {
open(CPP,"${cc_cmd}/NoObj/PreProc=Sys\$Output ${dir}perl.h|")
diff --git a/vms/subconfigure.com b/vms/subconfigure.com
index 50d178f898..8222860122 100644
--- a/vms/subconfigure.com
+++ b/vms/subconfigure.com
@@ -16,6 +16,14 @@ $ Dec_C_Version := "''Dec_C_Version'"
$ Dec_C_Version = Dec_C_Version + 0
$ Vms_Ver := "''f$extract(1,3, f$getsyi(""version""))'"
$ perl_extensions := "''extensions'"
+$ if f$length(Mcc) .eq. 0 then Mcc := "cc"
+$ MCC = f$edit(mcc, "UPCASE")
+$ IF Mcc.eqs."CC
+$ THEN
+$ C_Compiler_Replace := "CC="
+$ ELSE
+$ C_Compiler_Replace := "CC=CC=''Mcc'"
+$ ENDIF
$ if "''Using_Dec_C'" .eqs. "Yes"
$ THEN
$ Checkcc := "''Mcc'/prefix=all"
@@ -23,7 +31,6 @@ $ ELSE
$ Checkcc := "''Mcc'"
$ ENDIF
$ cc_flags = ""
-$ if f$length(Mcc) .eq. 0 then Mcc := "cc"
$! Some constant defaults.
$
$ hwname = f$getsyi("HW_NAME")
@@ -31,13 +38,7 @@ $ myname = myhostname
$ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
$ perl_package="''package'"
$ perl_baserev = "''baserev'"
-$ cc_defines="DEBUGGING"
-$ IF ("''Has_Socketshr'".eqs."T") .or. ("''Has_Dec_C_Sockets'".eqs."T") THEN cc_defines = cc_defines + ",VMS_DO_SOCKETS"
-$ if ("''Has_Dec_C_Sockets'".eqs."T") then cc_defines = cc_defines + ",DECCRTL_SOCKETS"
-$! if ("''Use_Threads'".eqs."T")
-$! then
-$! cc_defines = cc_defines + ",MULTIPLICITY"
-$! endif
+$ cc_defines=""
$ perl_CONFIG="true"
$ perl_i_netdb="undef"
$ perl_d_gnulibc="undef"
@@ -409,7 +410,9 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(double));
+$ WS "int foo;
+$ WS "foo = sizeof(double);
+$ WS "printf(""%d\n"", foo);
$ WS "exit(0);
$ WS "}"
$ CS
@@ -450,7 +453,7 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(long double));
+$ WS "printf(""%d\n"", sizeof(long double));
$ WS "exit(0);
$ WS "}"
$ CS
@@ -508,7 +511,7 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(long long));
+$ WS "printf(""%d\n"", sizeof(long long));
$ WS "exit(0);
$ WS "}"
$ CS
@@ -557,7 +560,7 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(int));
+$ WS "printf(""%d\n"", sizeof(int));
$ WS "exit(0);
$ WS "}"
$ CS
@@ -603,7 +606,7 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(short));
+$ WS "printf(""%d\n"", sizeof(short));
$ WS "exit(0);
$ WS "}"
$ CS
@@ -643,7 +646,9 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(long));
+$ WS "int foo;
+$ WS "foo = sizeof(long);
+$ WS "printf(""%d\n"", foo);
$ WS "exit(0);
$ WS "}"
$ CS
@@ -1599,10 +1604,14 @@ $ WS "#endif
$ WS "#include <stdio.h>
$ WS "int main()
$ WS "{"
-$ WS "printf(""%i\n"", sizeof(void *));
+$ WS "int foo;
+$ WS "foo = sizeof(char *);
+$ WS "printf(""%d\n"", foo);
$ WS "exit(0);
$ WS "}"
$ CS
+$! copy temp.c sys$output
+$!
$ DEFINE SYS$ERROR _NLA0:
$ DEFINE SYS$OUTPUT _NLA0:
$ ON ERROR THEN CONTINUE
@@ -1818,11 +1827,11 @@ $ perl_sitearchexp="''perl_prefix':[lib.site_perl.''perl_arch']"
$ perl_sitearch="''perl_prefix':[lib.site_perl.''perl_arch']"
$ if "''Using_Dec_C'" .eqs. "Yes"
$ THEN
-$ perl_ccflags="/Define=(''cc_defines')/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''perl_obj_ext'/NoList''cc_flags'"
+$ perl_ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''perl_obj_ext'/NoList''cc_flags'"
$ ELSE
$ IF "''Using_Vax_C'" .eqs. "Yes"
$ THEN
-$ perl_ccflags="/Define=(''cc_defines')/Include=[]/Obj=''perl_obj_ext'/NoList''cc_flags'"
+$ perl_ccflags="/Include=[]/Obj=''perl_obj_ext'/NoList''cc_flags'"
$ ENDIF
$ ENDIF
$!
@@ -2228,8 +2237,64 @@ $ else
$ link munchconfig
$ endif
$ WRITE_RESULT "Writing config.h"
-$ define/user sys$output [-]config.h
+$ !
+$ ! we need an fdl file
+$ CREATE [-]CONFIG.FDL
+RECORD
+ FORMAT STREAM_LF
+$ CREATE /FDL=[-]CONFIG.FDL [-]CONFIG.LOCAL
+$ ! First spit out the header info with the local defines (to get
+$ ! around the 255 character command line limit)
+$ OPEN/APPEND CONFIG [-]config.local
+$ if use_debugging_perl.eqs."Y"
+$ THEN
+$ WRITE CONFIG "#define DEBUGGING"
+$ ENDIF
+$ if preload_env.eqs."Y"
+$ THEN
+$ WRITE CONFIG "#define PRIME_ENV_AT_STARTUP"
+$ ENDIF
+$ if use_two_pot_malloc.eqs."Y"
+$ THEN
+$ WRITE CONFIG "#define TWO_POT_OPTIMIZE"
+$ endif
+$ if mymalloc.eqs."Y"
+$ THEN
+$ WRITE CONFIG "#define EMBEDMYMALLOC"
+$ ENDIF
+$ if use_pack_malloc.eqs."Y"
+$ THEN
+$ WRITE CONFIG "#define PACK_MALLOC"
+$ endif
+$ if use_debugmalloc.eqs."Y"
+$ THEN
+$ write config "#define DEBUGGING_MSTATS"
+$ ENDIF
+$ if "''Using_Gnu_C'" .eqs."Yes"
+$ THEN
+$ WRITE CONFIG "#define GNUC_ATTRIBUTE_CHECK"
+$ ENDIF
+$ if "''Has_Dec_C_Sockets'".eqs."T"
+$ THEN
+$ WRITE CONFIG "#define VMS_DO_SOCKETS"
+$ WRITE CONFIG "#define DECCRTL_SOCKETS"
+$ ENDIF
+$ if "''Has_Socketshr'".eqs."T"
+$ THEN
+$ WRITE CONFIG "#define VMS_DO_SOCKETS"
+$ ENDIF
+$ CLOSE CONFIG
+$!
+$! Now build the normal config.h
+$ define/user sys$output [-]config.main
$ mcr []munchconfig [-]config.sh [-]config_h.sh
+$ ! Concatenate them together
+$ copy [-]config.local,[-]config.main [-]config.h
+$! Clean up
+$ DELETE/NOLOG [-]CONFIG.MAIN;*
+$ DELETE/NOLOG [-]CONFIG.LOCAL;*
+$ DELETE/NOLOG [-]CONFIG.FDL;*
+$!
$ if "''Using_Dec_C'" .eqs."Yes"
$ THEN
$ DECC_REPLACE = "DECC=decc=1"
@@ -2261,6 +2326,14 @@ $ THREAD_REPLACE = "THREAD=OLDTHREADED=1"
$ ELSE
$ THREAD_REPLACE = "THREAD=THREADED=1"
$ ENDIF
+$ ELSE
+$ THREAD_REPLACE = "THREAD="
+$ ENDIF
+$ if mymalloc.eqs."Y"
+$ THEN
+$ MALLOC_REPLACE = "MALLOC=MALLOC=1"
+$ ELSE
+$ MALLOC_REPLACE = "MALLOC="
$ ENDIF
$ if f$getsyi("HW_MODEL").ge.1024
$ THEN
@@ -2271,7 +2344,7 @@ $ ENDIF
$ WRITE_RESULT "Writing DESCRIP.MMS"
$!set ver
$ define/user sys$output [-]descrip.mms
-$ mcr []munchconfig [-]config.sh descrip_mms.template "''DECC_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" "''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'"
+$ mcr []munchconfig [-]config.sh descrip_mms.template "''DECC_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" "''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'" "''MALLOC_REPLACE'" "''Thread_Live_Dangerously'"
$! set nover
$!
$! Clean up after ourselves
diff --git a/vms/test.com b/vms/test.com
index f131088dda..81dfc4603b 100644
--- a/vms/test.com
+++ b/vms/test.com
@@ -162,7 +162,7 @@ while ($test = shift) {
} else {
$switch = '';
}
- open(results,"\$ MCR Sys\$Disk:[]Perl. $switch $test |") || (print "can't run.\n");
+ open(results,"\$ MCR Sys\$Disk:[]Perl. \"-I[-.lib]\" $switch $test |") || (print "can't run.\n");
$ok = 0;
$next = 0;
while (<results>) {
diff --git a/vms/vms.c b/vms/vms.c
index 62f27c37a5..73c918648b 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -203,7 +203,8 @@ prime_env_iter(void)
$DESCRIPTOR(clidsc,"DCL"); $DESCRIPTOR(tabdsc,"DCLTABLES");
$DESCRIPTOR(mbxdsc,mbxnam);
#ifdef USE_THREADS
- static perl_mutex primenv_mutex = PTHREAD_MUTEX_INITIALIZER;
+ static perl_mutex primenv_mutex;
+ MUTEX_INIT(&primenv_mutex);
#endif
if (primed) return;
diff --git a/win32/GenCAPI.pl b/win32/GenCAPI.pl
index 2e136ed5c6..dbe9fd7f8a 100644
--- a/win32/GenCAPI.pl
+++ b/win32/GenCAPI.pl
@@ -71,6 +71,7 @@ safexcalloc
safexrealloc
safexfree
Perl_GetVars
+malloced_size
)];
diff --git a/win32/Makefile b/win32/Makefile
index de36c42180..045834d9b1 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -1,17 +1,22 @@
-# Makefile to build perl on Windowns NT using Microsoft NMAKE.
-# Works with MS command line compilers from VC++ etc.
+#
+# Makefile to build perl on Windows NT using Microsoft NMAKE.
#
# This is set up to build a perl.exe that runs off a shared library
# (perl.dll). Also makes individual DLLs for the XS extensions.
-# NB: Miniperl has a different set of objects it depends on than
-# perl.exe
-# Also, Miniperl will not build with -DPERL_OBJECT defined
+#
+
+##
+## Build configuration. Edit the values below to suit your needs.
+##
+
#
# Set these to wherever you want "nmake install" to put your
# newly built perl.
+#
INST_DRV = c:
INST_TOP = $(INST_DRV)\perl
+#
# Comment this out if you DON'T want your perl installation to be versioned.
# This means that the new installation will overwrite any files from the
# old installation at the same INST_TOP location. Leaving it enabled is
@@ -19,43 +24,58 @@ INST_TOP = $(INST_DRV)\perl
# locations it installs files to. If you disable it, an alternative
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
-INST_VER = \5.00467
+#
+INST_VER = \5.00468
#
# uncomment to enable threads-capabilities
+#
#USE_THREADS = define
#
# uncomment next line if you are using Visual C++ 2.x
+#
#CCTYPE = MSVC20
#
# uncomment next line if you want to use the perl object
# Currently, this cannot be enabled if you ask for threads above
+#
#OBJECT = -DPERL_OBJECT
#
# uncomment next line if you want debug version of perl (big,slow)
+#
#CFG = Debug
#
+# uncomment to enable use of PerlCRT.DLL. Highly recommended. It has
+# patches that fix known bugs in MSCVRT.DLL. You will need to download it
+# from: <TBD> and follow the directions in the package to install.
+#
+#USE_PERLCRT = define
+
+#
# if you have the source for des_fcrypt(), uncomment this and make sure the
# file exists (see README.win32). File should be located at the perl
# top level directory.
+#
#CRYPT_SRC = des_fcrypt.c
#
# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
# library, uncomment this, and make sure the library exists (see README.win32)
# Specify the full pathname of the library.
+#
#CRYPT_LIB = des_fcrypt.lib
#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
-# you may have compiled with/without it. Be prepared to recompile all extensions
-# if you change the default. Currently, this cannot be enabled if you ask for
-# PERL_OBJECT above.
+# you may have compiled with/without it. Be prepared to recompile all
+# extensions if you change the default. Currently, this cannot be enabled
+# if you ask for PERL_OBJECT above.
+#
#PERL_MALLOC = define
#
@@ -67,10 +87,20 @@ CCINCDIR = $(CCHOME)\include
CCLIBDIR = $(CCHOME)\lib
#
+# specify space-separated list of extra directories to look for libraries
+#
+EXTRALIBDIRS =
+
+#
# set this to your email address (perl will guess a value from
# from your loginname and your hostname, which may not be right)
+#
#EMAIL =
+##
+## Build configuration ends.
+##
+
##################### CHANGE THESE ONLY IF YOU MUST #####################
!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
@@ -130,8 +160,22 @@ LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -TP -GX
+!IF "$(USE_PERLCRT)" == ""
+! IF "$(CFG)" == "Debug"
+PERLCRTLIBC = msvcrtd.lib
+! ELSE
+PERLCRTLIBC = msvcrt.lib
+! ENDIF
+!ELSE
+! IF "$(CFG)" == "Debug"
+PERLCRTLIBC = PerlCRTD.lib
+! ELSE
+PERLCRTLIBC = PerlCRT.lib
+! ENDIF
+!ENDIF
+
!IF "$(RUNTIME)" == "-MD"
-LIBC = msvcrt.lib
+LIBC = $(PERLCRTLIBC)
!ELSE
LIBC = libcmt.lib
!ENDIF
@@ -156,15 +200,17 @@ LINK_DBG = -release
OPTIMIZE = $(OPTIMIZE) $(CXX_FLAG)
!ENDIF
-# we don't add LIBC here, the compiler does it based on -MD/-MT
-LIBFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \
+LIBBASEFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
version.lib odbc32.lib odbccp32.lib
+# we add LIBC here, since we may be using PerlCRT.dll
+LIBFILES = $(LIBBASEFILES) $(LIBC)
+
CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
$(PCHFLAGS) $(OPTIMIZE)
-LINK_FLAGS = -nologo $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE)
+LINK_FLAGS = -nologo -nodefaultlib $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE)
OBJOUT_FLAG = -Fo
EXEOUT_FLAG = -Fe
@@ -225,11 +271,37 @@ X2P = ..\x2p\a2p.exe
PL2BAT = bin\pl2bat.pl
GLOBBAT = bin\perlglob.bat
+UTILS = \
+ ..\utils\h2ph \
+ ..\utils\splain \
+ ..\utils\perlbug \
+ ..\utils\pl2pm \
+ ..\utils\c2ph \
+ ..\utils\h2xs \
+ ..\utils\perldoc \
+ ..\utils\pstruct \
+ ..\utils\perlcc \
+ ..\pod\checkpods \
+ ..\pod\pod2html \
+ ..\pod\pod2latex \
+ ..\pod\pod2man \
+ ..\pod\pod2text \
+ ..\x2p\find2perl \
+ ..\x2p\s2p \
+ bin\www.pl \
+ bin\runperl.pl \
+ bin\pl2bat.pl \
+ bin\perlglob.pl \
+ bin\search.pl
+
MAKE = nmake -nologo
CFGSH_TMPL = config.vc
CFGH_TMPL = config_H.vc
+
+!IF "$(USE_PERLCRT)" == ""
PERL95EXE = ..\perl95.exe
+!ENDIF
XCOPY = xcopy /f /r /i /d
RCOPY = xcopy /f /r /i /e /d
@@ -325,12 +397,12 @@ CORE_NOCFG_H = \
..\gv.h \
..\handy.h \
..\hv.h \
+ ..\iperlsys.h \
..\mg.h \
..\nostdio.h \
..\op.h \
..\opcode.h \
..\perl.h \
- ..\perlio.h \
..\perlsdio.h \
..\perlsfio.h \
..\perly.h \
@@ -444,8 +516,8 @@ CFG_VARS = \
"d_mymalloc=$(PERL_MALLOC)" \
"libs=$(LIBFILES)" \
"incpath=$(CCINCDIR)" \
- "libperl=$(PERLIMPLIB)" \
- "libpth=$(CCLIBDIR)" \
+ "libperl=$(PERLIMPLIB:..\=)" \
+ "libpth=$(CCLIBDIR) $(EXTRALIBDIRS)" \
"libc=$(LIBC)" \
"make=nmake" \
"static_ext=$(STATIC_EXT)" \
@@ -578,6 +650,8 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ)
copy splittree.pl ..
$(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR)
+!IF "$(USE_PERLCRT)" == ""
+
perl95.c : runperl.c
copy runperl.c perl95.c
@@ -598,7 +672,9 @@ DynaLoadmt$(o) : $(DYNALOADER).c
$(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ)
$(LINK32) -subsystem:console -nodefaultlib -out:$@ $(LINK_FLAGS) \
- $(LIBFILES) $(PERL95_OBJ) $(PERLIMPLIB) libcmt.lib
+ $(LIBBASEFILES) $(PERL95_OBJ) $(PERLIMPLIB) libcmt.lib
+
+!ENDIF
$(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
if not exist $(AUTODIR) mkdir $(AUTODIR)
@@ -680,25 +756,18 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
cd ..\..\win32
doc: $(PERLEXE)
- cd ..\pod
- $(MAKE) -f ..\win32\pod.mak checkpods pod2html pod2latex \
- pod2man pod2text
- $(XCOPY) *.bat ..\win32\bin\*.*
- cd ..\win32
copy ..\README.win32 ..\pod\perlwin32.pod
$(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
--podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML::=|)" \
--libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
-utils: $(PERLEXE)
+utils: $(PERLEXE) $(X2P)
cd ..\utils
$(MAKE) PERL=$(MINIPERL)
- $(PERLEXE) -I..\lib ..\win32\$(PL2BAT) h2ph splain perlbug pl2pm c2ph
- $(PERLEXE) ..\win32\$(PL2BAT) h2xs perldoc pstruct
- $(XCOPY) *.bat ..\win32\bin\*.*
+ cd ..\pod
+ $(MAKE) -f ..\win32\pod.mak converters
cd ..\win32
- $(PERLEXE) $(PL2BAT) bin\network.pl bin\www.pl bin\runperl.pl \
- bin\pl2bat.pl bin\perlglob.pl
+ $(PERLEXE) $(PL2BAT) $(UTILS)
distclean: clean
-del /f $(MINIPERL) $(PERLEXE) $(PERL95EXE) $(PERLDLL) $(GLOBEXE) \
@@ -735,16 +804,16 @@ distclean: clean
-rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
-rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
-install : all installbare installutils installhtml
+install : all installbare installhtml
-installbare :
+installbare : utils
$(PERLEXE) ..\installperl
+!IF "$(USE_PERLCRT)" == ""
$(XCOPY) $(PERL95EXE) $(INST_BIN)\*.*
-
-installutils : utils
+!ENDIF
$(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
$(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
- $(XCOPY) ..\pod\*.bat $(INST_SCRIPT)\*.*
+ $(XCOPY) bin\network.pl $(INST_LIB)\*.*
installhtml : doc
$(RCOPY) html\*.* $(INST_HTML)\*.*
diff --git a/win32/config.bc b/win32/config.bc
index 2d25e46ef3..0c62fc5722 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -279,6 +279,7 @@ date='date'
db_hashtype='int'
db_prefixtype='int'
defvoidused='15'
+devtype='dev_t'
direntrytype='struct direct'
dlext='dll'
dlsrc='dl_win32.xs'
diff --git a/win32/config.gc b/win32/config.gc
index 1dfc04b112..5b8fb2ebef 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -279,6 +279,7 @@ date='date'
db_hashtype='int'
db_prefixtype='int'
defvoidused='15'
+devtype='dev_t'
direntrytype='struct direct'
dlext='dll'
dlsrc='dl_win32.xs'
diff --git a/win32/config.vc b/win32/config.vc
index 806549c363..823532ae5f 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -279,6 +279,7 @@ date='date'
db_hashtype='int'
db_prefixtype='int'
defvoidused='15'
+devtype='dev_t'
direntrytype='struct direct'
dlext='dll'
dlsrc='dl_win32.xs'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index 35388fab09..e0efdacb3f 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.00467\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl\\5.00467\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl\\5.00468\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl\\5.00468\\bin\\MSWin32-x86" /**/
/* CPPSTDIN:
* This symbol contains the first part of the string which will invoke
@@ -410,6 +410,14 @@
*/
/*#define HAS_MKFIFO /**/
+/* HAS_MKNOD:
+ * This symbol, if defined, indicates that the mknod routine is
+ * available to create character and block special files. Otherwise,
+ * mknod should be able to do it for you. However, if mknod is there,
+ * mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD /**/
+
/* HAS_MKTIME:
* This symbol, if defined, indicates that the mktime routine is
* available.
@@ -1463,7 +1471,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.00467\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl\\5.00468\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* CAT2:
@@ -1765,8 +1773,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.00467\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00467")) /**/
+#define PRIVLIB "c:\\perl\\5.00468\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00468")) /**/
/* SIG_NAME:
* This symbol contains a list of signal names in order of
@@ -1812,7 +1820,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.00467\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl\\site\\5.00468\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -1828,8 +1836,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.00467\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00467")) /**/
+#define SITELIB "c:\\perl\\site\\5.00468\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00468")) /**/
/* DLSYM_NEEDS_UNDERSCORE:
* This symbol, if defined, indicates that we need to prepend an
@@ -2007,6 +2015,13 @@
*/
#define Gid_t gid_t /* Type for getgid(), etc... */
+/* Dev_t:
+ * This symbol holds the type used to declare device numbers.
+ * It can be int, long, dev_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t /* <device> type */
+
/* Off_t:
* This symbol holds the type used to declare offsets in the kernel.
* It can be int, long, off_t, etc... It may be necessary to include
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 16fab75490..6f9a382f9e 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.gcc\\5.00467\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl.gcc\\5.00467\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl.gcc\\5.00468\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl.gcc\\5.00468\\bin\\MSWin32-x86" /**/
/* CPPSTDIN:
* This symbol contains the first part of the string which will invoke
@@ -410,6 +410,14 @@
*/
/*#define HAS_MKFIFO /**/
+/* HAS_MKNOD:
+ * This symbol, if defined, indicates that the mknod routine is
+ * available to create character and block special files. Otherwise,
+ * mknod should be able to do it for you. However, if mknod is there,
+ * mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD /**/
+
/* HAS_MKTIME:
* This symbol, if defined, indicates that the mktime routine is
* available.
@@ -1463,7 +1471,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.gcc\\5.00467\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl.gcc\\5.00468\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* CAT2:
@@ -1765,8 +1773,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.gcc\\5.00467\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00467")) /**/
+#define PRIVLIB "c:\\perl.gcc\\5.00468\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00468")) /**/
/* SIG_NAME:
* This symbol contains a list of signal names in order of
@@ -1812,7 +1820,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.gcc\\site\\5.00467\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl.gcc\\site\\5.00468\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -1828,8 +1836,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.gcc\\site\\5.00467\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00467")) /**/
+#define SITELIB "c:\\perl.gcc\\site\\5.00468\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00468")) /**/
/* DLSYM_NEEDS_UNDERSCORE:
* This symbol, if defined, indicates that we need to prepend an
@@ -2007,6 +2015,13 @@
*/
#define Gid_t gid_t /* Type for getgid(), etc... */
+/* Dev_t:
+ * This symbol holds the type used to declare device numbers.
+ * It can be int, long, dev_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t /* <device> type */
+
/* Off_t:
* This symbol holds the type used to declare offsets in the kernel.
* It can be int, long, off_t, etc... It may be necessary to include
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 05e98e5a02..81c322e2ae 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.00467\\bin\\MSWin32-x86" /**/
-#define BIN_EXP "c:\\perl\\5.00467\\bin\\MSWin32-x86" /**/
+#define BIN "c:\\perl\\5.00468\\bin\\MSWin32-x86" /**/
+#define BIN_EXP "c:\\perl\\5.00468\\bin\\MSWin32-x86" /**/
/* CPPSTDIN:
* This symbol contains the first part of the string which will invoke
@@ -410,6 +410,14 @@
*/
/*#define HAS_MKFIFO /**/
+/* HAS_MKNOD:
+ * This symbol, if defined, indicates that the mknod routine is
+ * available to create character and block special files. Otherwise,
+ * mknod should be able to do it for you. However, if mknod is there,
+ * mknod might require super-user privileges which mknod will not.
+ */
+/*#define HAS_MKNOD /**/
+
/* HAS_MKTIME:
* This symbol, if defined, indicates that the mktime routine is
* available.
@@ -1463,7 +1471,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.00467\\lib\\MSWin32-x86" /**/
+#define ARCHLIB "c:\\perl\\5.00468\\lib\\MSWin32-x86" /**/
/*#define ARCHLIB_EXP "" /**/
/* CAT2:
@@ -1765,8 +1773,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.00467\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib("5.00467")) /**/
+#define PRIVLIB "c:\\perl\\5.00468\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib("5.00468")) /**/
/* SIG_NAME:
* This symbol contains a list of signal names in order of
@@ -1812,7 +1820,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.00467\\lib\\MSWin32-x86" /**/
+#define SITEARCH "c:\\perl\\site\\5.00468\\lib\\MSWin32-x86" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -1828,8 +1836,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.00467\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib("5.00467")) /**/
+#define SITELIB "c:\\perl\\site\\5.00468\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib("5.00468")) /**/
/* DLSYM_NEEDS_UNDERSCORE:
* This symbol, if defined, indicates that we need to prepend an
@@ -2007,6 +2015,13 @@
*/
#define Gid_t gid_t /* Type for getgid(), etc... */
+/* Dev_t:
+ * This symbol holds the type used to declare device numbers.
+ * It can be int, long, dev_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Dev_t dev_t /* <device> type */
+
/* Off_t:
* This symbol holds the type used to declare offsets in the kernel.
* It can be int, long, off_t, etc... It may be necessary to include
diff --git a/win32/dl_win32.xs b/win32/dl_win32.xs
index a5183c3d90..c650acffb7 100644
--- a/win32/dl_win32.xs
+++ b/win32/dl_win32.xs
@@ -37,7 +37,7 @@ calls.
static SV *error_sv;
static char *
-OS_Error_String(void)
+OS_Error_String(CPERLarg)
{
DWORD err = GetLastError();
STRLEN len;
@@ -110,7 +110,8 @@ dl_load_file(filename,flags=0)
DLDEBUG(2,PerlIO_printf(PerlIO_stderr()," libref=%x\n", RETVAL));
ST(0) = sv_newmortal() ;
if (RETVAL == NULL)
- SaveError(PERL_OBJECT_THIS_ "load_file:%s",OS_Error_String()) ;
+ SaveError(PERL_OBJECT_THIS_ "load_file:%s",
+ OS_Error_String(PERL_OBJECT_THIS)) ;
else
sv_setiv( ST(0), (IV)RETVAL);
@@ -126,7 +127,8 @@ dl_find_symbol(libhandle, symbolname)
DLDEBUG(2,PerlIO_printf(PerlIO_stderr()," symbolref = %x\n", RETVAL));
ST(0) = sv_newmortal() ;
if (RETVAL == NULL)
- SaveError(PERL_OBJECT_THIS_ "find_symbol:%s",OS_Error_String()) ;
+ SaveError(PERL_OBJECT_THIS_ "find_symbol:%s",
+ OS_Error_String(PERL_OBJECT_THIS)) ;
else
sv_setiv( ST(0), (IV)RETVAL);
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 35004f8665..2b5742325f 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -1,20 +1,26 @@
#
-# Makefile to build perl on Windowns NT using DMAKE.
+# Makefile to build perl on Windows NT using DMAKE.
# Supported compilers:
# Visual C++ 2.0 thro 5.0
# Borland C++ 5.02
-# Mingw32-0.1.4 with gcc-2.7.2
+# Mingw32 with gcc-2.8.1 or egcs-1.0.2
#
# This is set up to build a perl.exe that runs off a shared library
# (perl.dll). Also makes individual DLLs for the XS extensions.
#
+##
+## Build configuration. Edit the values below to suit your needs.
+##
+
#
# Set these to wherever you want "nmake install" to put your
# newly built perl.
+#
INST_DRV *= c:
INST_TOP *= $(INST_DRV)\perl.gcc
+#
# Comment this out if you DON'T want your perl installation to be versioned.
# This means that the new installation will overwrite any files from the
# old installation at the same INST_TOP location. Leaving it enabled is
@@ -22,14 +28,17 @@ INST_TOP *= $(INST_DRV)\perl.gcc
# locations it installs files to. If you disable it, an alternative
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
-INST_VER *= \5.00467
+#
+INST_VER *= \5.00468
#
# uncomment to enable threads-capabilities
+#
#USE_THREADS *= define
#
# uncomment one
+#
#CCTYPE *= MSVC20
#CCTYPE *= MSVC
#CCTYPE *= BORLAND
@@ -38,30 +47,42 @@ CCTYPE *= GCC
#
# uncomment next line if you want to use the perl object
# Currently, this cannot be enabled if you ask for threads above
+#
#OBJECT *= -DPERL_OBJECT
#
# uncomment next line if you want debug version of perl (big,slow)
+#
CFG *= Debug
#
+# uncomment to enable use of PerlCRT.DLL. Highly recommended. It has
+# patches that fix known bugs in MSCVRT.DLL. You will need to download it
+# from: <TBD> and follow the directions in the package to install.
+#
+#USE_PERLCRT *= define
+
+#
# if you have the source for des_fcrypt(), uncomment this and make sure the
# file exists (see README.win32). File should be located at the perl
# top level directory.
+#
#CRYPT_SRC *= des_fcrypt.c
#
# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
# library, uncomment this, and make sure the library exists (see README.win32)
# Specify the full pathname of the library.
+#
#CRYPT_LIB *= des_fcrypt.lib
#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
-# you may have compiled with/without it. Be prepared to recompile all extensions
-# if you change the default. Currently, this cannot be enabled if you ask for
-# PERL_OBJECT above.
+# you may have compiled with/without it. Be prepared to recompile all
+# extensions if you change the default. Currently, this cannot be enabled
+# if you ask for PERL_OBJECT above.
+#
#PERL_MALLOC *= define
#
@@ -74,15 +95,26 @@ CCINCDIR *= $(CCHOME)\include
CCLIBDIR *= $(CCHOME)\lib
#
+# specify space-separated list of extra directories to look for libraries
+#
+EXTRALIBDIRS *=
+
+#
# set this to point to cmd.exe (only needed if you use some
# alternate shell that doesn't grok cmd.exe style commands)
+#
#SHELL *= g:\winnt\system32\cmd.exe
#
# set this to your email address (perl will guess a value from
# from your loginname and your hostname, which may not be right)
+#
#EMAIL *=
+##
+## Build configuration ends.
+##
+
##################### CHANGE THESE ONLY IF YOU MUST #####################
.IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
@@ -155,7 +187,7 @@ LINK_DBG =
CFLAGS = -w -d -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \
$(PCHFLAGS) $(OPTIMIZE)
-LINK_FLAGS = $(LINK_DBG) -L$(CCLIBDIR)
+LINK_FLAGS = $(LINK_DBG) -L$(CCLIBDIR) $(EXTRALIBDIRS:^"-L")
OBJOUT_FLAG = -o
EXEOUT_FLAG = -e
LIBOUT_FLAG =
@@ -193,7 +225,7 @@ LINK_DBG =
.ENDIF
CFLAGS = $(INCLUDES) $(DEFINES) $(LOCDEFS) $(OPTIMIZE)
-LINK_FLAGS = $(LINK_DBG) -L$(CCLIBDIR)
+LINK_FLAGS = $(LINK_DBG) -L$(CCLIBDIR) $(EXTRALIBDIRS:^"-L")
OBJOUT_FLAG = -o
EXEOUT_FLAG = -o
LIBOUT_FLAG =
@@ -216,8 +248,22 @@ LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -TP -GX
+.IF "$(USE_PERLCRT)" == ""
+.IF "$(CFG)" == "Debug"
+PERLCRTLIBC = msvcrtd.lib
+.ELSE
+PERLCRTLIBC = msvcrt.lib
+.ENDIF
+.ELSE
+.IF "$(CFG)" == "Debug"
+PERLCRTLIBC = PerlCRTD.lib
+.ELSE
+PERLCRTLIBC = PerlCRT.lib
+.ENDIF
+.ENDIF
+
.IF "$(RUNTIME)" == "-MD"
-LIBC = msvcrt.lib
+LIBC = $(PERLCRTLIBC)
.ELSE
LIBC = libcmt.lib
.ENDIF
@@ -238,15 +284,17 @@ OPTIMIZE = -Od $(RUNTIME) -DNDEBUG
LINK_DBG = -release
.ENDIF
-# we don't add LIBC here, the compiler does it based on -MD/-MT
-LIBFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \
+LIBBASEFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
version.lib odbc32.lib odbccp32.lib
+# we add LIBC here, since we may be using PerlCRT.dll
+LIBFILES = $(LIBBASEFILES) $(LIBC)
+
CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
$(PCHFLAGS) $(OPTIMIZE)
-LINK_FLAGS = -nologo $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE)
+LINK_FLAGS = -nologo -nodefaultlib $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE)
OBJOUT_FLAG = -Fo
EXEOUT_FLAG = -Fe
LIBOUT_FLAG = /out:
@@ -316,6 +364,29 @@ X2P = ..\x2p\a2p.exe
PL2BAT = bin\pl2bat.pl
GLOBBAT = bin\perlglob.bat
+UTILS = \
+ ..\utils\h2ph \
+ ..\utils\splain \
+ ..\utils\perlbug \
+ ..\utils\pl2pm \
+ ..\utils\c2ph \
+ ..\utils\h2xs \
+ ..\utils\perldoc \
+ ..\utils\pstruct \
+ ..\utils\perlcc \
+ ..\pod\checkpods \
+ ..\pod\pod2html \
+ ..\pod\pod2latex \
+ ..\pod\pod2man \
+ ..\pod\pod2text \
+ ..\x2p\find2perl \
+ ..\x2p\s2p \
+ bin\www.pl \
+ bin\runperl.pl \
+ bin\pl2bat.pl \
+ bin\perlglob.pl \
+ bin\search.pl
+
.IF "$(CCTYPE)" == "BORLAND"
CFGSH_TMPL = config.bc
@@ -331,7 +402,9 @@ PERLIMPLIB *= ..\libperl$(a)
CFGSH_TMPL = config.vc
CFGH_TMPL = config_H.vc
+.IF "$(USE_PERLCRT)" == ""
PERL95EXE = ..\perl95.exe
+.ENDIF
.ENDIF
@@ -440,12 +513,12 @@ CORE_NOCFG_H = \
..\gv.h \
..\handy.h \
..\hv.h \
+ ..\iperlsys.h \
..\mg.h \
..\nostdio.h \
..\op.h \
..\opcode.h \
..\perl.h \
- ..\perlio.h \
..\perlsdio.h \
..\perlsfio.h \
..\perly.h \
@@ -556,13 +629,12 @@ CFG_VARS = \
"d_mymalloc=$(PERL_MALLOC)" \
"libs=$(LIBFILES:f)" \
"incpath=$(CCINCDIR)" \
- "libperl=$(PERLIMPLIB:f)" \
- "libpth=$(strip $(CCLIBDIR) $(LIBFILES:d))" \
+ "libperl=$(PERLIMPLIB:f)" \
+ "libpth=$(strip $(CCLIBDIR) $(EXTRALIBDIRS) $(LIBFILES:d))" \
"libc=$(LIBC)" \
"make=dmake" \
- "_o=$(o)" \
- "_a=$(a)" \
- "lib_ext=$(a)" \
+ "_o=$(o)" "obj_ext=$(o)" \
+ "_a=$(a)" "lib_ext=$(a)" \
"static_ext=$(STATIC_EXT)" \
"dynamic_ext=$(DYNAMIC_EXT)" \
"usethreads=$(USE_THREADS)" \
@@ -744,6 +816,7 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ)
.IF "$(CCTYPE)" != "BORLAND"
.IF "$(CCTYPE)" != "GCC"
+.IF "$(USE_PERLCRT)" == ""
perl95.c : runperl.c
copy runperl.c perl95.c
@@ -765,10 +838,11 @@ DynaLoadmt$(o) : $(DYNALOADER).c
$(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ)
$(LINK32) -subsystem:console -nodefaultlib -out:$@ $(LINK_FLAGS) \
- $(LIBFILES) $(PERL95_OBJ) $(PERLIMPLIB) libcmt.lib
+ $(LIBBASEFILES) $(PERL95_OBJ) $(PERLIMPLIB) libcmt.lib
.ENDIF
.ENDIF
+.ENDIF
$(DYNALOADER).c: $(MINIPERL) $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
if not exist $(AUTODIR) mkdir $(AUTODIR)
@@ -850,21 +924,15 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
cd $(EXTDIR)\$(*B) && $(MAKE)
doc: $(PERLEXE)
- cd ..\pod && $(MAKE) -f ..\win32\pod.mak checkpods \
- pod2html pod2latex pod2man pod2text
- cd ..\pod && $(XCOPY) *.bat ..\win32\bin\*.*
copy ..\README.win32 ..\pod\perlwin32.pod
$(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=./html \
--podpath=pod:lib:ext:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\
--libpod=perlfunc:perlguts:perlvar:perlrun:perlop --recurse
-utils: $(PERLEXE)
+utils: $(PERLEXE) $(X2P)
cd ..\utils && $(MAKE) PERL=$(MINIPERL)
- cd ..\utils && $(PERLEXE) ..\win32\$(PL2BAT) h2ph splain perlbug \
- pl2pm c2ph h2xs perldoc pstruct
- $(XCOPY) ..\utils\*.bat bin\*.*
- $(PERLEXE) -I..\lib $(PL2BAT) bin\network.pl bin\www.pl bin\runperl.pl \
- bin\pl2bat.pl bin\perlglob.pl
+ cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters
+ $(PERLEXE) $(PL2BAT) $(UTILS)
distclean: clean
-del /f $(MINIPERL) $(PERLEXE) $(PERL95EXE) $(PERLDLL) $(GLOBEXE) \
@@ -895,18 +963,16 @@ distclean: clean
-rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
-rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
-install : all installbare installutils installhtml
+install : all installbare installhtml
-installbare :
+installbare : utils
$(PERLEXE) ..\installperl
.IF "$(PERL95EXE)" != ""
$(XCOPY) $(PERL95EXE) $(INST_BIN)\*.*
.ENDIF
-
-installutils : utils
$(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
$(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
- $(XCOPY) ..\pod\*.bat $(INST_SCRIPT)\*.*
+ $(XCOPY) bin\network.pl $(INST_LIB)\*.*
installhtml : doc
$(RCOPY) html\*.* $(INST_HTML)\*.*
diff --git a/win32/perlhost.h b/win32/perlhost.h
new file mode 100644
index 0000000000..a4c2e3ce51
--- /dev/null
+++ b/win32/perlhost.h
@@ -0,0 +1,971 @@
+
+#include "iperlsys.h"
+
+extern CPerlObj *pPerl;
+
+#define CALLFUNC0RET(x)\
+ int ret = x;\
+ if (ret < 0)\
+ err = errno;\
+ return ret;
+
+#define PROCESS_AND_RETURN \
+ if (errno) \
+ err = errno; \
+ return r
+
+#define CALLFUNCRET(x)\
+ int ret = x;\
+ if (ret)\
+ err = errno;\
+ return ret;
+
+#define CALLFUNCERR(x)\
+ int ret = x;\
+ if (errno)\
+ err = errno;\
+ return ret;
+
+#define LCALLFUNCERR(x)\
+ long ret = x;\
+ if (errno)\
+ err = errno;\
+ return ret;
+
+extern int g_closedir(DIR *dirp);
+extern DIR * g_opendir(char *filename);
+extern struct direct * g_readdir(DIR *dirp);
+extern void g_rewinddir(DIR *dirp);
+extern void g_seekdir(DIR *dirp, long loc);
+extern long g_telldir(DIR *dirp);
+
+class CPerlDir : public IPerlDir
+{
+public:
+ CPerlDir() {};
+ virtual int Makedir(const char *dirname, int mode, int &err)
+ {
+ CALLFUNC0RET(win32_mkdir(dirname, mode));
+ };
+ virtual int Chdir(const char *dirname, int &err)
+ {
+ CALLFUNC0RET(win32_chdir(dirname));
+ };
+ virtual int Rmdir(const char *dirname, int &err)
+ {
+ CALLFUNC0RET(win32_rmdir(dirname));
+ };
+ virtual int Close(DIR *dirp, int &err)
+ {
+ return g_closedir(dirp);
+ };
+ virtual DIR *Open(char *filename, int &err)
+ {
+ return g_opendir(filename);
+ };
+ virtual struct direct *Read(DIR *dirp, int &err)
+ {
+ return g_readdir(dirp);
+ };
+ virtual void Rewind(DIR *dirp, int &err)
+ {
+ g_rewinddir(dirp);
+ };
+ virtual void Seek(DIR *dirp, long loc, int &err)
+ {
+ g_seekdir(dirp, loc);
+ };
+ virtual long Tell(DIR *dirp, int &err)
+ {
+ return g_telldir(dirp);
+ };
+};
+
+
+extern char * g_win32_get_privlib(char *pl);
+extern char * g_win32_get_sitelib(char *pl);
+
+class CPerlEnv : public IPerlEnv
+{
+public:
+ CPerlEnv() {};
+ virtual char *Getenv(const char *varname, int &err)
+ {
+ return win32_getenv(varname);
+ };
+ virtual int Putenv(const char *envstring, int &err)
+ {
+ return putenv(envstring);
+ };
+ virtual char* LibPath(char *pl)
+ {
+ return g_win32_get_privlib(pl);
+ };
+ virtual char* SiteLibPath(char *pl)
+ {
+ return g_win32_get_sitelib(pl);
+ };
+};
+
+class CPerlSock : public IPerlSock
+{
+public:
+ CPerlSock() {};
+ virtual u_long Htonl(u_long hostlong)
+ {
+ return win32_htonl(hostlong);
+ };
+ virtual u_short Htons(u_short hostshort)
+ {
+ return win32_htons(hostshort);
+ };
+ virtual u_long Ntohl(u_long netlong)
+ {
+ return win32_ntohl(netlong);
+ };
+ virtual u_short Ntohs(u_short netshort)
+ {
+ return win32_ntohs(netshort);
+ }
+
+ virtual SOCKET Accept(SOCKET s, struct sockaddr* addr, int* addrlen, int &err)
+ {
+ SOCKET r = win32_accept(s, addr, addrlen);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Bind(SOCKET s, const struct sockaddr* name, int namelen, int &err)
+ {
+ int r = win32_bind(s, name, namelen);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Connect(SOCKET s, const struct sockaddr* name, int namelen, int &err)
+ {
+ int r = win32_connect(s, name, namelen);
+ PROCESS_AND_RETURN;
+ };
+ virtual void Endhostent(int &err)
+ {
+ win32_endhostent();
+ };
+ virtual void Endnetent(int &err)
+ {
+ win32_endnetent();
+ };
+ virtual void Endprotoent(int &err)
+ {
+ win32_endprotoent();
+ };
+ virtual void Endservent(int &err)
+ {
+ win32_endservent();
+ };
+ virtual struct hostent* Gethostbyaddr(const char* addr, int len, int type, int &err)
+ {
+ struct hostent *r = win32_gethostbyaddr(addr, len, type);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct hostent* Gethostbyname(const char* name, int &err)
+ {
+ struct hostent *r = win32_gethostbyname(name);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct hostent* Gethostent(int &err)
+ {
+ croak("gethostent not implemented!\n");
+ return NULL;
+ };
+ virtual int Gethostname(char* name, int namelen, int &err)
+ {
+ int r = win32_gethostname(name, namelen);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct netent *Getnetbyaddr(long net, int type, int &err)
+ {
+ struct netent *r = win32_getnetbyaddr(net, type);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct netent *Getnetbyname(const char *name, int &err)
+ {
+ struct netent *r = win32_getnetbyname((char*)name);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct netent *Getnetent(int &err)
+ {
+ struct netent *r = win32_getnetent();
+ PROCESS_AND_RETURN;
+ };
+ virtual int Getpeername(SOCKET s, struct sockaddr* name, int* namelen, int &err)
+ {
+ int r = win32_getpeername(s, name, namelen);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct protoent* Getprotobyname(const char* name, int &err)
+ {
+ struct protoent *r = win32_getprotobyname(name);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct protoent* Getprotobynumber(int number, int &err)
+ {
+ struct protoent *r = win32_getprotobynumber(number);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct protoent* Getprotoent(int &err)
+ {
+ struct protoent *r = win32_getprotoent();
+ PROCESS_AND_RETURN;
+ };
+ virtual struct servent* Getservbyname(const char* name, const char* proto, int &err)
+ {
+ struct servent *r = win32_getservbyname(name, proto);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct servent* Getservbyport(int port, const char* proto, int &err)
+ {
+ struct servent *r = win32_getservbyport(port, proto);
+ PROCESS_AND_RETURN;
+ };
+ virtual struct servent* Getservent(int &err)
+ {
+ struct servent *r = win32_getservent();
+ PROCESS_AND_RETURN;
+ };
+ virtual int Getsockname(SOCKET s, struct sockaddr* name, int* namelen, int &err)
+ {
+ int r = win32_getsockname(s, name, namelen);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Getsockopt(SOCKET s, int level, int optname, char* optval, int* optlen, int &err)
+ {
+ int r = win32_getsockopt(s, level, optname, optval, optlen);
+ PROCESS_AND_RETURN;
+ };
+ virtual unsigned long InetAddr(const char* cp, int &err)
+ {
+ unsigned long r = win32_inet_addr(cp);
+ PROCESS_AND_RETURN;
+ };
+ virtual char* InetNtoa(struct in_addr in, int &err)
+ {
+ char *r = win32_inet_ntoa(in);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Listen(SOCKET s, int backlog, int &err)
+ {
+ int r = win32_listen(s, backlog);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Recv(SOCKET s, char* buffer, int len, int flags, int &err)
+ {
+ int r = win32_recv(s, buffer, len, flags);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Recvfrom(SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen, int &err)
+ {
+ int r = win32_recvfrom(s, buffer, len, flags, from, fromlen);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Select(int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout, int &err)
+ {
+ int r = win32_select(nfds, (Perl_fd_set*)readfds, (Perl_fd_set*)writefds, (Perl_fd_set*)exceptfds, timeout);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Send(SOCKET s, const char* buffer, int len, int flags, int &err)
+ {
+ int r = win32_send(s, buffer, len, flags);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Sendto(SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen, int &err)
+ {
+ int r = win32_sendto(s, buffer, len, flags, to, tolen);
+ PROCESS_AND_RETURN;
+ };
+ virtual void Sethostent(int stayopen, int &err)
+ {
+ win32_sethostent(stayopen);
+ };
+ virtual void Setnetent(int stayopen, int &err)
+ {
+ win32_setnetent(stayopen);
+ };
+ virtual void Setprotoent(int stayopen, int &err)
+ {
+ win32_setprotoent(stayopen);
+ };
+ virtual void Setservent(int stayopen, int &err)
+ {
+ win32_setservent(stayopen);
+ };
+ virtual int Setsockopt(SOCKET s, int level, int optname, const char* optval, int optlen, int &err)
+ {
+ int r = win32_setsockopt(s, level, optname, optval, optlen);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Shutdown(SOCKET s, int how, int &err)
+ {
+ int r = win32_shutdown(s, how);
+ PROCESS_AND_RETURN;
+ };
+ virtual SOCKET Socket(int af, int type, int protocol, int &err)
+ {
+ SOCKET r = win32_socket(af, type, protocol);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Socketpair(int domain, int type, int protocol, int* fds, int &err)
+ {
+ croak("socketpair not implemented!\n");
+ return 0;
+ };
+ virtual int Closesocket(SOCKET s, int& err)
+ {
+ int r = win32_closesocket(s);
+ PROCESS_AND_RETURN;
+ };
+ virtual int Ioctlsocket(SOCKET s, long cmd, u_long *argp, int& err)
+ {
+ int r = win32_ioctlsocket(s, cmd, argp);
+ PROCESS_AND_RETURN;
+ };
+};
+
+class CPerlLIO : public IPerlLIO
+{
+public:
+ CPerlLIO() {};
+ virtual int Access(const char *path, int mode, int &err)
+ {
+ CALLFUNCRET(access(path, mode))
+ };
+ virtual int Chmod(const char *filename, int pmode, int &err)
+ {
+ CALLFUNCRET(chmod(filename, pmode))
+ };
+ virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err)
+ {
+ CALLFUNCERR(chown(filename, owner, group))
+ };
+ virtual int Chsize(int handle, long size, int &err)
+ {
+ CALLFUNCRET(chsize(handle, size))
+ };
+ virtual int Close(int handle, int &err)
+ {
+ CALLFUNCRET(win32_close(handle))
+ };
+ virtual int Dup(int handle, int &err)
+ {
+ CALLFUNCERR(win32_dup(handle))
+ };
+ virtual int Dup2(int handle1, int handle2, int &err)
+ {
+ CALLFUNCERR(win32_dup2(handle1, handle2))
+ };
+ virtual int Flock(int fd, int oper, int &err)
+ {
+ CALLFUNCERR(win32_flock(fd, oper))
+ };
+ virtual int FileStat(int handle, struct stat *buffer, int &err)
+ {
+ CALLFUNCERR(fstat(handle, buffer))
+ };
+ virtual int IOCtl(int i, unsigned int u, char *data, int &err)
+ {
+ CALLFUNCERR(win32_ioctlsocket((SOCKET)i, (long)u, (u_long*)data))
+ };
+ virtual int Isatty(int fd, int &err)
+ {
+ return isatty(fd);
+ };
+ virtual long Lseek(int handle, long offset, int origin, int &err)
+ {
+ LCALLFUNCERR(win32_lseek(handle, offset, origin))
+ };
+ virtual int Lstat(const char *path, struct stat *buffer, int &err)
+ {
+ return NameStat(path, buffer, err);
+ };
+ virtual char *Mktemp(char *Template, int &err)
+ {
+ return mktemp(Template);
+ };
+ virtual int Open(const char *filename, int oflag, int &err)
+ {
+ CALLFUNCERR(win32_open(filename, oflag))
+ };
+ virtual int Open(const char *filename, int oflag, int pmode, int &err)
+ {
+ int ret;
+ if(stricmp(filename, "/dev/null") == 0)
+ ret = open("NUL", oflag, pmode);
+ else
+ ret = open(filename, oflag, pmode);
+
+ if(errno)
+ err = errno;
+ return ret;
+ };
+ virtual int Read(int handle, void *buffer, unsigned int count, int &err)
+ {
+ CALLFUNCERR(win32_read(handle, buffer, count))
+ };
+ virtual int Rename(const char *OldFileName, const char *newname, int &err)
+ {
+ char szNewWorkName[MAX_PATH+1];
+ WIN32_FIND_DATA fdOldFile, fdNewFile;
+ HANDLE handle;
+ char *ptr;
+
+ if((strchr(OldFileName, '\\') || strchr(OldFileName, '/'))
+ && strchr(newname, '\\') == NULL
+ && strchr(newname, '/') == NULL)
+ {
+ strcpy(szNewWorkName, OldFileName);
+ if((ptr = strrchr(szNewWorkName, '\\')) == NULL)
+ ptr = strrchr(szNewWorkName, '/');
+ strcpy(++ptr, newname);
+ }
+ else
+ strcpy(szNewWorkName, newname);
+
+ if(stricmp(OldFileName, szNewWorkName) != 0)
+ { // check that we're not being fooled by relative paths
+ // and only delete the new file
+ // 1) if it exists
+ // 2) it is not the same file as the old file
+ // 3) old file exist
+ // GetFullPathName does not return the long file name on some systems
+ handle = FindFirstFile(OldFileName, &fdOldFile);
+ if(handle != INVALID_HANDLE_VALUE)
+ {
+ FindClose(handle);
+
+ handle = FindFirstFile(szNewWorkName, &fdNewFile);
+
+ if(handle != INVALID_HANDLE_VALUE)
+ FindClose(handle);
+ else
+ fdNewFile.cFileName[0] = '\0';
+
+ if(strcmp(fdOldFile.cAlternateFileName, fdNewFile.cAlternateFileName) != 0
+ && strcmp(fdOldFile.cFileName, fdNewFile.cFileName) != 0)
+ { // file exists and not same file
+ DeleteFile(szNewWorkName);
+ }
+ }
+ }
+ int ret = rename(OldFileName, szNewWorkName);
+ if(ret)
+ err = errno;
+
+ return ret;
+ };
+ virtual int Setmode(int handle, int mode, int &err)
+ {
+ CALLFUNCRET(win32_setmode(handle, mode))
+ };
+ virtual int NameStat(const char *path, struct stat *buffer, int &err)
+ {
+ return win32_stat(path, buffer);
+ };
+ virtual char *Tmpnam(char *string, int &err)
+ {
+ return tmpnam(string);
+ };
+ virtual int Umask(int pmode, int &err)
+ {
+ return umask(pmode);
+ };
+ virtual int Unlink(const char *filename, int &err)
+ {
+ chmod(filename, S_IREAD | S_IWRITE);
+ CALLFUNCRET(unlink(filename))
+ };
+ virtual int Utime(char *filename, struct utimbuf *times, int &err)
+ {
+ CALLFUNCRET(win32_utime(filename, times))
+ };
+ virtual int Write(int handle, const void *buffer, unsigned int count, int &err)
+ {
+ CALLFUNCERR(win32_write(handle, buffer, count))
+ };
+};
+
+class CPerlMem : public IPerlMem
+{
+public:
+ CPerlMem() {};
+ virtual void* Malloc(size_t size)
+ {
+ return win32_malloc(size);
+ };
+ virtual void* Realloc(void* ptr, size_t size)
+ {
+ return win32_realloc(ptr, size);
+ };
+ virtual void Free(void* ptr)
+ {
+ win32_free(ptr);
+ };
+};
+
+#define EXECF_EXEC 1
+#define EXECF_SPAWN 2
+
+extern char * g_getlogin(void);
+extern int do_spawn2(char *cmd, int exectype);
+extern int g_do_aspawn(void *vreally, void **vmark, void **vsp);
+
+class CPerlProc : public IPerlProc
+{
+public:
+ CPerlProc() {};
+ virtual void Abort(void)
+ {
+ win32_abort();
+ };
+ virtual void Exit(int status)
+ {
+ exit(status);
+ };
+ virtual void _Exit(int status)
+ {
+ _exit(status);
+ };
+ virtual int Execl(const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3)
+ {
+ return execl(cmdname, arg0, arg1, arg2, arg3);
+ };
+ virtual int Execv(const char *cmdname, const char *const *argv)
+ {
+ return win32_execvp(cmdname, argv);
+ };
+ virtual int Execvp(const char *cmdname, const char *const *argv)
+ {
+ return win32_execvp(cmdname, argv);
+ };
+ virtual uid_t Getuid(void)
+ {
+ return getuid();
+ };
+ virtual uid_t Geteuid(void)
+ {
+ return geteuid();
+ };
+ virtual gid_t Getgid(void)
+ {
+ return getgid();
+ };
+ virtual gid_t Getegid(void)
+ {
+ return getegid();
+ };
+ virtual char *Getlogin(void)
+ {
+ return g_getlogin();
+ };
+ virtual int Kill(int pid, int sig)
+ {
+ return win32_kill(pid, sig);
+ };
+ virtual int Killpg(int pid, int sig)
+ {
+ croak("killpg not implemented!\n");
+ return 0;
+ };
+ virtual int PauseProc(void)
+ {
+ return win32_sleep((32767L << 16) + 32767);
+ };
+ virtual PerlIO* Popen(const char *command, const char *mode)
+ {
+ win32_fflush(stdout);
+ win32_fflush(stderr);
+ return (PerlIO*)win32_popen(command, mode);
+ };
+ virtual int Pclose(PerlIO *stream)
+ {
+ return win32_pclose((FILE*)stream);
+ };
+ virtual int Pipe(int *phandles)
+ {
+ return win32_pipe(phandles, 512, O_BINARY);
+ };
+ virtual int Setuid(uid_t u)
+ {
+ return setuid(u);
+ };
+ virtual int Setgid(gid_t g)
+ {
+ return setgid(g);
+ };
+ virtual int Sleep(unsigned int s)
+ {
+ return win32_sleep(s);
+ };
+ virtual int Times(struct tms *timebuf)
+ {
+ return win32_times(timebuf);
+ };
+ virtual int Wait(int *status)
+ {
+ return win32_wait(status);
+ };
+ virtual int Waitpid(int pid, int *status, int flags)
+ {
+ return win32_waitpid(pid, status, flags);
+ };
+ virtual Sighandler_t Signal(int sig, Sighandler_t subcode)
+ {
+ return 0;
+ };
+ virtual void GetSysMsg(char*& sMsg, DWORD& dwLen, DWORD dwErr)
+ {
+ dwLen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
+ |FORMAT_MESSAGE_IGNORE_INSERTS
+ |FORMAT_MESSAGE_FROM_SYSTEM, NULL,
+ dwErr, 0, (char *)&sMsg, 1, NULL);
+ if (0 < dwLen) {
+ while (0 < dwLen && isspace(sMsg[--dwLen]))
+ ;
+ if ('.' != sMsg[dwLen])
+ dwLen++;
+ sMsg[dwLen]= '\0';
+ }
+ if (0 == dwLen) {
+ sMsg = (char*)LocalAlloc(0, 64/**sizeof(TCHAR)*/);
+ dwLen = sprintf(sMsg,
+ "Unknown error #0x%lX (lookup 0x%lX)",
+ dwErr, GetLastError());
+ }
+ };
+ virtual void FreeBuf(char* sMsg)
+ {
+ LocalFree(sMsg);
+ };
+ virtual BOOL DoCmd(char *cmd)
+ {
+ do_spawn2(cmd, EXECF_EXEC);
+ return FALSE;
+ };
+ virtual int Spawn(char* cmds)
+ {
+ return do_spawn2(cmds, EXECF_SPAWN);
+ };
+ virtual int Spawnvp(int mode, const char *cmdname, const char *const *argv)
+ {
+ return win32_spawnvp(mode, cmdname, argv);
+ };
+ virtual int ASpawn(void *vreally, void **vmark, void **vsp)
+ {
+ return g_do_aspawn(vreally, vmark, vsp);
+ };
+};
+
+
+class CPerlStdIO : public IPerlStdIO
+{
+public:
+ CPerlStdIO() {};
+ virtual PerlIO* Stdin(void)
+ {
+ return (PerlIO*)win32_stdin();
+ };
+ virtual PerlIO* Stdout(void)
+ {
+ return (PerlIO*)win32_stdout();
+ };
+ virtual PerlIO* Stderr(void)
+ {
+ return (PerlIO*)win32_stderr();
+ };
+ virtual PerlIO* Open(const char *path, const char *mode, int &err)
+ {
+ PerlIO*pf = (PerlIO*)win32_fopen(path, mode);
+ if(errno)
+ err = errno;
+ return pf;
+ };
+ virtual int Close(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_fclose(((FILE*)pf)))
+ };
+ virtual int Eof(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_feof((FILE*)pf))
+ };
+ virtual int Error(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_ferror((FILE*)pf))
+ };
+ virtual void Clearerr(PerlIO* pf, int &err)
+ {
+ win32_clearerr((FILE*)pf);
+ };
+ virtual int Getc(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_getc((FILE*)pf))
+ };
+ virtual char* GetBase(PerlIO* pf, int &err)
+ {
+ FILE *f = (FILE*)pf;
+ return FILE_base(f);
+ };
+ virtual int GetBufsiz(PerlIO* pf, int &err)
+ {
+ FILE *f = (FILE*)pf;
+ return FILE_bufsiz(f);
+ };
+ virtual int GetCnt(PerlIO* pf, int &err)
+ {
+ FILE *f = (FILE*)pf;
+ return FILE_cnt(f);
+ };
+ virtual char* GetPtr(PerlIO* pf, int &err)
+ {
+ FILE *f = (FILE*)pf;
+ return FILE_ptr(f);
+ };
+ virtual char* Gets(PerlIO* pf, char* s, int n, int& err)
+ {
+ char* ret = win32_fgets(s, n, (FILE*)pf);
+ if(errno)
+ err = errno;
+ return ret;
+ };
+ virtual int Putc(PerlIO* pf, int c, int &err)
+ {
+ CALLFUNCERR(win32_fputc(c, (FILE*)pf))
+ };
+ virtual int Puts(PerlIO* pf, const char *s, int &err)
+ {
+ CALLFUNCERR(win32_fputs(s, (FILE*)pf))
+ };
+ virtual int Flush(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_fflush((FILE*)pf))
+ };
+ virtual int Ungetc(PerlIO* pf,int c, int &err)
+ {
+ CALLFUNCERR(win32_ungetc(c, (FILE*)pf))
+ };
+ virtual int Fileno(PerlIO* pf, int &err)
+ {
+ CALLFUNCERR(win32_fileno((FILE*)pf))
+ };
+ virtual PerlIO* Fdopen(int fd, const char *mode, int &err)
+ {
+ PerlIO* pf = (PerlIO*)win32_fdopen(fd, mode);
+ if(errno)
+ err = errno;
+ return pf;
+ };
+ virtual PerlIO* Reopen(const char*path, const char*mode, PerlIO* pf, int &err)
+ {
+ PerlIO* newPf = (PerlIO*)win32_freopen(path, mode, (FILE*)pf);
+ if(errno)
+ err = errno;
+ return newPf;
+ };
+ virtual SSize_t Read(PerlIO* pf, void *buffer, Size_t size, int &err)
+ {
+ SSize_t i = win32_fread(buffer, 1, size, (FILE*)pf);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual SSize_t Write(PerlIO* pf, const void *buffer, Size_t size, int &err)
+ {
+ SSize_t i = win32_fwrite(buffer, 1, size, (FILE*)pf);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual void SetBuf(PerlIO* pf, char* buffer, int &err)
+ {
+ win32_setbuf((FILE*)pf, buffer);
+ };
+ virtual int SetVBuf(PerlIO* pf, char* buffer, int type, Size_t size, int &err)
+ {
+ int i = win32_setvbuf((FILE*)pf, buffer, type, size);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual void SetCnt(PerlIO* pf, int n, int &err)
+ {
+ FILE *f = (FILE*)pf;
+ FILE_cnt(f) = n;
+ };
+ virtual void SetPtrCnt(PerlIO* pf, char * ptr, int n, int& err)
+ {
+ FILE *f = (FILE*)pf;
+ FILE_ptr(f) = ptr;
+ FILE_cnt(f) = n;
+ };
+ virtual void Setlinebuf(PerlIO* pf, int &err)
+ {
+ win32_setvbuf((FILE*)pf, NULL, _IOLBF, 0);
+ };
+ virtual int Printf(PerlIO* pf, int &err, const char *format,...)
+ {
+ va_list(arglist);
+ va_start(arglist, format);
+ int i = win32_vfprintf((FILE*)pf, format, arglist);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual int Vprintf(PerlIO* pf, int &err, const char *format, va_list arglist)
+ {
+ int i = win32_vfprintf((FILE*)pf, format, arglist);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual long Tell(PerlIO* pf, int &err)
+ {
+ long l = win32_ftell((FILE*)pf);
+ if(errno)
+ err = errno;
+ return l;
+ };
+ virtual int Seek(PerlIO* pf, off_t offset, int origin, int &err)
+ {
+ int i = win32_fseek((FILE*)pf, offset, origin);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual void Rewind(PerlIO* pf, int &err)
+ {
+ win32_rewind((FILE*)pf);
+ };
+ virtual PerlIO* Tmpfile(int &err)
+ {
+ PerlIO* pf = (PerlIO*)win32_tmpfile();
+ if(errno)
+ err = errno;
+ return pf;
+ };
+ virtual int Getpos(PerlIO* pf, Fpos_t *p, int &err)
+ {
+ int i = win32_fgetpos((FILE*)pf, p);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual int Setpos(PerlIO* pf, const Fpos_t *p, int &err)
+ {
+ int i = win32_fsetpos((FILE*)pf, p);
+ if(errno)
+ err = errno;
+ return i;
+ };
+ virtual void Init(int &err)
+ {
+ };
+ virtual void InitOSExtras(void* p)
+ {
+ Perl_init_os_extras();
+ };
+ virtual int OpenOSfhandle(long osfhandle, int flags)
+ {
+ return win32_open_osfhandle(osfhandle, flags);
+ }
+ virtual int GetOSfhandle(int filenum)
+ {
+ return win32_get_osfhandle(filenum);
+ }
+};
+
+class CPerlHost
+{
+public:
+ CPerlHost() { pPerl = NULL; };
+ inline BOOL PerlCreate(void)
+ {
+ try
+ {
+ pPerl = perl_alloc(&perlMem, &perlEnv, &perlStdIO, &perlLIO,
+ &perlDir, &perlSock, &perlProc);
+ if(pPerl != NULL)
+ {
+ try
+ {
+ pPerl->perl_construct();
+ }
+ catch(...)
+ {
+ win32_fprintf(stderr, "%s\n",
+ "Error: Unable to construct data structures");
+ pPerl->perl_free();
+ pPerl = NULL;
+ }
+ }
+ }
+ catch(...)
+ {
+ win32_fprintf(stderr, "%s\n", "Error: Unable to allocate memory");
+ pPerl = NULL;
+ }
+ return (pPerl != NULL);
+ };
+ inline int PerlParse(void (*xs_init)(CPerlObj*), int argc, char** argv, char** env)
+ {
+ int retVal;
+ try
+ {
+ retVal = pPerl->perl_parse(xs_init, argc, argv, env);
+ }
+ catch(int x)
+ {
+ // this is where exit() should arrive
+ retVal = x;
+ }
+ catch(...)
+ {
+ win32_fprintf(stderr, "Error: Parse exception\n");
+ retVal = -1;
+ }
+ *win32_errno() = 0;
+ return retVal;
+ };
+ inline int PerlRun(void)
+ {
+ int retVal;
+ try
+ {
+ retVal = pPerl->perl_run();
+ }
+ catch(int x)
+ {
+ // this is where exit() should arrive
+ retVal = x;
+ }
+ catch(...)
+ {
+ win32_fprintf(stderr, "Error: Runtime exception\n");
+ retVal = -1;
+ }
+ return retVal;
+ };
+ inline void PerlDestroy(void)
+ {
+ try
+ {
+ pPerl->perl_destruct();
+ pPerl->perl_free();
+ }
+ catch(...)
+ {
+ }
+ };
+
+protected:
+ CPerlDir perlDir;
+ CPerlEnv perlEnv;
+ CPerlLIO perlLIO;
+ CPerlMem perlMem;
+ CPerlProc perlProc;
+ CPerlSock perlSock;
+ CPerlStdIO perlStdIO;
+};
diff --git a/win32/pod.mak b/win32/pod.mak
index 9881ed882d..7ad153c000 100644
--- a/win32/pod.mak
+++ b/win32/pod.mak
@@ -8,8 +8,10 @@ POD2HTML = pod2html \
all: $(CONVERTERS) html
+converters: $(CONVERTERS)
+
PERL = ..\miniperl.exe
-PL2BAT = ..\win32\bin\pl2bat.pl
+REALPERL = ..\perl.exe
POD = \
perl.pod \
@@ -23,6 +25,7 @@ POD = \
perlvar.pod \
perlsub.pod \
perlmod.pod \
+ perlmodlib.pod \
perlform.pod \
perllocale.pod \
perlref.pod \
@@ -70,6 +73,7 @@ MAN = \
perlvar.man \
perlsub.man \
perlmod.man \
+ perlmodlib.man \
perlform.man \
perllocale.man \
perlref.man \
@@ -117,6 +121,7 @@ HTML = \
perlvar.html \
perlsub.html \
perlmod.html \
+ perlmodlib.html \
perlform.html \
perllocale.html \
perlref.html \
@@ -164,6 +169,7 @@ TEX = \
perlvar.tex \
perlsub.tex \
perlmod.tex \
+ perlmodlib.tex \
perlform.tex \
perllocale.tex \
perlref.tex \
@@ -206,67 +212,67 @@ html: pod2html $(HTML)
tex: pod2latex $(TEX)
toc:
- $(PERL) -I..\lib buildtoc >perltoc.pod
+ $(PERL) -I../lib buildtoc >perltoc.pod
.SUFFIXES: .pm .pod
.SUFFIXES: .man
.pm.man:
- $(PERL) -I..\lib pod2man $*.pm >$*.man
+ $(PERL) -I../lib pod2man $*.pm >$*.man
.pod.man:
- $(PERL) -I..\lib pod2man $*.pod >$*.man
+ $(PERL) -I../lib pod2man $*.pod >$*.man
.SUFFIXES: .html
.pm.html:
- $(PERL) -I..\lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
+ $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
.pod.html:
- $(PERL) -I..\lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
+ $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
.SUFFIXES: .tex
.pm.tex:
- $(PERL) -I..\lib pod2latex $*.pm
+ $(PERL) -I../lib pod2latex $*.pm
.pod.tex:
- $(PERL) -I..\lib pod2latex $*.pod
+ $(PERL) -I../lib pod2latex $*.pod
clean:
- del /f $(MAN) $(HTML) $(TEX)
- del /f pod2html-*cache
- del /f *.aux *.log
+ rm -f $(MAN)
+ rm -f $(HTML)
+ rm -f $(TEX)
+ rm -f pod2html-*cache
+ rm -f *.aux *.log *.exe
realclean: clean
- del /f $(CONVERTERS)
+ rm -f $(CONVERTERS)
distclean: realclean
check: checkpods
@echo "checking..."; \
- $(PERL) -I..\lib checkpods $(POD)
+ $(PERL) -I../lib checkpods $(POD)
# Dependencies.
-pod2latex: pod2latex.PL ..\lib\Config.pm
- $(PERL) -I..\lib pod2latex.PL
- $(PERL) $(PL2BAT) pod2latex
+pod2latex: pod2latex.PL ../lib/Config.pm
+ $(PERL) -I../lib pod2latex.PL
-pod2html: pod2html.PL ..\lib\Config.pm
- $(PERL) -I..\lib pod2html.PL
- $(PERL) $(PL2BAT) pod2html
+pod2html: pod2html.PL ../lib/Config.pm
+ $(PERL) -I ../lib pod2html.PL
-pod2man: pod2man.PL ..\lib\Config.pm
- $(PERL) -I..\lib pod2man.PL
- $(PERL) $(PL2BAT) pod2man
+pod2man: pod2man.PL ../lib/Config.pm
+ $(PERL) -I ../lib pod2man.PL
-pod2text: pod2text.PL ..\lib\Config.pm
- $(PERL) -I..\lib pod2text.PL
- $(PERL) $(PL2BAT) pod2text
+pod2text: pod2text.PL ../lib/Config.pm
+ $(PERL) -I ../lib pod2text.PL
-checkpods: checkpods.PL ..\lib\Config.pm
- $(PERL) -I..\lib checkpods.PL
- $(PERL) $(PL2BAT) checkpods
+checkpods: checkpods.PL ../lib/Config.pm
+ $(PERL) -I ../lib checkpods.PL
+compile: all
+ $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog;
+
diff --git a/win32/runperl.c b/win32/runperl.c
index 7d49182168..3947f9ef37 100644
--- a/win32/runperl.c
+++ b/win32/runperl.c
@@ -6,988 +6,28 @@
#define NO_XSLOCKS
#include "XSUB.H"
-#include "Win32iop.h"
-
-#define errno (*win32_errno())
-#define stdout (win32_stdout())
-#define stderr (win32_stderr())
-
-CPerlObj *pPerl;
+#include "win32iop.h"
#include <fcntl.h>
-#include <ipdir.h>
-#include <ipenv.h>
-#include <ipsock.h>
-#include <iplio.h>
-#include <ipmem.h>
-#include <ipproc.h>
-#include <ipstdio.h>
-
-#define CALLFUNC0RET(x)\
- int ret = x;\
- if(ret < 0)\
- err = errno;\
- return ret;
-
-extern int g_closedir(DIR *dirp);
-extern DIR *g_opendir(char *filename);
-extern struct direct *g_readdir(DIR *dirp);
-extern void g_rewinddir(DIR *dirp);
-extern void g_seekdir(DIR *dirp, long loc);
-extern long g_telldir(DIR *dirp);
-class CPerlDir : public IPerlDir
-{
-public:
- CPerlDir() {};
- virtual int Makedir(const char *dirname, int mode, int &err)
- {
- CALLFUNC0RET(win32_mkdir(dirname, mode));
- };
- virtual int Chdir(const char *dirname, int &err)
- {
- CALLFUNC0RET(win32_chdir(dirname));
- };
- virtual int Rmdir(const char *dirname, int &err)
- {
- CALLFUNC0RET(win32_rmdir(dirname));
- };
- virtual int Close(DIR *dirp, int &err)
- {
- return g_closedir(dirp);
- };
- virtual DIR *Open(char *filename, int &err)
- {
- return g_opendir(filename);
- };
- virtual struct direct *Read(DIR *dirp, int &err)
- {
- return g_readdir(dirp);
- };
- virtual void Rewind(DIR *dirp, int &err)
- {
- g_rewinddir(dirp);
- };
- virtual void Seek(DIR *dirp, long loc, int &err)
- {
- g_seekdir(dirp, loc);
- };
- virtual long Tell(DIR *dirp, int &err)
- {
- return g_telldir(dirp);
- };
-};
-
-
-extern char * g_win32_get_privlib(char *pl);
-extern char * g_win32_get_sitelib(char *pl);
-class CPerlEnv : public IPerlEnv
-{
-public:
- CPerlEnv() {};
- virtual char *Getenv(const char *varname, int &err)
- {
- return win32_getenv(varname);
- };
- virtual int Putenv(const char *envstring, int &err)
- {
- return putenv(envstring);
- };
- virtual char* LibPath(char *pl)
- {
- return g_win32_get_privlib(pl);
- };
- virtual char* SiteLibPath(char *pl)
- {
- return g_win32_get_sitelib(pl);
- };
-};
-
-#define PROCESS_AND_RETURN \
- if(errno) \
- err = errno; \
- return r
-
-class CPerlSock : public IPerlSock
-{
-public:
- CPerlSock() {};
- virtual u_long Htonl(u_long hostlong)
- {
- return win32_htonl(hostlong);
- };
- virtual u_short Htons(u_short hostshort)
- {
- return win32_htons(hostshort);
- };
- virtual u_long Ntohl(u_long netlong)
- {
- return win32_ntohl(netlong);
- };
- virtual u_short Ntohs(u_short netshort)
- {
- return win32_ntohs(netshort);
- }
-
- virtual SOCKET Accept(SOCKET s, struct sockaddr* addr, int* addrlen, int &err)
- {
- SOCKET r = win32_accept(s, addr, addrlen);
- PROCESS_AND_RETURN;
- };
- virtual int Bind(SOCKET s, const struct sockaddr* name, int namelen, int &err)
- {
- int r = win32_bind(s, name, namelen);
- PROCESS_AND_RETURN;
- };
- virtual int Connect(SOCKET s, const struct sockaddr* name, int namelen, int &err)
- {
- int r = win32_connect(s, name, namelen);
- PROCESS_AND_RETURN;
- };
- virtual void Endhostent(int &err)
- {
- win32_endhostent();
- };
- virtual void Endnetent(int &err)
- {
- win32_endnetent();
- };
- virtual void Endprotoent(int &err)
- {
- win32_endprotoent();
- };
- virtual void Endservent(int &err)
- {
- win32_endservent();
- };
- virtual struct hostent* Gethostbyaddr(const char* addr, int len, int type, int &err)
- {
- struct hostent *r = win32_gethostbyaddr(addr, len, type);
- PROCESS_AND_RETURN;
- };
- virtual struct hostent* Gethostbyname(const char* name, int &err)
- {
- struct hostent *r = win32_gethostbyname(name);
- PROCESS_AND_RETURN;
- };
- virtual struct hostent* Gethostent(int &err)
- {
- croak("gethostent not implemented!\n");
- return NULL;
- };
- virtual int Gethostname(char* name, int namelen, int &err)
- {
- int r = win32_gethostname(name, namelen);
- PROCESS_AND_RETURN;
- };
- virtual struct netent *Getnetbyaddr(long net, int type, int &err)
- {
- struct netent *r = win32_getnetbyaddr(net, type);
- PROCESS_AND_RETURN;
- };
- virtual struct netent *Getnetbyname(const char *name, int &err)
- {
- struct netent *r = win32_getnetbyname((char*)name);
- PROCESS_AND_RETURN;
- };
- virtual struct netent *Getnetent(int &err)
- {
- struct netent *r = win32_getnetent();
- PROCESS_AND_RETURN;
- };
- virtual int Getpeername(SOCKET s, struct sockaddr* name, int* namelen, int &err)
- {
- int r = win32_getpeername(s, name, namelen);
- PROCESS_AND_RETURN;
- };
- virtual struct protoent* Getprotobyname(const char* name, int &err)
- {
- struct protoent *r = win32_getprotobyname(name);
- PROCESS_AND_RETURN;
- };
- virtual struct protoent* Getprotobynumber(int number, int &err)
- {
- struct protoent *r = win32_getprotobynumber(number);
- PROCESS_AND_RETURN;
- };
- virtual struct protoent* Getprotoent(int &err)
- {
- struct protoent *r = win32_getprotoent();
- PROCESS_AND_RETURN;
- };
- virtual struct servent* Getservbyname(const char* name, const char* proto, int &err)
- {
- struct servent *r = win32_getservbyname(name, proto);
- PROCESS_AND_RETURN;
- };
- virtual struct servent* Getservbyport(int port, const char* proto, int &err)
- {
- struct servent *r = win32_getservbyport(port, proto);
- PROCESS_AND_RETURN;
- };
- virtual struct servent* Getservent(int &err)
- {
- struct servent *r = win32_getservent();
- PROCESS_AND_RETURN;
- };
- virtual int Getsockname(SOCKET s, struct sockaddr* name, int* namelen, int &err)
- {
- int r = win32_getsockname(s, name, namelen);
- PROCESS_AND_RETURN;
- };
- virtual int Getsockopt(SOCKET s, int level, int optname, char* optval, int* optlen, int &err)
- {
- int r = win32_getsockopt(s, level, optname, optval, optlen);
- PROCESS_AND_RETURN;
- };
- virtual unsigned long InetAddr(const char* cp, int &err)
- {
- unsigned long r = win32_inet_addr(cp);
- PROCESS_AND_RETURN;
- };
- virtual char* InetNtoa(struct in_addr in, int &err)
- {
- char *r = win32_inet_ntoa(in);
- PROCESS_AND_RETURN;
- };
- virtual int Listen(SOCKET s, int backlog, int &err)
- {
- int r = win32_listen(s, backlog);
- PROCESS_AND_RETURN;
- };
- virtual int Recv(SOCKET s, char* buffer, int len, int flags, int &err)
- {
- int r = win32_recv(s, buffer, len, flags);
- PROCESS_AND_RETURN;
- };
- virtual int Recvfrom(SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen, int &err)
- {
- int r = win32_recvfrom(s, buffer, len, flags, from, fromlen);
- PROCESS_AND_RETURN;
- };
- virtual int Select(int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout, int &err)
- {
- int r = win32_select(nfds, (Perl_fd_set*)readfds, (Perl_fd_set*)writefds, (Perl_fd_set*)exceptfds, timeout);
- PROCESS_AND_RETURN;
- };
- virtual int Send(SOCKET s, const char* buffer, int len, int flags, int &err)
- {
- int r = win32_send(s, buffer, len, flags);
- PROCESS_AND_RETURN;
- };
- virtual int Sendto(SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen, int &err)
- {
- int r = win32_sendto(s, buffer, len, flags, to, tolen);
- PROCESS_AND_RETURN;
- };
- virtual void Sethostent(int stayopen, int &err)
- {
- win32_sethostent(stayopen);
- };
- virtual void Setnetent(int stayopen, int &err)
- {
- win32_setnetent(stayopen);
- };
- virtual void Setprotoent(int stayopen, int &err)
- {
- win32_setprotoent(stayopen);
- };
- virtual void Setservent(int stayopen, int &err)
- {
- win32_setservent(stayopen);
- };
- virtual int Setsockopt(SOCKET s, int level, int optname, const char* optval, int optlen, int &err)
- {
- int r = win32_setsockopt(s, level, optname, optval, optlen);
- PROCESS_AND_RETURN;
- };
- virtual int Shutdown(SOCKET s, int how, int &err)
- {
- int r = win32_shutdown(s, how);
- PROCESS_AND_RETURN;
- };
- virtual SOCKET Socket(int af, int type, int protocol, int &err)
- {
- SOCKET r = win32_socket(af, type, protocol);
- PROCESS_AND_RETURN;
- };
- virtual int Socketpair(int domain, int type, int protocol, int* fds, int &err)
- {
- croak("socketpair not implemented!\n");
- return 0;
- };
- virtual int Closesocket(SOCKET s, int& err)
- {
- int r = win32_closesocket(s);
- PROCESS_AND_RETURN;
- };
- virtual int Ioctlsocket(SOCKET s, long cmd, u_long *argp, int& err)
- {
- int r = win32_ioctlsocket(s, cmd, argp);
- PROCESS_AND_RETURN;
- };
-};
-
+#include "perlhost.h"
-#define CALLFUNCRET(x)\
- int ret = x;\
- if(ret)\
- err = errno;\
- return ret;
-#define CALLFUNCERR(x)\
- int ret = x;\
- if(errno)\
- err = errno;\
- return ret;
-
-#define LCALLFUNCERR(x)\
- long ret = x;\
- if(errno)\
- err = errno;\
- return ret;
-
-class CPerlLIO : public IPerlLIO
-{
-public:
- CPerlLIO() {};
- virtual int Access(const char *path, int mode, int &err)
- {
- CALLFUNCRET(access(path, mode))
- };
- virtual int Chmod(const char *filename, int pmode, int &err)
- {
- CALLFUNCRET(chmod(filename, pmode))
- };
- virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err)
- {
- CALLFUNCERR(chown(filename, owner, group))
- };
- virtual int Chsize(int handle, long size, int &err)
- {
- CALLFUNCRET(chsize(handle, size))
- };
- virtual int Close(int handle, int &err)
- {
- CALLFUNCRET(win32_close(handle))
- };
- virtual int Dup(int handle, int &err)
- {
- CALLFUNCERR(win32_dup(handle))
- };
- virtual int Dup2(int handle1, int handle2, int &err)
- {
- CALLFUNCERR(win32_dup2(handle1, handle2))
- };
- virtual int Flock(int fd, int oper, int &err)
- {
- CALLFUNCERR(win32_flock(fd, oper))
- };
- virtual int FileStat(int handle, struct stat *buffer, int &err)
- {
- CALLFUNCERR(fstat(handle, buffer))
- };
- virtual int IOCtl(int i, unsigned int u, char *data, int &err)
- {
- CALLFUNCERR(win32_ioctlsocket((SOCKET)i, (long)u, (u_long*)data))
- };
- virtual int Isatty(int fd, int &err)
- {
- return isatty(fd);
- };
- virtual long Lseek(int handle, long offset, int origin, int &err)
- {
- LCALLFUNCERR(win32_lseek(handle, offset, origin))
- };
- virtual int Lstat(const char *path, struct stat *buffer, int &err)
- {
- return NameStat(path, buffer, err);
- };
- virtual char *Mktemp(char *Template, int &err)
- {
- return mktemp(Template);
- };
- virtual int Open(const char *filename, int oflag, int &err)
- {
- CALLFUNCERR(win32_open(filename, oflag))
- };
- virtual int Open(const char *filename, int oflag, int pmode, int &err)
- {
- int ret;
- if(stricmp(filename, "/dev/null") == 0)
- ret = open("NUL", oflag, pmode);
- else
- ret = open(filename, oflag, pmode);
-
- if(errno)
- err = errno;
- return ret;
- };
- virtual int Read(int handle, void *buffer, unsigned int count, int &err)
- {
- CALLFUNCERR(win32_read(handle, buffer, count))
- };
- virtual int Rename(const char *OldFileName, const char *newname, int &err)
- {
- char szNewWorkName[MAX_PATH+1];
- WIN32_FIND_DATA fdOldFile, fdNewFile;
- HANDLE handle;
- char *ptr;
-
- if((strchr(OldFileName, '\\') || strchr(OldFileName, '/'))
- && strchr(newname, '\\') == NULL
- && strchr(newname, '/') == NULL)
- {
- strcpy(szNewWorkName, OldFileName);
- if((ptr = strrchr(szNewWorkName, '\\')) == NULL)
- ptr = strrchr(szNewWorkName, '/');
- strcpy(++ptr, newname);
- }
- else
- strcpy(szNewWorkName, newname);
-
- if(stricmp(OldFileName, szNewWorkName) != 0)
- { // check that we're not being fooled by relative paths
- // and only delete the new file
- // 1) if it exists
- // 2) it is not the same file as the old file
- // 3) old file exist
- // GetFullPathName does not return the long file name on some systems
- handle = FindFirstFile(OldFileName, &fdOldFile);
- if(handle != INVALID_HANDLE_VALUE)
- {
- FindClose(handle);
-
- handle = FindFirstFile(szNewWorkName, &fdNewFile);
-
- if(handle != INVALID_HANDLE_VALUE)
- FindClose(handle);
- else
- fdNewFile.cFileName[0] = '\0';
-
- if(strcmp(fdOldFile.cAlternateFileName, fdNewFile.cAlternateFileName) != 0
- && strcmp(fdOldFile.cFileName, fdNewFile.cFileName) != 0)
- { // file exists and not same file
- DeleteFile(szNewWorkName);
- }
- }
- }
- int ret = rename(OldFileName, szNewWorkName);
- if(ret)
- err = errno;
-
- return ret;
- };
- virtual int Setmode(int handle, int mode, int &err)
- {
- CALLFUNCRET(win32_setmode(handle, mode))
- };
- virtual int NameStat(const char *path, struct stat *buffer, int &err)
- {
- return win32_stat(path, buffer);
- };
- virtual char *Tmpnam(char *string, int &err)
- {
- return tmpnam(string);
- };
- virtual int Umask(int pmode, int &err)
- {
- return umask(pmode);
- };
- virtual int Unlink(const char *filename, int &err)
- {
- chmod(filename, S_IREAD | S_IWRITE);
- CALLFUNCRET(unlink(filename))
- };
- virtual int Utime(char *filename, struct utimbuf *times, int &err)
- {
- CALLFUNCRET(win32_utime(filename, times))
- };
- virtual int Write(int handle, const void *buffer, unsigned int count, int &err)
- {
- CALLFUNCERR(win32_write(handle, buffer, count))
- };
-};
-
-class CPerlMem : public IPerlMem
-{
-public:
- CPerlMem() {};
- virtual void* Malloc(size_t size)
- {
- return win32_malloc(size);
- };
- virtual void* Realloc(void* ptr, size_t size)
- {
- return win32_realloc(ptr, size);
- };
- virtual void Free(void* ptr)
- {
- win32_free(ptr);
- };
-};
-
-#define EXECF_EXEC 1
-#define EXECF_SPAWN 2
-
-extern char *g_getlogin(void);
-extern int do_spawn2(char *cmd, int exectype);
-extern int g_do_aspawn(void *vreally, void **vmark, void **vsp);
-class CPerlProc : public IPerlProc
-{
-public:
- CPerlProc() {};
- virtual void Abort(void)
- {
- win32_abort();
- };
- virtual void Exit(int status)
- {
- exit(status);
- };
- virtual void _Exit(int status)
- {
- _exit(status);
- };
- virtual int Execl(const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3)
- {
- return execl(cmdname, arg0, arg1, arg2, arg3);
- };
- virtual int Execv(const char *cmdname, const char *const *argv)
- {
- return win32_execvp(cmdname, argv);
- };
- virtual int Execvp(const char *cmdname, const char *const *argv)
- {
- return win32_execvp(cmdname, argv);
- };
- virtual uid_t Getuid(void)
- {
- return getuid();
- };
- virtual uid_t Geteuid(void)
- {
- return geteuid();
- };
- virtual gid_t Getgid(void)
- {
- return getgid();
- };
- virtual gid_t Getegid(void)
- {
- return getegid();
- };
- virtual char *Getlogin(void)
- {
- return g_getlogin();
- };
- virtual int Kill(int pid, int sig)
- {
- return win32_kill(pid, sig);
- };
- virtual int Killpg(int pid, int sig)
- {
- croak("killpg not implemented!\n");
- return 0;
- };
- virtual int PauseProc(void)
- {
- return win32_sleep((32767L << 16) + 32767);
- };
- virtual PerlIO* Popen(const char *command, const char *mode)
- {
- win32_fflush(stdout);
- win32_fflush(stderr);
- return (PerlIO*)win32_popen(command, mode);
- };
- virtual int Pclose(PerlIO *stream)
- {
- return win32_pclose((FILE*)stream);
- };
- virtual int Pipe(int *phandles)
- {
- return win32_pipe(phandles, 512, O_BINARY);
- };
- virtual int Setuid(uid_t u)
- {
- return setuid(u);
- };
- virtual int Setgid(gid_t g)
- {
- return setgid(g);
- };
- virtual int Sleep(unsigned int s)
- {
- return win32_sleep(s);
- };
- virtual int Times(struct tms *timebuf)
- {
- return win32_times(timebuf);
- };
- virtual int Wait(int *status)
- {
- return win32_wait(status);
- };
- virtual int Waitpid(int pid, int *status, int flags)
- {
- return win32_waitpid(pid, status, flags);
- };
- virtual Sighandler_t Signal(int sig, Sighandler_t subcode)
- {
- return 0;
- };
- virtual void GetSysMsg(char*& sMsg, DWORD& dwLen, DWORD dwErr)
- {
- dwLen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
- |FORMAT_MESSAGE_IGNORE_INSERTS
- |FORMAT_MESSAGE_FROM_SYSTEM, NULL,
- dwErr, 0, (char *)&sMsg, 1, NULL);
- if (0 < dwLen) {
- while (0 < dwLen && isspace(sMsg[--dwLen]))
- ;
- if ('.' != sMsg[dwLen])
- dwLen++;
- sMsg[dwLen]= '\0';
- }
- if (0 == dwLen) {
- sMsg = (char*)LocalAlloc(0, 64/**sizeof(TCHAR)*/);
- dwLen = sprintf(sMsg,
- "Unknown error #0x%lX (lookup 0x%lX)",
- dwErr, GetLastError());
- }
- };
- virtual void FreeBuf(char* sMsg)
- {
- LocalFree(sMsg);
- };
- virtual BOOL DoCmd(char *cmd)
- {
- do_spawn2(cmd, EXECF_EXEC);
- return FALSE;
- };
- virtual int Spawn(char* cmds)
- {
- return do_spawn2(cmds, EXECF_SPAWN);
- };
- virtual int Spawnvp(int mode, const char *cmdname, const char *const *argv)
- {
- return win32_spawnvp(mode, cmdname, argv);
- };
- virtual int ASpawn(void *vreally, void **vmark, void **vsp)
- {
- return g_do_aspawn(vreally, vmark, vsp);
- };
-};
-
-
-class CPerlStdIO : public IPerlStdIO
-{
-public:
- CPerlStdIO() {};
- virtual PerlIO* Stdin(void)
- {
- return (PerlIO*)win32_stdin();
- };
- virtual PerlIO* Stdout(void)
- {
- return (PerlIO*)win32_stdout();
- };
- virtual PerlIO* Stderr(void)
- {
- return (PerlIO*)win32_stderr();
- };
- virtual PerlIO* Open(const char *path, const char *mode, int &err)
- {
- PerlIO*pf = (PerlIO*)win32_fopen(path, mode);
- if(errno)
- err = errno;
- return pf;
- };
- virtual int Close(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_fclose(((FILE*)pf)))
- };
- virtual int Eof(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_feof((FILE*)pf))
- };
- virtual int Error(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_ferror((FILE*)pf))
- };
- virtual void Clearerr(PerlIO* pf, int &err)
- {
- win32_clearerr((FILE*)pf);
- };
- virtual int Getc(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_getc((FILE*)pf))
- };
- virtual char* GetBase(PerlIO* pf, int &err)
- {
- FILE *f = (FILE*)pf;
- return FILE_base(f);
- };
- virtual int GetBufsiz(PerlIO* pf, int &err)
- {
- FILE *f = (FILE*)pf;
- return FILE_bufsiz(f);
- };
- virtual int GetCnt(PerlIO* pf, int &err)
- {
- FILE *f = (FILE*)pf;
- return FILE_cnt(f);
- };
- virtual char* GetPtr(PerlIO* pf, int &err)
- {
- FILE *f = (FILE*)pf;
- return FILE_ptr(f);
- };
- virtual char* Gets(PerlIO* pf, char* s, int n, int& err)
- {
- char* ret = win32_fgets(s, n, (FILE*)pf);
- if(errno)
- err = errno;
- return ret;
- };
- virtual int Putc(PerlIO* pf, int c, int &err)
- {
- CALLFUNCERR(win32_fputc(c, (FILE*)pf))
- };
- virtual int Puts(PerlIO* pf, const char *s, int &err)
- {
- CALLFUNCERR(win32_fputs(s, (FILE*)pf))
- };
- virtual int Flush(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_fflush((FILE*)pf))
- };
- virtual int Ungetc(PerlIO* pf,int c, int &err)
- {
- CALLFUNCERR(win32_ungetc(c, (FILE*)pf))
- };
- virtual int Fileno(PerlIO* pf, int &err)
- {
- CALLFUNCERR(win32_fileno((FILE*)pf))
- };
- virtual PerlIO* Fdopen(int fd, const char *mode, int &err)
- {
- PerlIO* pf = (PerlIO*)win32_fdopen(fd, mode);
- if(errno)
- err = errno;
- return pf;
- };
- virtual PerlIO* Reopen(const char*path, const char*mode, PerlIO* pf, int &err)
- {
- PerlIO* newPf = (PerlIO*)win32_freopen(path, mode, (FILE*)pf);
- if(errno)
- err = errno;
- return newPf;
- };
- virtual SSize_t Read(PerlIO* pf, void *buffer, Size_t size, int &err)
- {
- SSize_t i = win32_fread(buffer, 1, size, (FILE*)pf);
- if(errno)
- err = errno;
- return i;
- };
- virtual SSize_t Write(PerlIO* pf, const void *buffer, Size_t size, int &err)
- {
- SSize_t i = win32_fwrite(buffer, 1, size, (FILE*)pf);
- if(errno)
- err = errno;
- return i;
- };
- virtual void SetBuf(PerlIO* pf, char* buffer, int &err)
- {
- win32_setbuf((FILE*)pf, buffer);
- };
- virtual int SetVBuf(PerlIO* pf, char* buffer, int type, Size_t size, int &err)
- {
- int i = win32_setvbuf((FILE*)pf, buffer, type, size);
- if(errno)
- err = errno;
- return i;
- };
- virtual void SetCnt(PerlIO* pf, int n, int &err)
- {
- FILE *f = (FILE*)pf;
- FILE_cnt(f) = n;
- };
- virtual void SetPtrCnt(PerlIO* pf, char * ptr, int n, int& err)
- {
- FILE *f = (FILE*)pf;
- FILE_ptr(f) = ptr;
- FILE_cnt(f) = n;
- };
- virtual void Setlinebuf(PerlIO* pf, int &err)
- {
- win32_setvbuf((FILE*)pf, NULL, _IOLBF, 0);
- };
- virtual int Printf(PerlIO* pf, int &err, const char *format,...)
- {
- va_list(arglist);
- va_start(arglist, format);
- int i = win32_vfprintf((FILE*)pf, format, arglist);
- if(errno)
- err = errno;
- return i;
- };
- virtual int Vprintf(PerlIO* pf, int &err, const char *format, va_list arglist)
- {
- int i = win32_vfprintf((FILE*)pf, format, arglist);
- if(errno)
- err = errno;
- return i;
- };
- virtual long Tell(PerlIO* pf, int &err)
- {
- long l = win32_ftell((FILE*)pf);
- if(errno)
- err = errno;
- return l;
- };
- virtual int Seek(PerlIO* pf, off_t offset, int origin, int &err)
- {
- int i = win32_fseek((FILE*)pf, offset, origin);
- if(errno)
- err = errno;
- return i;
- };
- virtual void Rewind(PerlIO* pf, int &err)
- {
- win32_rewind((FILE*)pf);
- };
- virtual PerlIO* Tmpfile(int &err)
- {
- PerlIO* pf = (PerlIO*)win32_tmpfile();
- if(errno)
- err = errno;
- return pf;
- };
- virtual int Getpos(PerlIO* pf, Fpos_t *p, int &err)
- {
- int i = win32_fgetpos((FILE*)pf, p);
- if(errno)
- err = errno;
- return i;
- };
- virtual int Setpos(PerlIO* pf, const Fpos_t *p, int &err)
- {
- int i = win32_fsetpos((FILE*)pf, p);
- if(errno)
- err = errno;
- return i;
- };
- virtual void Init(int &err)
- {
- };
- virtual void InitOSExtras(void* p)
- {
- Perl_init_os_extras();
- };
- virtual int OpenOSfhandle(long osfhandle, int flags)
- {
- return win32_open_osfhandle(osfhandle, flags);
- }
- virtual int GetOSfhandle(int filenum)
- {
- return win32_get_osfhandle(filenum);
- }
+char *staticlinkmodules[] = {
+ "DynaLoader",
+ NULL,
};
+EXTERN_C void boot_DynaLoader _((CV* cv _CPERLarg));
-static void xs_init _((CPERLarg));
-
-class CPerlHost
+static void
+xs_init(CPERLarg)
{
-public:
- CPerlHost() { pPerl = NULL; };
- inline BOOL PerlCreate(void)
- {
- try
- {
- pPerl = perl_alloc(&perlMem, &perlEnv, &perlStdIO, &perlLIO, &perlDir, &perlSock, &perlProc);
- if(pPerl != NULL)
- {
- try
- {
- pPerl->perl_construct();
- }
- catch(...)
- {
- win32_fprintf(stderr, "%s\n", "Error: Unable to construct data structures");
- pPerl->perl_free();
- pPerl = NULL;
- }
- }
- }
- catch(...)
- {
- win32_fprintf(stderr, "%s\n", "Error: Unable to allocate memory");
- pPerl = NULL;
- }
- return (pPerl != NULL);
- };
- inline int PerlParse(int argc, char** argv, char** env)
- {
- int retVal;
- try
- {
- retVal = pPerl->perl_parse(xs_init, argc, argv, env);
- }
- catch(int x)
- {
- // this is where exit() should arrive
- retVal = x;
- }
- catch(...)
- {
- win32_fprintf(stderr, "Error: Parse exception\n");
- retVal = -1;
- }
- *win32_errno() = 0;
- return retVal;
- };
- inline int PerlRun(void)
- {
- int retVal;
- try
- {
- retVal = pPerl->perl_run();
- }
- catch(int x)
- {
- // this is where exit() should arrive
- retVal = x;
- }
- catch(...)
- {
- win32_fprintf(stderr, "Error: Runtime exception\n");
- retVal = -1;
- }
- return retVal;
- };
- inline void PerlDestroy(void)
- {
- try
- {
- pPerl->perl_destruct();
- pPerl->perl_free();
- }
- catch(...)
- {
- }
- };
+ char *file = __FILE__;
+ dXSUB_SYS;
+ newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
+}
-protected:
- CPerlDir perlDir;
- CPerlEnv perlEnv;
- CPerlLIO perlLIO;
- CPerlMem perlMem;
- CPerlProc perlProc;
- CPerlSock perlSock;
- CPerlStdIO perlStdIO;
-};
+CPerlObj *pPerl;
#undef PERL_SYS_INIT
#define PERL_SYS_INIT(a, c)
@@ -1001,34 +41,16 @@ main(int argc, char **argv, char **env)
if(!host.PerlCreate())
exit(exitstatus);
-
- exitstatus = host.PerlParse(argc, argv, NULL);
+ exitstatus = host.PerlParse(xs_init, argc, argv, NULL);
if (!exitstatus)
- {
exitstatus = host.PerlRun();
- }
host.PerlDestroy();
return exitstatus;
}
-char *staticlinkmodules[] = {
- "DynaLoader",
- NULL,
-};
-
-EXTERN_C void boot_DynaLoader _((CV* cv _CPERLarg));
-
-static void
-xs_init(CPERLarg)
-{
- char *file = __FILE__;
- dXSUB_SYS;
- newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
-}
-
#else /* PERL_OBJECT */
#ifdef __GNUC__
diff --git a/win32/win32.c b/win32/win32.c
index 9afb0bd687..68b6bb8962 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -202,7 +202,9 @@ get_emd_part(char *prev_path, char *trailing_path, ...)
va_start(ap, trailing_path);
strip = va_arg(ap, char *);
- GetModuleFileName(GetModuleHandle(NULL), mod_name, sizeof(mod_name));
+ GetModuleFileName((w32_perldll_handle == INVALID_HANDLE_VALUE)
+ ? GetModuleHandle(NULL)
+ : w32_perldll_handle, mod_name, sizeof(mod_name));
ptr = strrchr(mod_name, '\\');
while (ptr && strip) {
/* look for directories to skip back */
diff --git a/win32/win32.h b/win32/win32.h
index eaced2821e..e1cf335435 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -152,6 +152,55 @@ typedef long uid_t;
typedef long gid_t;
#pragma warning(disable: 4018 4035 4101 4102 4244 4245 4761)
+#ifndef PERL_OBJECT
+
+/* Visual C thinks that a pointer to a member variable is 16 bytes in size. */
+#define STRUCT_MGVTBL_DEFINITION \
+struct mgvtbl { \
+ union { \
+ int (CPERLscope(*svt_get)) _((SV *sv, MAGIC* mg)); \
+ char handle_VC_problem1[16]; \
+ }; \
+ union { \
+ int (CPERLscope(*svt_set)) _((SV *sv, MAGIC* mg)); \
+ char handle_VC_problem2[16]; \
+ }; \
+ union { \
+ U32 (CPERLscope(*svt_len)) _((SV *sv, MAGIC* mg)); \
+ char handle_VC_problem3[16]; \
+ }; \
+ union { \
+ int (CPERLscope(*svt_clear)) _((SV *sv, MAGIC* mg)); \
+ char handle_VC_problem4[16]; \
+ }; \
+ union { \
+ int (CPERLscope(*svt_free)) _((SV *sv, MAGIC* mg)); \
+ char handle_VC_problem5[16]; \
+ }; \
+}
+
+#define BASEOP_DEFINITION \
+ OP* op_next; \
+ OP* op_sibling; \
+ OP* (CPERLscope(*op_ppaddr))_((ARGSproto)); \
+ char handle_VC_problem[12]; \
+ PADOFFSET op_targ; \
+ OPCODE op_type; \
+ U16 op_seq; \
+ U8 op_flags; \
+ U8 op_private;
+
+#define UNION_ANY_DEFINITION union any { \
+ void* any_ptr; \
+ I32 any_i32; \
+ IV any_iv; \
+ long any_long; \
+ void (CPERLscope(*any_dptr)) _((void*)); \
+ char handle_VC_problem[16]; \
+}
+
+#endif /* PERL_OBJECT */
+
#endif /* _MSC_VER */
#ifdef __MINGW32__ /* Minimal Gnu-Win32 */