This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate mainline
authorNick Ing-Simmons <nik@tiuk.ti.com>
Fri, 29 Jun 2001 10:20:30 +0000 (10:20 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Fri, 29 Jun 2001 10:20:30 +0000 (10:20 +0000)
p4raw-id: //depot/perlio@11017

244 files changed:
AUTHORS
Changes
Configure
MANIFEST
Makefile.SH
NetWare/Makefile
NetWare/config.wc
NetWare/config_H.wc
NetWare/nw5.c
NetWare/nw5sck.c
NetWare/nw5sck.h
NetWare/nwperlsys.c
NetWare/nwperlsys.h
NetWare/nwtinfo.h
Porting/Glossary
Porting/config.sh
Porting/config_H
Porting/repository.pod
README.netware
README.qnx
XSUB.h
config_h.SH
configure.com
cv.h
djgpp/djgpp.c
doio.c
emacs/cperl-mode.el
embed.pl
epoc/config.sh
ext/B/B/Assembler.pm
ext/B/Stash.t
ext/Cwd/Cwd.xs
ext/Devel/Peek/Peek.xs
ext/Digest/MD5/Makefile.PL
ext/Encode/Encode/Tcl.pm
ext/Encode/Encode/Tcl.t [new file with mode: 0644]
ext/Errno/Errno_pm.PL
ext/GDBM_File/gdbm.t
ext/IO/lib/IO/Dir.pm
ext/IO/lib/IO/Handle.pm
ext/IO/lib/IO/Seekable.pm
ext/IO/lib/IO/Select.pm
ext/IO/lib/IO/Socket/INET.pm
ext/IO/lib/IO/Socket/UNIX.pm
ext/IPC/SysV/Msg.pm
ext/IPC/SysV/Semaphore.pm
ext/IPC/SysV/SysV.pm
ext/IPC/SysV/SysV.xs
ext/List/Util/Makefile.PL
ext/List/Util/lib/Scalar/Util.pm
ext/NDBM_File/hints/linux.pl [new file with mode: 0644]
ext/Opcode/Opcode.pm
ext/Opcode/Safe.pm
ext/POSIX/POSIX.t
ext/POSIX/sigaction.t
ext/PerlIO/PerlIO.t
ext/SDBM_File/sdbm.t [moved from ext/ODBM_File/sdbm.t with 99% similarity, mode: 0644]
ext/Storable/t/lock.t
ext/Thread/Thread.pm
ext/Time/HiRes/HiRes.t
ext/Time/HiRes/HiRes.xs
ext/Time/HiRes/hints/sco.pl [new file with mode: 0644]
ext/attrs/attrs.pm
ext/re/re.pm
gv.c
handy.h
hints/aix.sh
hints/darwin.sh
hints/freebsd.sh
hints/hpux.sh
hints/next_3.sh
hints/os2.sh
hints/os390.sh
hints/posix-bc.sh
hints/qnx.sh
hints/sco.sh
hints/uts.sh
jpl/JNI/JNI.pm
jpl/JNI/JNI.xs
jpl/JNI/Makefile.PL
lib/AnyDBM_File.t
lib/Attribute/Handlers.pm
lib/Attribute/Handlers/Changes [new file with mode: 0644]
lib/Attribute/Handlers/README [new file with mode: 0644]
lib/AutoSplit.pm
lib/Benchmark.pm
lib/CGI/Pretty.pm
lib/CPAN.pm
lib/CPAN/Nox.pm
lib/Carp.pm
lib/Carp/Heavy.pm
lib/Exporter.pm
lib/ExtUtils.t
lib/ExtUtils/Command.pm
lib/ExtUtils/Embed.pm
lib/ExtUtils/MM_NW5.pm
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MM_VMS.pm
lib/ExtUtils/MM_Win32.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/Packlist.pm
lib/File/Compare.pm
lib/File/Find/find.t
lib/File/Find/taint.t
lib/File/Spec/Unix.pm
lib/File/stat.t
lib/FileHandle.pm
lib/Math/Complex.pm
lib/Math/Trig.pm
lib/Memoize.pm
lib/Memoize/AnyDBM_File.pm
lib/Memoize/Expire.pm
lib/Memoize/ExpireFile.pm
lib/Memoize/ExpireTest.pm
lib/Memoize/NDBM_File.pm
lib/Memoize/README
lib/Memoize/SDBM_File.pm
lib/Memoize/Saves.pm
lib/Memoize/Storable.pm
lib/Memoize/TODO
lib/Memoize/t/array_confusion.t [new file with mode: 0644]
lib/Memoize/t/errors.t
lib/Memoize/t/expire.t
lib/Memoize/t/expire_file.t
lib/Memoize/t/expire_module_n.t
lib/Memoize/t/expire_module_t.t
lib/Memoize/t/speed.t
lib/Memoize/t/tie.t
lib/Memoize/t/tie_gdbm.t
lib/Memoize/t/tie_ndbm.t
lib/Memoize/t/tie_sdbm.t
lib/Memoize/t/tie_storable.t
lib/Net/Config.pm
lib/Net/Domain.pm
lib/Net/DummyInetd.pm
lib/Pod/Html.pm
lib/Pod/Man.pm
lib/Symbol.pm
lib/Test.pm
lib/Test/Harness.pm
lib/Test/More.pm [new file with mode: 0644]
lib/Test/More/Changes [new file with mode: 0644]
lib/Test/More/t/More.t [new file with mode: 0644]
lib/Test/More/t/fail-like.t [new file with mode: 0644]
lib/Test/More/t/fail.t [new file with mode: 0644]
lib/Test/More/t/plan_is_noplan.t [new file with mode: 0644]
lib/Test/More/t/skipall.t [new file with mode: 0644]
lib/Test/Simple.pm [new file with mode: 0644]
lib/Test/Simple/Changes [new file with mode: 0644]
lib/Test/Simple/t/exit.t [new file with mode: 0644]
lib/Test/Simple/t/extra.t [new file with mode: 0644]
lib/Test/Simple/t/fail.t [new file with mode: 0644]
lib/Test/Simple/t/missing.t [new file with mode: 0644]
lib/Test/Simple/t/no_plan.t [new file with mode: 0644]
lib/Test/Simple/t/plan_is_noplan.t [new file with mode: 0644]
lib/Test/Simple/t/simple.t [new file with mode: 0644]
lib/Text/ParseWords.pm
lib/Text/Soundex.pm
lib/Tie/Array.pm
lib/User/pwent.t
lib/attributes.pm
lib/autouse.pm
lib/base.pm
lib/constant.pm
lib/fields.pm
lib/h2xs.t
lib/strict.pm
makedef.pl
mg.c
mpeix/mpeixish.h
numeric.c
op.c
opcode.h
opcode.pl
os2/Makefile.SHs
os2/OS2/PrfDB/PrfDB.xs
os2/OS2/Process/Process.pm
os2/OS2/Process/Process.xs
os2/OS2/REXX/DLL/DLL.pm
os2/OS2/REXX/REXX.xs
os2/dl_os2.c
os2/dlfcn.h
os2/os2.c
os2/os2_base.t [new file with mode: 0644]
os2/os2ish.h
patchlevel.h
perl.c
perl.h
pod/perl572delta.pod
pod/perlapi.pod
pod/perldata.pod
pod/perlfaq3.pod
pod/perlfaq5.pod
pod/perlfunc.pod
pod/perlmodlib.pod
pod/perlre.pod
pod/perltoc.pod
pod/perltodo.pod
pod/perlxs.pod
pp_ctl.c
pp_sys.c
proto.h
regcomp.c
sv.c
sv.h
t/io/fs.t
t/io/utf8.t
t/lib/Test/More/Catch.pm [new file with mode: 0644]
t/lib/Test/Simple/Catch.pm [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/death.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/death_in_eval.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/extras.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/five_fail.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/last_minute_death.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/one_fail.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/require.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/success.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/too_few.plx [new file with mode: 0644]
t/lib/Test/Simple/sample_tests/two_fail.plx [new file with mode: 0644]
t/lib/warnings/pp
t/lib/warnings/pp_pack [new file with mode: 0644]
t/op/grent.t
t/op/pat.t
t/op/pwent.t
t/op/stat.t
t/op/taint.t
t/op/ver.t
toke.c
uconfig.h
uconfig.sh
unixish.h
util.c
utils/perlbug.PL
vms/test.com
vos/config.alpha.def
vos/config.alpha.h
vos/config.ga.def
vos/config.ga.h
win32/config.bc
win32/config.gc
win32/config.vc
win32/perllib.c
win32/win32.c
xsutils.c

diff --git a/AUTHORS b/AUTHORS
index 65efebd..8e0a16e 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -67,7 +67,7 @@ Brian Callaghan                <callagh@itginc.com>
 Brian Clarke                   <clarke@appliedmeta.com>
 Brian Grossman
 Brian Harrison                 <brie@corp.home.net>
-Brian Jepson                   <bjepson@home.com>
+Brian Jepson                   <bjepson@oreilly.com>
 Brian Katzung
 Brian McCauley                 <nobull@mail.com>
 Brian Reichert                 <reichert@internet.com>
@@ -495,7 +495,7 @@ Richard A. Wells               <Rwells@uhs.harvard.edu>
 Richard Foley                  <Richard.Foley@m.dasa.de>
 Richard L. England             <richard_england@mentorg.com>
 Richard L. Maus, Jr.           <rmaus@monmouth.com>
-Richard Soderberg              <rs@crystalflame.net>
+Richard Soderberg              <p5-authors@crystalflame.net>
 Richard Yeh                    <rcyeh@cco.caltech.edu>
 Rick Delaney                   <rick@consumercontact.com>
 Rick Pluta
@@ -517,6 +517,7 @@ Russ Allbery                   <rra@stanford.edu>
 Russell Fulton                 <russell@ccu1.auckland.ac.nz>
 Russell Mosemann
 Ryan Herbert                   <rherbert@sycamorehq.com>
+SADAHIRO Tomoyuki              <BQW10602@nifty.com>
 SAKAI Kiyotaka                 <ksakai@netwk.ntt-at.co.jp>
 Samuli Kärkkäinen              <skarkkai@woods.iki.fi>
 Scott Bronson                  <bronson@rinspin.com>
@@ -553,10 +554,11 @@ Steven N. Hirsch               <hirschs@stargate.btv.ibm.com>
 Steven Parkes                  <parkes@sierravista.com>
 Sven Verdoolaege               <skimo@breughel.ufsia.ac.be>
 SynaptiCAD, Inc.               <sales@syncad.com>
+Takis Psarogiannakopoulos      <takis@xfree86.org>
 Taro KAWAGISHI
 Ted Ashton                     <ashted@southern.edu>
 Ted Law                        <tedlaw@cibcwg.com>
-Tels                           <perl_dummy@bloodgate.com>
+Tels                           
 Teun Burgers                   <burgers@ecn.nl>
 Thad Floryan                   <thad@thadlabs.com>
 Thomas Bowditch                <bowditch@inmet.com>
@@ -583,6 +585,7 @@ Tom Horsley                    <Tom.Horsley@mail.ccur.com>
 Tom Hughes                     <tom@compton.nu>
 Tom Phoenix                    <rootbeer@teleport.com>
 Tom Spindler                   <dogcow@isi.net>
+Tony Bowden                    <tony@kasei.com>
 Tony Camas
 Tony Cook                      <tony@develop-help.com>
 Tony Sanders                   <sanders@bsdi.com>
diff --git a/Changes b/Changes
index 8872fc2..186fbf3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -31,6 +31,1221 @@ or any other branch.
 Version v5.7.1         Development release working toward v5.8
 --------------
 ____________________________________________________________________________
+[ 11005] By: jhi                                   on 2001/06/28  14:40:11
+        Log: More Perforce lore.
+     Branch: perl
+          ! Porting/repository.pod
+____________________________________________________________________________
+[ 11004] By: jhi                                   on 2001/06/28  14:12:50
+        Log: Metaconfig unit changes for #11003.
+     Branch: metaconfig/U/perl
+          + d_nl_langinfo.U i_langinfo.U
+____________________________________________________________________________
+[ 11003] By: jhi                                   on 2001/06/28  14:12:27
+        Log: Add Configure probes for nl_langinfo() and <langinfo.h>.
+             Expected not to exist in non-UNIX excepting in VMS, where
+             according to a quick web survey they just might.
+     Branch: perl
+          ! Configure NetWare/config.wc Porting/Glossary Porting/config.sh
+          ! Porting/config_H config_h.SH configure.com epoc/config.sh
+          ! perl.h uconfig.h uconfig.sh vos/config.alpha.def
+          ! vos/config.alpha.h vos/config.ga.def vos/config.ga.h
+          ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[ 11002] By: jhi                                   on 2001/06/28  13:39:11
+        Log: One shouldn't use XBS5_ILP32_OFFBIG_CFLAGS et alia
+             in AIX is one is doing a 64-bit build.
+     Branch: perl
+          ! hints/aix.sh
+____________________________________________________________________________
+[ 11001] By: jhi                                   on 2001/06/28  13:28:37
+        Log: Metaconfig unit changes for #11000.
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U
+____________________________________________________________________________
+[ 11000] By: jhi                                   on 2001/06/28  13:21:16
+        Log: Move use64bitint and use64bitall before uselargefiles.
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[ 10999] By: jhi                                   on 2001/06/28  03:49:07
+        Log: Subject: [ID 20010625.009] open(FILE,"+foo") [PATCH]
+             From: Robert Spier <rspier@pobox.com>
+             Message-ID: <15162.41164.618712.841415@rls.cx>
+             Date: Wed, 27 Jun 2001 23:13:16 -0400
+     Branch: perl
+          ! doio.c
+____________________________________________________________________________
+[ 10998] By: jhi                                   on 2001/06/28  03:42:57
+        Log: Subject: [PATCH: perl@10996] avoid overflow in numeric.c:S_mulexp10() on VAX
+             From: Peter Prymmer <pvhp@forte.com>
+             Date: Wed, 27 Jun 2001 19:25:49 -0700 (PDT)
+             Message-ID: <Pine.OSF.4.10.10106271922120.465082-100000@aspara.forte.com>
+     Branch: perl
+          ! numeric.c
+____________________________________________________________________________
+[ 10997] By: jhi                                   on 2001/06/28  03:42:12
+        Log: Subject: [patch perl@10996] "fix" VAX Digest/MD5, Fcntl, brokennes in SDBM
+             From: Peter Prymmer <pvhp@forte.com>
+             Date: Wed, 27 Jun 2001 17:33:33 -0700 (PDT)
+             Message-ID: <Pine.OSF.4.10.10106271705390.467850-100000@aspara.forte.com>
+     Branch: perl
+          ! configure.com ext/Digest/MD5/Makefile.PL
+____________________________________________________________________________
+[ 10996] By: jhi                                   on 2001/06/27  20:34:11
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
+[ 10995] By: jhi                                   on 2001/06/27  20:06:28
+        Log: Tiny EPOC updates.
+     Branch: perl
+          ! epoc/config.sh
+____________________________________________________________________________
+[ 10994] By: jhi                                   on 2001/06/27  19:55:16
+        Log: The Test::More and Test::Simple tests required help
+             thanks to our schizophrenic test scheme.
+     Branch: perl
+          ! lib/Test/More/t/fail-like.t lib/Test/More/t/fail.t
+          ! lib/Test/More/t/plan_is_noplan.t lib/Test/More/t/skipall.t
+          ! lib/Test/Simple/t/exit.t lib/Test/Simple/t/extra.t
+          ! lib/Test/Simple/t/fail.t lib/Test/Simple/t/missing.t
+          ! lib/Test/Simple/t/no_plan.t lib/Test/Simple/t/plan_is_noplan.t
+____________________________________________________________________________
+[ 10993] By: jhi                                   on 2001/06/27  17:17:30
+        Log: Upgrade to Test::Simple 0.09.
+     Branch: perl
+          + lib/Test/Simple/Changes
+          ! MANIFEST lib/Test/Simple.pm lib/Test/Simple/t/exit.t
+          ! lib/Test/Simple/t/extra.t lib/Test/Simple/t/fail.t
+          ! lib/Test/Simple/t/missing.t lib/Test/Simple/t/no_plan.t
+          ! lib/Test/Simple/t/plan_is_noplan.t
+____________________________________________________________________________
+[ 10992] By: jhi                                   on 2001/06/27  17:11:28
+        Log: Upgrade to Test::More 0.07.
+     Branch: perl
+          + lib/Test/More/Changes
+          ! MANIFEST lib/Test/More.pm lib/Test/More/t/fail-like.t
+          ! lib/Test/More/t/fail.t lib/Test/More/t/plan_is_noplan.t
+          ! lib/Test/More/t/skipall.t
+____________________________________________________________________________
+[ 10991] By: jhi                                   on 2001/06/27  17:04:13
+        Log: Subject: Re: [PATCH] gcc-3.0 warnings on HP-UX
+             From: "H.Merijn Brand" <h.m.brand@hccnet.nl>
+             Date: Wed, 27 Jun 2001 18:40:04 +0200
+             Message-Id: <20010627182601.7261.H.M.BRAND@hccnet.nl>
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[ 10990] By: jhi                                   on 2001/06/27  17:02:55
+        Log: Subject: [PATCH README.qnx hints/qnx.sh]
+             From: Norton Allen <allen@huarp.harvard.edu>
+             Date: Wed, 27 Jun 2001 13:46:03 -0400 (edt)
+             Message-Id: <200106271746.NAA02789@bottesini.harvard.edu>
+     Branch: perl
+          ! README.qnx hints/qnx.sh
+____________________________________________________________________________
+[ 10989] By: jhi                                   on 2001/06/27  14:33:53
+        Log: Subject: [PATCH] two little documentation nits
+             From: Abhijit Menon-Sen <ams@wiw.org>
+             Date: Wed, 27 Jun 2001 20:07:50 +0530
+             Message-ID: <20010627200750.A15756@lustre.lustre.dyn.wiw.org>
+     Branch: perl
+          ! sv.c sv.h
+____________________________________________________________________________
+[ 10988] By: jhi                                   on 2001/06/27  13:33:32
+        Log: Subject: [PATCH File/Spec/Unix.pm ExtUtils/MM_Unix.pm] for QNX
+             From: Norton Allen <allen@huarp.harvard.edu>
+             Date: Wed, 27 Jun 2001 10:33:05 -0400 (edt)
+             Message-Id: <200106271433.KAA04947@bottesini.harvard.edu>
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm lib/File/Spec/Unix.pm
+____________________________________________________________________________
+[ 10987] By: jhi                                   on 2001/06/27  12:14:36
+        Log: Subject: [PATCH vms/test.com] Adding TODO tests (was:  Re: a report on perl@10930 results on a couple of Alphas)
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Wed, 27 Jun 2001 02:34:58 -0400
+             Message-ID: <20010627023458.K23874@blackrider>
+     Branch: perl
+          ! vms/test.com
+____________________________________________________________________________
+[ 10986] By: jhi                                   on 2001/06/27  12:01:49
+        Log: Add perl_clone_host() for Netware.
+     Branch: perl
+          ! NetWare/nw5.c
+____________________________________________________________________________
+[ 10985] By: jhi                                   on 2001/06/27  11:56:53
+        Log: GCC 3.0 hints for HP-UX.
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[ 10984] By: jhi                                   on 2001/06/27  11:55:06
+        Log: In some Linux distributions the libndbm is broken
+             (no null key support), therefore link with libgdbm
+             (if available), since it has a working ndbm emulation,
+             from Jonathan Stowe.
+     Branch: perl
+          + ext/NDBM_File/hints/linux.pl
+          ! MANIFEST
+____________________________________________________________________________
+[ 10983] By: jhi                                   on 2001/06/27  11:48:56
+        Log: Subject: [PATCH perl@10930] find.t hack for VMS
+             From: "Craig A. Berry" <craigberry@mac.com>
+             Date: Tue, 26 Jun 2001 23:40:25 -0500
+             Message-Id: <a05101000b75f10cdc80f@[192.168.56.145]>
+     Branch: perl
+          ! lib/File/Find/find.t
+____________________________________________________________________________
+[ 10982] By: jhi                                   on 2001/06/27  11:47:30
+        Log: AUTHORS updates.
+     Branch: perl
+          ! AUTHORS
+____________________________________________________________________________
+[ 10981] By: jhi                                   on 2001/06/27  11:46:02
+        Log: Metaconfig unit change like #10980.
+     Branch: metaconfig
+          ! U/compline/d_stdstdio.U
+____________________________________________________________________________
+[ 10980] By: jhi                                   on 2001/06/27  11:45:29
+        Log: "lose the it's", from Abhijit Menon-Sen.
+             ("It's" not searched, pods not searched.)
+     Branch: perl
+          ! Porting/Glossary Porting/config_H README.qnx config_h.SH
+          ! emacs/cperl-mode.el ext/IPC/SysV/Semaphore.pm
+          ! ext/List/Util/lib/Scalar/Util.pm hints/next_3.sh hints/qnx.sh
+          ! lib/CPAN/Nox.pm lib/ExtUtils/Embed.pm lib/ExtUtils/MM_NW5.pm
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+          ! lib/ExtUtils/MM_Win32.pm lib/Net/DummyInetd.pm win32/win32.c
+____________________________________________________________________________
+[ 10979] By: jhi                                   on 2001/06/27  11:36:40
+        Log: "lose the looses", from Abhijit Menon-Sen.
+     Branch: perl
+          ! ext/B/B/Assembler.pm gv.c
+____________________________________________________________________________
+[ 10978] By: jhi                                   on 2001/06/27  11:35:38
+        Log: Catch FP exceptions also in z/OS (aka OS/390), from Peter Prymmer.
+     Branch: perl
+          ! hints/os390.sh
+____________________________________________________________________________
+[ 10977] By: jhi                                   on 2001/06/27  11:33:28
+        Log: DEC C 5.3 on the VAX simply doesn't seem to like
+             compiling the MD5 extension, disable it there for now,
+             from Peter Prymmer.
+     Branch: perl
+          ! configure.com
+____________________________________________________________________________
+[ 10976] By: jhi                                   on 2001/06/26  21:35:40
+        Log: Subject: Re: [PATCH perlfaq3.pod] and a question about it.
+             From: Jonathan Stowe <gellyfish@gellyfish.com>
+             Date: Tue, 26 Jun 2001 20:53:40 +0100 (BST)
+             Message-ID: <Pine.LNX.4.33.0106262052060.10849-100000@orpheus.gellyfish.com>
+     Branch: perl
+          ! pod/perlfaq3.pod
+____________________________________________________________________________
+[ 10975] By: jhi                                   on 2001/06/26  21:32:41
+        Log: Subject: [PATCH 5.6.1] perlxs misprints
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 26 Jun 2001 17:20:00 -0400
+             Message-ID: <20010626172000.A26951@math.ohio-state.edu>
+     Branch: perl
+          ! pod/perlxs.pod
+____________________________________________________________________________
+[ 10974] By: jhi                                   on 2001/06/26  21:31:51
+        Log: Subject: [PATCH 5.6.1] xsubpp flags from the command line
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 26 Jun 2001 17:27:07 -0400
+             Message-ID: <20010626172707.A27097@math.ohio-state.edu>
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 10973] By: jhi                                   on 2001/06/26  21:27:05
+        Log: Subject: [PATCH 5.6.1] OPTIMIZE=-g
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 26 Jun 2001 17:23:24 -0400
+             Message-ID: <20010626172324.A27003@math.ohio-state.edu>
+     Branch: perl
+          ! hints/os2.sh lib/ExtUtils/MM_Unix.pm os2/Makefile.SHs
+____________________________________________________________________________
+[ 10972] By: jhi                                   on 2001/06/26  20:27:19
+        Log: Better place for nop IN_LOCALE_NUMERIC, pointed out
+             by Olaf Flebbe.
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[ 10971] By: jhi                                   on 2001/06/26  19:59:41
+        Log: Detypo.
+     Branch: perl
+          ! lib/Memoize/t/tie_sdbm.t
+____________________________________________________________________________
+[ 10970] By: jhi                                   on 2001/06/26  19:10:19
+        Log: perl_clone_host() needs PERL_IMPLICIT_SYS.
+     Branch: perl
+          ! win32/perllib.c
+____________________________________________________________________________
+[ 10969] By: jhi                                   on 2001/06/26  17:21:31
+        Log: Subject: [patch] perl_clone+CvFILE
+             From: Doug MacEachern <dougm@covalent.net>
+             Date: Tue, 26 Jun 2001 09:01:16 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.21.0106260900480.28420-100000@mako.covalent.net>
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[ 10968] By: jhi                                   on 2001/06/26  16:48:32
+        Log: Subject: Re: SDBM on VMS (was Re: a report on perl@10930 results on a couple of Alphas)
+             From: Mark-Jason Dominus <mjd@plover.com>
+             Date: Tue, 26 Jun 2001 12:33:01 -0400
+             Message-ID: <20010626163301.31298.qmail@plover.com>
+     Branch: perl
+          ! lib/Memoize/t/tie.t lib/Memoize/t/tie_sdbm.t
+____________________________________________________________________________
+[ 10967] By: jhi                                   on 2001/06/26  14:21:49
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
+[ 10966] By: jhi                                   on 2001/06/26  14:08:34
+        Log: Also catfile() needs now to explicitly exported.
+     Branch: perl
+          ! lib/Memoize/t/tie.t lib/Memoize/t/tie_sdbm.t
+____________________________________________________________________________
+[ 10965] By: jhi                                   on 2001/06/26  13:57:54
+        Log: Regen toc.
+     Branch: perl
+          ! pod/perltoc.pod
+____________________________________________________________________________
+[ 10964] By: jhi                                   on 2001/06/26  13:56:11
+        Log: Nonexistent pod command.
+     Branch: perl
+          ! pod/perl572delta.pod
+____________________________________________________________________________
+[ 10963] By: jhi                                   on 2001/06/26  13:50:53
+        Log: Be more portable in the quest for tmpdir.
+     Branch: perl
+          ! lib/Memoize/t/tie.t lib/Memoize/t/tie_sdbm.t
+____________________________________________________________________________
+[ 10962] By: jhi                                   on 2001/06/26  13:43:51
+        Log: Be more portable in finding out the home directory,
+             and use File::Spec to do the concat.
+             (Come to think of it, couldn't File::Spec provide
+             for a ->homedir method?)
+     Branch: perl
+          ! lib/Net/Config.pm
+____________________________________________________________________________
+[ 10961] By: jhi                                   on 2001/06/26  13:37:30
+        Log: Doc patch for #10959.
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 10960] By: jhi                                   on 2001/06/26  13:33:07
+        Log: Subject: Re: [DOC PATCH bleadperl] Document $count = () = $string =~ /\d+/g
+             From: "Philip Newton" <pnewton@gmx.de>
+             Date: Tue, 26 Jun 2001 16:26:47 +0200
+             Message-ID: <3B38B7C7.32635.1E8DC14@localhost>
+     Branch: perl
+          ! pod/perldata.pod
+____________________________________________________________________________
+[ 10959] By: jhi                                   on 2001/06/26  13:31:57
+        Log: Subject: [PATH] shared -> unique;
+             From: "Artur Bergman" <artur@contiller.se>
+             Date: Tue, 26 Jun 2001 16:18:40 +0200
+             Message-ID: <002001c0fe4a$e623ba30$21000a0a@vogw2kdev>
+             
+             Because "shared" isn't: it's read-only.
+     Branch: perl
+          ! toke.c xsutils.c
+____________________________________________________________________________
+[ 10958] By: jhi                                   on 2001/06/26  13:28:27
+        Log: Escape multiline croak messages.
+     Branch: perl
+          ! t/op/ver.t
+____________________________________________________________________________
+[ 10957] By: jhi                                   on 2001/06/26  13:18:34
+        Log: No more pragma/*.t for minitest.
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[ 10956] By: jhi                                   on 2001/06/26  13:18:00
+        Log: AUTHORS updates.
+     Branch: perl
+          ! AUTHORS
+____________________________________________________________________________
+[ 10955] By: jhi                                   on 2001/06/26  13:17:05
+        Log: delta updates.
+     Branch: perl
+          ! pod/perl572delta.pod
+____________________________________________________________________________
+[ 10954] By: jhi                                   on 2001/06/26  12:36:07
+        Log: Subject: [PATCH] Adds perl_clone_host under IMPLICIT SYS
+             From: Artur Bergman <artur@contiller.se> 
+             Date: Tue, 26 Jun 2001 15:32:53 +0200
+             Message-ID: <B75E5BA5.1A7C%artur@contiller.se>
+     Branch: perl
+          ! makedef.pl sv.c sv.h win32/perllib.c
+____________________________________________________________________________
+[ 10953] By: jhi                                   on 2001/06/26  12:33:55
+        Log: Subject: [PATCH ext/Time/HiRes/Makefile.PL perl@10929] Test Fails on SCO
+             From: Jonathan Stowe <gellyfish@gellyfish.com>
+             Date: Tue, 26 Jun 2001 10:29:57 +0100 (BST)
+             Message-ID: <Pine.LNX.4.33.0106261021540.18774-100000@orpheus.gellyfish.com>
+             
+             SCO OpenServer 5.0.5 needs an explicit -lc for usleep().
+     Branch: perl
+          + ext/Time/HiRes/hints/sco.pl
+          ! MANIFEST
+____________________________________________________________________________
+[ 10952] By: jhi                                   on 2001/06/26  11:57:44
+        Log: Subject: [PATCH 5.6.1] static build
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 26 Jun 2001 04:22:25 -0400
+             Message-ID: <20010626042225.A2604@math.ohio-state.edu>
+     Branch: perl
+          ! ext/List/Util/Makefile.PL lib/ExtUtils.t
+          ! lib/ExtUtils/MM_Unix.pm os2/Makefile.SHs
+____________________________________________________________________________
+[ 10951] By: jhi                                   on 2001/06/26  11:55:59
+        Log: DJGPP patches from Laszlo Molnar.
+     Branch: perl
+          ! djgpp/djgpp.c perl.c util.c
+____________________________________________________________________________
+[ 10950] By: jhi                                   on 2001/06/26  11:54:32
+        Log: Netware patches from Ananth Kesari.
+     Branch: perl
+          ! NetWare/Makefile NetWare/config_H.wc NetWare/nw5sck.c
+          ! NetWare/nw5sck.h NetWare/nwperlsys.c NetWare/nwperlsys.h
+          ! NetWare/nwtinfo.h
+____________________________________________________________________________
+[ 10949] By: jhi                                   on 2001/06/26  11:49:09
+        Log: Detypo.
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[ 10948] By: jhi                                   on 2001/06/26  03:44:29
+        Log: There seems to be two ways of spelling the $^O in *STEP.
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[ 10947] By: jhi                                   on 2001/06/26  03:01:01
+        Log: OpenSTEP has gcc 2.7.2.1 which recognizes but does not implement
+             the -dM flag, from Daniel Ashton <jdashton@AshtonFam.org>.
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[ 10946] By: jhi                                   on 2001/06/26  02:50:46
+        Log: Known bugs update.
+     Branch: perl
+          ! pod/perl572delta.pod
+____________________________________________________________________________
+[ 10945] By: jhi                                   on 2001/06/26  01:15:39
+        Log: The default installation of Cygwin has 500 as root's uid.
+     Branch: perl
+          ! lib/User/pwent.t
+____________________________________________________________________________
+[ 10944] By: jhi                                   on 2001/06/26  01:12:39
+        Log: Be even more relaxed (re-allow having only one entry).
+     Branch: perl
+          ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[ 10943] By: jhi                                   on 2001/06/26  01:03:30
+        Log: Test failure updates.
+     Branch: perl
+          ! pod/perl572delta.pod
+____________________________________________________________________________
+[ 10942] By: jhi                                   on 2001/06/25  23:32:05
+        Log: MPE/iX test tweaks from Mark Bixby.
+     Branch: perl
+          ! ext/POSIX/POSIX.t ext/Storable/t/lock.t ext/Time/HiRes/HiRes.t
+          ! t/io/fs.t t/op/stat.t
+____________________________________________________________________________
+[ 10941] By: jhi                                   on 2001/06/25  22:18:31
+        Log: Microperl findings.
+     Branch: perl
+          ! perl.h pp_sys.c
+____________________________________________________________________________
+[ 10940] By: jhi                                   on 2001/06/25  21:59:29
+        Log: Touch uconfig.h.
+     Branch: perl
+          ! uconfig.h
+____________________________________________________________________________
+[ 10939] By: jhi                                   on 2001/06/25  21:32:52
+        Log: Subject: [PATCH] Proposed fix for Pod::Man
+             From: Rob Napier <rnapier@employees.org>
+             Date: Mon, 25 Jun 2001 15:49:24 -0400
+             Message-ID: <20010625154924.N27568@rnapier-u5.cisco.com>
+             
+             Cater for Solaris nroff brokenness (shortchanges daisywheel
+             printers, but hey, we also no more support PDPs.)
+     Branch: perl
+          ! lib/Pod/Man.pm
+____________________________________________________________________________
+[ 10938] By: jhi                                   on 2001/06/25  21:14:41
+        Log: Typo in #10937.
+     Branch: perl
+          ! ext/POSIX/sigaction.t
+____________________________________________________________________________
+[ 10937] By: jhi                                   on 2001/06/25  19:42:02
+        Log: SIGCONT not trappable in VMS.
+     Branch: perl
+          ! ext/POSIX/sigaction.t
+____________________________________________________________________________
+[ 10936] By: jhi                                   on 2001/06/25  19:28:13
+        Log: Subject: [DRAFT] Encode-Tcl.t
+             From: SADAHIRO Tomoyuki <BQW10602@nifty.com>
+             Date: Tue, 26 Jun 2001 03:38:08 +0900
+             Message-Id: <20010626033550.BC35.BQW10602@nifty.com>
+     Branch: perl
+          + ext/Encode/Encode/Tcl.t
+          ! MANIFEST ext/Encode/Encode/Tcl.pm
+____________________________________________________________________________
+[ 10935] By: jhi                                   on 2001/06/25  18:40:03
+        Log: Because of #10932 retract also the perlfunc hunk of #10910.
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 10934] By: jhi                                   on 2001/06/25  18:27:19
+        Log: Tweak the XSFUNCTION, from Doug MacEachern, as suggested
+             by Ilya Zakharevich in
+             http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-05/msg01582.html
+     Branch: perl
+          ! XSUB.h
+____________________________________________________________________________
+[ 10933] By: jhi                                   on 2001/06/25  18:25:26
+        Log: Typo in #10889.
+     Branch: perl
+          ! hints/uts.sh
+____________________________________________________________________________
+[ 10932] By: jhi                                   on 2001/06/25  18:23:30
+        Log: Subject: Re: [ID 20010621.007] readline() not quite as equal as <>
+             From: Abhijit Menon-Sen <ams@wiw.org>
+             Date: Mon, 25 Jun 2001 23:45:45 +0530
+             Message-ID: <20010625234545.A5022@lustre.linux.in>
+     Branch: perl
+          ! lib/overload.t opcode.h opcode.pl t/op/flip.t
+____________________________________________________________________________
+[ 10931] By: jhi                                   on 2001/06/25  17:50:38
+        Log: Subject: [PATCH lib/Test.pm] Re: "Deprecated interface" ??
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Mon, 25 Jun 2001 14:35:51 -0400
+             Message-ID: <20010625143551.H13819@blackrider>
+     Branch: perl
+          ! lib/Test.pm
+____________________________________________________________________________
+[ 10930] By: jhi                                   on 2001/06/25  14:33:46
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
+[ 10929] By: jhi                                   on 2001/06/25  14:17:57
+        Log: Regen toc and modlib.
+     Branch: perl
+          ! pod/perlmodlib.pod pod/perltoc.pod
+____________________________________________________________________________
+[ 10928] By: jhi                                   on 2001/06/25  14:13:09
+        Log: Enclose the new symbols in START_EXTERN_C and END_EXTERN_C
+             for the benefit of C++ compilers, as suggested by Guruprasad.
+     Branch: perl
+          ! embed.pl proto.h
+____________________________________________________________________________
+[ 10927] By: jhi                                   on 2001/06/25  14:11:59
+        Log: Subject: [PATCH ] Re: [ID 20010625.003] perlfaq5 correction
+             From: Jonathan Stowe <gellyfish@gellyfish.com>
+             Date: Mon, 25 Jun 2001 14:39:43 +0100 (BST)
+             Message-ID: <Pine.LNX.4.33.0106251438080.14795-100000@orpheus.gellyfish.com>
+     Branch: perl
+          ! pod/perlfaq5.pod
+____________________________________________________________________________
+[ 10926] By: jhi                                   on 2001/06/25  14:04:07
+        Log: Missed from #10925.
+     Branch: perl
+          ! gv.c
+____________________________________________________________________________
+[ 10925] By: jhi                                   on 2001/06/25  14:00:06
+        Log: Subject: [PATCH] Re: CvFILE corruption under ithreads
+             From: Robin Houston <robin@kitsite.com>
+             Date: Sat, 19 May 2001 16:19:34 +0100
+             Message-ID: <20010519161934.A12751@puffinry.freeserve.co.uk>
+     Branch: perl
+          ! cv.h gv.h op.c
+____________________________________________________________________________
+[ 10924] By: jhi                                   on 2001/06/25  13:58:18
+        Log: Netware README tweak.
+     Branch: perl
+          ! README.netware
+____________________________________________________________________________
+[ 10923] By: jhi                                   on 2001/06/25  13:57:13
+        Log: Subject: [PATCH] Re: overload.t fails
+             From: Abhijit Menon-Sen <ams@wiw.org>
+             Date: Mon, 25 Jun 2001 14:52:20 +0530
+             Message-ID: <20010625145220.A24114@lustre.linux.in>
+     Branch: perl
+          ! lib/overload.t
+____________________________________________________________________________
+[ 10922] By: jhi                                   on 2001/06/25  13:56:20
+        Log: Subject: Re: [PATCH] Re: [ID 20010624.001] debugger T, and Carp::carp don't trace arg of
+             From: Mike Guy <mjtg@cam.ac.uk>
+             Date: Mon, 25 Jun 2001 11:43:23 +0100
+             Message-Id: <E15ETpz-0007AD-00@draco.cus.cam.ac.uk>
+     Branch: perl
+          ! lib/Carp.pm
+____________________________________________________________________________
+[ 10921] By: jhi                                   on 2001/06/25  13:50:02
+        Log: Subject: Re: [PATCH 5.6.1] OS2 syslog
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:17:05 -0400
+             Message-ID: <20010624051704.A27604@math.ohio-state.edu>
+     Branch: perl
+          ! os2/os2ish.h
+____________________________________________________________________________
+[ 10920] By: jhi                                   on 2001/06/25  13:49:13
+        Log: Subject: [PATCH 5.6.1] crypt() on OS/2
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 25 Jun 2001 05:52:27 -0400
+             Message-ID: <20010625055227.A24635@math.ohio-state.edu>
+     Branch: perl
+          ! hints/os2.sh
+____________________________________________________________________________
+[ 10919] By: jhi                                   on 2001/06/25  13:48:30
+        Log: Subject: Re: [PATCH 5.6.1] OS2 system() broken
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 25 Jun 2001 05:23:35 -0400
+             Message-ID: <20010625052334.A24320@math.ohio-state.edu>
+     Branch: perl
+          ! os2/os2.c
+____________________________________________________________________________
+[ 10918] By: jhi                                   on 2001/06/25  13:47:46
+        Log: Subject: Re: [PATCH 5.6.1] OS2::DLL
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 25 Jun 2001 05:04:32 -0400
+             Message-ID: <20010625050432.A24128@math.ohio-state.edu>
+     Branch: perl
+          ! os2/OS2/REXX/DLL/DLL.pm
+____________________________________________________________________________
+[ 10917] By: jhi                                   on 2001/06/25  13:44:14
+        Log: Subject: Re: [PATCH 5.6.1] $^E on OS/2
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 25 Jun 2001 05:02:36 -0400
+             Message-ID: <20010625050235.A24046@math.ohio-state.edu>
+     Branch: perl
+          ! mg.c os2/dl_os2.c os2/os2.c
+____________________________________________________________________________
+[ 10916] By: jhi                                   on 2001/06/25  13:41:20
+        Log: Subject: Re: [PATCH 5.6.1] misprints
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 25 Jun 2001 04:50:50 -0400
+             Message-ID: <20010625045049.A23965@math.ohio-state.edu>
+     Branch: perl
+          ! os2/os2.c pp_sys.c
+____________________________________________________________________________
+[ 10915] By: jhi                                   on 2001/06/25  13:39:59
+        Log: Add Test::More and Test::Simple to the delta.
+     Branch: perl
+          ! pod/perl572delta.pod
+____________________________________________________________________________
+[ 10914] By: jhi                                   on 2001/06/25  13:38:08
+        Log: Add Test::More, from Michael G Schwern.
+     Branch: perl
+          + lib/Test/More.pm lib/Test/More/t/More.t
+          + lib/Test/More/t/fail-like.t lib/Test/More/t/fail.t
+          + lib/Test/More/t/plan_is_noplan.t lib/Test/More/t/skipall.t
+          + t/lib/Test/More/Catch.pm
+          ! MANIFEST
+____________________________________________________________________________
+[ 10913] By: jhi                                   on 2001/06/25  13:35:41
+        Log: Add Test::Simple from Michael G Schwern.
+     Branch: perl
+          + lib/Test/Simple.pm lib/Test/Simple/t/exit.t
+          + lib/Test/Simple/t/extra.t lib/Test/Simple/t/fail.t
+          + lib/Test/Simple/t/missing.t lib/Test/Simple/t/no_plan.t
+          + lib/Test/Simple/t/plan_is_noplan.t lib/Test/Simple/t/simple.t
+          + t/lib/Test/Simple/Catch.pm
+          + t/lib/Test/Simple/sample_tests/death.plx
+          + t/lib/Test/Simple/sample_tests/death_in_eval.plx
+          + t/lib/Test/Simple/sample_tests/extras.plx
+          + t/lib/Test/Simple/sample_tests/five_fail.plx
+          + t/lib/Test/Simple/sample_tests/last_minute_death.plx
+          + t/lib/Test/Simple/sample_tests/one_fail.plx
+          + t/lib/Test/Simple/sample_tests/require.plx
+          + t/lib/Test/Simple/sample_tests/success.plx
+          + t/lib/Test/Simple/sample_tests/too_few.plx
+          + t/lib/Test/Simple/sample_tests/two_fail.plx
+          ! MANIFEST
+____________________________________________________________________________
+[ 10912] By: jhi                                   on 2001/06/25  13:31:57
+        Log: Subject: [PATCH perl@10907] RETURN requires dSP in pp_sys.c
+             From: "Craig A. Berry" <craigberry@mac.com>
+             Date: Sun, 24 Jun 2001 23:41:36 -0500
+             Message-Id: <a0510100db75c6d44e34c@[172.16.52.1]>
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10911] By: jhi                                   on 2001/06/25  13:05:00
+        Log: Upgrade to Attribute::Handlers 0.70.
+     Branch: perl
+          + lib/Attribute/Handlers/Changes lib/Attribute/Handlers/README
+          ! MANIFEST lib/Attribute/Handlers.pm
+____________________________________________________________________________
+[ 10910] By: jhi                                   on 2001/06/25  00:09:27
+        Log: Subject: Re: [ID 20010621.007] readline() not quite as equal as <>
+             From: Abhijit Menon-Sen <ams@wiw.org>
+             Date: Sat, 23 Jun 2001 05:17:44 +0530
+             Message-ID: <20010623051744.A18583@lustre.linux.in>
+             
+             (Can't think of a good place to put tests.)
+     Branch: perl
+          ! opcode.pl pod/perlfunc.pod t/op/flip.t toke.c
+____________________________________________________________________________
+[ 10909] By: jhi                                   on 2001/06/24  23:45:13
+        Log: Subject: [PATCH] t/op/pat.t typo fix
+             From: Richard Soderberg <rs@crystalflame.net>
+             Date: Sun, 24 Jun 2001 12:07:42 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.21.0106241207320.17075-100000@oregonnet.com>
+     Branch: perl
+          ! t/op/pat.t
+____________________________________________________________________________
+[ 10908] By: jhi                                   on 2001/06/24  22:24:49
+        Log: Move the pack warnings to their own file, as pointed
+             out by Spider.
+     Branch: perl
+          + t/lib/warnings/pp_pack
+          ! MANIFEST t/lib/warnings/pp
+____________________________________________________________________________
+[ 10907] By: jhi                                   on 2001/06/24  19:55:15
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
+[ 10906] By: jhi                                   on 2001/06/24  19:50:40
+        Log: Partially fix a problem noticed by IRIX compiler:
+             the initialization of parse_start was bypassed by
+             several gotos.  Now initialized to zero, which may
+             not be the best choice.
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[ 10905] By: jhi                                   on 2001/06/24  19:43:25
+        Log: Relax the group and password tests back to moaning only
+             if no matches at all are found.  (Even with a small sample
+             I could find many sites where there are, umm, anomalies in
+             the said databases.)      
+     Branch: perl
+          ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[ 10904] By: jhi                                   on 2001/06/24  18:45:55
+        Log: Argh.  How hard it can be to re-apply a patch manually? :-)
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[ 10903] By: jhi                                   on 2001/06/24  18:40:52
+        Log: De-cut-and-pasto in #10902.
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[ 10902] By: jhi                                   on 2001/06/24  18:35:18
+        Log: The #10771 didn't take?
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[ 10901] By: jhi                                   on 2001/06/24  18:29:50
+        Log: Undo the filetests part of #10900, under multiplicity
+             weird errors take place.
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10900] By: jhi                                   on 2001/06/24  18:20:36
+        Log: Misplaces dSPs and the like revealed by MPE/iX and Cygwin.
+     Branch: perl
+          ! ext/Cwd/Cwd.xs ext/Devel/Peek/Peek.xs pp_sys.c
+____________________________________________________________________________
+[ 10899] By: jhi                                   on 2001/06/24  17:00:34
+        Log: Subject: Re: [PATCH] Re: [ID 20010624.001] debugger T, and Carp::carp don't trace arg of
+             From: Tony Bowden <tony@kasei.com>
+             Date: Sun, 24 Jun 2001 17:32:40 +0100
+             Message-ID: <20010624173240.A16293@blackstar.co.uk>
+             
+             Document (well, mention) shortmess() and longmess()
+             to rob people of their fun of reinventing the weel.
+     Branch: perl
+          ! lib/Carp.pm
+____________________________________________________________________________
+[ 10898] By: jhi                                   on 2001/06/24  16:51:40
+        Log: Subject: Patch: pp_system() bounces out of Cygwin subsystem
+             From: Brian Jepson <bjepson@oreilly.com>
+             Date: Sun, 24 Jun 2001 12:13:21 -0400 (EDT)
+             Message-ID: <Pine.GSO.4.21.0106241044110.15051-200000@sol.east.ora.com>
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10897] By: jhi                                   on 2001/06/24  16:38:23
+        Log: Subject: [PATCH CPAN.pm] missing DATE_OF_02
+             From: Robin Barker <rmb1@cise.npl.co.uk> 
+             Date: Fri, 22 Jun 2001 19:25:56 +0100 (BST)
+             Message-Id: <200106221825.TAA16884@tempest.npl.co.uk>
+     Branch: perl
+          ! lib/CPAN.pm
+____________________________________________________________________________
+[ 10896] By: jhi                                   on 2001/06/24  16:36:32
+        Log: Memoize patch from mjd.
+     Branch: perl
+          ! lib/Memoize/t/tie_storable.t
+____________________________________________________________________________
+[ 10895] By: jhi                                   on 2001/06/24  16:33:59
+        Log: Spec the sv_pvprintify() a bit more.
+     Branch: perl
+          ! pod/perltodo.pod
+____________________________________________________________________________
+[ 10894] By: jhi                                   on 2001/06/24  14:43:36
+        Log: Upgrade to Memoize 0.65.
+     Branch: perl
+          + lib/Memoize/t/array_confusion.t
+          ! MANIFEST lib/Memoize.pm lib/Memoize/AnyDBM_File.pm
+          ! lib/Memoize/Expire.pm lib/Memoize/ExpireFile.pm
+          ! lib/Memoize/ExpireTest.pm lib/Memoize/NDBM_File.pm
+          ! lib/Memoize/README lib/Memoize/SDBM_File.pm
+          ! lib/Memoize/Saves.pm lib/Memoize/Storable.pm lib/Memoize/TODO
+          ! lib/Memoize/t/errors.t lib/Memoize/t/expire.t
+          ! lib/Memoize/t/expire_file.t lib/Memoize/t/expire_module_n.t
+          ! lib/Memoize/t/expire_module_t.t lib/Memoize/t/speed.t
+          ! lib/Memoize/t/tie.t lib/Memoize/t/tie_gdbm.t
+          ! lib/Memoize/t/tie_ndbm.t lib/Memoize/t/tie_sdbm.t
+          ! lib/Memoize/t/tie_storable.t
+____________________________________________________________________________
+[ 10893] By: jhi                                   on 2001/06/24  14:21:09
+        Log: Metaconfig unit change for #10892.
+     Branch: metaconfig
+          ! U/modified/Options.U
+____________________________________________________________________________
+[ 10892] By: jhi                                   on 2001/06/24  14:20:38
+        Log: Subject: Re: [PATCH 5.6.1] OS2 Configure
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:24:40 -0400
+             Message-ID: <20010624052440.A27698@math.ohio-state.edu>
+     Branch: perl
+          ! Configure hints/os2.sh
+____________________________________________________________________________
+[ 10891] By: jhi                                   on 2001/06/24  13:50:26
+        Log: Subject: [PATCH] Re: [ID 20010624.001] debugger T, and Carp::carp don't trace arg of 
+             From: Mike Guy <mjtg@cam.ac.uk>
+             Date: Sun, 24 Jun 2001 15:28:39 +0100
+             Message-Id: <E15EAsR-0007Bi-00@draco.cus.cam.ac.uk>
+             
+             Fix an ancient (5.002) bug.
+     Branch: perl
+          ! lib/Carp/Heavy.pm
+____________________________________________________________________________
+[ 10890] By: jhi                                   on 2001/06/24  13:44:43
+        Log: The #10881 was too vigorous in pp_system() in moving 'unused'
+             variables.
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10889] By: jhi                                   on 2001/06/24  13:24:00
+        Log: Make UTS as per #10888.
+     Branch: perl
+          ! hints/uts.sh
+____________________________________________________________________________
+[ 10888] By: jhi                                   on 2001/06/24  13:21:23
+        Log: Factor the PERL_SYS_INIT() code, from Hugo van der Sanden.
+     Branch: perl
+          ! hints/freebsd.sh hints/posix-bc.sh hints/sco.sh
+          ! mpeix/mpeixish.h perl.h unixish.h
+____________________________________________________________________________
+[ 10887] By: jhi                                   on 2001/06/24  13:15:45
+        Log: AUTHORS update.
+     Branch: perl
+          ! AUTHORS
+____________________________________________________________________________
+[ 10886] By: jhi                                   on 2001/06/24  13:14:31
+        Log: Subject: Encode::Tcl for multibyte doesnot work
+             From: SADAHIRO Tomoyuki <BQW10602@nifty.com>
+             Date: Sun, 24 Jun 2001 22:48:21 +0900
+             Message-Id: <20010624223252.6658.BQW10602@nifty.com>
+     Branch: perl
+          ! ext/Encode/Encode/Tcl.pm
+____________________________________________________________________________
+[ 10885] By: jhi                                   on 2001/06/24  13:12:46
+        Log: Subject: [PATCH] Remove tautology in error messages
+             From: Mike Guy <mjtg@cam.ac.uk>
+             Date: Sun, 24 Jun 2001 13:31:00 +0100
+             Message-Id: <E15E92a-0006em-00@draco.cus.cam.ac.uk>
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10884] By: jhi                                   on 2001/06/24  13:11:36
+        Log: Darwin needs -traditional-cpp for cppflags to build Errno. 
+     Branch: perl
+          ! hints/darwin.sh
+____________________________________________________________________________
+[ 10883] By: jhi                                   on 2001/06/24  13:09:55
+        Log: Subject: Re: [PATCH 5.6.1] test suite
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:47:05 -0400
+             Message-ID: <20010624054705.A27890@math.ohio-state.edu>
+             
+             Test suite fixes.
+     Branch: perl
+          ! ext/POSIX/sigaction.t lib/File/stat.t perl.c t/io/utf8.t
+____________________________________________________________________________
+[ 10882] By: jhi                                   on 2001/06/24  13:07:46
+        Log: Subject: Re: [PATCH 5.6.1] OS2 warnings
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:37:19 -0400
+             Message-ID: <20010624053719.A27866@math.ohio-state.edu>
+     Branch: perl
+          ! os2/dl_os2.c os2/os2.c os2/os2ish.h
+____________________________________________________________________________
+[ 10881] By: jhi                                   on 2001/06/24  13:05:24
+        Log: Subject: Re: [PATCH 5.6.1] pp_sys.c warnings
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:34:50 -0400
+             Message-ID: <20010624053450.A27856@math.ohio-state.edu>
+             
+             Pacify compiler warnings.
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10880] By: jhi                                   on 2001/06/24  13:02:30
+        Log: Subject: Re: [PATCH 5.6.1] OS2 linking
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:21:18 -0400
+             Message-ID: <20010624052118.A27615@math.ohio-state.edu>
+             
+             Enable compression of executables during link time.
+     Branch: perl
+          ! hints/os2.sh
+____________________________________________________________________________
+[ 10879] By: jhi                                   on 2001/06/24  13:00:47
+        Log: Subject: Re: [PATCH 5.6.1] OS2 linking
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Jun 2001 05:15:11 -0400
+             Message-ID: <20010624051511.A27544@math.ohio-state.edu>
+             
+             Add ordinals to the export list for Perl DLL.
+             (Breaks intra-version DLL compatibility.)
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[ 10878] By: jhi                                   on 2001/06/24  02:12:04
+        Log: Allow (displaying and) re-editing the Subject in perlbug.
+             Also abstract the Subject quality control into a function.
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[ 10877] By: jhi                                   on 2001/06/24  01:40:53
+        Log: Display $ENV{CYGWIN} in perlbug if set (like #10875 for perl -V).
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[ 10876] By: jhi                                   on 2001/06/24  01:37:05
+        Log: Regen toc and modlib.
+     Branch: perl
+          ! pod/perlmodlib.pod pod/perltoc.pod
+____________________________________________________________________________
+[ 10875] By: jhi                                   on 2001/06/24  01:29:33
+        Log: In Cygwin display the $ENV{CYGWIN} under perl -V, as suggested
+             by John Peacock.  (Can be 'ntea' which means emulate UNIX file
+             attribute semantics as much as possible, or 'ntsec' which uses
+             native NTFS semantics.)  (See also #10877.)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[ 10874] By: jhi                                   on 2001/06/23  23:57:28
+        Log: Hack to get rid of the UNEXPECTEDLY succeeded message for now.
+     Branch: perl
+          ! lib/Test/Harness.pm
+____________________________________________________________________________
+[ 10873] By: jhi                                   on 2001/06/23  23:36:56
+        Log: Just zap the -uPerlio.
+     Branch: perl
+          ! ext/B/Stash.t
+____________________________________________________________________________
+[ 10872] By: jhi                                   on 2001/06/23  21:29:10
+        Log: Do not test PerlIO if PerlIO not used.
+     Branch: perl
+          ! ext/PerlIO/PerlIO.t
+____________________________________________________________________________
+[ 10871] By: jhi                                   on 2001/06/23  21:12:49
+        Log: Regen perlapi.
+     Branch: perl
+          ! pod/perlapi.pod
+____________________________________________________________________________
+[ 10870] By: jhi                                   on 2001/06/23  21:03:31
+        Log: Subject: [PATCH] Re: [PATCH] nuke strtol (was Re: One fix for strtoul not setting errno)
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Sat, 23 Jun 2001 22:55:47 +0100
+             Message-ID: <20010623225547.Z98663@plum.flirble.org>
+     Branch: perl
+          ! numeric.c
+____________________________________________________________________________
+[ 10869] By: jhi                                   on 2001/06/23  17:13:21
+        Log: Subject: [PATCH: perl@10825] MacOS fixups for new lib/h2xs.t
+             From: Prymmer/Kahn <pvhp@best.com>
+             Date: Sat, 23 Jun 2001 11:08:52 -0700 (PDT)
+             Message-ID: <Pine.BSF.4.21.0106231105380.25634-100000@shell8.ba.best.com>
+     Branch: perl
+          ! lib/h2xs.t
+____________________________________________________________________________
+[ 10868] By: jhi                                   on 2001/06/23  16:04:38
+        Log: cygwin needs cygwin1.dll in PATH or cwd to run external programs.
+             cygwin does not taint cwd, just like win32.
+     Branch: perl
+          ! lib/File/Find/taint.t t/op/taint.t
+____________________________________________________________________________
+[ 10867] By: jhi                                   on 2001/06/23  15:39:15
+        Log: Retract #10865, the patch should be unnecessary.
+             (But seemingly helpful in Cygwin?  Strange.)
+     Branch: perl
+          ! lib/Memoize/t/tie_ndbm.t
+____________________________________________________________________________
+[ 10866] By: jhi                                   on 2001/06/23  15:06:30
+        Log: Misplaced test file; plus Cygwin filesystem semantics.
+     Branch: perl
+          + ext/SDBM_File/sdbm.t
+          - ext/ODBM_File/sdbm.t
+          ! MANIFEST
+____________________________________________________________________________
+[ 10865] By: jhi                                   on 2001/06/23  15:01:02
+        Log: (Retracted by #10867.)
+     Branch: perl
+          ! lib/Memoize/t/tie_ndbm.t
+____________________________________________________________________________
+[ 10864] By: jhi                                   on 2001/06/23  14:25:43
+        Log: Metaconfig unit change for #10863.
+     Branch: metaconfig/U/perl
+          ! Extensions.U
+____________________________________________________________________________
+[ 10863] By: jhi                                   on 2001/06/23  14:25:20
+        Log: In Cygwin do not build NDBM_File and ODBM_File unless
+             -lndbm and -ldbm are available.
+     Branch: perl
+          ! Configure config_h.SH
+____________________________________________________________________________
+[ 10862] By: jhi                                   on 2001/06/23  14:02:14
+        Log: More Cygwin filesystem semantics.
+     Branch: perl
+          ! t/io/fs.t t/op/stat.t
+____________________________________________________________________________
+[ 10861] By: jhi                                   on 2001/06/23  13:38:00
+        Log: More DOSish permission semantics for Cygwin.
+     Branch: perl
+          ! lib/AnyDBM_File.t
+____________________________________________________________________________
+[ 10860] By: jhi                                   on 2001/06/23  13:32:41
+        Log: Cygwin too has different permission semantics.
+     Branch: perl
+          ! ext/GDBM_File/gdbm.t
+____________________________________________________________________________
+[ 10859] By: jhi                                   on 2001/06/23  13:30:06
+        Log: The group (and assumedly passwd) databases can have
+             only one entry (this is the case in cygwin).
+     Branch: perl
+          ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[ 10858] By: jhi                                   on 2001/06/23  13:16:26
+        Log: Also in Cygwin use Socket to figure out domainname
+             (if any) (avoids trying to call external 'domainname',
+             which doesn't at the moment exist in Cygwin)
+     Branch: perl
+          ! lib/Net/Domain.pm
+____________________________________________________________________________
+[ 10857] By: jhi                                   on 2001/06/23  12:48:32
+        Log: Remove also the lib$Foo.def, not just $Foo.def.
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[ 10856] By: jhi                                   on 2001/06/23  12:21:53
+        Log: In UTS do signal(SIGFPE, SIG_IGN) in PERL_SYS_INIT().
+     Branch: perl
+          ! unixish.h
+____________________________________________________________________________
+[ 10855] By: jhi                                   on 2001/06/23  12:14:15
+        Log: Fix for ID 20010619.003, the [[:print:]] is not supposed
+             to match the whole isprint(), only the space character.
+     Branch: perl
+          ! handy.h pod/perlre.pod t/op/pat.t
+____________________________________________________________________________
+[ 10854] By: nick                                  on 2001/06/23  08:09:33
+        Log: Integrate mainline
+     Branch: perlio
+         !> Configure ext/IPC/SysV/Semaphore.pm hints/unicos.sh
+         !> lib/ExtUtils.t lib/File/Find/taint.t
+         !> lib/Math/BigInt/t/bigintpm.t lib/Net/netent.t
+         !> lib/Net/protoent.t lib/Net/servent.t mg.c t/op/mkdir.t
+         !> t/op/sprintf.t vms/descrip_mms.template vms/ext/Stdio/Stdio.xs
+____________________________________________________________________________
+[ 10853] By: jhi                                   on 2001/06/23  03:48:09
+        Log: Make also the bigintpm.t (like op/sprintf.t) be less demanding
+             with its floats   in os390 and s390 (UTS).
+     Branch: perl
+          ! lib/Math/BigInt/t/bigintpm.t
+____________________________________________________________________________
+[ 10852] By: jhi                                   on 2001/06/23  03:38:53
+        Log: Add also UTS (s390) to the non-IEEE float platforms.
+     Branch: perl
+          ! t/op/sprintf.t
+____________________________________________________________________________
+[ 10851] By: jhi                                   on 2001/06/23  03:36:04
+        Log: Subject: RFC: what are applicable standards for exponent sizes?
+             From: Peter Prymmer <pvhp@forte.com>
+             Date: Tue, 19 Jun 2001 17:18:06 -0700 (PDT)
+             Message-ID: <Pine.OSF.4.10.10106191712070.361736-100000@aspara.forte.com>
+     Branch: perl
+          ! t/op/sprintf.t
+____________________________________________________________________________
+[ 10850] By: jhi                                   on 2001/06/23  03:29:04
+        Log: Subject: [PATCH: perl@10825] build (and test!) VMS::Stdio on VMS
+             From: Peter Prymmer <pvhp@forte.com>
+             Date: Fri, 22 Jun 2001 19:08:23 -0700 (PDT)
+             Message-ID: <Pine.OSF.4.10.10106221903270.24012-100000@aspara.forte.com>
+     Branch: perl
+          ! vms/descrip_mms.template vms/ext/Stdio/Stdio.xs
+____________________________________________________________________________
+[ 10849] By: jhi                                   on 2001/06/23  03:27:21
+        Log: Subject: [PATCH: perl@10825] correction to lib/ExtUtils.t patch
+             From: Peter Prymmer <pvhp@forte.com>
+             Date: Fri, 22 Jun 2001 17:56:01 -0700 (PDT)
+             Message-ID: <Pine.OSF.4.10.10106221754180.24012-100000@aspara.forte.com>
+     Branch: perl
+          ! lib/ExtUtils.t
+____________________________________________________________________________
+[ 10848] By: jhi                                   on 2001/06/22  21:51:31
+        Log: Retract #10845.
+     Branch: perl
+          ! lib/File/Find/taint.t
+____________________________________________________________________________
+[ 10847] By: jhi                                   on 2001/06/22  21:50:38
+        Log: Yet another error message.
+     Branch: perl
+          ! t/op/mkdir.t
+____________________________________________________________________________
+[ 10846] By: jhi                                   on 2001/06/22  21:48:39
+        Log: The croak message for nonexistent socket functions may vary.
+     Branch: perl
+          ! lib/Net/netent.t lib/Net/protoent.t lib/Net/servent.t
+____________________________________________________________________________
+[ 10845] By: jhi                                   on 2001/06/22  21:42:38
+        Log: (Retracted by #10848.)
+     Branch: perl
+          ! lib/File/Find/taint.t
+____________________________________________________________________________
+[ 10844] By: jhi                                   on 2001/06/22  21:32:58
+        Log: Integrate perlio.
+     Branch: perl
+         !> lib/File/Find/taint.t t/op/write.t
+____________________________________________________________________________
+[ 10843] By: nick                                  on 2001/06/22  21:24:51
+        Log: Back out debug in taint.t
+     Branch: perlio
+          ! lib/File/Find/taint.t
+____________________________________________________________________________
+[ 10842] By: jhi                                   on 2001/06/22  21:20:02
+        Log: setitimer() does not exist in Unicos, despite of what
+             Configure thinks, from Mark P. Lutz.
+     Branch: perl
+          ! hints/unicos.sh
+____________________________________________________________________________
+[ 10841] By: nick                                  on 2001/06/22  21:19:36
+        Log: Skip cwd test on Win32 ???
+     Branch: perlio
+          ! lib/File/Find/taint.t
+____________________________________________________________________________
+[ 10840] By: jhi                                   on 2001/06/22  21:17:34
+        Log: Casting this way seems to keep both 64-bitint x86 FreeBSD
+             and Tru64 gcc -Wall happy.
+     Branch: perl
+          ! mg.c
+____________________________________________________________________________
+[ 10839] By: jhi                                   on 2001/06/22  21:15:32
+        Log: The packs must be done in native shorts, fix from Mark P. Lutz.
+     Branch: perl
+          ! ext/IPC/SysV/Semaphore.pm
+____________________________________________________________________________
+[ 10838] By: jhi                                   on 2001/06/22  21:12:02
+        Log: Metaconfig unit change for #10837.
+     Branch: metaconfig/U/perl
+          ! Cross.U
+____________________________________________________________________________
+[ 10837] By: jhi                                   on 2001/06/22  21:09:42
+        Log: Cleanup of the cross-compilation unit.
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[ 10836] By: nick                                  on 2001/06/22  20:45:12
+        Log: Skip |- based op/write.t on Win32 as well as VMS
+     Branch: perlio
+          ! t/op/write.t
+____________________________________________________________________________
+[ 10835] By: jhi                                   on 2001/06/22  20:44:20
+        Log: Integrate perlio.
+     Branch: perl
+         !> util.c
+____________________________________________________________________________
+[ 10834] By: nick                                  on 2001/06/22  20:41:54
+        Log: Integrate mainline
+     Branch: perlio
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH pp_sys.c uconfig.h util.c vos/config.alpha.h
+         !> vos/config.ga.h
+____________________________________________________________________________
+[ 10833] By: nick                                  on 2001/06/22  20:22:58
+        Log: Patcho fix.
+     Branch: perlio
+          ! util.c
+____________________________________________________________________________
+[ 10832] By: jhi                                   on 2001/06/22  20:13:02
+        Log: Metaconfig unit changes for #10831.
+     Branch: metaconfig
+          ! U/compline/d_safebcpy.U U/compline/d_safemcpy.U
+____________________________________________________________________________
+[ 10831] By: jhi                                   on 2001/06/22  20:12:29
+        Log: Subject: [PATCH 5.7.x] Further tiny bcopy cleanup
+             From: Andy Dougherty <doughera@lafayette.edu>
+             Date: Fri, 22 Jun 2001 14:29:51 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.10106221417030.28044-100000@maxwell.phys.lafayette.edu>
+     Branch: perl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH uconfig.h vos/config.alpha.h vos/config.ga.h
+____________________________________________________________________________
+[ 10830] By: jhi                                   on 2001/06/22  19:50:15
+        Log: MPE/iX prototype nits from Mark Bixby.
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[ 10829] By: jhi                                   on 2001/06/22  16:25:16
+        Log: Detypo.
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[ 10828] By: nick                                  on 2001/06/22  15:33:37
+        Log: Integrate mainline (in near desperate attempt to get Win32 to build...)
+     Branch: perlio
+         +> lib/h2xs.t
+         !> AUTHORS Changes MANIFEST Makefile.SH NetWare/t/NWScripts.pl
+         !> ext/B/Deparse.t ext/POSIX/POSIX.xs lib/ExtUtils.t
+         !> lib/ExtUtils/Constant.pm lib/I18N/LangTags.pm
+         !> lib/I18N/LangTags/ChangeLog lib/I18N/LangTags/test.pl
+         !> lib/Locale/Maketext.pm lib/Locale/Maketext.pod
+         !> lib/Locale/Maketext/ChangeLog lib/Locale/Maketext/test.pl
+         !> lib/Math/BigFloat.pm lib/Math/BigInt.pm patchlevel.h
+         !> t/op/write.t t/pod/plainer.t utils/h2xs.PL vms/vms.c
+         !> vms/vmsish.h
+____________________________________________________________________________
+[ 10827] By: jhi                                   on 2001/06/22  14:15:26
+        Log: Subject: [PATCH perl@10800] sigaction workaround for VMS
+             Date: Fri, 22 Jun 2001 10:08:35 -0500
+             From: "Craig A. Berry" <craigberry@mac.com>
+             Message-Id: <a05101001b75908704194@[192.168.56.145]>
+     Branch: perl
+          ! vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[ 10826] By: jhi                                   on 2001/06/22  13:35:37
+        Log: NetWare scripts tweak from Ananth Kesari.
+     Branch: perl
+          ! NetWare/t/NWScripts.pl
+____________________________________________________________________________
+[ 10825] By: jhi                                   on 2001/06/22  13:00:55
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
 [ 10824] By: jhi                                   on 2001/06/22  12:46:56
         Log: Add .i and .s targets.
      Branch: perl
index 89b1f7a..0bf4654 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sat Jun 23 01:05:11 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Thu Jun 28 18:02:13 EET DST 2001 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -466,6 +466,7 @@ d_msgsnd=''
 d_msync=''
 d_munmap=''
 d_nice=''
+d_nl_langinfo=''
 d_off64_t=''
 d_open3=''
 d_fpathconf=''
@@ -668,6 +669,7 @@ i_grp=''
 i_iconv=''
 i_ieeefp=''
 i_inttypes=''
+i_langinfo=''
 i_libutil=''
 i_limits=''
 i_locale=''
@@ -1190,12 +1192,24 @@ config_args='$*'
 config_argc=$#
 EOSH
 argn=1
+args_exp=''
+args_sep=''
 for arg in "$@"; do
        cat >>cmdline.opt <<EOSH
 config_arg$argn='$arg'
 EOSH
+       # Extreme backslashitis: replace each ' by '"'"'
+       cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
+$arg
+EOC
+       arg_exp=`cat cmdl.opt`
+       args_exp="$args_exp$args_sep'$arg_exp'"
        argn=`expr $argn + 1`
+       args_sep=' '
 done
+# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
+# used by ./hints/os2.sh
+rm -f cmdl.opt
 
 : produce awk script to parse command line options
 cat >options.awk <<'EOF'
@@ -3308,6 +3322,17 @@ esac
 set usemultiplicity
 eval $setvar
 
+
+case "$usemorebits" in
+"$define"|true|[yY]*)
+       use64bitint="$define"
+       uselongdouble="$define"
+       usemorebits="$define"
+       ;;
+*)     usemorebits="$undef"
+       ;;
+esac
+
 : make some quick guesses about what we are up against
 echo " "
 $echo $n "Hmm...  $c"
@@ -3500,154 +3525,6 @@ case "$gccversion" in
     ;;
 esac
 
-: see how we invoke the C preprocessor
-echo " "
-echo "Now, how can we feed standard input to your C preprocessor..." >&4
-cat <<'EOT' >testcpp.c
-#define ABC abc
-#define XYZ xyz
-ABC.XYZ
-EOT
-cd ..
-if test ! -f cppstdin; then
-       if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
-               # AIX cc -E doesn't show the absolute headerfile
-               # locations but we'll cheat by using the -M flag.
-               echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
-       else
-               echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
-       fi
-else
-       echo "Keeping your $hint cppstdin wrapper."
-fi
-chmod 755 cppstdin
-wrapper=`pwd`/cppstdin
-ok='false'
-cd UU
-
-if $test "X$cppstdin" != "X" && \
-       $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-then
-       echo "You used to use $cppstdin $cppminus so we'll use that again."
-       case "$cpprun" in
-       '') echo "But let's see if we can live without a wrapper..." ;;
-       *)
-               if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
-                       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-               then
-                       echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
-                       ok='true'
-               else
-                       echo "(However, $cpprun $cpplast does not work, let's see...)"
-               fi
-               ;;
-       esac
-else
-       case "$cppstdin" in
-       '') ;;
-       *)
-               echo "Good old $cppstdin $cppminus does not seem to be of any help..."
-               ;;
-       esac
-fi
-
-if $ok; then
-       : nothing
-elif echo 'Maybe "'"$cc"' -E" will work...'; \
-       $cc -E <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "Yup, it does."
-       x_cpp="$cc -E"
-       x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
-       $cc -E - <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "Yup, it does."
-       x_cpp="$cc -E"
-       x_minus='-';
-elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
-       $cc -P <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "Yipee, that works!"
-       x_cpp="$cc -P"
-       x_minus='';
-elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
-       $cc -P - <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "At long last!"
-       x_cpp="$cc -P"
-       x_minus='-';
-elif echo 'No such luck, maybe "'$cpp'" will work...'; \
-       $cpp <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "It works!"
-       x_cpp="$cpp"
-       x_minus='';
-elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
-       $cpp - <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       echo "Hooray, it works!  I was beginning to wonder."
-       x_cpp="$cpp"
-       x_minus='-';
-elif echo 'Uh-uh.  Time to get fancy.  Trying a wrapper...'; \
-       $wrapper <testcpp.c >testcpp.out 2>&1; \
-       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-       x_cpp="$wrapper"
-       x_minus=''
-       echo "Eureka!"
-else
-       dflt=''
-       rp="No dice.  I can't find a C preprocessor.  Name one:"
-       . ./myread
-       x_cpp="$ans"
-       x_minus=''
-       $x_cpp <testcpp.c >testcpp.out 2>&1
-       if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
-               echo "OK, that will do." >&4
-       else
-echo "Sorry, I can't get that to work.  Go find one and rerun Configure." >&4
-               exit 1
-       fi
-fi
-
-case "$ok" in
-false)
-       cppstdin="$x_cpp"
-       cppminus="$x_minus"
-       cpprun="$x_cpp"
-       cpplast="$x_minus"
-       set X $x_cpp
-       shift
-       case "$1" in
-       "$cpp")
-               echo "Perhaps can we force $cc -E using a wrapper..."
-               if $wrapper <testcpp.c >testcpp.out 2>&1; \
-                       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
-               then
-                       echo "Yup, we can."
-                       cppstdin="$wrapper"
-                       cppminus='';
-               else
-                       echo "Nope, we'll have to live without it..."
-               fi
-               ;;
-       esac
-       case "$cpprun" in
-       "$wrapper")
-               cpprun=''
-               cpplast=''
-               ;;
-       esac
-       ;;
-esac
-
-case "$cppstdin" in
-"$wrapper"|'cppstdin') ;;
-*) $rm -f $wrapper;;
-esac
-$rm -f testcpp.c testcpp.out
-
 : decide how portable to be.  Allow command line overrides.
 case "$d_portable" in
 "$undef") ;;
@@ -3974,6 +3851,154 @@ y)      fn=d/
        ;;
 esac
 
+: see how we invoke the C preprocessor
+echo " "
+echo "Now, how can we feed standard input to your C preprocessor..." >&4
+cat <<'EOT' >testcpp.c
+#define ABC abc
+#define XYZ xyz
+ABC.XYZ
+EOT
+cd ..
+if test ! -f cppstdin; then
+       if test "X$osname" = "Xaix" -a "X$gccversion" = X; then
+               # AIX cc -E doesn't show the absolute headerfile
+               # locations but we'll cheat by using the -M flag.
+               echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+       else
+               echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
+       fi
+else
+       echo "Keeping your $hint cppstdin wrapper."
+fi
+chmod 755 cppstdin
+wrapper=`pwd`/cppstdin
+ok='false'
+cd UU
+
+if $test "X$cppstdin" != "X" && \
+       $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+then
+       echo "You used to use $cppstdin $cppminus so we'll use that again."
+       case "$cpprun" in
+       '') echo "But let's see if we can live without a wrapper..." ;;
+       *)
+               if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
+                       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+               then
+                       echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
+                       ok='true'
+               else
+                       echo "(However, $cpprun $cpplast does not work, let's see...)"
+               fi
+               ;;
+       esac
+else
+       case "$cppstdin" in
+       '') ;;
+       *)
+               echo "Good old $cppstdin $cppminus does not seem to be of any help..."
+               ;;
+       esac
+fi
+
+if $ok; then
+       : nothing
+elif echo 'Maybe "'"$cc"' -E" will work...'; \
+       $cc -E <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "Yup, it does."
+       x_cpp="$cc -E"
+       x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
+       $cc -E - <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "Yup, it does."
+       x_cpp="$cc -E"
+       x_minus='-';
+elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
+       $cc -P <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "Yipee, that works!"
+       x_cpp="$cc -P"
+       x_minus='';
+elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
+       $cc -P - <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "At long last!"
+       x_cpp="$cc -P"
+       x_minus='-';
+elif echo 'No such luck, maybe "'$cpp'" will work...'; \
+       $cpp <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "It works!"
+       x_cpp="$cpp"
+       x_minus='';
+elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
+       $cpp - <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "Hooray, it works!  I was beginning to wonder."
+       x_cpp="$cpp"
+       x_minus='-';
+elif echo 'Uh-uh.  Time to get fancy.  Trying a wrapper...'; \
+       $wrapper <testcpp.c >testcpp.out 2>&1; \
+       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+       x_cpp="$wrapper"
+       x_minus=''
+       echo "Eureka!"
+else
+       dflt=''
+       rp="No dice.  I can't find a C preprocessor.  Name one:"
+       . ./myread
+       x_cpp="$ans"
+       x_minus=''
+       $x_cpp <testcpp.c >testcpp.out 2>&1
+       if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
+               echo "OK, that will do." >&4
+       else
+echo "Sorry, I can't get that to work.  Go find one and rerun Configure." >&4
+               exit 1
+       fi
+fi
+
+case "$ok" in
+false)
+       cppstdin="$x_cpp"
+       cppminus="$x_minus"
+       cpprun="$x_cpp"
+       cpplast="$x_minus"
+       set X $x_cpp
+       shift
+       case "$1" in
+       "$cpp")
+               echo "Perhaps can we force $cc -E using a wrapper..."
+               if $wrapper <testcpp.c >testcpp.out 2>&1; \
+                       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
+               then
+                       echo "Yup, we can."
+                       cppstdin="$wrapper"
+                       cppminus='';
+               else
+                       echo "Nope, we'll have to live without it..."
+               fi
+               ;;
+       esac
+       case "$cpprun" in
+       "$wrapper")
+               cpprun=''
+               cpplast=''
+               ;;
+       esac
+       ;;
+esac
+
+case "$cppstdin" in
+"$wrapper"|'cppstdin') ;;
+*) $rm -f $wrapper;;
+esac
+$rm -f testcpp.c testcpp.out
+
 : Set private lib path
 case "$plibpth" in
 '') if ./mips; then
@@ -4529,62 +4554,6 @@ n) echo "OK, that should do.";;
 esac
 $rm -f try try.* core
 
-: define an is-a-typedef? function
-typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
-       $rm -f temp.c;
-       for inc in $inclist; do
-               echo "#include <$inc>" >>temp.c;
-       done;
-       echo "#ifdef $type" >> temp.c;
-       echo "printf(\"We have $type\");" >> temp.c;
-       echo "#endif" >> temp.c;
-       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
-       if $contains $type temp.E >/dev/null 2>&1; then
-               eval "$var=\$type";
-       else
-               eval "$var=\$def";
-       fi;
-       $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
-: define an is-a-typedef? function that prompts if the type is not available.
-typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
-case "$inclist" in
-"") inclist="sys/types.h";;
-esac;
-eval "varval=\$$var";
-case "$varval" in
-"")
-       $rm -f temp.c;
-       for inc in $inclist; do
-               echo "#include <$inc>" >>temp.c;
-       done;
-       echo "#ifdef $type" >> temp.c;
-       echo "printf(\"We have $type\");" >> temp.c;
-       echo "#endif" >> temp.c;
-       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
-       echo " " ;
-       echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
-       if $contains $type temp.E >/dev/null 2>&1; then
-               echo "$type found." >&4;
-               eval "$var=\$type";
-       else
-               echo "$type NOT found." >&4;
-               dflt="$def";
-               . ./myread ;
-               eval "$var=\$ans";
-       fi;
-       $rm -f temp.?;;
-*) eval "$var=\$varval";;
-esac'
-
 : define a shorthand compile call
 compile='
 mc_file=$1;
@@ -4631,205 +4600,16 @@ EOM
                intsize="$ans"
                dflt=$intsize
                rp="What is the size of a long integer (in bytes)?"
-               . ./myread
-               longsize="$ans"
-               dflt=2
-               rp="What is the size of a short integer (in bytes)?"
-               . ./myread
-               shortsize="$ans"
-       fi
-       ;;
-esac
-$rm -f try try.*
-
-: 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
-eval $typedef_ask
-
-echo " "
-echo "Checking to see how big your file offsets are..." >&4
-$cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
-}
-EOCP
-set try
-if eval $compile_ok; then
-       lseeksize=`$run ./try`
-       echo "Your file offsets are $lseeksize bytes long."
-else
-       dflt=$longsize
-       echo " "
-       echo "(I can't seem to compile the test program.  Guessing...)"
-       rp="What is the size of your file offsets (in bytes)?"
-       . ./myread
-       lseeksize="$ans"
-fi
-$rm -f try.c try
-
-: see what type file positions are declared as in the library
-rp="What is the type for file position used by fsetpos()?"
-set fpos_t fpostype long stdio.h sys/types.h
-eval $typedef_ask
-
-echo " "
-case "$fpostype" in
-*_t) zzz="$fpostype"   ;;
-*)   zzz="fpos_t"      ;;
-esac
-echo "Checking the size of $zzz..." >&4 
-cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
-    printf("%d\n", (int)sizeof($fpostype));
-    exit(0);
-}
-EOCP
-set try
-if eval $compile_ok; then
-       yyy=`$run ./try`
-       case "$yyy" in
-       '')     fpossize=4
-               echo "(I can't execute the test program--guessing $fpossize.)" >&4
-               ;;
-       *)      fpossize=$yyy
-               echo "Your $zzz is $fpossize bytes long."
-               ;;
-       esac
-else
-       dflt="$longsize"
-       echo " " >&4
-       echo "(I can't compile the test program.  Guessing...)" >&4
-       rp="What is the size of your file positions (in bytes)?"
-       . ./myread
-       fpossize="$ans"
-fi
-
-
-
-# Backward compatibility (uselfs is deprecated).
-case "$uselfs" in
-"$define"|true|[yY]*)
-       cat <<EOM >&4
-
-*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
-EOM
-       uselargefiles="$define"
-       ;;
-esac                          
-
-case "$lseeksize:$fpossize" in
-8:8) cat <<EOM
-
-You can have files larger than 2 gigabytes.
-EOM
-   val="$define" ;;
-*)    case "$uselargefiles" in
-   "$undef"|false|[nN]*) dflt='n' ;;
-   *)  dflt='y' ;;
-   esac
-   cat <<EOM
-
-Perl can be built to understand large files (files larger than 2 gigabytes)
-on some systems.  To do so, Configure can be run with -Duselargefiles.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-   rp='Try to understand large files, if available?'
-   . ./myread
-   case "$ans" in
-   y|Y)        val="$define" ;;
-   *)          val="$undef"  ;;
-   esac
-   ;;
-esac
-set uselargefiles
-eval $setvar
-case "$uselargefiles" in
-"$define")
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a large files perl is to be built,
-: we may need to set or change some other defaults.
-       if $test -f uselargefiles.cbu; then
-               echo "Your platform has some specific hints for large file builds, using them..."
-               . ./uselargefiles.cbu
-               echo " "
-               echo "Rechecking to see how big your file offsets are..." >&4
-               $cat >try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main()
-{
-    printf("%d\n", (int)sizeof($lseektype));
-    return(0); 
-}
-EOCP
-               set try
-               if eval $compile_ok; then
-                       lseeksize=`$run ./try`
-                       $echo "Your file offsets are now $lseeksize bytes long."
-               else
-                       dflt="$lseeksize"
-                       echo " "
-                       echo "(I can't seem to compile the test program.  Guessing...)"
-                       rp="What is the size of your file offsets (in bytes)?"
-                       . ./myread
-                       lseeksize="$ans"
-               fi
-               case "$fpostype" in
-               *_t) zzz="$fpostype"    ;;
-               *)   zzz="fpos_t"       ;;
-               esac
-               $echo $n "Rechecking the size of $zzz...$c" >&4 
-               $cat > try.c <<EOCP
-#include <sys/types.h>
-#include <stdio.h>
-int main() {
-    printf("%d\n", (int)sizeof($fpostype));
-    exit(0);
-}
-EOCP
-               set try
-               if eval $compile_ok; then
-                       yyy=`$run ./try`
-                       dflt="$lseeksize"
-                       case "$yyy" in
-                       '')     echo " "
-                               echo "(I can't execute the test program--guessing $fpossize.)" >&4
-                               ;;
-                       *)      fpossize=$yyy
-                               echo " $fpossize bytes." >&4
-                               ;;
-                       esac
-               else
-                       dflt="$fpossize"
-                       echo " "
-                       echo "(I can't compile the test program.  Guessing...)" >&4
-                       rp="What is the size of your file positions (in bytes)?"
-                       . ./myread
-                       fpossize="$ans"
-               fi
-               $rm -f try.c try
+               . ./myread
+               longsize="$ans"
+               dflt=2
+               rp="What is the size of a short integer (in bytes)?"
+               . ./myread
+               shortsize="$ans"
        fi
        ;;
 esac
-
-
-case "$usemorebits" in
-"$define"|true|[yY]*)
-       use64bitint="$define"
-       uselongdouble="$define"
-       usemorebits="$define"
-       ;;
-*)     usemorebits="$undef"
-       ;;
-esac
+$rm -f try try.*
 
 : check for void type
 echo " "
@@ -8246,6 +8026,240 @@ else
        installsitebin="$sitebinexp"
 fi
 
+: define an is-a-typedef? function
+typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+       $rm -f temp.c;
+       for inc in $inclist; do
+               echo "#include <$inc>" >>temp.c;
+       done;
+       echo "#ifdef $type" >> temp.c;
+       echo "printf(\"We have $type\");" >> temp.c;
+       echo "#endif" >> temp.c;
+       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+       if $contains $type temp.E >/dev/null 2>&1; then
+               eval "$var=\$type";
+       else
+               eval "$var=\$def";
+       fi;
+       $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: define an is-a-typedef? function that prompts if the type is not available.
+typedef_ask='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
+case "$inclist" in
+"") inclist="sys/types.h";;
+esac;
+eval "varval=\$$var";
+case "$varval" in
+"")
+       $rm -f temp.c;
+       for inc in $inclist; do
+               echo "#include <$inc>" >>temp.c;
+       done;
+       echo "#ifdef $type" >> temp.c;
+       echo "printf(\"We have $type\");" >> temp.c;
+       echo "#endif" >> temp.c;
+       $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
+       echo " " ;
+       echo "$rp" | $sed -e "s/What is/Looking for/" -e "s/?/./";
+       if $contains $type temp.E >/dev/null 2>&1; then
+               echo "$type found." >&4;
+               eval "$var=\$type";
+       else
+               echo "$type NOT found." >&4;
+               dflt="$def";
+               . ./myread ;
+               eval "$var=\$ans";
+       fi;
+       $rm -f temp.?;;
+*) eval "$var=\$varval";;
+esac'
+
+: 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
+eval $typedef_ask
+
+echo " "
+echo "Checking to see how big your file offsets are..." >&4
+$cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof($lseektype));
+    return(0); 
+}
+EOCP
+set try
+if eval $compile_ok; then
+       lseeksize=`$run ./try`
+       echo "Your file offsets are $lseeksize bytes long."
+else
+       dflt=$longsize
+       echo " "
+       echo "(I can't seem to compile the test program.  Guessing...)"
+       rp="What is the size of your file offsets (in bytes)?"
+       . ./myread
+       lseeksize="$ans"
+fi
+$rm -f try.c try
+
+: see what type file positions are declared as in the library
+rp="What is the type for file position used by fsetpos()?"
+set fpos_t fpostype long stdio.h sys/types.h
+eval $typedef_ask
+
+echo " "
+case "$fpostype" in
+*_t) zzz="$fpostype"   ;;
+*)   zzz="fpos_t"      ;;
+esac
+echo "Checking the size of $zzz..." >&4 
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($fpostype));
+    exit(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+       yyy=`$run ./try`
+       case "$yyy" in
+       '')     fpossize=4
+               echo "(I can't execute the test program--guessing $fpossize.)" >&4
+               ;;
+       *)      fpossize=$yyy
+               echo "Your $zzz is $fpossize bytes long."
+               ;;
+       esac
+else
+       dflt="$longsize"
+       echo " " >&4
+       echo "(I can't compile the test program.  Guessing...)" >&4
+       rp="What is the size of your file positions (in bytes)?"
+       . ./myread
+       fpossize="$ans"
+fi
+
+
+
+# Backward compatibility (uselfs is deprecated).
+case "$uselfs" in
+"$define"|true|[yY]*)
+       cat <<EOM >&4
+
+*** Configure -Duselfs is deprecated, using -Duselargefiles instead.
+EOM
+       uselargefiles="$define"
+       ;;
+esac                          
+
+case "$lseeksize:$fpossize" in
+8:8) cat <<EOM
+
+You can have files larger than 2 gigabytes.
+EOM
+   val="$define" ;;
+*)    case "$uselargefiles" in
+   "$undef"|false|[nN]*) dflt='n' ;;
+   *)  dflt='y' ;;
+   esac
+   cat <<EOM
+
+Perl can be built to understand large files (files larger than 2 gigabytes)
+on some systems.  To do so, Configure can be run with -Duselargefiles.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+   rp='Try to understand large files, if available?'
+   . ./myread
+   case "$ans" in
+   y|Y)        val="$define" ;;
+   *)          val="$undef"  ;;
+   esac
+   ;;
+esac
+set uselargefiles
+eval $setvar
+case "$uselargefiles" in
+"$define")
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a large files perl is to be built,
+: we may need to set or change some other defaults.
+       if $test -f uselargefiles.cbu; then
+               echo "Your platform has some specific hints for large file builds, using them..."
+               . ./uselargefiles.cbu
+               echo " "
+               echo "Rechecking to see how big your file offsets are..." >&4
+               $cat >try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main()
+{
+    printf("%d\n", (int)sizeof($lseektype));
+    return(0); 
+}
+EOCP
+               set try
+               if eval $compile_ok; then
+                       lseeksize=`$run ./try`
+                       $echo "Your file offsets are now $lseeksize bytes long."
+               else
+                       dflt="$lseeksize"
+                       echo " "
+                       echo "(I can't seem to compile the test program.  Guessing...)"
+                       rp="What is the size of your file offsets (in bytes)?"
+                       . ./myread
+                       lseeksize="$ans"
+               fi
+               case "$fpostype" in
+               *_t) zzz="$fpostype"    ;;
+               *)   zzz="fpos_t"       ;;
+               esac
+               $echo $n "Rechecking the size of $zzz...$c" >&4 
+               $cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($fpostype));
+    exit(0);
+}
+EOCP
+               set try
+               if eval $compile_ok; then
+                       yyy=`$run ./try`
+                       dflt="$lseeksize"
+                       case "$yyy" in
+                       '')     echo " "
+                               echo "(I can't execute the test program--guessing $fpossize.)" >&4
+                               ;;
+                       *)      fpossize=$yyy
+                               echo " $fpossize bytes." >&4
+                               ;;
+                       esac
+               else
+                       dflt="$fpossize"
+                       echo " "
+                       echo "(I can't compile the test program.  Guessing...)" >&4
+                       rp="What is the size of your file positions (in bytes)?"
+                       . ./myread
+                       fpossize="$ans"
+               fi
+               $rm -f try.c try
+       fi
+       ;;
+esac
+
 case "$vendorprefix" in
 '')    d_vendorbin="$undef"
        vendorbin=''
@@ -10886,6 +10900,14 @@ eval $inlibc
 set nice d_nice
 eval $inlibc
 
+: see if this is a langinfo.h system
+set langinfo.h i_langinfo
+eval $inhdr
+
+: see if nl_langinfo exists
+set nl_langinfo d_nl_langinfo
+eval $inlibc
+
 : check for length of character
 echo " "
 case "$charsize" in
@@ -16213,7 +16235,7 @@ for xxx in $known_extensions ; do
                case "$i_ndbm" in
                $define)
                    case "$osname-$use64bitint" in
-                   hpux-define)
+                   cygwin-*|hpux-define)
                        case "$libs" in
                        *-lndbm*) avail_ext="$avail_ext $xxx" ;;
                        esac
@@ -16227,7 +16249,7 @@ for xxx in $known_extensions ; do
                case "${i_dbm}${i_rpcsvcdbm}" in
                *"${define}"*)
                    case "$osname-$use64bitint" in
-                   hpux-define)
+                   cygwin-*|hpux-define)
                        case "$libs" in
                        *-ldbm*) avail_ext="$avail_ext $xxx" ;;
                        esac
@@ -16741,6 +16763,7 @@ d_msync='$d_msync'
 d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
 d_nice='$d_nice'
+d_nl_langinfo='$d_nl_langinfo'
 d_nv_preserves_uv='$d_nv_preserves_uv'
 d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits'
 d_off64_t='$d_off64_t'
@@ -16968,6 +16991,7 @@ i_grp='$i_grp'
 i_iconv='$i_iconv'
 i_ieeefp='$i_ieeefp'
 i_inttypes='$i_inttypes'
+i_langinfo='$i_langinfo'
 i_libutil='$i_libutil'
 i_limits='$i_limits'
 i_locale='$i_locale'
index 6e1805f..0a9f2c3 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,28 +1,28 @@
 apollo/netinet/in.h    Apollo DomainOS port: C header file frontend
-Artistic                       The "Artistic License"
-AUTHORS                                Contact info for contributors
+Artistic               The "Artistic License"
+AUTHORS                        Contact info for contributors
 av.c                   Array value code
 av.h                   Array value header
 beos/nm.c              BeOS port
 bytecode.pl            Produces ext/ByteLoader/byterun.h, ext/ByteLoader/byterun.c and ext/B/Asmdata.pm
 cc_runtime.h           Macros need by runtime of compiler-generated code
 cflags.SH              A script that emits C compilation flags per file
-Changes                                Differences from previous version
-Changes5.000                   Differences between 4.x and 5.000
-Changes5.001                   Differences between 5.000 and 5.001
-Changes5.002                   Differences between 5.001 and 5.002
-Changes5.003                   Differences between 5.002 and 5.003
-Changes5.004                   Differences between 5.003 and 5.004
-Changes5.005                   Differences between 5.004 and 5.005
-Changes5.6                     Differences between 5.005 and 5.6
+Changes                        Differences from previous version
+Changes5.000           Differences between 4.x and 5.000
+Changes5.001           Differences between 5.000 and 5.001
+Changes5.002           Differences between 5.001 and 5.002
+Changes5.003           Differences between 5.002 and 5.003
+Changes5.004           Differences between 5.003 and 5.004
+Changes5.005           Differences between 5.004 and 5.005
+Changes5.6             Differences between 5.005 and 5.6
 configpm               Produces lib/Config.pm
-Configure                      Portability tool
+Configure              Portability tool
 configure.com          Configure-equivalent for VMS
 configure.gnu          Crude emulation of GNU configure
 config_h.SH            Produces config.h
 cop.h                  Control operator header
-Copying                                The GNU General Public License
-Cross/README                   Cross-compilation
+Copying                        The GNU General Public License
+Cross/README           Cross-compilation
 cv.h                   Code value header
 cygwin/cygwin.c                Additional code for Cygwin port
 cygwin/ld2.in          ld wrapper template for Cygwin port
@@ -279,6 +279,7 @@ ext/Encode/Encode/shiftjis.enc      Encoding tables
 ext/Encode/Encode/symbol.enc   Encoding tables
 ext/Encode/Encode/symbol.ucm   Encoding tables
 ext/Encode/Encode/Tcl.pm       Handler for .enc encodings
+ext/Encode/Encode/Tcl.t        See if Encode::Tcl works
 ext/Encode/Makefile.PL Encode extension
 ext/Encode/Todo                Encode extension
 ext/Errno/ChangeLog    Errno perl module change log
@@ -385,6 +386,7 @@ ext/MIME/Base64/t/unicode.t See whether MIME::Base64 works
 ext/NDBM_File/hints/cygwin.pl  Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/dec_osf.pl Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/dynixptx.pl        Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/linux.pl   Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/sco.pl     Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/solaris.pl Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/svr4.pl    Hint for NDBM_File for named architecture
@@ -404,7 +406,6 @@ ext/ODBM_File/Makefile.PL   ODBM extension makefile writer
 ext/ODBM_File/odbm.t           See if ODBM_File works
 ext/ODBM_File/ODBM_File.pm     ODBM extension Perl module
 ext/ODBM_File/ODBM_File.xs     ODBM extension external subroutines
-ext/ODBM_File/sdbm.t           See if SDBM_File works
 ext/ODBM_File/typemap          ODBM extension interface types
 ext/Opcode/Makefile.PL         Opcode extension makefile writer
 ext/Opcode/Opcode.pm           Opcode extension Perl module
@@ -446,6 +447,7 @@ ext/re/re.xs                        re extension external subroutines
 ext/Safe/safe1.t               See if Safe works
 ext/Safe/safe2.t               See if Safe works
 ext/SDBM_File/Makefile.PL      SDBM extension makefile writer
+ext/SDBM_File/sdbm.t           See if SDBM_File works
 ext/SDBM_File/sdbm/biblio      SDBM kit
 ext/SDBM_File/sdbm/CHANGES     SDBM kit
 ext/SDBM_File/sdbm/COMPARE     SDBM kit
@@ -508,7 +510,7 @@ ext/Sys/Syslog/Syslog.xs    Sys::Syslog extension external subroutines
 ext/Thread/create.tx           Test thread creation
 ext/Thread/die.tx              Test thread die()
 ext/Thread/die2.tx             Test thread die() differently
-ext/Thread/io.tx                       Test threads doing simple I/O
+ext/Thread/io.tx               Test threads doing simple I/O
 ext/Thread/join.tx             Test thread joining
 ext/Thread/join2.tx            Test thread joining differently
 ext/Thread/list.tx             Test getting list of all threads
@@ -533,6 +535,7 @@ ext/Thread/unsync2.tx               Test thread implicit synchronisation
 ext/Thread/unsync3.tx          Test thread implicit synchronisation
 ext/Thread/unsync4.tx          Test thread implicit synchronisation
 ext/Time/HiRes/Changes         Time::HiRes extension
+ext/Time/HiRes/hints/sco.pl    Hints for Time::HiRes for named architecture
 ext/Time/HiRes/HiRes.pm                Time::HiRes extension
 ext/Time/HiRes/HiRes.t         Test for Time::HiRes
 ext/Time/HiRes/HiRes.xs                Time::HiRes extension
@@ -713,6 +716,8 @@ lib/abbrev.pl                       An abbreviation table builder
 lib/AnyDBM_File.pm             Perl module to emulate dbmopen
 lib/AnyDBM_File.t              See if AnyDBM_File works
 lib/assert.pl                  assertion and panic with stack trace
+lib/Attribute/Handlers/Changes Attribute::Handlers
+lib/Attribute/Handlers/README  Attribute::Handlers
 lib/Attribute/Handlers.pm              Attribute::Handlers
 lib/Attribute/Handlers/demo/demo.pl    Attribute::Handlers demo
 lib/Attribute/Handlers/demo/Demo.pm    Attribute::Handlers demo
@@ -965,6 +970,7 @@ lib/Memoize/Saves.pm                Memoize
 lib/Memoize/SDBM_File.pm       Memoize
 lib/Memoize/Storable.pm                Memoize
 lib/Memoize/t/array.t          Memoize
+lib/Memoize/t/array_confusion.t                Memoize
 lib/Memoize/t/correctness.t    Memoize
 lib/Memoize/t/errors.t         Memoize
 lib/Memoize/t/expire.t         Memoize
@@ -1087,6 +1093,22 @@ lib/termcap.pl                   Perl library supporting termcap usage
 lib/Test.pm                    A simple framework for writing test scripts
 lib/Test/Harness.pm            A test harness
 lib/Test/Harness.t             See if Test::Harness works
+lib/Test/More.pm                More utilities for writing tests
+lib/Test/More/Changes          Test::More changes
+lib/Test/More/t/More.t          Test::More test, basic operation
+lib/Test/More/t/fail-like.t     Test::More test, like() and qr// bug
+lib/Test/More/t/fail.t          Test::More test, failing tests
+lib/Test/More/t/plan_is_noplan.t        Test::More test, noplan
+lib/Test/More/t/skipall.t       Test::More test, skipping all tests
+lib/Test/Simple.pm              Basic utility for writing tests
+lib/Test/Simple/Changes                Test::Simple changes
+lib/Test/Simple/t/exit.t        Test::Simple test, exit codes
+lib/Test/Simple/t/extra.t       Test::Simple test
+lib/Test/Simple/t/fail.t        Test::Simple test, test failures
+lib/Test/Simple/t/missing.t     Test::Simple test, missing tests
+lib/Test/Simple/t/no_plan.t     Test::Simple test, forgot the plan
+lib/Test/Simple/t/plan_is_noplan.t      Test::Simple test, no_plan
+lib/Test/Simple/t/simple.t                              for exit.t
 lib/Test/t/fail.t              See if Test works
 lib/Test/t/mix.t               See if Test works
 lib/Test/t/onfail.t            See if Test works
@@ -1522,6 +1544,7 @@ os2/dl_os2.c                      Addon for dl_open
 os2/Makefile.SHs               Shared library generation for OS/2
 os2/os2.c                      Additional code for OS/2
 os2/os2.sym                    Additional symbols to export
+os2/os2_base.t                 Additional tests for builtin methods
 os2/OS2/ExtAttr/Changes                EA access module
 os2/OS2/ExtAttr/ExtAttr.pm     EA access module
 os2/OS2/ExtAttr/ExtAttr.xs     EA access module
@@ -1841,6 +1864,18 @@ t/lib/st-dump.pl         See if Storable works
 t/lib/strict/refs              Tests of "use strict 'refs'" for strict.t
 t/lib/strict/subs              Tests of "use strict 'subs'" for strict.t
 t/lib/strict/vars              Tests of "use strict 'vars'" for strict.t
+t/lib/Test/More/Catch.pm        Utility module for testing Test::More
+t/lib/Test/Simple/Catch.pm      Utility module for testing Test::Simple
+t/lib/Test/Simple/sample_tests/death.plx                for exit.t
+t/lib/Test/Simple/sample_tests/death_in_eval.plx        for exit.t
+t/lib/Test/Simple/sample_tests/extras.plx               for exit.t
+t/lib/Test/Simple/sample_tests/five_fail.plx            for exit.t
+t/lib/Test/Simple/sample_tests/last_minute_death.plx    for exit.t
+t/lib/Test/Simple/sample_tests/one_fail.plx             for exit.t
+t/lib/Test/Simple/sample_tests/require.plx              for exit.t
+t/lib/Test/Simple/sample_tests/success.plx              for exit.t
+t/lib/Test/Simple/sample_tests/too_few.plx              for exit.t
+t/lib/Test/Simple/sample_tests/two_fail.plx             for exit.t
 t/lib/warnings/1global         Tests of global warnings for warnings.t
 t/lib/warnings/2use            Tests for "use warnings" for warnings.t
 t/lib/warnings/3both           Tests for interaction of $^W and "use warnings"
@@ -1864,6 +1899,7 @@ t/lib/warnings/perly              Tests for perly.y for warnings.t
 t/lib/warnings/pp              Tests for pp.c for warnings.t
 t/lib/warnings/pp_ctl          Tests for pp_ctl.c for warnings.t
 t/lib/warnings/pp_hot          Tests for pp_hot.c for warnings.t
+t/lib/warnings/pp_pack         Tests for pp_pack.c for warnings.t
 t/lib/warnings/pp_sys          Tests for pp_sys.c for warnings.t
 t/lib/warnings/regcomp         Tests for regcomp.c for warnings.t
 t/lib/warnings/regexec         Tests for regexec.c for warnings.t
index af19641..6c031f6 100644 (file)
@@ -1003,7 +1003,7 @@ minitest: miniperl lib/re.pm
        @echo "You may see some irrelevant test failures if you have been unable"
        @echo "to build lib/Config.pm."
        - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
-               && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t pragma/*.t </dev/tty
+               && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t </dev/tty
 
 # Handy way to run perlbug -ok without having to install and run the
 # installed perlbug. We don't re-run the tests here - we trust the user.
index 0914828..7065917 100644 (file)
@@ -342,11 +342,11 @@ NLM_DESCRIPTION = $(NLM_NAME8) for Netware
 !endif
 
 !ifndef NLM_VERSION
-NLM_VERSION    = 1.0.0
+NLM_VERSION    = 5.72.0
 !endif
 
 !ifndef NLM_EXT
-NLM_EXT         = NLM
+NLM_EXT        = NLM
 !endif
 
 !ifndef BUILT
@@ -415,7 +415,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER       = \5.7.1
+INST_VER       = \5.7.2
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -794,8 +794,9 @@ DLL_OBJ             = $(DLL_SRC:.c=.obj)
 X2P_OBJ                = $(X2P_SRC:.c=.obj)
 
 DYNAMIC_EXT    = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
-               Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob 
-               
+               Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
+               Storable/Storable List/Util MIME/Base64/Base64 XS/Typemap/Typemap
+
 STATIC_EXT     = DynaLoader
 NONXS_EXT      = Errno
 
index 29168ea..a8455f6 100644 (file)
@@ -233,6 +233,7 @@ d_msync='undef'
 d_munmap='undef'
 d_mymalloc='undef'
 d_nice='undef'
+d_nl_langinfo='undef'
 d_nv_preserves_uv='define'
 d_off64_t='undef'
 d_old_pthread_create_joinable='undef'
@@ -435,6 +436,7 @@ i_grp='undef'
 i_iconv='undef'
 i_ieeefp='undef'
 i_inttypes='undef'
+i_langinfo='undef'
 i_limits='define'
 i_locale='define'
 i_machcthr='undef'
index e604111..ea927dd 100644 (file)
  *     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.7.1\\lib\\NetWare-x86-multi-thread"               /**/
+#define ARCHLIB "c:\\perl\\5.7.2\\lib\\NetWare-x86-multi-thread"               /**/
 /*#define ARCHLIB_EXP ""       /**/
 
 /* ARCHNAME:
  *     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.7.1\\bin\\NetWare-x86-multi-thread"   /**/
-#define BIN_EXP "c:\\perl\\5.7.1\\bin\\NetWare-x86-multi-thread"       /**/
+#define BIN "c:\\perl\\5.7.2\\bin\\NetWare-x86-multi-thread"   /**/
+#define BIN_EXP "c:\\perl\\5.7.2\\bin\\NetWare-x86-multi-thread"       /**/
 
 /* PERL_BINCOMPAT_5005:
  *     This symbol, if defined, indicates that this version of Perl should be
  *     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.7.1\\lib\\NetWare-x86-multi-thread"                /**/
+#define SITEARCH "c:\\perl\\site\\5.7.2\\lib\\NetWare-x86-multi-thread"                /**/
 /*#define SITEARCH_EXP ""      /**/
 
 /* SITELIB:
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "c:\\perl\\site\\5.7.1\\lib"           /**/
-#define SITELIB_EXP (nw_get_sitelib("5.7.1"))  /**/
+#define SITELIB "c:\\perl\\site\\5.7.2\\lib"           /**/
+#define SITELIB_EXP (nw_get_sitelib("5.7.2"))  /**/
 #define SITELIB_STEM ""                /**/
 
 /* Size_t_size:
 /* PERL_XS_APIVERSION:
  *     This variable contains the version of the oldest perl binary
  *     compatible with the present perl.  perl.c:incpush() and
- *     lib/lib.pm will automatically search in c:\\perl\\site\\5.7.1\\lib\\NetWare-x86-multi-thread for older
+ *     lib/lib.pm will automatically search in c:\\perl\\site\\5.7.2\\lib\\NetWare-x86-multi-thread for older
  *     directories across major versions back to xs_apiversion.
  *     This is only useful if you have a perl library directory tree
  *     structured like the default one.
  *     compatible with the present perl.  (That is, pure perl modules
  *     written for pm_apiversion will still work for the current
  *     version).  perl.c:incpush() and lib/lib.pm will automatically
- *     search in c:\\perl\\site\\5.7.1\\lib for older directories across major versions
+ *     search in c:\\perl\\site\\5.7.2\\lib for older directories across major versions
  *     back to pm_apiversion.  This is only useful if you have a perl
  *     library directory tree structured like the default one.  The
  *     versioned site_perl library was introduced in 5.005, so that's
index e32fdb6..a701c65 100644 (file)
@@ -838,6 +838,15 @@ Perl_nw5_init(int *argcp, char ***argvp)
     MALLOC_INIT;
 }
 
+#ifdef USE_ITHREADS
+PerlInterpreter *
+perl_clone_host(PerlInterpreter* proto_perl, UV flags)
+{
+       // Perl Clone is not implemented on NetWare.
+    return NULL;
+}
+#endif
+
 // Some more functions:
 
 char *
index 0f6c736..5a9ce47 100644 (file)
@@ -8,11 +8,11 @@
  */
 
 /*
- * FILENAME            :       nw5sck.c
- * DESCRIPTION :       Socket related functions.
- * Author              :       SGP
- * Date                        :       January 2001.
- *
+ * FILENAME     :  nw5sck.c
+ * DESCRIPTION :  Socket related functions.
+ * Author              :  SGP
+ * Date                        :  January 2001.
+ * Date Modified:  June 26th 2001.
  */
 
 
 #include <fcntl.h>
 #include <sys/stat.h>
 
-static struct servent* nw_savecopyservent(struct servent*d,
-                                             struct servent*s,
-                                             const char *proto);
-
-
 u_long
 nw_htonl(u_long hostlong)
 {
@@ -171,28 +166,14 @@ nw_getprotobynumber(int num)
 struct servent *
 nw_getservbyname(const char *name, const char *proto)
 {
-       dTHXo; 
-    struct servent *r;
-
-    r = getservbyname((char*)name, (char*)proto);
-    if (r) {
-               /*r = nw_savecopyservent(&nw_servent, r, proto);*/
-    }
-    return r;
+    return (struct servent *)getservbyname((char*)name, (char*)proto);
 }
 
 
 struct servent *
 nw_getservbyport(int port, const char *proto)
 {
-    dTHXo; 
-    struct servent *r;
-
-    r = getservbyport(port, (char*)proto);
-    if (r) {
-               //r = nw_savecopyservent(&nw_servent, r, proto);
-    }
-    return r;
+    return (struct servent *)getservbyport(port, (char*)proto);
 }
 
 struct servent *
@@ -228,7 +209,7 @@ nw_setservent(int stayopen)
 int
 nw_setsockopt(SOCKET s, int level, int optname, const char* optval, int optlen)
 {
-       return setsockopt(s, level, optname, optval, optlen);
+       return setsockopt(s, level, optname, (char*)optval, optlen);
 }
 
 int
@@ -249,25 +230,6 @@ nw_inet_addr(const char *cp)
     return inet_addr((char*)cp);
 }
 
-static struct servent*
-nw_savecopyservent(struct servent*d, struct servent*s, const char *proto)
-{
-    d->s_name = s->s_name;
-    d->s_aliases = s->s_aliases;
-    d->s_port = s->s_port;
-#ifndef __BORLANDC__   /* Buggy on Win95 and WinNT-with-Borland-WSOCK */
-    if (/*!IsWin95() && */s->s_proto && strlen(s->s_proto))
-       d->s_proto = s->s_proto;
-    else
-#endif
-    if (proto && strlen(proto))
-       d->s_proto = (char *)proto;
-    else
-       d->s_proto = "tcp";
-   
-    return d;
-}
-
 SOCKET
 nw_socket(int af, int type, int protocol)
 {
@@ -276,7 +238,6 @@ nw_socket(int af, int type, int protocol)
 #ifndef USE_SOCKETS_AS_HANDLES
     s = socket(af, type, protocol);
 #else
-    //StartSockets();
     if((s = socket(af, type, protocol)) == INVALID_SOCKET)
        //errno = WSAGetLastError();
     else
index 4216dc8..b32493f 100644 (file)
@@ -8,10 +8,11 @@
  */
 
 /*
- * FILENAME            :       nw5sck.h
- * DESCRIPTION :       Socket related functions.
- * Author              :       SGP
- * Date                        :       January 2001.
+ * FILENAME     :  nw5sck.h
+ * DESCRIPTION  :  Socket related functions.
+ * Author       :  SGP
+ * Date         :  January 2001.
+ * Date Modified:  June 26th 2001.
  *
  */
 
@@ -43,7 +44,6 @@ struct nwsockent local_context;
 # undef getnetbyname
 # undef gethostbyaddr
 # undef getprotobyname
-# undef getprotobyname
 # undef getservbyname
 # undef getservbyport
 # undef getservent
@@ -65,7 +65,6 @@ struct nwsockent local_context;
 # define getnetbyaddr(net,typ) NWgetnetbyaddr(&local_context,net,typ)
 # define getnetbyname(name)    NWgetnetbyname(&local_context,name)
 # define getprotobyname(name)  NWgetprotobyname(&local_context,name)
-# define getprotobyname(name)  NWgetprotobyname(&local_context,name)
 # define getservbyname(n,p)    NWgetservbyname(&local_context,n,p)
 # define getservbyport(n,p)    NWgetservbyport(&local_context,n,p)
 # define getservent()          NWgetservent(&local_context)
index 90b77a9..bc97b11 100644 (file)
@@ -7,12 +7,13 @@
  */
 
 /*
- * FILENAME            :       nwperlsys.c
- * DESCRIPTION :       Contains the platform specific functions calls
+ * FILENAME     :   nwperlsys.c
+ * DESCRIPTION  :   Contains calls to Perl APIs and
+ *                  utility functions calls
  *                  
- * Author              :       SGP
- * Date Created :      June 12th 2001.
- * Date Modified:
+ * Author       :   SGP
+ * Date Created :   June 12th 2001.
+ * Date Modified:   June 26th 2001.
  */
 
 #include "EXTERN.h"
 
 #ifdef PERL_IMPLICIT_SYS
 
-#include "nw5iop.h"
-#include <fcntl.h>
-
-
-#include "win32ish.h"
-
-START_EXTERN_C
-extern int do_spawn2(char *cmd, int exectype);
-extern int do_aspawn(void *vreally, void **vmark, void **vsp);
-extern void Perl_init_os_extras(void);
-extern BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
-extern BOOL fnGetHashListAddrs(void *addrs, BOOL *dontTouchHashList);
-END_EXTERN_C
-
-//Includes iperlsys.h and function definitions
-#include "nwperlsys.h"
-
-/* IPerlStdio  - Stdio functions - Begin ================================================*/
-
-FILE*
-PerlStdIOStdin(struct IPerlStdIO* piPerl)
-{
-    return nw_stdin();
-}
-
-FILE*
-PerlStdIOStdout(struct IPerlStdIO* piPerl)
-{
-    return nw_stdout();
-}
-
-FILE*
-PerlStdIOStderr(struct IPerlStdIO* piPerl)
-{
-    return nw_stderr();
-}
-
-FILE*
-PerlStdIOOpen(struct IPerlStdIO* piPerl, const char *path, const char *mode)
-{
-    return nw_fopen(path, mode);
-}
-
-int
-PerlStdIOClose(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_fclose(pf);
-}
-
-int
-PerlStdIOEof(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_feof(pf);
-}
-
-int
-PerlStdIOError(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_ferror(pf);
-}
-
-void
-PerlStdIOClearerr(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    nw_clearerr(pf);
-}
-
-int
-PerlStdIOGetc(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_getc(pf);
-}
-
-char*
-PerlStdIOGetBase(struct IPerlStdIO* piPerl, FILE* pf)
-{
-#ifdef FILE_base
-    FILE *f = pf;
-    return FILE_base(f);
-#else
-    return Nullch;
-#endif
-}
-
-int
-PerlStdIOGetBufsiz(struct IPerlStdIO* piPerl, FILE* pf)
-{
-#ifdef FILE_bufsiz
-    FILE *f = pf;
-    return FILE_bufsiz(f);
-#else
-    return (-1);
-#endif
-}
-
-int
-PerlStdIOGetCnt(struct IPerlStdIO* piPerl, FILE* pf)
-{
-#ifdef USE_STDIO_PTR
-    FILE *f = pf;
-    return FILE_cnt(f);
-#else
-    return (-1);
-#endif
-}
-
-char*
-PerlStdIOGetPtr(struct IPerlStdIO* piPerl, FILE* pf)
-{
-#ifdef USE_STDIO_PTR
-    FILE *f = pf;
-    return FILE_ptr(f);
-#else
-    return Nullch;
-#endif
-}
-
-char*
-PerlStdIOGets(struct IPerlStdIO* piPerl, FILE* pf, char* s, int n)
-{
-    return nw_fgets(s, n, pf);
-}
-
-int
-PerlStdIOPutc(struct IPerlStdIO* piPerl, FILE* pf, int c)
-{
-    return nw_fputc(c, pf);
-}
-
-int
-PerlStdIOPuts(struct IPerlStdIO* piPerl, FILE* pf, const char *s)
-{
-    return nw_fputs(s, pf);
-}
-
-int
-PerlStdIOFlush(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_fflush(pf);
-}
-
-int
-PerlStdIOUngetc(struct IPerlStdIO* piPerl, int c, FILE* pf)
-{
-    return nw_ungetc(c, pf);
-}
-
-int
-PerlStdIOFileno(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_fileno(pf);
-}
-
-FILE*
-PerlStdIOFdopen(struct IPerlStdIO* piPerl, int fd, const char *mode)
-{
-    return nw_fdopen(fd, mode);
-}
-
-FILE*
-PerlStdIOReopen(struct IPerlStdIO* piPerl, const char*path, const char*mode, FILE* pf)
-{
-    return nw_freopen(path, mode, pf);
-}
-
-SSize_t
-PerlStdIORead(struct IPerlStdIO* piPerl, void *buffer, Size_t size, Size_t count, FILE* pf)
-{
-    return nw_fread(buffer, size, count, pf);
-}
-
-SSize_t
-PerlStdIOWrite(struct IPerlStdIO* piPerl, const void *buffer, Size_t size, Size_t count, FILE* pf)
-{
-    return nw_fwrite(buffer, size, count, pf);
-}
-
-void
-PerlStdIOSetBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer)
-{
-    nw_setbuf(pf, buffer);
-}
-
-int
-PerlStdIOSetVBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer, int type, Size_t size)
-{
-    return nw_setvbuf(pf, buffer, type, size);
-}
-
-void
-PerlStdIOSetCnt(struct IPerlStdIO* piPerl, FILE* pf, int n)
-{
-#ifdef STDIO_CNT_LVALUE
-    FILE *f = pf;
-    FILE_cnt(f) = n;
-#endif
-}
-
-void
-PerlStdIOSetPtr(struct IPerlStdIO* piPerl, FILE* pf, char * ptr)
-{
-#ifdef STDIO_PTR_LVALUE
-    FILE *f = pf;
-    FILE_ptr(f) = ptr;
-#endif
-}
-
-void
-PerlStdIOSetlinebuf(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    nw_setvbuf(pf, NULL, _IOLBF, 0);
-}
-
-int
-PerlStdIOPrintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format,...)
-{
-    va_list(arglist);
-    va_start(arglist, format);
-    return nw_vfprintf(pf, format, arglist);
-}
-
-int
-PerlStdIOVprintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format, va_list arglist)
-{
-    return nw_vfprintf(pf, format, arglist);
-}
-
-long
-PerlStdIOTell(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    return nw_ftell(pf);
-}
-
-int
-PerlStdIOSeek(struct IPerlStdIO* piPerl, FILE* pf, off_t offset, int origin)
-{
-    return nw_fseek(pf, offset, origin);
-}
-
-void
-PerlStdIORewind(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    nw_rewind(pf);
-}
-
-FILE*
-PerlStdIOTmpfile(struct IPerlStdIO* piPerl)
-{
-    return nw_tmpfile();
-}
-
-int
-PerlStdIOGetpos(struct IPerlStdIO* piPerl, FILE* pf, Fpos_t *p)
-{
-    return nw_fgetpos(pf, p);
-}
-
-int
-PerlStdIOSetpos(struct IPerlStdIO* piPerl, FILE* pf, const Fpos_t *p)
-{
-    return nw_fsetpos(pf, p);
-}
-
-void
-PerlStdIOInit(struct IPerlStdIO* piPerl)
-{
-}
-
-void
-PerlStdIOInitOSExtras(struct IPerlStdIO* piPerl)
-{
-    Perl_init_os_extras();
-}
-
-
-int
-PerlStdIOOpenOSfhandle(struct IPerlStdIO* piPerl, long osfhandle, int flags)
-{
-    return nw_open_osfhandle(osfhandle, flags);
-}
-
-int
-PerlStdIOGetOSfhandle(struct IPerlStdIO* piPerl, int filenum)
-{
-    return nw_get_osfhandle(filenum);
-}
-
-FILE*
-PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf)
-{
-    FILE* pfdup=NULL;
-    fpos_t pos=0;
-    char mode[3]={'\0'};
-    int fileno = nw_dup(nw_fileno(pf));
-
-    /* open the file in the same mode */
-    if(((FILE*)pf)->_flag & _IOREAD) {
-       mode[0] = 'r';
-       mode[1] = 0;
-    }
-    else if(((FILE*)pf)->_flag & _IOWRT) {
-       mode[0] = 'a';
-       mode[1] = 0;
-    }
-    else if(((FILE*)pf)->_flag & _IORW) {
-       mode[0] = 'r';
-       mode[1] = '+';
-       mode[2] = 0;
-    }
-
-    /* it appears that the binmode is attached to the 
-     * file descriptor so binmode files will be handled
-     * correctly
-     */
-    pfdup = nw_fdopen(fileno, mode);
-
-    /* move the file pointer to the same position */
-    if (!fgetpos(pf, &pos)) {
-       fsetpos(pfdup, &pos);
-    }
-    return pfdup;
-}
-
-/* IPerlStdio  - Stdio functions - End   ================================================*/
-
-/* IPerlDir    - Directory Manipulation functions - Begin ===================================*/
-
-int
-PerlDirMakedir(struct IPerlDir* piPerl, const char *dirname, int mode)
-{
-       return mkdir(dirname);
-}
-
-int
-PerlDirChdir(struct IPerlDir* piPerl, const char *dirname)
-{
-       return nw_chdir(dirname);
-}
-
-int
-PerlDirRmdir(struct IPerlDir* piPerl, const char *dirname)
-{
-       return nw_rmdir(dirname);
-}
-
-int
-PerlDirClose(struct IPerlDir* piPerl, DIR *dirp)
-{
-       return nw_closedir(dirp);
-}
-
-DIR*
-PerlDirOpen(struct IPerlDir* piPerl, char *filename)
-{
-       return nw_opendir(filename);
-}
-
-struct direct *
-PerlDirRead(struct IPerlDir* piPerl, DIR *dirp)
-{
-       return nw_readdir(dirp);
-}
-
-void
-PerlDirRewind(struct IPerlDir* piPerl, DIR *dirp)
-{
-    nw_rewinddir(dirp);
-}
-
-void
-PerlDirSeek(struct IPerlDir* piPerl, DIR *dirp, long loc)
-{
-    nw_seekdir(dirp, loc);
-}
-
-long
-PerlDirTell(struct IPerlDir* piPerl, DIR *dirp)
-{
-    return nw_telldir(dirp);
-}
-
-/* IPerlDir    - Directory Manipulation functions - End   ===================================*/
-
-/* IPerlEnv    - Environment related functions - Begin ======================================*/
-
-char*
-PerlEnvGetenv(struct IPerlEnv* piPerl, const char *varname)
-{
-       return(getenv(varname));
-};
-
-int
-PerlEnvPutenv(struct IPerlEnv* piPerl, const char *envstring)
-{
-       return(putenv(envstring));
-};
-
-char*
-PerlEnvGetenv_len(struct IPerlEnv* piPerl, const char* varname, unsigned long* len)
-{
-       *len = 0; 
-       char *e = getenv(varname);
-       if (e)
-           *len = strlen(e);
-       return e;
-}
-
-int
-PerlEnvUname(struct IPerlEnv* piPerl, struct utsname *name)
-{
-    return nw_uname(name);
-}
-
-void
-PerlEnvClearenv(struct IPerlEnv* piPerl)
-{
-       
-}
-
-/* IPerlEnv    - Environment related functions - End   ======================================*/
-
-/* IPerlLIO    - Low-level IO functions - Begin =============================================*/
-
-int
-PerlLIOAccess(struct IPerlLIO* piPerl, const char *path, int mode)
-{
-    return nw_access(path, mode);
-}
-
-int
-PerlLIOChmod(struct IPerlLIO* piPerl, const char *filename, int pmode)
-{
-    return nw_chmod(filename, pmode);
-}
-
-int
-PerlLIOChown(struct IPerlLIO* piPerl, const char *filename, uid_t owner, gid_t group)
-{
-       dTHXo;
-    Perl_croak(aTHX_ "chown not implemented!\n");
-       return 0;
-}
-
-int
-PerlLIOChsize(struct IPerlLIO* piPerl, int handle, long size)
-{
-       return (nw_chsize(handle,size));
-}
-
-int
-PerlLIOClose(struct IPerlLIO* piPerl, int handle)
-{
-    return nw_close(handle);
-}
-
-int
-PerlLIODup(struct IPerlLIO* piPerl, int handle)
-{
-    return nw_dup(handle);
-}
-
-int
-PerlLIODup2(struct IPerlLIO* piPerl, int handle1, int handle2)
-{
-    return nw_dup2(handle1, handle2);
-}
-
-int
-PerlLIOFlock(struct IPerlLIO* piPerl, int fd, int oper)
-{
-       //On NetWare simulate flock by locking a range on the file
-    return nw_flock(fd, oper);
-}
-
-int
-PerlLIOFileStat(struct IPerlLIO* piPerl, int handle, struct stat *buffer)
-{
-    return fstat(handle, buffer);
-}
-
-int
-PerlLIOIOCtl(struct IPerlLIO* piPerl, int i, unsigned int u, char *data)
-{
-       return ioctl(i, (int) u, (void *) data);
-}
-
-int
-PerlLIOIsatty(struct IPerlLIO* piPerl, int fd)
-{
-    return nw_isatty(fd);
-}
-
-int
-PerlLIOLink(struct IPerlLIO* piPerl, const char*oldname, const char *newname)
-{
-    return nw_link(oldname, newname);
-}
-
-long
-PerlLIOLseek(struct IPerlLIO* piPerl, int handle, long offset, int origin)
-{
-    return nw_lseek(handle, offset, origin);
-}
-
-int
-PerlLIOLstat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer)
-{
-    return nw_stat(path, buffer);
-}
-
-char*
-PerlLIOMktemp(struct IPerlLIO* piPerl, char *Template)
-{
-       return(nw_mktemp(Template));
-}
-
-int
-PerlLIOOpen(struct IPerlLIO* piPerl, const char *filename, int oflag)
-{
-    return nw_open(filename, oflag);
-}
-
-int
-PerlLIOOpen3(struct IPerlLIO* piPerl, const char *filename, int oflag, int pmode)
-{
-    return nw_open(filename, oflag, pmode);
-}
-
-int
-PerlLIORead(struct IPerlLIO* piPerl, int handle, void *buffer, unsigned int count)
-{
-    return nw_read(handle, buffer, count);
-}
-
-int
-PerlLIORename(struct IPerlLIO* piPerl, const char *OldFileName, const char *newname)
-{
-    return nw_rename(OldFileName, newname);
-}
-
-int
-PerlLIOSetmode(struct IPerlLIO* piPerl, FILE *fp, int mode)
-{
-    return nw_setmode(fp, mode);
-}
-
-int
-PerlLIONameStat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer)
-{
-    return nw_stat(path, buffer);
-}
-
-char*
-PerlLIOTmpnam(struct IPerlLIO* piPerl, char *string)
-{
-    return tmpnam(string);
-}
-
-int
-PerlLIOUmask(struct IPerlLIO* piPerl, int pmode)
-{
-    return umask(pmode);
-}
-
-int
-PerlLIOUnlink(struct IPerlLIO* piPerl, const char *filename)
-{
-    return nw_unlink(filename);
-}
-
-int
-PerlLIOUtime(struct IPerlLIO* piPerl, char *filename, struct utimbuf *times)
-{
-    return nw_utime(filename, times);
-}
-
-int
-PerlLIOWrite(struct IPerlLIO* piPerl, int handle, const void *buffer, unsigned int count)
-{
-    return nw_write(handle, buffer, count);
-}
-
-/* IPerlLIO    - Low-level IO functions - End   =============================================*/
-
-/* IPerlMem - Memory management functions - Begin ========================================*/
-
-void*
-PerlMemMalloc(struct IPerlMem* piPerl, size_t size)
-{
-       void *ptr = NULL;
-       ptr = malloc(size);
-       if (ptr) {
-               void **listptr;
-               BOOL m_dontTouchHashLists;
-               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
-                       if (listptr) {
-                               WCValHashTable<void*>* m_allocList= (WCValHashTable<void*>*)listptr;
-                               (WCValHashTable<void*>*)m_allocList->insert(ptr);
-                       }
-               }
-       }
-       return(ptr);
-}
-
-void*
-PerlMemRealloc(struct IPerlMem* piPerl, void* ptr, size_t size)
-{
-       void *newptr = NULL;
-       WCValHashTable<void*>* m_allocList;
-
-       newptr = realloc(ptr, size);
-
-       if (ptr)
-       {
-               void **listptr;
-               BOOL m_dontTouchHashLists;
-               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
-                       m_allocList= (WCValHashTable<void*>*)listptr;
-                       (WCValHashTable<void*>*)m_allocList->remove(ptr);
-               }
-       }
-       if (newptr)
-       {
-               if (m_allocList)
-                       (WCValHashTable<void*>*)m_allocList->insert(newptr);
-       }
-
-       return(newptr);
-}
-
-void
-PerlMemFree(struct IPerlMem* piPerl, void* ptr)
-{
-       BOOL m_dontTouchHashLists;
-       WCValHashTable<void*>* m_allocList;
-
-       void **listptr;
-       if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
-               m_allocList= (WCValHashTable<void*>*)listptr;
-               // Final clean up, free all the nodes from the hash list
-               if (m_dontTouchHashLists)
-               {
-                       if(ptr)
-                       {
-                               free(ptr);
-                               ptr = NULL;
-                       }
-               }
-               else
-               {
-                       if(ptr && m_allocList)
-                       {
-                               if ((WCValHashTable<void*>*)m_allocList->remove(ptr))
-                               {
-                                       free(ptr);
-                                       ptr = NULL;
-                               }
-                               else
-                               {
-                                       // If it comes here, that means that the memory pointer is not contained in the hash list.
-                                       // But no need to free now, since if is deleted here, it will result in an abend!!
-                                       // If the memory is still there, it will be cleaned during final cleanup anyway.
-                               }
-                       }
-               }
-       }
-       return;
-}
-
-void*
-PerlMemCalloc(struct IPerlMem* piPerl, size_t num, size_t size)
-{
-       void *ptr = NULL;
-
-       ptr = calloc(num, size);
-       if (ptr) {
-               void **listptr;
-               BOOL m_dontTouchHashLists;
-               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
-                       if (listptr) {
-                               WCValHashTable<void*>* m_allocList= (WCValHashTable<void*>*)listptr;
-                               (WCValHashTable<void*>*)m_allocList->insert(ptr);
-                       }
-               }
-       }
-       return(ptr);
-}
-
-/* IPerlMem - Memory management functions - End   ========================================*/
-
-/* IPerlProc - Process control functions - Begin =========================================*/
-
-#define EXECF_EXEC 1
-#define EXECF_SPAWN 2
-
-void
-PerlProcAbort(struct IPerlProc* piPerl)
-{
-    nw_abort();
-}
-
-char *
-PerlProcCrypt(struct IPerlProc* piPerl, const char* clear, const char* salt)
-{
-    return nw_crypt(clear, salt);
-}
-
-void
-PerlProcExit(struct IPerlProc* piPerl, int status)
-{
-//    exit(status);
-       dTHX;
-       dJMPENV;
-       JMPENV_JUMP(2);
-}
-
-void
-PerlProc_Exit(struct IPerlProc* piPerl, int status)
-{
-//    _exit(status);
-       dTHX;
-       dJMPENV;
-       JMPENV_JUMP(2);
-}
-
-int
-PerlProcExecl(struct IPerlProc* piPerl, const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3)
-{
-       dTHXo;
-    Perl_croak(aTHX_ "execl not implemented!\n");
-       return 0;
-}
-
-int
-PerlProcExecv(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv)
-{
-    return nw_execvp((char *)cmdname, (char **)argv);
-}
-
-int
-PerlProcExecvp(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv)
-{
-    return nw_execvp((char *)cmdname, (char **)argv);
-}
-
-uid_t
-PerlProcGetuid(struct IPerlProc* piPerl)
-{
-       return 0;
-}
-
-uid_t
-PerlProcGeteuid(struct IPerlProc* piPerl)
-{
-       return 0;
-}
-
-gid_t
-PerlProcGetgid(struct IPerlProc* piPerl)
-{
-       return 0;
-}
-
-gid_t
-PerlProcGetegid(struct IPerlProc* piPerl)
-{
-       return 0;
-}
-
-char *
-PerlProcGetlogin(struct IPerlProc* piPerl)
-{
-       return NULL;
-}
-
-int
-PerlProcKill(struct IPerlProc* piPerl, int pid, int sig)
-{
-    return nw_kill(pid, sig);
-}
-
-int
-PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig)
-{
-    dTHXo;
-    Perl_croak(aTHX_ "killpg not implemented!\n");
-    return 0;
-}
-
-int
-PerlProcPauseProc(struct IPerlProc* piPerl)
-{
-    return nw_sleep((32767L << 16) + 32767);
-}
-
-PerlIO*
-PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode)
-{
-    dTHXo;
-    PERL_FLUSHALL_FOR_CHILD;
-
-       return (PerlIO*)nw_Popen((char *)command, (char *)mode, (int *)errno);
-}
-
-int
-PerlProcPclose(struct IPerlProc* piPerl, PerlIO *stream)
-{
-    return nw_Pclose((FILE*)stream, (int *)errno);
-}
-
-int
-PerlProcPipe(struct IPerlProc* piPerl, int *phandles)
-{
-    return nw_Pipe((int *)phandles, (int *)errno);
-}
-
-int
-PerlProcSetuid(struct IPerlProc* piPerl, uid_t u)
-{
-       return 0;
-}
-
-int
-PerlProcSetgid(struct IPerlProc* piPerl, gid_t g)
-{
-       return 0;
-}
-
-int
-PerlProcSleep(struct IPerlProc* piPerl, unsigned int s)
-{
-    return nw_sleep(s);
-}
-
-int
-PerlProcTimes(struct IPerlProc* piPerl, struct tms *timebuf)
-{
-    return nw_times(timebuf);
-}
-
-int
-PerlProcWait(struct IPerlProc* piPerl, int *status)
-{
-    return nw_wait(status);
-}
-
-int
-PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags)
-{
-    return nw_waitpid(pid, status, flags);
-}
-
-Sighandler_t
-PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode)
-{
-    return 0;
-}
-
-int
-PerlProcFork(struct IPerlProc* piPerl)
-{
-       return 0;
-}
-
-int
-PerlProcGetpid(struct IPerlProc* piPerl)
-{
-    return nw_getpid();
-}
-
-/*BOOL
-PerlProcDoCmd(struct IPerlProc* piPerl, char *cmd)
-{
-    do_spawn2(cmd, EXECF_EXEC);
-    return FALSE;
-}*/
-
-int
-PerlProcSpawn(struct IPerlProc* piPerl, char* cmds)
-{
-    return do_spawn2(cmds, EXECF_SPAWN);
-}
-
-int
-PerlProcSpawnvp(struct IPerlProc* piPerl, int mode, const char *cmdname, const char *const *argv)
-{
-    return nw_spawnvp(mode, (char *)cmdname, (char **)argv);
-}
-
-int
-PerlProcASpawn(struct IPerlProc* piPerl, void *vreally, void **vmark, void **vsp)
-{
-    return do_aspawn(vreally, vmark, vsp);
-}
-
-/* IPerlProc - Process control functions - End   =========================================*/
-
-/* IPerlSock - Socket functions - Begin ==================================================*/
-
-u_long
-PerlSockHtonl(struct IPerlSock* piPerl, u_long hostlong)
-{
-       return(nw_htonl(hostlong));
-}
-
-u_short
-PerlSockHtons(struct IPerlSock* piPerl, u_short hostshort)
-{
-       return(nw_htons(hostshort));
-}
-
-u_long
-PerlSockNtohl(struct IPerlSock* piPerl, u_long netlong)
-{
-       return nw_ntohl(netlong);
-}
-
-u_short
-PerlSockNtohs(struct IPerlSock* piPerl, u_short netshort)
-{
-       return nw_ntohs(netshort);
-}
-
-SOCKET PerlSockAccept(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* addr, int* addrlen)
-{
-       return nw_accept(s, addr, addrlen);
-}
-
-int
-PerlSockBind(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen)
-{
-       return nw_bind(s, name, namelen);
-}
-
-int
-PerlSockConnect(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen)
-{
-       return nw_connect(s, name, namelen);
-}
-
-void
-PerlSockEndhostent(struct IPerlSock* piPerl)
-{
-    nw_endhostent();
-}
-
-void
-PerlSockEndnetent(struct IPerlSock* piPerl)
-{
-    nw_endnetent();
-}
-
-void
-PerlSockEndprotoent(struct IPerlSock* piPerl)
-{
-    nw_endprotoent();
-}
-
-void
-PerlSockEndservent(struct IPerlSock* piPerl)
-{
-    nw_endservent();
-}
-
-struct hostent*
-PerlSockGethostbyaddr(struct IPerlSock* piPerl, const char* addr, int len, int type)
-{
-       return(nw_gethostbyaddr(addr,len,type));
-}
-
-struct hostent*
-PerlSockGethostbyname(struct IPerlSock* piPerl, const char* name)
-{
-    return nw_gethostbyname(name);
-}
-
-struct hostent*
-PerlSockGethostent(struct IPerlSock* piPerl)
-{
-       return(nw_gethostent());
-}
-
-int
-PerlSockGethostname(struct IPerlSock* piPerl, char* name, int namelen)
-{
-       return nw_gethostname(name,namelen);
-}
-
-struct netent *
-PerlSockGetnetbyaddr(struct IPerlSock* piPerl, long net, int type)
-{
-    return nw_getnetbyaddr(net, type);
-}
-
-struct netent *
-PerlSockGetnetbyname(struct IPerlSock* piPerl, const char *name)
-{
-    return nw_getnetbyname((char*)name);
-}
-
-struct netent *
-PerlSockGetnetent(struct IPerlSock* piPerl)
-{
-    return nw_getnetent();
-}
-
-int PerlSockGetpeername(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen)
-{
-    return nw_getpeername(s, name, namelen);
-}
-
-struct protoent*
-PerlSockGetprotobyname(struct IPerlSock* piPerl, const char* name)
-{
-    return nw_getprotobyname(name);
-}
-
-struct protoent*
-PerlSockGetprotobynumber(struct IPerlSock* piPerl, int number)
-{
-    return nw_getprotobynumber(number);
-}
-
-struct protoent*
-PerlSockGetprotoent(struct IPerlSock* piPerl)
-{
-    return nw_getprotoent();
-}
-
-struct servent*
-PerlSockGetservbyname(struct IPerlSock* piPerl, const char* name, const char* proto)
-{
-    return nw_getservbyname((char*)name, (char*)proto);
-}
-
-struct servent*
-PerlSockGetservbyport(struct IPerlSock* piPerl, int port, const char* proto)
-{
-       return nw_getservbyport(port, proto);
-}
-
-struct servent*
-PerlSockGetservent(struct IPerlSock* piPerl)
-{
-       return nw_getservent();
-}
-
-int
-PerlSockGetsockname(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen)
-{
-       return nw_getsockname(s, name, namelen);
-}
-
-int
-PerlSockGetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, char* optval, int* optlen)
-{
-       return nw_getsockopt(s, level, optname, optval, optlen);
-}
-
-unsigned long
-PerlSockInetAddr(struct IPerlSock* piPerl, const char* cp)
-{
-       return(nw_inet_addr(cp));
-}
-
-char*
-PerlSockInetNtoa(struct IPerlSock* piPerl, struct in_addr in)
-{
-       return NULL;
-}
-
-int
-PerlSockListen(struct IPerlSock* piPerl, SOCKET s, int backlog)
-{
-       return (nw_listen(s, backlog));
-}
-
-int
-PerlSockRecv(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags)
-{
-       return (nw_recv(s, buffer, len, flags));
-}
-
-int
-PerlSockRecvfrom(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen)
-{
-       return nw_recvfrom(s, buffer, len, flags, from, fromlen);
-}
-
-int
-PerlSockSelect(struct IPerlSock* piPerl, int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout)
-{
-       return nw_select(nfds, (fd_set*) readfds, (fd_set*) writefds, (fd_set*) exceptfds, timeout);
-}
-
-int
-PerlSockSend(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags)
-{
-       return (nw_send(s, buffer, len, flags));
-}
-
-int
-PerlSockSendto(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen)
-{
-       return(nw_sendto(s, buffer, len, flags, to, tolen));
-}
-
-void
-PerlSockSethostent(struct IPerlSock* piPerl, int stayopen)
-{
-       nw_sethostent(stayopen);
-}
-
-void
-PerlSockSetnetent(struct IPerlSock* piPerl, int stayopen)
-{
-       nw_setnetent(stayopen);
-}
-
-void
-PerlSockSetprotoent(struct IPerlSock* piPerl, int stayopen)
-{
-       nw_setprotoent(stayopen);
-}
-
-void
-PerlSockSetservent(struct IPerlSock* piPerl, int stayopen)
-{
-       nw_setservent(stayopen);
-}
-
-int
-PerlSockSetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, const char* optval, int optlen)
-{
-    return nw_setsockopt(s, level, optname, optval, optlen);
-}
-
-int
-PerlSockShutdown(struct IPerlSock* piPerl, SOCKET s, int how)
-{
-       return nw_shutdown(s, how);
-}
-
-SOCKET
-PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol)
-{
-       return nw_socket(af, type, protocol);
-}
-
-int
-PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds)
-{
-    dTHXo;
-    Perl_croak(aTHX_ "socketpair not implemented!\n");
-    return 0;
-}
-
-int
-PerlSockIoctlsocket(struct IPerlSock* piPerl, SOCKET s, long cmd, u_long *argp)
-{
-       dTHXo;
-    Perl_croak(aTHX_ "ioctlsocket not implemented!\n");
-       return 0;
-}
-
-/* IPerlSock - Socket functions - End ==================================================*/
+//Includes iperlsys.h and function definitions
+#include "nwperlsys.h"
 
 /*============================================================================================
 
@@ -1268,13 +105,69 @@ perl_alloc(void)
 #ifdef PERL_OBJECT
            CPerlObj* pPerl = (CPerlObj*)my_perl;
 #endif
-               //w32_internal_host = m_allocList;
+               //nw5_internal_host = m_allocList;
        }
     return my_perl;
 }
 
 /*============================================================================================
 
+ Function              :       perl_alloc_override
+
+ Description   :       creates a Perl interpreter variable and initializes
+
+ Parameters    :       Pointer to structure containing function pointers
+
+ Returns               :       Pointer to Perl interpreter
+
+==============================================================================================*/
+EXTERN_C PerlInterpreter*
+perl_alloc_override(struct IPerlMem* ppMem, struct IPerlMem* ppMemShared,
+                struct IPerlMem* ppMemParse, struct IPerlEnv* ppEnv,
+                struct IPerlStdIO* ppStdIO, struct IPerlLIO* ppLIO,
+                struct IPerlDir* ppDir, struct IPerlSock* ppSock,
+                struct IPerlProc* ppProc)
+{
+    PerlInterpreter *my_perl = NULL;
+
+       WCValHashTable<void*>*  m_allocList;
+       m_allocList = new WCValHashTable<void*> (fnAllocListHash, 256);
+       fnInsertHashListAddrs(m_allocList, FALSE);
+
+       if (!ppMem)
+               ppMem=&perlMem;
+       if (!ppEnv)
+               ppEnv=&perlEnv;
+       if (!ppStdIO)
+               ppStdIO=&perlStdIO;
+       if (!ppLIO)
+               ppLIO=&perlLIO;
+       if (!ppDir)
+               ppDir=&perlDir;
+       if (!ppSock)
+               ppSock=&perlSock;
+       if (!ppProc)
+               ppProc=&perlProc;
+
+       my_perl = perl_alloc_using(ppMem,
+                                  ppMemShared,
+                                  ppMemParse,
+                                  ppEnv,
+                                  ppStdIO,
+                                  ppLIO,
+                                  ppDir,
+                                  ppSock,
+                                  ppProc);
+       if (my_perl) {
+#ifdef PERL_OBJECT
+           CPerlObj* pPerl = (CPerlObj*)my_perl;
+#endif
+           //nw5_internal_host = pHost;
+       }
+    return my_perl;
+}
+/*============================================================================================
+
  Function              :       nw5_delete_internal_host
 
  Description   :       Deletes the alloc_list pointer
index b8c9790..c871f0a 100644 (file)
@@ -7,11 +7,12 @@
  */
 
 /*
- * FILENAME            :       nwperlsys.h
- * DESCRIPTION :       Derives from iperlsys.h and define the platform specific function
- * Author              :       SGP
- * Date        Created :       June 12th 2001.
- * Date Modified:
+ * FILENAME     :  nwperlsys.h
+ * DESCRIPTION  :  Derives from iperlsys.h and define the 
+ *                 platform specific function
+ * Author       :  SGP
+ * Date        Created :  June 12th 2001.
+ * Date Modified:  June 26th 2001.
  */
 
 #ifndef ___NWPerlSys_H___
@@ -20,6 +21,9 @@
 
 #include "iperlsys.h"
 
+#include "nw5iop.h"
+#include <fcntl.h>
+
 //Socket related calls
 #include "nw5sck.h"
 
 //Watcom hash list
 #include <wchash.h>
 
-/* IPerlMem - Memory management - Begin ==================================================*/
+#include "win32ish.h"
+
+START_EXTERN_C
+extern int do_spawn2(char *cmd, int exectype);
+extern int do_aspawn(void *vreally, void **vmark, void **vsp);
+extern void Perl_init_os_extras(void);
+BOOL fnGetHashListAddrs(void *addrs, BOOL *dontTouchHashList);
+END_EXTERN_C
+
+/* IPerlMem - Memory management functions - Begin ========================================*/
 
-void* PerlMemMalloc(struct IPerlMem* piPerl, size_t size);
-void* PerlMemRealloc(struct IPerlMem* piPerl, void* ptr, size_t size);
-void  PerlMemFree(struct IPerlMem* piPerl, void* ptr);
-void* PerlMemCalloc(struct IPerlMem* piPerl, size_t num, size_t size);
+void*
+PerlMemMalloc(struct IPerlMem* piPerl, size_t size)
+{
+       void *ptr = NULL;
+       ptr = malloc(size);
+       if (ptr) {
+               void **listptr;
+               BOOL m_dontTouchHashLists;
+               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
+                       if (listptr) {
+                               WCValHashTable<void*>* m_allocList= (WCValHashTable<void*>*)listptr;
+                               (WCValHashTable<void*>*)m_allocList->insert(ptr);
+                       }
+               }
+       }
+       return(ptr);
+}
+
+void*
+PerlMemRealloc(struct IPerlMem* piPerl, void* ptr, size_t size)
+{
+       void *newptr = NULL;
+       WCValHashTable<void*>* m_allocList;
+
+       newptr = realloc(ptr, size);
+
+       if (ptr)
+       {
+               void **listptr;
+               BOOL m_dontTouchHashLists;
+               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
+                       m_allocList= (WCValHashTable<void*>*)listptr;
+                       (WCValHashTable<void*>*)m_allocList->remove(ptr);
+               }
+       }
+       if (newptr)
+       {
+               if (m_allocList)
+                       (WCValHashTable<void*>*)m_allocList->insert(newptr);
+       }
+
+       return(newptr);
+}
+
+void
+PerlMemFree(struct IPerlMem* piPerl, void* ptr)
+{
+       BOOL m_dontTouchHashLists;
+       WCValHashTable<void*>* m_allocList;
+
+       void **listptr;
+       if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
+               m_allocList= (WCValHashTable<void*>*)listptr;
+               // Final clean up, free all the nodes from the hash list
+               if (m_dontTouchHashLists)
+               {
+                       if(ptr)
+                       {
+                               free(ptr);
+                               ptr = NULL;
+                       }
+               }
+               else
+               {
+                       if(ptr && m_allocList)
+                       {
+                               if ((WCValHashTable<void*>*)m_allocList->remove(ptr))
+                               {
+                                       free(ptr);
+                                       ptr = NULL;
+                               }
+                               else
+                               {
+                                       // If it comes here, that means that the memory pointer is not contained in the hash list.
+                                       // But no need to free now, since if is deleted here, it will result in an abend!!
+                                       // If the memory is still there, it will be cleaned during final cleanup anyway.
+                               }
+                       }
+               }
+       }
+       return;
+}
+
+void*
+PerlMemCalloc(struct IPerlMem* piPerl, size_t num, size_t size)
+{
+       void *ptr = NULL;
+
+       ptr = calloc(num, size);
+       if (ptr) {
+               void **listptr;
+               BOOL m_dontTouchHashLists;
+               if(fnGetHashListAddrs(&listptr,&m_dontTouchHashLists)) {
+                       if (listptr) {
+                               WCValHashTable<void*>* m_allocList= (WCValHashTable<void*>*)listptr;
+                               (WCValHashTable<void*>*)m_allocList->insert(ptr);
+                       }
+               }
+       }
+       return(ptr);
+}
 
 struct IPerlMem perlMem =
 {
@@ -44,19 +154,63 @@ struct IPerlMem perlMem =
     PerlMemCalloc,
 };
 
-/* IPerlMem - Memory management - End   ==================================================*/
+/* IPerlMem - Memory management functions - End   ========================================*/
+
+/* IPerlDir    - Directory Manipulation functions - Begin ===================================*/
 
-/* IPerlDir    - Directory Manipulation - Begin =============================================*/
+int
+PerlDirMakedir(struct IPerlDir* piPerl, const char *dirname, int mode)
+{
+       return mkdir(dirname);
+}
 
-int PerlDirMakedir(struct IPerlDir* piPerl, const char *dirname, int mode);
-int PerlDirChdir(struct IPerlDir* piPerl, const char *dirname);
-int PerlDirRmdir(struct IPerlDir* piPerl, const char *dirname);
-int PerlDirClose(struct IPerlDir* piPerl, DIR *dirp);
-DIR* PerlDirOpen(struct IPerlDir* piPerl, char *filename);
-struct direct * PerlDirRead(struct IPerlDir* piPerl, DIR *dirp);
-void PerlDirRewind(struct IPerlDir* piPerl, DIR *dirp);
-void PerlDirSeek(struct IPerlDir* piPerl, DIR *dirp, long loc);
-long PerlDirTell(struct IPerlDir* piPerl, DIR *dirp);
+int
+PerlDirChdir(struct IPerlDir* piPerl, const char *dirname)
+{
+       return nw_chdir(dirname);
+}
+
+int
+PerlDirRmdir(struct IPerlDir* piPerl, const char *dirname)
+{
+       return nw_rmdir(dirname);
+}
+
+int
+PerlDirClose(struct IPerlDir* piPerl, DIR *dirp)
+{
+       return nw_closedir(dirp);
+}
+
+DIR*
+PerlDirOpen(struct IPerlDir* piPerl, char *filename)
+{
+       return nw_opendir(filename);
+}
+
+struct direct *
+PerlDirRead(struct IPerlDir* piPerl, DIR *dirp)
+{
+       return nw_readdir(dirp);
+}
+
+void
+PerlDirRewind(struct IPerlDir* piPerl, DIR *dirp)
+{
+    nw_rewinddir(dirp);
+}
+
+void
+PerlDirSeek(struct IPerlDir* piPerl, DIR *dirp, long loc)
+{
+    nw_seekdir(dirp, loc);
+}
+
+long
+PerlDirTell(struct IPerlDir* piPerl, DIR *dirp)
+{
+    return nw_telldir(dirp);
+}
 
 struct IPerlDir perlDir =
 {
@@ -71,24 +225,43 @@ struct IPerlDir perlDir =
     PerlDirTell,
 };
 
-/* IPerlDir    - Directory Manipulation - End   =============================================*/
+/* IPerlDir    - Directory Manipulation functions - End   ===================================*/
 
 /* IPerlEnv    - Environment related functions - Begin ======================================*/
 
-char* PerlEnvGetenv(struct IPerlEnv* piPerl, const char *varname);
-int PerlEnvPutenv(struct IPerlEnv* piPerl, const char *envstring);
-char* PerlEnvGetenv_len(struct IPerlEnv* piPerl, const char* varname, unsigned long* len);
-int PerlEnvUname(struct IPerlEnv* piPerl, struct utsname *name);
-void PerlEnvClearenv(struct IPerlEnv* piPerl);
+char*
+PerlEnvGetenv(struct IPerlEnv* piPerl, const char *varname)
+{
+       return(getenv(varname));
+};
+
+int
+PerlEnvPutenv(struct IPerlEnv* piPerl, const char *envstring)
+{
+       return(putenv(envstring));
+};
+
+char*
+PerlEnvGetenv_len(struct IPerlEnv* piPerl, const char* varname, unsigned long* len)
+{
+       *len = 0; 
+       char *e = getenv(varname);
+       if (e)
+           *len = strlen(e);
+       return e;
+}
 
-//Uncomment the following prototypes and the function names in the structure below
-//whenever it is implemented.
-//The function definition to be put in nwperlsys.c
+int
+PerlEnvUname(struct IPerlEnv* piPerl, struct utsname *name)
+{
+    return nw_uname(name);
+}
 
-/*void* PerlEnvGetChildenv(struct IPerlEnv* piPerl);
-void PerlEnvFreeChildenv(struct IPerlEnv* piPerl, void* childEnv);
-char* PerlEnvGetChilddir(struct IPerlEnv* piPerl);
-void PerlEnvFreeChilddir(struct IPerlEnv* piPerl, char* childDir);*/
+void
+PerlEnvClearenv(struct IPerlEnv* piPerl)
+{
+       
+}
 
 struct IPerlEnv perlEnv = 
 {
@@ -103,51 +276,313 @@ struct IPerlEnv perlEnv =
     PerlEnvFreeChilddir,*/
 };
 
-/* IPerlEnv    - Environment related functions - Begin ======================================*/
+/* IPerlEnv    - Environment related functions - End   ======================================*/
 
 /* IPerlStdio  - Stdio functions - Begin ================================================*/
 
-FILE* PerlStdIOStdin(struct IPerlStdIO* piPerl);
-FILE* PerlStdIOStdout(struct IPerlStdIO* piPerl);
-FILE* PerlStdIOStderr(struct IPerlStdIO* piPerl);
-FILE* PerlStdIOOpen(struct IPerlStdIO* piPerl, const char *path, const char *mode);
-int PerlStdIOClose(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOEof(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOError(struct IPerlStdIO* piPerl, FILE* pf);
-void PerlStdIOClearerr(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOGetc(struct IPerlStdIO* piPerl, FILE* pf);
-char* PerlStdIOGetBase(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOGetBufsiz(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOGetCnt(struct IPerlStdIO* piPerl, FILE* pf);
-char* PerlStdIOGetPtr(struct IPerlStdIO* piPerl, FILE* pf);
-char* PerlStdIOGets(struct IPerlStdIO* piPerl, FILE* pf, char* s, int n);
-int PerlStdIOPutc(struct IPerlStdIO* piPerl, FILE* pf, int c);
-int PerlStdIOPuts(struct IPerlStdIO* piPerl, FILE* pf, const char *s);
-int PerlStdIOFlush(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOUngetc(struct IPerlStdIO* piPerl, int c, FILE* pf);
-int PerlStdIOFileno(struct IPerlStdIO* piPerl, FILE* pf);
-FILE* PerlStdIOFdopen(struct IPerlStdIO* piPerl, int fd, const char *mode);
-FILE* PerlStdIOReopen(struct IPerlStdIO* piPerl, const char*path, const char*mode, FILE* pf);
-SSize_t PerlStdIORead(struct IPerlStdIO* piPerl, void *buffer, Size_t size, Size_t count, FILE* pf);
-SSize_t PerlStdIOWrite(struct IPerlStdIO* piPerl, const void *buffer, Size_t size, Size_t count, FILE* pf);
-void PerlStdIOSetBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer);
-int PerlStdIOSetVBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer, int type, Size_t size);
-void PerlStdIOSetCnt(struct IPerlStdIO* piPerl, FILE* pf, int n);
-void PerlStdIOSetPtr(struct IPerlStdIO* piPerl, FILE* pf, char * ptr);
-void PerlStdIOSetlinebuf(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOPrintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format,...);
-int PerlStdIOVprintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format, va_list arglist);
-long PerlStdIOTell(struct IPerlStdIO* piPerl, FILE* pf);
-int PerlStdIOSeek(struct IPerlStdIO* piPerl, FILE* pf, off_t offset, int origin);
-void PerlStdIORewind(struct IPerlStdIO* piPerl, FILE* pf);
-FILE* PerlStdIOTmpfile(struct IPerlStdIO* piPerl);
-int PerlStdIOGetpos(struct IPerlStdIO* piPerl, FILE* pf, Fpos_t *p);
-int PerlStdIOSetpos(struct IPerlStdIO* piPerl, FILE* pf, const Fpos_t *p);
-void PerlStdIOInit(struct IPerlStdIO* piPerl);
-void PerlStdIOInitOSExtras(struct IPerlStdIO* piPerl);
-int PerlStdIOOpenOSfhandle(struct IPerlStdIO* piPerl, long osfhandle, int flags);
-int PerlStdIOGetOSfhandle(struct IPerlStdIO* piPerl, int filenum);
-FILE* PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf);
+FILE*
+PerlStdIOStdin(struct IPerlStdIO* piPerl)
+{
+    return nw_stdin();
+}
+
+FILE*
+PerlStdIOStdout(struct IPerlStdIO* piPerl)
+{
+    return nw_stdout();
+}
+
+FILE*
+PerlStdIOStderr(struct IPerlStdIO* piPerl)
+{
+    return nw_stderr();
+}
+
+FILE*
+PerlStdIOOpen(struct IPerlStdIO* piPerl, const char *path, const char *mode)
+{
+    return nw_fopen(path, mode);
+}
+
+int
+PerlStdIOClose(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_fclose(pf);
+}
+
+int
+PerlStdIOEof(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_feof(pf);
+}
+
+int
+PerlStdIOError(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_ferror(pf);
+}
+
+void
+PerlStdIOClearerr(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    nw_clearerr(pf);
+}
+
+int
+PerlStdIOGetc(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_getc(pf);
+}
+
+char*
+PerlStdIOGetBase(struct IPerlStdIO* piPerl, FILE* pf)
+{
+#ifdef FILE_base
+    FILE *f = pf;
+    return FILE_base(f);
+#else
+    return Nullch;
+#endif
+}
+
+int
+PerlStdIOGetBufsiz(struct IPerlStdIO* piPerl, FILE* pf)
+{
+#ifdef FILE_bufsiz
+    FILE *f = pf;
+    return FILE_bufsiz(f);
+#else
+    return (-1);
+#endif
+}
+
+int
+PerlStdIOGetCnt(struct IPerlStdIO* piPerl, FILE* pf)
+{
+#ifdef USE_STDIO_PTR
+    FILE *f = pf;
+    return FILE_cnt(f);
+#else
+    return (-1);
+#endif
+}
+
+char*
+PerlStdIOGetPtr(struct IPerlStdIO* piPerl, FILE* pf)
+{
+#ifdef USE_STDIO_PTR
+    FILE *f = pf;
+    return FILE_ptr(f);
+#else
+    return Nullch;
+#endif
+}
+
+char*
+PerlStdIOGets(struct IPerlStdIO* piPerl, FILE* pf, char* s, int n)
+{
+    return nw_fgets(s, n, pf);
+}
+
+int
+PerlStdIOPutc(struct IPerlStdIO* piPerl, FILE* pf, int c)
+{
+    return nw_fputc(c, pf);
+}
+
+int
+PerlStdIOPuts(struct IPerlStdIO* piPerl, FILE* pf, const char *s)
+{
+    return nw_fputs(s, pf);
+}
+
+int
+PerlStdIOFlush(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_fflush(pf);
+}
+
+int
+PerlStdIOUngetc(struct IPerlStdIO* piPerl, int c, FILE* pf)
+{
+    return nw_ungetc(c, pf);
+}
+
+int
+PerlStdIOFileno(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_fileno(pf);
+}
+
+FILE*
+PerlStdIOFdopen(struct IPerlStdIO* piPerl, int fd, const char *mode)
+{
+    return nw_fdopen(fd, mode);
+}
+
+FILE*
+PerlStdIOReopen(struct IPerlStdIO* piPerl, const char*path, const char*mode, FILE* pf)
+{
+    return nw_freopen(path, mode, pf);
+}
+
+SSize_t
+PerlStdIORead(struct IPerlStdIO* piPerl, void *buffer, Size_t size, Size_t count, FILE* pf)
+{
+    return nw_fread(buffer, size, count, pf);
+}
+
+SSize_t
+PerlStdIOWrite(struct IPerlStdIO* piPerl, const void *buffer, Size_t size, Size_t count, FILE* pf)
+{
+    return nw_fwrite(buffer, size, count, pf);
+}
+
+void
+PerlStdIOSetBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer)
+{
+    nw_setbuf(pf, buffer);
+}
+
+int
+PerlStdIOSetVBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer, int type, Size_t size)
+{
+    return nw_setvbuf(pf, buffer, type, size);
+}
+
+void
+PerlStdIOSetCnt(struct IPerlStdIO* piPerl, FILE* pf, int n)
+{
+#ifdef STDIO_CNT_LVALUE
+    FILE *f = pf;
+    FILE_cnt(f) = n;
+#endif
+}
+
+void
+PerlStdIOSetPtr(struct IPerlStdIO* piPerl, FILE* pf, char * ptr)
+{
+#ifdef STDIO_PTR_LVALUE
+    FILE *f = pf;
+    FILE_ptr(f) = ptr;
+#endif
+}
+
+void
+PerlStdIOSetlinebuf(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    nw_setvbuf(pf, NULL, _IOLBF, 0);
+}
+
+int
+PerlStdIOPrintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format,...)
+{
+    va_list(arglist);
+    va_start(arglist, format);
+    return nw_vfprintf(pf, format, arglist);
+}
+
+int
+PerlStdIOVprintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format, va_list arglist)
+{
+    return nw_vfprintf(pf, format, arglist);
+}
+
+long
+PerlStdIOTell(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    return nw_ftell(pf);
+}
+
+int
+PerlStdIOSeek(struct IPerlStdIO* piPerl, FILE* pf, off_t offset, int origin)
+{
+    return nw_fseek(pf, offset, origin);
+}
+
+void
+PerlStdIORewind(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    nw_rewind(pf);
+}
+
+FILE*
+PerlStdIOTmpfile(struct IPerlStdIO* piPerl)
+{
+    return nw_tmpfile();
+}
+
+int
+PerlStdIOGetpos(struct IPerlStdIO* piPerl, FILE* pf, Fpos_t *p)
+{
+    return nw_fgetpos(pf, p);
+}
+
+int
+PerlStdIOSetpos(struct IPerlStdIO* piPerl, FILE* pf, const Fpos_t *p)
+{
+    return nw_fsetpos(pf, p);
+}
+
+void
+PerlStdIOInit(struct IPerlStdIO* piPerl)
+{
+}
+
+void
+PerlStdIOInitOSExtras(struct IPerlStdIO* piPerl)
+{
+    Perl_init_os_extras();
+}
+
+
+int
+PerlStdIOOpenOSfhandle(struct IPerlStdIO* piPerl, long osfhandle, int flags)
+{
+    return nw_open_osfhandle(osfhandle, flags);
+}
+
+int
+PerlStdIOGetOSfhandle(struct IPerlStdIO* piPerl, int filenum)
+{
+    return nw_get_osfhandle(filenum);
+}
+
+FILE*
+PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf)
+{
+    FILE* pfdup=NULL;
+    fpos_t pos=0;
+    char mode[3]={'\0'};
+    int fileno = nw_dup(nw_fileno(pf));
+
+    /* open the file in the same mode */
+    if(((FILE*)pf)->_flag & _IOREAD) {
+       mode[0] = 'r';
+       mode[1] = 0;
+    }
+    else if(((FILE*)pf)->_flag & _IOWRT) {
+       mode[0] = 'a';
+       mode[1] = 0;
+    }
+    else if(((FILE*)pf)->_flag & _IORW) {
+       mode[0] = 'r';
+       mode[1] = '+';
+       mode[2] = 0;
+    }
+
+    /* it appears that the binmode is attached to the 
+     * file descriptor so binmode files will be handled
+     * correctly
+     */
+    pfdup = nw_fdopen(fileno, mode);
+
+    /* move the file pointer to the same position */
+    if (!fgetpos(pf, &pos)) {
+       fsetpos(pfdup, &pos);
+    }
+    return pfdup;
+}
 
 struct IPerlStdIO perlStdIO =
 {
@@ -196,32 +631,164 @@ struct IPerlStdIO perlStdIO =
 
 /* IPerlLIO    - Low-level IO functions - Begin =============================================*/
 
-int PerlLIOAccess(struct IPerlLIO* piPerl, const char *path, int mode);
-int PerlLIOChmod(struct IPerlLIO* piPerl, const char *filename, int pmode);
-int PerlLIOChown(struct IPerlLIO* piPerl, const char *filename, uid_t owner, gid_t group);
-int PerlLIOChsize(struct IPerlLIO* piPerl, int handle, long size);
-int PerlLIOClose(struct IPerlLIO* piPerl, int handle);
-int PerlLIODup(struct IPerlLIO* piPerl, int handle);
-int PerlLIODup2(struct IPerlLIO* piPerl, int handle1, int handle2);
-int PerlLIOFlock(struct IPerlLIO* piPerl, int fd, int oper);
-int PerlLIOFileStat(struct IPerlLIO* piPerl, int handle, struct stat *buffer);
-int PerlLIOIOCtl(struct IPerlLIO* piPerl, int i, unsigned int u, char *data);
-int PerlLIOIsatty(struct IPerlLIO* piPerl, int fd);
-int PerlLIOLink(struct IPerlLIO* piPerl, const char*oldname, const char *newname);
-long PerlLIOLseek(struct IPerlLIO* piPerl, int handle, long offset, int origin);
-int PerlLIOLstat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer);
-char* PerlLIOMktemp(struct IPerlLIO* piPerl, char *Template);
-int PerlLIOOpen(struct IPerlLIO* piPerl, const char *filename, int oflag);
-int PerlLIOOpen3(struct IPerlLIO* piPerl, const char *filename, int oflag, int pmode);
-int PerlLIORead(struct IPerlLIO* piPerl, int handle, void *buffer, unsigned int count);
-int PerlLIORename(struct IPerlLIO* piPerl, const char *OldFileName, const char *newname);
-int PerlLIOSetmode(struct IPerlLIO* piPerl, FILE *fp, int mode);
-int PerlLIONameStat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer);
-char* PerlLIOTmpnam(struct IPerlLIO* piPerl, char *string);
-int PerlLIOUmask(struct IPerlLIO* piPerl, int pmode);
-int PerlLIOUnlink(struct IPerlLIO* piPerl, const char *filename);
-int PerlLIOUtime(struct IPerlLIO* piPerl, char *filename, struct utimbuf *times);
-int PerlLIOWrite(struct IPerlLIO* piPerl, int handle, const void *buffer, unsigned int count);
+int
+PerlLIOAccess(struct IPerlLIO* piPerl, const char *path, int mode)
+{
+    return nw_access(path, mode);
+}
+
+int
+PerlLIOChmod(struct IPerlLIO* piPerl, const char *filename, int pmode)
+{
+    return nw_chmod(filename, pmode);
+}
+
+int
+PerlLIOChown(struct IPerlLIO* piPerl, const char *filename, uid_t owner, gid_t group)
+{
+       dTHXo;
+    Perl_croak(aTHX_ "chown not implemented!\n");
+       return 0;
+}
+
+int
+PerlLIOChsize(struct IPerlLIO* piPerl, int handle, long size)
+{
+       return (nw_chsize(handle,size));
+}
+
+int
+PerlLIOClose(struct IPerlLIO* piPerl, int handle)
+{
+    return nw_close(handle);
+}
+
+int
+PerlLIODup(struct IPerlLIO* piPerl, int handle)
+{
+    return nw_dup(handle);
+}
+
+int
+PerlLIODup2(struct IPerlLIO* piPerl, int handle1, int handle2)
+{
+    return nw_dup2(handle1, handle2);
+}
+
+int
+PerlLIOFlock(struct IPerlLIO* piPerl, int fd, int oper)
+{
+       //On NetWare simulate flock by locking a range on the file
+    return nw_flock(fd, oper);
+}
+
+int
+PerlLIOFileStat(struct IPerlLIO* piPerl, int handle, struct stat *buffer)
+{
+    return fstat(handle, buffer);
+}
+
+int
+PerlLIOIOCtl(struct IPerlLIO* piPerl, int i, unsigned int u, char *data)
+{
+       return 0;
+}
+
+int
+PerlLIOIsatty(struct IPerlLIO* piPerl, int fd)
+{
+    return nw_isatty(fd);
+}
+
+int
+PerlLIOLink(struct IPerlLIO* piPerl, const char*oldname, const char *newname)
+{
+    return nw_link(oldname, newname);
+}
+
+long
+PerlLIOLseek(struct IPerlLIO* piPerl, int handle, long offset, int origin)
+{
+    return nw_lseek(handle, offset, origin);
+}
+
+int
+PerlLIOLstat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer)
+{
+    return nw_stat(path, buffer);
+}
+
+char*
+PerlLIOMktemp(struct IPerlLIO* piPerl, char *Template)
+{
+       return(nw_mktemp(Template));
+}
+
+int
+PerlLIOOpen(struct IPerlLIO* piPerl, const char *filename, int oflag)
+{
+    return nw_open(filename, oflag);
+}
+
+int
+PerlLIOOpen3(struct IPerlLIO* piPerl, const char *filename, int oflag, int pmode)
+{
+    return nw_open(filename, oflag, pmode);
+}
+
+int
+PerlLIORead(struct IPerlLIO* piPerl, int handle, void *buffer, unsigned int count)
+{
+    return nw_read(handle, buffer, count);
+}
+
+int
+PerlLIORename(struct IPerlLIO* piPerl, const char *OldFileName, const char *newname)
+{
+    return nw_rename(OldFileName, newname);
+}
+
+int
+PerlLIOSetmode(struct IPerlLIO* piPerl, FILE *fp, int mode)
+{
+    return nw_setmode(fp, mode);
+}
+
+int
+PerlLIONameStat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer)
+{
+    return nw_stat(path, buffer);
+}
+
+char*
+PerlLIOTmpnam(struct IPerlLIO* piPerl, char *string)
+{
+    return tmpnam(string);
+}
+
+int
+PerlLIOUmask(struct IPerlLIO* piPerl, int pmode)
+{
+    return umask(pmode);
+}
+
+int
+PerlLIOUnlink(struct IPerlLIO* piPerl, const char *filename)
+{
+    return nw_unlink(filename);
+}
+
+int
+PerlLIOUtime(struct IPerlLIO* piPerl, char *filename, struct utimbuf *times)
+{
+    return nw_utime(filename, times);
+}
+
+int
+PerlLIOWrite(struct IPerlLIO* piPerl, int handle, const void *buffer, unsigned int count)
+{
+    return nw_write(handle, buffer, count);
+}
 
 struct IPerlLIO perlLIO =
 {
@@ -253,40 +820,212 @@ struct IPerlLIO perlLIO =
     PerlLIOWrite,    
 };
 
-/* IPerlLIO    - Low-level IO functions - End ==============================================*/
+/* IPerlLIO    - Low-level IO functions - End   =============================================*/
 
 /* IPerlProc - Process control functions - Begin =========================================*/
 
-void PerlProcAbort(struct IPerlProc* piPerl);
-char * PerlProcCrypt(struct IPerlProc* piPerl, const char* clear, const char* salt);
-void PerlProcExit(struct IPerlProc* piPerl, int status);
-void PerlProc_Exit(struct IPerlProc* piPerl, int status);
-int PerlProcExecl(struct IPerlProc* piPerl, const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3);
-int PerlProcExecv(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv);
-int PerlProcExecvp(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv);
-uid_t PerlProcGetuid(struct IPerlProc* piPerl);
-uid_t PerlProcGeteuid(struct IPerlProc* piPerl);
-gid_t PerlProcGetgid(struct IPerlProc* piPerl);
-gid_t PerlProcGetegid(struct IPerlProc* piPerl);
-char * PerlProcGetlogin(struct IPerlProc* piPerl);
-int PerlProcKill(struct IPerlProc* piPerl, int pid, int sig);
-int PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig);
-int PerlProcPauseProc(struct IPerlProc* piPerl);
-PerlIO* PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode);
-int PerlProcPclose(struct IPerlProc* piPerl, PerlIO *stream);
-int PerlProcPipe(struct IPerlProc* piPerl, int *phandles);
-int PerlProcSetuid(struct IPerlProc* piPerl, uid_t u);
-int PerlProcSetgid(struct IPerlProc* piPerl, gid_t g);
-int PerlProcSleep(struct IPerlProc* piPerl, unsigned int s);
-int PerlProcTimes(struct IPerlProc* piPerl, struct tms *timebuf);
-int PerlProcWait(struct IPerlProc* piPerl, int *status);
-int PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags);
-Sighandler_t PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode);
-int PerlProcFork(struct IPerlProc* piPerl);
-int PerlProcGetpid(struct IPerlProc* piPerl);
-int PerlProcSpawn(struct IPerlProc* piPerl, char* cmds);
-int PerlProcSpawnvp(struct IPerlProc* piPerl, int mode, const char *cmdname, const char *const *argv);
-int PerlProcASpawn(struct IPerlProc* piPerl, void *vreally, void **vmark, void **vsp);
+#define EXECF_EXEC 1
+#define EXECF_SPAWN 2
+
+void
+PerlProcAbort(struct IPerlProc* piPerl)
+{
+    nw_abort();
+}
+
+char *
+PerlProcCrypt(struct IPerlProc* piPerl, const char* clear, const char* salt)
+{
+    return nw_crypt(clear, salt);
+}
+
+void
+PerlProcExit(struct IPerlProc* piPerl, int status)
+{
+//    exit(status);
+       dTHX;
+       dJMPENV;
+       JMPENV_JUMP(2);
+}
+
+void
+PerlProc_Exit(struct IPerlProc* piPerl, int status)
+{
+//    _exit(status);
+       dTHX;
+       dJMPENV;
+       JMPENV_JUMP(2);
+}
+
+int
+PerlProcExecl(struct IPerlProc* piPerl, const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3)
+{
+       dTHXo;
+    Perl_croak(aTHX_ "execl not implemented!\n");
+       return 0;
+}
+
+int
+PerlProcExecv(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv)
+{
+    return nw_execvp((char *)cmdname, (char **)argv);
+}
+
+int
+PerlProcExecvp(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv)
+{
+    return nw_execvp((char *)cmdname, (char **)argv);
+}
+
+uid_t
+PerlProcGetuid(struct IPerlProc* piPerl)
+{
+       return 0;
+}
+
+uid_t
+PerlProcGeteuid(struct IPerlProc* piPerl)
+{
+       return 0;
+}
+
+gid_t
+PerlProcGetgid(struct IPerlProc* piPerl)
+{
+       return 0;
+}
+
+gid_t
+PerlProcGetegid(struct IPerlProc* piPerl)
+{
+       return 0;
+}
+
+char *
+PerlProcGetlogin(struct IPerlProc* piPerl)
+{
+       return NULL;
+}
+
+int
+PerlProcKill(struct IPerlProc* piPerl, int pid, int sig)
+{
+    return nw_kill(pid, sig);
+}
+
+int
+PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig)
+{
+    dTHXo;
+    Perl_croak(aTHX_ "killpg not implemented!\n");
+    return 0;
+}
+
+int
+PerlProcPauseProc(struct IPerlProc* piPerl)
+{
+    return nw_sleep((32767L << 16) + 32767);
+}
+
+PerlIO*
+PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode)
+{
+    dTHXo;
+    PERL_FLUSHALL_FOR_CHILD;
+
+       return (PerlIO*)nw_Popen((char *)command, (char *)mode, (int *)errno);
+}
+
+int
+PerlProcPclose(struct IPerlProc* piPerl, PerlIO *stream)
+{
+    return nw_Pclose((FILE*)stream, (int *)errno);
+}
+
+int
+PerlProcPipe(struct IPerlProc* piPerl, int *phandles)
+{
+    return nw_Pipe((int *)phandles, (int *)errno);
+}
+
+int
+PerlProcSetuid(struct IPerlProc* piPerl, uid_t u)
+{
+       return 0;
+}
+
+int
+PerlProcSetgid(struct IPerlProc* piPerl, gid_t g)
+{
+       return 0;
+}
+
+int
+PerlProcSleep(struct IPerlProc* piPerl, unsigned int s)
+{
+    return nw_sleep(s);
+}
+
+int
+PerlProcTimes(struct IPerlProc* piPerl, struct tms *timebuf)
+{
+    return nw_times(timebuf);
+}
+
+int
+PerlProcWait(struct IPerlProc* piPerl, int *status)
+{
+    return nw_wait(status);
+}
+
+int
+PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags)
+{
+    return nw_waitpid(pid, status, flags);
+}
+
+Sighandler_t
+PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode)
+{
+    return 0;
+}
+
+int
+PerlProcFork(struct IPerlProc* piPerl)
+{
+       return 0;
+}
+
+int
+PerlProcGetpid(struct IPerlProc* piPerl)
+{
+    return nw_getpid();
+}
+
+/*BOOL
+PerlProcDoCmd(struct IPerlProc* piPerl, char *cmd)
+{
+    do_spawn2(cmd, EXECF_EXEC);
+    return FALSE;
+}*/
+
+int
+PerlProcSpawn(struct IPerlProc* piPerl, char* cmds)
+{
+    return do_spawn2(cmds, EXECF_SPAWN);
+}
+
+int
+PerlProcSpawnvp(struct IPerlProc* piPerl, int mode, const char *cmdname, const char *const *argv)
+{
+    return nw_spawnvp(mode, (char *)cmdname, (char **)argv);
+}
+
+int
+PerlProcASpawn(struct IPerlProc* piPerl, void *vreally, void **vmark, void **vsp)
+{
+    return do_aspawn(vreally, vmark, vsp);
+}
 
 struct IPerlProc perlProc =
 {
@@ -325,50 +1064,273 @@ struct IPerlProc perlProc =
 
 /* IPerlSock - Socket functions - Begin ==================================================*/
 
-u_long PerlSockHtonl(struct IPerlSock* piPerl, u_long hostlong);
-u_short PerlSockHtons(struct IPerlSock* piPerl, u_short hostshort);
-u_long PerlSockNtohl(struct IPerlSock* piPerl, u_long netlong);
-u_short PerlSockNtohs(struct IPerlSock* piPerl, u_short netshort);
-SOCKET PerlSockAccept(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* addr, int* addrlen);
-int PerlSockBind(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen);
-int PerlSockConnect(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen);
-void PerlSockEndhostent(struct IPerlSock* piPerl);
-void PerlSockEndnetent(struct IPerlSock* piPerl);
-void PerlSockEndprotoent(struct IPerlSock* piPerl);
-void PerlSockEndservent(struct IPerlSock* piPerl);
-struct hostent* PerlSockGethostbyaddr(struct IPerlSock* piPerl, const char* addr, int len, int type);
-struct hostent* PerlSockGethostbyname(struct IPerlSock* piPerl, const char* name);
-struct hostent* PerlSockGethostent(struct IPerlSock* piPerl);
-int PerlSockGethostname(struct IPerlSock* piPerl, char* name, int namelen);
-struct netent * PerlSockGetnetbyaddr(struct IPerlSock* piPerl, long net, int type);
-struct netent * PerlSockGetnetbyname(struct IPerlSock* piPerl, const char *name);
-struct netent * PerlSockGetnetent(struct IPerlSock* piPerl);
-int PerlSockGetpeername(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen);
-struct protoent* PerlSockGetprotobyname(struct IPerlSock* piPerl, const char* name);
-struct protoent* PerlSockGetprotobynumber(struct IPerlSock* piPerl, int number);
-struct protoent* PerlSockGetprotoent(struct IPerlSock* piPerl);
-struct servent* PerlSockGetservbyname(struct IPerlSock* piPerl, const char* name, const char* proto);
-struct servent* PerlSockGetservbyport(struct IPerlSock* piPerl, int port, const char* proto);
-struct servent* PerlSockGetservent(struct IPerlSock* piPerl);
-int PerlSockGetsockname(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen);
-int PerlSockGetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, char* optval, int* optlen);
-unsigned long PerlSockInetAddr(struct IPerlSock* piPerl, const char* cp);
-char* PerlSockInetNtoa(struct IPerlSock* piPerl, struct in_addr in);
-int PerlSockListen(struct IPerlSock* piPerl, SOCKET s, int backlog);
-int PerlSockRecv(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags);
-int PerlSockRecvfrom(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen);
-int PerlSockSelect(struct IPerlSock* piPerl, int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout);
-int PerlSockSend(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags);
-int PerlSockSendto(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen);
-void PerlSockSethostent(struct IPerlSock* piPerl, int stayopen);
-void PerlSockSetnetent(struct IPerlSock* piPerl, int stayopen);
-void PerlSockSetprotoent(struct IPerlSock* piPerl, int stayopen);
-void PerlSockSetservent(struct IPerlSock* piPerl, int stayopen);
-int PerlSockSetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, const char* optval, int optlen);
-int PerlSockShutdown(struct IPerlSock* piPerl, SOCKET s, int how);
-SOCKET PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol);
-int PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds);
-int PerlSockIoctlsocket(struct IPerlSock* piPerl, SOCKET s, long cmd, u_long *argp);
+u_long
+PerlSockHtonl(struct IPerlSock* piPerl, u_long hostlong)
+{
+       return(nw_htonl(hostlong));
+}
+
+u_short
+PerlSockHtons(struct IPerlSock* piPerl, u_short hostshort)
+{
+       return(nw_htons(hostshort));
+}
+
+u_long
+PerlSockNtohl(struct IPerlSock* piPerl, u_long netlong)
+{
+       return nw_ntohl(netlong);
+}
+
+u_short
+PerlSockNtohs(struct IPerlSock* piPerl, u_short netshort)
+{
+       return nw_ntohs(netshort);
+}
+
+SOCKET PerlSockAccept(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* addr, int* addrlen)
+{
+       return nw_accept(s, addr, addrlen);
+}
+
+int
+PerlSockBind(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen)
+{
+       return nw_bind(s, name, namelen);
+}
+
+int
+PerlSockConnect(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen)
+{
+       return nw_connect(s, name, namelen);
+}
+
+void
+PerlSockEndhostent(struct IPerlSock* piPerl)
+{
+    nw_endhostent();
+}
+
+void
+PerlSockEndnetent(struct IPerlSock* piPerl)
+{
+    nw_endnetent();
+}
+
+void
+PerlSockEndprotoent(struct IPerlSock* piPerl)
+{
+    nw_endprotoent();
+}
+
+void
+PerlSockEndservent(struct IPerlSock* piPerl)
+{
+    nw_endservent();
+}
+
+struct hostent*
+PerlSockGethostbyaddr(struct IPerlSock* piPerl, const char* addr, int len, int type)
+{
+       return(nw_gethostbyaddr(addr,len,type));
+}
+
+struct hostent*
+PerlSockGethostbyname(struct IPerlSock* piPerl, const char* name)
+{
+    return nw_gethostbyname(name);
+}
+
+struct hostent*
+PerlSockGethostent(struct IPerlSock* piPerl)
+{
+       return(nw_gethostent());
+}
+
+int
+PerlSockGethostname(struct IPerlSock* piPerl, char* name, int namelen)
+{
+       return nw_gethostname(name,namelen);
+}
+
+struct netent *
+PerlSockGetnetbyaddr(struct IPerlSock* piPerl, long net, int type)
+{
+    return nw_getnetbyaddr(net, type);
+}
+
+struct netent *
+PerlSockGetnetbyname(struct IPerlSock* piPerl, const char *name)
+{
+    return nw_getnetbyname((char*)name);
+}
+
+struct netent *
+PerlSockGetnetent(struct IPerlSock* piPerl)
+{
+    return nw_getnetent();
+}
+
+int PerlSockGetpeername(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen)
+{
+    return nw_getpeername(s, name, namelen);
+}
+
+struct protoent*
+PerlSockGetprotobyname(struct IPerlSock* piPerl, const char* name)
+{
+    return nw_getprotobyname(name);
+}
+
+struct protoent*
+PerlSockGetprotobynumber(struct IPerlSock* piPerl, int number)
+{
+    return nw_getprotobynumber(number);
+}
+
+struct protoent*
+PerlSockGetprotoent(struct IPerlSock* piPerl)
+{
+    return nw_getprotoent();
+}
+
+struct servent*
+PerlSockGetservbyname(struct IPerlSock* piPerl, const char* name, const char* proto)
+{
+    return nw_getservbyname((char*)name, (char*)proto);
+}
+
+struct servent*
+PerlSockGetservbyport(struct IPerlSock* piPerl, int port, const char* proto)
+{
+       return nw_getservbyport(port, proto);
+}
+
+struct servent*
+PerlSockGetservent(struct IPerlSock* piPerl)
+{
+       return nw_getservent();
+}
+
+int
+PerlSockGetsockname(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen)
+{
+       return nw_getsockname(s, name, namelen);
+}
+
+int
+PerlSockGetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, char* optval, int* optlen)
+{
+       return nw_getsockopt(s, level, optname, optval, optlen);
+}
+
+unsigned long
+PerlSockInetAddr(struct IPerlSock* piPerl, const char* cp)
+{
+       return(nw_inet_addr(cp));
+}
+
+char*
+PerlSockInetNtoa(struct IPerlSock* piPerl, struct in_addr in)
+{
+       return NULL;
+}
+
+int
+PerlSockListen(struct IPerlSock* piPerl, SOCKET s, int backlog)
+{
+       return (nw_listen(s, backlog));
+}
+
+int
+PerlSockRecv(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags)
+{
+       return (nw_recv(s, buffer, len, flags));
+}
+
+int
+PerlSockRecvfrom(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen)
+{
+       return nw_recvfrom(s, buffer, len, flags, from, fromlen);
+}
+
+int
+PerlSockSelect(struct IPerlSock* piPerl, int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout)
+{
+       return nw_select(nfds, (fd_set*) readfds, (fd_set*) writefds, (fd_set*) exceptfds, timeout);
+}
+
+int
+PerlSockSend(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags)
+{
+       return (nw_send(s, buffer, len, flags));
+}
+
+int
+PerlSockSendto(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen)
+{
+       return(nw_sendto(s, buffer, len, flags, to, tolen));
+}
+
+void
+PerlSockSethostent(struct IPerlSock* piPerl, int stayopen)
+{
+       nw_sethostent(stayopen);
+}
+
+void
+PerlSockSetnetent(struct IPerlSock* piPerl, int stayopen)
+{
+       nw_setnetent(stayopen);
+}
+
+void
+PerlSockSetprotoent(struct IPerlSock* piPerl, int stayopen)
+{
+       nw_setprotoent(stayopen);
+}
+
+void
+PerlSockSetservent(struct IPerlSock* piPerl, int stayopen)
+{
+       nw_setservent(stayopen);
+}
+
+int
+PerlSockSetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, const char* optval, int optlen)
+{
+       dTHXo;
+    Perl_croak(aTHX_ "setsockopt not implemented!\n");
+       return 0;
+}
+
+int
+PerlSockShutdown(struct IPerlSock* piPerl, SOCKET s, int how)
+{
+       return nw_shutdown(s, how);
+}
+
+SOCKET
+PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol)
+{
+       return nw_socket(af, type, protocol);
+}
+
+int
+PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds)
+{
+    dTHXo;
+    Perl_croak(aTHX_ "socketpair not implemented!\n");
+    return 0;
+}
+
+int
+PerlSockIoctlsocket(struct IPerlSock* piPerl, SOCKET s, long cmd, u_long *argp)
+{
+       dTHXo;
+    Perl_croak(aTHX_ "ioctlsocket not implemented!\n");
+       return 0;
+}
 
 struct IPerlSock  perlSock =
 {
@@ -417,6 +1379,6 @@ struct IPerlSock  perlSock =
     PerlSockSocketpair,
 };
 
-/* IPerlSock - Socket functions - End ====================================================*/
+/* IPerlSock - Socket functions - End ==================================================*/
 
 #endif /* ___NWPerlSys_H___ */
index 6930e05..fd004bc 100644 (file)
@@ -31,7 +31,6 @@ typedef struct tagThreadInfo
        void*   m_allocList;
 }ThreadInfo;
 
-
 void fnInitializeThreadInfo(void);
 BOOL fnTerminateThreadInfo(void);
 BOOL fnRegisterWithThreadTable(void);
@@ -42,7 +41,11 @@ BOOL fnRemoveThreadInfo(int tid);
 ThreadInfo* fnGetThreadInfo(int tid);
 
 //For storing and retrieving Watcom Hash list address
-BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
+#ifdef __cplusplus
+       extern "C" BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
+#else
+       BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
+#endif
 BOOL fnGetHashListAddrs(void **addrs, BOOL *dontTouchHashList);
 
 //New TLS to set and get the thread contex - may be redundant,
index 8449a91..72bde60 100644 (file)
@@ -243,8 +243,9 @@ chgrp (Loc.U):
        The value is a plain '' and is not useful.
 
 chmod (Loc.U):
-       This variable is defined but not used by Configure.
-       The value is a plain '' and is not useful.
+       This variable is used internally by Configure to determine the
+       full pathname (if any) of the chmod program.  After Configure runs,
+       the value is reset to a plain "chmod" and is not useful.
 
 chown (Loc.U):
        This variable is defined but not used by Configure.
@@ -1081,6 +1082,10 @@ d_nice (d_nice.U):
        This variable conditionally defines the HAS_NICE symbol, which
        indicates to the C program that the nice() routine is available.
 
+d_nl_langinfo (d_nl_langinfo.U):
+       This variable conditionally defines the HAS_NL_LANGINFO symbol, which
+       indicates to the C program that the nl_langinfo() routine is available.
+
 d_nv_preserves_uv (perlxv.U):
        This variable indicates whether a variable of type nvtype
        can preserve all the bits a variable of type uvtype.
@@ -2164,6 +2169,10 @@ i_inttypes (i_inttypes.U):
        This variable conditionally defines the I_INTTYPES symbol,
        and indicates whether a C program should include <inttypes.h>.
 
+i_langinfo (i_langinfo.U):
+       This variable conditionally defines the I_LANGINFO symbol,
+       and indicates whether a C program should include <langinfo.h>.
+
 i_libutil (i_libutil.U):
        This variable conditionally defines the I_LIBUTIL symbol, and indicates
        whether a C program should include <libutil.h>.
@@ -3550,7 +3559,7 @@ stdio_cnt (d_stdstdio.U):
 
 stdio_filbuf (d_stdstdio.U):
        This variable defines how, given a FILE pointer, fp, to tell
-       stdio to refill it's internal buffers (?).  This will
+       stdio to refill its internal buffers (?).  This will
        be used to define the macro FILE_filbuf(fp).
 
 stdio_ptr (d_stdstdio.U):
index 0ca0ec8..3819d4f 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Sat Jun 23 00:03:07 EET DST 2001
+# Configuration time: Thu Jun 28 18:05:29 EET DST 2001
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -63,10 +63,10 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_
 ccversion='V5.6-082'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Sat Jun 23 00:03:07 EET DST 2001'
+cf_time='Thu Jun 28 18:05:29 EET DST 2001'
 charsize='1'
 chgrp=''
-chmod=''
+chmod='chmod'
 chown=''
 clocktype='clock_t'
 comm='comm'
@@ -260,6 +260,7 @@ d_msync='define'
 d_munmap='define'
 d_mymalloc='undef'
 d_nice='define'
+d_nl_langinfo='define'
 d_nv_preserves_uv='undef'
 d_nv_preserves_uv_bits='53'
 d_off64_t='undef'
@@ -487,6 +488,7 @@ i_grp='define'
 i_iconv='define'
 i_ieeefp='undef'
 i_inttypes='undef'
+i_langinfo='define'
 i_libutil='undef'
 i_limits='define'
 i_locale='define'
@@ -668,9 +670,9 @@ pager='/c/bin/less'
 passcat='cat /etc/passwd'
 patchlevel='7'
 path_sep=':'
-perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
+perl5='/usr/local/bin/perl'
 perl=''
-perl_patchlevel='10824'
+perl_patchlevel='10995'
 perladmin='yourname@yourhost.yourplace.com'
 perllibs='-lm -liconv -lutil -lpthread -lexc'
 perlpath='/opt/perl/bin/perl'
@@ -843,7 +845,7 @@ vi=''
 voidflags='15'
 xlibpth='/usr/lib/386 /lib/386'
 xs_apiversion='5.7.1'
-yacc='/u/vieraat/vieraat/jhi/Perl/bin/byacc'
+yacc='/usr/local/bin/byacc'
 yaccflags=''
 zcat=''
 zip='zip'
@@ -870,7 +872,7 @@ PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=5
 PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=10824
+PERL_PATCHLEVEL=10995
 PERL_CONFIG_SH=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
index 3c14554..3ae6ca9 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Sat Jun 23 00:03:07 EET DST 2001
+ * Configuration time: Thu Jun 28 18:05:29 EET DST 2001
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 /*#define      HAS_FLOCK_PROTO / **/
 
+/* HAS_NL_LANGINFO:
+ *     This symbol, if defined, indicates that the nl_langinfo routine is
+ *     available to return local data.  You will also need <langinfo.h>
+ *     and therefore I_LANGINFO.
+ */
+#define HAS_NL_LANGINFO                /**/
+
 /* HAS_SIGPROCMASK:
  *     This symbol, if defined, indicates that the sigprocmask
  *     system call is available to examine or change the signal mask
  */
 /*#define      HAS_USLEEP_PROTO        / **/
 
+/* I_LANGINFO:
+ *     This symbol, if defined, indicates that <langinfo.h> exists and
+ *     should be included.
+ */
+#define        I_LANGINFO              /**/
+
 #endif
index 5f1338d..bbe537a 100644 (file)
@@ -254,11 +254,12 @@ owner's permission.
 Here is the current structure of the repository:
 
     /----+-----perl                  - Mainline development (bleadperl)
-         +-----cfgperl               - Configure Pumpkin's Perl
+         +-----perlio                - PerlIO Pumpkin's Perl
          +-----vmsperl               - VMS Pumpkin's Perl
          +-----maint-5.004------perl - Maintainance branches
          +-----maint-5.005------perl
          +-----maint-5.6------perl
+         +-----maint-5.6------pureperl
 
 Perforce uses a branching model that simply tracks relationships
 between files.  It does not care about directories at all, so
@@ -275,8 +276,8 @@ files.
 The mainline (aka "trunk") code in the Perl repository is under
 "//depot/perl/...".  Most branches typically map its entire
 contents under a directory that goes by the same name as the branch
-name.  Thus the contents of the cfgperl branch are to be found
-in //depot/cfgperl.
+name.  Thus the contents of the perlio branch are to be found
+in //depot/perlio.
 
 Run `p4 client` to specify how the repository contents should map to
 your local disk.  Most users will typically have a client map that
@@ -288,23 +289,75 @@ that shows files and branches.  You can use this listing to determine
 if there are any changes in the mainline that you need to merge into
 your own branch.  A typical merging session looks like this:
 
-    % cd ~/p4view/cfgperl
-    % p4 integrate -b cfgperl    # to bring parent changes into cfgperl
-    % p4 resolve -a ./...        # auto merge the changes
+    % cd ~/p4view/perlio
+    % p4 integrate -b perlio     # to bring parent changes into perlio
+    % p4 resolve -am ./...        # auto merge the changes
     % p4 resolve ./...           # manual merge conflicting changes
     % p4 submit ./...            # check in
 
-If the owner of the mainline wants to bring the changes in cfgperl
+If the owner of the mainline wants to bring the changes in perlio
 back into the mainline, they do:
 
-    % p4 integrate -r -b cfgperl
+    % p4 integrate -r -b perlio
     ...
 
 Generating a patch for change#42 is done as follows:
 
     % p4 describe -du 42 | p4desc | p4d2p > change-42.patch
 
-p4desc and p4d2p are to be found in //depot/perl/Porting/.
+F<p4desc> and F<>p4d2p> are to be found in //depot/perl/Porting/.
+
+The usual routine to apply a patch is
+
+    % p4 edit file.c file.h
+    % patch < patch.txt
+
+(any necessary, re-Configure, make regen_headers, make clean, etc, here)
+
+    % make all test
+
+(preferably make all test in several platforms and under several
+different Configurations)
+
+    % while unhappy
+    do
+      $EDITOR
+      make all test
+    done
+    % p4 submit
+
+Other useful Perforce commands
+
+    % p4 describe -du 12345 # show change 12345
+
+Note: the output of "p4 describe" is not in proper diff format, use
+the F<Porting/p4d2p> to convert.
+
+    % p4 diff -se ./...     # have I modified something but forgotten
+                            # to "p4 edit", easy faux pas with autogenerated
+                            # files like proto.h, or if one forgets to
+                            # look carefully which files a patch modifies
+    % p4 sync file.h        # if someone else has modified file.h
+    % p4 opened             # which files are opened (p4 edit) by me
+    % p4 opened -a          # which files are opened by anybody
+    % p4 diff -du file.c    # what changes have I done
+    % p4 revert file.h      # never mind my changes
+    % p4 sync -f argh.c     # forcibly synchronize your file
+                            # from the repository
+    % p4 diff -sr | p4 -x - revert
+                            # throw away (opened but) unchanged files
+                            # (in Perforce it's a little bit too easy
+                            # to checkin unchanged files)
+
+Integrate patch 12345 from the mainline to the maint-5.6 branch:
+(you have to in the directory that has both the mainline and
+the maint-5.6/perl as subdirectories)
+
+    % p4 integrate -d perl/...@12345,12345 maint-5.6/perl/...
+
+Integrate patches 12347-12350 from the perlio branch to the mainline:
+
+    % p4 integrate -d perlio/...@12347,12350 perl/...
 
 =head1 Contact Information
 
@@ -320,7 +373,9 @@ Malcolm Beattie, mbeattie@sable.ox.ac.uk, 24 June 1997.
 
 Gurusamy Sarathy, gsar@activestate.com, 8 May 1999.
 
-Slightly updated by Simon Cozens, simon@brecon.co.uk, 3 July 2000
+Slightly updated by Simon Cozens, simon@brecon.co.uk, 3 July 2000.
+
+More updates by Jarkko Hietaniemi, jhi@iki.fi, 28 June 2001.
 
 =cut
 
index bdee55e..1764896 100644 (file)
@@ -8,7 +8,7 @@ Perl for NetWare5.x
 
 =head1 Description
 
-This file gives the instructions for building Perl5.6.1 for
+This file gives the instructions for building Perl5.6 and above for
 NetWare5.x.  Please read and understand the terms under which this
 software is distributed.
 
@@ -161,11 +161,9 @@ Also fork() is not currently implemented.
 
 =head1 Acknowledgements
 
-For the porting purpose, the PerlHost of Win32 port was used as
-reference and NetWare portions are added.  Also the makefile for Win32
-is used as a reference to create the makefile for NetWare build.
-Additionally the make process for NetWare port uses miniperl.exe to
-run scripts during the make and installation process.
+The makefile for Win32 is used as a reference to create the makefile
+for NetWare build.  Also, the make process for NetWare port uses miniperl.exe
+to run scripts during the make and installation process.
 
 =head1 Author
 
@@ -181,7 +179,7 @@ Created - 18th Jan 2001
 
 =item *
 
-Modified -  16th April 2001
+Modified -  25th June 2001
 
 =back
 
index ebff548..c841bd6 100644 (file)
@@ -14,7 +14,16 @@ As of perl5.004_04, all tests pass under:
   Watcom 10.6 with Beta/970211.wcc.update.tar.F
   socket3r.lib Nov21 1996.
 
-Update June 2001: Perl 5.6.1 most probably also works just fine in QNX.
+Update June 2001: Perl 5.6.1 works fine in QNX4 with
+a few 'known' failures in the test suite.
+
+[ Perl 5.6.0 is shipping with QNX RTP (aka QNX6, Neutrino), but
+the build does not appear to be straightforward. If anyone has
+more data in this regard, please let me know.
+
+These notes were originally written for QNX4 and do not
+necessarily apply to Neutrino, but see hints/qnx.sh for
+more information. ] 
 
 =head2 Required Software for Compiling Perl on QNX
 
@@ -49,7 +58,7 @@ a cover function on the fly in the UU directory.
 Configure and perl need a way to invoke a C
 preprocessor. I have created a simple cover
 for cc which does the right thing. Without this,
-Configure will create it's own wrapper which works,
+Configure will create its own wrapper which works,
 but it doesn't handle some of the command line arguments
 that perl will throw at it.
 
@@ -63,7 +72,21 @@ from quics for earlier versions.
 
 =head2 Outstanding Issues with Perl on QNX
 
-There is currently no support for dynamically linked libraries.
+There is no support for dynamically linked libraries in QNX4.
+
+The following tests may report errors:
+
+ext/Cwd/Cwd.t will complain if `pwd` and cwd don't give
+the same results. cwd calls `fullpath -t`, so if you
+cd `fullpath -t` before running the test, it will
+pass.
+
+lib/File/Find/taint.t will complain if '.' is in your
+PATH. The PATH test is triggered because cwd calls
+`fullpath -t`.
+
+ext/IO/lib/IO/t/io_sock.t Still investigating
+ext/POSIX/sigaction.t Still investigating
 
 =head2 QNX auxiliary files
 
diff --git a/XSUB.h b/XSUB.h
index 87a05d0..23f292b 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -90,7 +90,7 @@ handled automatically by C<xsubpp>.
 #  define XSINTERFACE_CVT(ret,name) ret (*name)()
 #endif
 #define dXSFUNCTION(ret)               XSINTERFACE_CVT(ret,XSFUNCTION)
-#define XSINTERFACE_FUNC(ret,cv,f)     ((XSINTERFACE_CVT(ret,cv))(f))
+#define XSINTERFACE_FUNC(ret,cv,f)     ((XSINTERFACE_CVT(ret,))(f))
 #define XSINTERFACE_FUNC_SET(cv,f)     \
                CvXSUBANY(cv).any_dptr = (void (*) (pTHXo_ void*))(f)
 
index 06325c0..2cf8168 100644 (file)
@@ -3398,6 +3398,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_flockproto HAS_FLOCK_PROTO /**/
 
+/* HAS_NL_LANGINFO:
+ *     This symbol, if defined, indicates that the nl_langinfo routine is
+ *     available to return local data.  You will also need <langinfo.h>
+ *     and therefore I_LANGINFO.
+ */
+#$d_nl_langinfo HAS_NL_LANGINFO                /**/
+
 /* HAS_SIGPROCMASK:
  *     This symbol, if defined, indicates that the sigprocmask
  *     system call is available to examine or change the signal mask
@@ -3464,5 +3471,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_usleepproto        HAS_USLEEP_PROTO        /**/
 
+/* I_LANGINFO:
+ *     This symbol, if defined, indicates that <langinfo.h> exists and
+ *     should be included.
+ */
+#$i_langinfo   I_LANGINFO              /**/
+
 #endif
 !GROK!THIS!
index 0ccc61a..73880ac 100644 (file)
@@ -1076,6 +1076,9 @@ $!: determine the architecture name
 $! genconfig.pl has either archname='VMS_AXP' or 'VMS_VAX'
 $! Note that DCL in VMS V5.4 does not have F$GETSYI("ARCH_NAME")
 $! but does have F$GETSYI("HW_MODEL").
+$! Please try to use either archname .EQS. "VMS_VAX" or archname .EQS. 
+$! "VMS_AXP" from here on to allow cross-platform configuration (e.g.
+$! configure a VAX build on an Alpha).
 $!
 $ IF (F$GETSYI("HW_MODEL") .LT. 1024)
 $ THEN 
@@ -1104,11 +1107,8 @@ $ vms_prefix = "perl_root"
 $ vms_prefixup = F$EDIT(vms_prefix,"UPCASE")
 $ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''dflt'] "
 $ GOSUB myread
-$ if ans.NES.""
-$ THEN
-$   ans = F$EXTRACT(0,1,F$EDIT(ans,"COLLAPSE, UPCASE"))
-$ ENDIF
-$ IF (ans.NES."Y")
+$ if ans .EQS. "" THEN ans = dflt
+$ IF .NOT. ans
 $ THEN
 $   sharedperl = "N"
 $ ELSE
@@ -1953,7 +1953,7 @@ $!
 $List_Parse:
 $ OPEN/READ CONFIG ccvms.lis
 $ READ CONFIG line
-$ IF (F$GETSYI("HW_MODEL") .LT. 1024)
+$ IF archname .EQS. "VMS_VAX"
 $ THEN
 $   read CONFIG line
 $   archsufx = "VAX"
@@ -2822,7 +2822,7 @@ $ usemymalloc=mymalloc
 $!
 $ perl_cc=Mcc
 $!
-$ IF (sharedperl .AND. F$GETSYI("HW_MODEL") .GE. 1024)
+$ IF (sharedperl .AND. archname .EQS. "VMS_AXP")
 $ THEN
 $   obj_ext=".abj"
 $   so="axe"
@@ -4651,7 +4651,9 @@ $   d_strcoll="define"
 $   d_strxfrm="define"
 $   d_wctomb="define"
 $   i_locale="define"
+$   i_langinfo="define"
 $   d_locconv="define"
+$   d_nl_langinfo="define"
 $   d_setlocale="define"
 $   vms_cc_type="decc"
 $ ELSE
@@ -4668,7 +4670,9 @@ $   d_strcoll="undef"
 $   d_strxfrm="undef"
 $   d_wctomb="undef"
 $   i_locale="undef"
+$   i_langinfo="undef"
 $   d_locconv="undef"
+$   d_nl_langinfo="undef"
 $   d_setlocale="undef"
 $ ENDIF
 $ d_stdio_ptr_lval_sets_cnt="undef"
@@ -5137,6 +5141,7 @@ $ WC "d_msync='undef'"
 $ WC "d_munmap='undef'"
 $ WC "d_mymalloc='" + d_mymalloc + "'"
 $ WC "d_nice='define'"
+$ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
 $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
 $ WC "d_nv_preserves_uv_bits='" + d_nv_preserves_uv_bits + "'"
 $ WC "d_off64_t='" + d_off64_t + "'"
@@ -5348,6 +5353,7 @@ $ WC "i_grp='undef'"
 $ WC "i_iconv='" + i_iconv +"'"
 $ WC "i_ieeefp='undef'"
 $ WC "i_inttypes='" + i_inttypes + "'"
+$ WC "i_langinfo='" + i_langinfo + "'"
 $ WC "i_libutil='" + i_libutil + "'"
 $ WC "i_limits='define'"
 $ WC "i_locale='" + i_locale + "'"
@@ -5692,6 +5698,13 @@ $ IF be_case_sensitive THEN WC "#define VMS_WE_ARE_CASE_SENSITIVE"
 $ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO"
 $ WC "#define HAS_ENVGETENV"
 $ WC "#define PERL_EXTERNAL_GLOB"
+$ IF archname .EQS. "VMS_VAX" .AND. -
+     ccname .EQS. "DEC" .AND. -
+     ccversion .LE. 50390006
+$ THEN
+$! Alas this does not help to build Fcntl
+$!   WC "#define PERL_IGNORE_FPUSIG SIGFPE"
+$ ENDIF
 $ CLOSE CONFIG
 $!
 $ echo4 "Doing variable substitutions on .SH files..."
@@ -5943,7 +5956,7 @@ $   echo ""
 $   echo4 "The perl.cld file is now being written..."
 $   OPEN/WRITE CONFIG 'file_2_find'
 $   ext = ".exe"
-$   IF ((sharedperl) .AND. (F$GETSYI("HW_MODEL") .GE. 1024)) THEN ext := .AXE
+$   IF (sharedperl .AND. archname .EQS. "VMS_AXP") THEN ext := .AXE
 $   IF (use_vmsdebug_perl)
 $   THEN
 $     WRITE CONFIG "define verb dbgperl"
diff --git a/cv.h b/cv.h
index 4ade508..7fa9400 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -55,6 +55,11 @@ Returns the stash of the CV.
 #define CvXSUBANY(sv)  ((XPVCV*)SvANY(sv))->xcv_xsubany
 #define CvGV(sv)       ((XPVCV*)SvANY(sv))->xcv_gv
 #define CvFILE(sv)     ((XPVCV*)SvANY(sv))->xcv_file
+#ifdef USE_ITHREADS
+#  define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = savepv(CopFILE(cop)))
+#else
+#  define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = CopFILE(cop))
+#endif
 #define CvFILEGV(sv)   (gv_fetchfile(CvFILE(sv))
 #define CvDEPTH(sv)    ((XPVCV*)SvANY(sv))->xcv_depth
 #define CvPADLIST(sv)  ((XPVCV*)SvANY(sv))->xcv_padlist
index 4e390cf..f235421 100644 (file)
@@ -1,3 +1,4 @@
+#define PERLIO_NOT_STDIO 0
 #include <libc/stubs.h>
 #include <io.h>
 #include <errno.h>
@@ -27,7 +28,7 @@ struct pipe_list {
 static struct pipe_list *pl = NULL;
 
 FILE *
-popen (const char *cm, const char *md) /* program name, pipe mode */
+djgpp_popen (const char *cm, const char *md) /* program name, pipe mode */
 {
   struct pipe_list *l1;
   int fd;
@@ -75,7 +76,7 @@ popen (const char *cm, const char *md) /* program name, pipe mode */
 }
 
 int
-pclose (FILE *pp)
+djgpp_pclose (FILE *pp)
 {
   struct pipe_list *l1, **l2;   /* list pointers */
   int retval=-1;               /* function return value */
diff --git a/doio.c b/doio.c
index 84d2aaa..dfd8710 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -233,6 +233,7 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
        }
        IoTYPE(io) = *type;
        if ((*type == IoTYPE_RDWR) && /* scary */
+           (*(type+1) == IoTYPE_RDONLY || *(type+1) == IoTYPE_WRONLY) &&
            ((!num_svs || (tend > type+1 && tend[-1] != IoTYPE_PIPE)))) {
            mode[1] = *type++;
            writing = 1;
index ff16b03..8abdb0e 100644 (file)
@@ -1610,7 +1610,7 @@ For best results apply to an older Emacs the patches from
   ftp://ftp.math.ohio-state.edu/pub/users/ilya/cperl-mode/patches
 \(this upgrades syntax-parsing abilities of RMS Emaxen v19.34 and 
 v20.2 up to the level of RMS Emacs v20.3 - a must for a good Perl
-mode.)  You will not get much from XEmacs, it's syntax abilities are
+mode.)  You will not get much from XEmacs; its syntax abilities are
 too primitive.
 
 Get support packages choose-color.el (or font-lock-extra.el before
index 4a9176f..9ad4767 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -2600,6 +2600,9 @@ s |void   |xstat          |int
 #if defined(PERL_OBJECT)
 };
 #endif
+
+START_EXTERN_C
+
 Apd    |void   |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
 Apd    |void   |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags
 Apd    |void   |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
@@ -2607,3 +2610,6 @@ Apd       |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
 Apd    |char*  |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
 Apd    |char*  |sv_2pv_flags   |SV* sv|STRLEN* lp|I32 flags
 Ap     |char*  |my_atof2       |const char *s|NV* value
+
+END_EXTERN_C
+
index 2cc62f6..772e30d 100644 (file)
@@ -33,8 +33,8 @@ apirevision=''
 apisubversion=''
 apiversion=''
 ar='arm-pe-ar'
-archlib='?:/perl/lib/5.7.1/epoc'
-archlibexp='?:/perl/lib/5.7.1/epoc'
+archlib='?:/perl/lib/5.7.2/epoc'
+archlibexp='?:/perl/lib/5.7.2/epoc'
 archname64=''
 archname='epoc'
 archobjs='epoc.o epocish.o epoc_stubs.o'
@@ -250,6 +250,7 @@ d_msync='undef'
 d_munmap='undef'
 d_mymalloc='undef'
 d_nice='undef'
+d_nl_langinfo='undef'
 d_off64_t='undef'
 d_old_pthread_create_joinable='undef'
 d_oldpthreads='undef'
@@ -451,6 +452,7 @@ i_grp='undef'
 i_iconv='undef'
 i_ieeefp='undef'
 i_inttypes='undef'
+i_langinfo='undef'
 i_libutil='undef'
 i_limits='define'
 i_locale='undef'
@@ -629,8 +631,8 @@ pmake=''
 pr=''
 prefix=''
 prefixexp=''
-privlib='?:/perl/lib/5.7.1'
-privlibexp='?:/perl/lib/5.7.1'
+privlib='?:/perl/lib/5.7.2'
+privlibexp='?:/perl/lib/5.7.2'
 prototype='define'
 ptrsize='4'
 randbits='31'
@@ -674,11 +676,11 @@ sig_num='0'
 sig_num_init='0, 0'
 sig_size='1'
 signal_t='void'
-sitearch='?:/perl/lib/site_perl/5.7.1/epoc'
-sitearchexp='?:/perl/lib/site_perl/5.7.1/epoc'
-sitelib='?:/perl/lib/site_perl/5.7.1/'
+sitearch='?:/perl/lib/site_perl/5.7.2/epoc'
+sitearchexp='?:/perl/lib/site_perl/5.7.2/epoc'
+sitelib='?:/perl/lib/site_perl/5.7.2/'
 sitelib_stem='?:/perl/lib/site_perl'
-sitelibexp='?:/perl/lib/site_perl/5.7.1/'
+sitelibexp='?:/perl/lib/site_perl/5.7.2/'
 siteprefix=''
 siteprefixexp=''
 sizesize='4'
@@ -750,7 +752,7 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.7.1'
+version='5.7.2'
 versiononly='undef'
 vi=''
 voidflags='15'
@@ -778,7 +780,7 @@ PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=6
 PERL_API_SUBVERSION=0
-CONFIGDOTSH=true
+PERL_CONFIG_SH=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags=''
 epocish_cflags='ccflags="$cflags -xc++"'
@@ -883,7 +885,7 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.7.1'
+version='5.7.2'
 vi=''
 voidflags='15'
 xlibpth=''
index 5e798ce..e573cef 100644 (file)
@@ -55,7 +55,7 @@ sub B::Asmdata::PUT_U8 {
 sub B::Asmdata::PUT_U16 { pack("S", $_[0]) }
 sub B::Asmdata::PUT_U32 { pack("L", $_[0]) }
 sub B::Asmdata::PUT_I32 { pack("L", $_[0]) }
-sub B::Asmdata::PUT_NV  { sprintf("%s\0", $_[0]) } # "%lf" looses precision and pack('d',...)
+sub B::Asmdata::PUT_NV  { sprintf("%s\0", $_[0]) } # "%lf" loses precision and pack('d',...)
                                                   # may not even be portable between compilers
 sub B::Asmdata::PUT_objindex { pack("L", $_[0]) } # could allow names here
 sub B::Asmdata::PUT_svindex { &B::Asmdata::PUT_objindex }
index bc9d896..d302d2e 100644 (file)
@@ -28,7 +28,7 @@ my $redir = $Is_MacOS ? "" : "2>&1";
 
 chomp($a = `$^X $path "-MB::Stash" "-Mwarnings" -e1`);
 $a = join ',', sort split /,/, $a;
-$a =~ s/-u(PerlIO|open)(?:::\w+)?,//g if defined $Config{'useperlio'} and $Config{'useperlio'} eq 'define';
+$a =~ s/-u(PerlIO|open)(?:::\w+)?,//g;
 $a =~ s/-uWin32,// if $^O eq 'MSWin32';
 $a =~ s/-uNetWare,// if $^O eq 'NetWare';
 $a =~ s/-u(Cwd|File|File::Copy|OS2),//g if $^O eq 'os2';
index 82b89ac..be9427b 100644 (file)
@@ -183,7 +183,9 @@ loop:
 #endif
 
        /* It's okay if the close fails, what's an fd more or less? */
+#ifdef HAS_FCHDIR
        (void)close(fd);
+#endif
        return (resolved);
 
 err1:  serrno = errno;
index 9806427..a2a4186 100644 (file)
@@ -151,7 +151,6 @@ void
 fill_mstats(SV *sv, int level)
 {
     dTHX;
-    struct mstats_buffer buf;
 
     if (SvREADONLY(sv))
        croak("Cannot modify a readonly value");
index cbbd668..8e11355 100644 (file)
@@ -10,6 +10,14 @@ unless ($Config{d_u32align}) {
        if !($Config{'byteorder'} eq '1234' ||
             $Config{'byteorder'} eq '4321');
 }
+my @optimize = ();
+if ($^O eq 'VMS') {
+    if (defined($Config{ccname})) {
+        if ($Config{ccversion} <= 50390006 && grep(/VMS_VAX/, @INC) && ($Config{ccname} eq 'DEC')) {
+            @optimize = ("OPTIMIZE","/Optimize=(NODISJOINT)");
+        }
+    }
+}
 
 WriteMakefile(
     'NAME'        => 'Digest::MD5',
@@ -17,6 +25,7 @@ WriteMakefile(
     MAN3PODS    => {},  # Pods will be built by installman.
     @extra,
     'dist'         => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    @optimize
 );
 exit;
 
index 9068f27..dc6455d 100644 (file)
@@ -79,7 +79,7 @@ sub loadEncoding
      last unless $type eq '#';
     }
    my $class = ref($obj).('::'.(($type eq 'E') ? 'Escape' : 'Table'));
-   carp "Loading $file";
+   carp "Loading $file";
    bless $obj,$class;
    return $obj if $obj->read($fh,$obj->name,$type);
   }
@@ -110,7 +110,7 @@ use Data::Dumper;
 sub read
 {
  my ($obj,$fh,$name,$type) = @_;
- my $rep = $obj->can("rep_$type");
+ my($rep, @leading);
  my ($def,$sym,$pages) = split(/\s+/,scalar(<$fh>));
  my @touni;
  my %fmuni;
@@ -122,6 +122,7 @@ sub read
    chomp($line);
    my $page = hex($line);
    my @page;
+   $leading[$page] = 1 if $page;
    my $ch = $page * 256;
    for (my $i = 0; $i < 16; $i++)
     {
@@ -131,7 +132,7 @@ sub read
        my $val = hex(substr($line,0,4,''));
        if ($val || !$ch)
         {
-         my $uch = chr($val);
+         my $uch = pack('U', $val); # chr($val);
          push(@page,$uch);
          $fmuni{$uch} = $ch;
          $count++;
@@ -145,6 +146,8 @@ sub read
     }
    $touni[$page] = \@page;
   }
+ $rep = $type ne 'M' ? $obj->can("rep_$type") :
+   sub { ($_[0] > 255) || $leading[$_[0]] ? 'n' : 'C'};
  $obj->{'Rep'}   = $rep;
  $obj->{'ToUni'} = \@touni;
  $obj->{'FmUni'} = \%fmuni;
@@ -157,13 +160,13 @@ sub rep_S { 'C' }
 
 sub rep_D { 'n' }
 
-sub rep_M { ($_[0] > 255) ? 'n' : 'C' }
+#sub rep_M { ($_[0] > 255) ? 'n' : 'C' }
 
 sub representation
 {
  my ($obj,$ch) = @_;
  $ch = 0 unless @_ > 1;
- $obj-{'Rep'}->($ch);
+ $obj->{'Rep'}->($ch);
 }
 
 sub decode
diff --git a/ext/Encode/Encode/Tcl.t b/ext/Encode/Encode/Tcl.t
new file mode 100644 (file)
index 0000000..e26cf7c
--- /dev/null
@@ -0,0 +1,83 @@
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+    require Config; import Config;
+    if ($Config{'extensions'} !~ /\bEncode\b/) {
+      print "1..0 # Skip: Encode was not built\n";
+      exit 0;
+    }
+}
+use Test;
+use Encode qw(encode decode);
+use Encode::Tcl;
+
+my @encodings = qw(euc-cn euc-jp euc-kr big5 shiftjis); # CJK
+my $n = 2;
+
+my %greek = (
+  'euc-cn'   => [0xA6A1..0xA6B8,0xA6C1..0xA6D8],
+  'euc-jp'   => [0xA6A1..0xA6B8,0xA6C1..0xA6D8],
+  'euc-kr'   => [0xA5C1..0xA5D8,0xA5E1..0xA5F8],
+  'big5'     => [0xA344..0xA35B,0xA35C..0xA373],
+  'shiftjis' => [0x839F..0x83B6,0x83BF..0x83D6],
+  'utf8'     => [0x0391..0x03A1,0x03A3..0x03A9,0x03B1..0x03C1,0x03C3..0x03C9],
+);
+my @greek = qw(
+  ALPHA BETA GAMMA DELTA EPSILON ZETA ETA
+  THETA IOTA KAPPA LAMBDA MU NU XI OMICRON
+  PI RHO SIGMA TAU UPSILON PHI CHI PSI OMEGA
+  alpha beta gamma delta epsilon zeta eta
+  theta iota kappa lambda mu nu xi omicron
+  pi rho sigma tau upsilon phi chi psi omega
+);
+
+my %ideodigit = ( # cjk ideograph 'one' to 'ten'
+  'euc-cn'   => [qw(d2bb b6fe c8fd cbc4 cee5 c1f9 c6df b0cb bec5 caae)],
+  'euc-jp'   => [qw(b0ec c6f3 bbb0 bbcd b8de cfbb bcb7 c8ac b6e5 bdbd)],
+  'euc-kr'   => [qw(ece9 eca3 dfb2 decc e7e9 d7bf f6d2 f8a2 cefa e4a8)],
+  'big5'     => [qw(a440 a447 a454 a57c a4ad a4bb a443 a44b a445 a451)],
+  'shiftjis' => [qw(88ea 93f1 8e4f 8e6c 8cdc 985a 8eb5 94aa 8be3 8f5c)],
+  'utf8'     => [qw(4e00 4e8c 4e09 56db 4e94 516d 4e03 516b 4e5d 5341)],
+);
+my @ideodigit = qw(one two three four five six seven eight nine ten);
+
+plan test => $n*@encodings + $n*@encodings*@greek + $n*@encodings*@ideodigit;
+
+foreach my $enc (@encodings)
+ {
+  my $tab = Encode->getEncoding($enc);
+  ok(1,defined($tab),"Could not load $enc");
+  my $str = join('',map(chr($_),0x20..0x7E));
+  my $uni = $tab->decode($str);
+  my $cpy = $tab->encode($uni);
+  ok($cpy,$str,"$enc mangled translating to Unicode and back");
+ }
+
+foreach my $enc (@encodings)
+ {
+  my $tab = Encode->getEncoding($enc);
+  foreach my $gk (0..$#greek)
+   {
+     my $uni = unpack 'U', $tab->decode(pack 'n', $greek{$enc}[$gk]);
+     ok($uni,$greek{'utf8'}[$gk],
+       "$enc mangled translating to Unicode GREEK $greek[$gk]");
+     my $cpy = unpack 'n',$tab->encode(pack 'U',$uni);
+     ok($cpy,$greek{$enc}[$gk],
+       "$enc mangled translating from Unicode GREEK $greek[$gk]");
+   }
+ }
+
+foreach my $enc (@encodings)
+ {
+  my $tab = Encode->getEncoding($enc);
+  foreach my $id (0..$#ideodigit)
+   {
+     my $uni = unpack 'U',$tab->decode(pack 'H*', $ideodigit{$enc}[$id]);
+     ok($uni,hex($ideodigit{'utf8'}[$id]),
+       "$enc mangled translating to Unicode CJK IDEOGRAPH $ideodigit[$id]");
+     my $cpy = lc unpack 'H*', $tab->encode(pack 'U',$uni);
+     ok($cpy,$ideodigit{$enc}[$id],
+       "$enc mangled translating from Unicode CJK IDEOGRAPH $ideodigit[$id]");
+   }
+ }
+
index 575e77c..b3514d4 100644 (file)
@@ -27,7 +27,11 @@ sub process_file {
             warn "Cannot open '$file'";
             return;
        }     
-    } elsif ($Config{gccversion} ne '') { 
+    } elsif ($Config{gccversion} ne ''
+             # OpenSTEP has gcc 2.7.2.1 which recognizes but
+            # doesn't implement the -dM flag.
+            && $^O ne 'openstep' && $^O ne 'next'
+            ) { 
        # With the -dM option, gcc outputs every #define it finds
        unless(open(FH,"$Config{cc} -E -dM $Config{cppflags} $file |")) {
             warn "Cannot open '$file'";
index 0f5cfa0..3ba19e8 100755 (executable)
@@ -30,7 +30,7 @@ my $Dfile = "Op.dbmx.pag";
 if (! -e $Dfile) {
        ($Dfile) = <Op.dbmx*>;
 }
-if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'dos') {
+if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin') {
     print "ok 2 # Skipped: different file permission semantics\n";
 }
 else {
index a2e3b5e..68b00a3 100644 (file)
@@ -19,7 +19,7 @@ use File::stat;
 use File::Spec;
 
 @ISA = qw(Tie::Hash Exporter);
-$VERSION = "1.03";
+$VERSION = "1.04";
 @EXPORT_OK = qw(DIR_UNLINK);
 
 sub DIR_UNLINK () { 1 }
index 063341a..0810422 100644 (file)
@@ -258,7 +258,7 @@ use IO ();  # Load the XS module
 require Exporter;
 @ISA = qw(Exporter);
 
-$VERSION = "1.21";
+$VERSION = "1.22";
 
 @EXPORT_OK = qw(
     autoflush
index 95dd4d0..650f755 100644 (file)
@@ -107,7 +107,7 @@ require Exporter;
 @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
 @ISA = qw(Exporter);
 
-$VERSION = "1.08";
+$VERSION = "1.09";
 
 sub seek {
     @_ == 3 or croak 'usage: $io->seek(POS, WHENCE)';
index 1a3a26f..bc5bf24 100644 (file)
@@ -11,7 +11,7 @@ use warnings::register;
 use     vars qw($VERSION @ISA);
 require Exporter;
 
-$VERSION = "1.14";
+$VERSION = "1.15";
 
 @ISA = qw(Exporter); # This is only so we can do version checking
 
index abe7693..b36a65b 100644 (file)
@@ -15,7 +15,7 @@ use Exporter;
 use Errno;
 
 @ISA = qw(IO::Socket);
-$VERSION = "1.25";
+$VERSION = "1.26";
 
 my $EINVAL = exists(&Errno::EINVAL) ? Errno::EINVAL() : 1;
 
index 5365242..b69aa8c 100644 (file)
@@ -13,7 +13,7 @@ use Socket;
 use Carp;
 
 @ISA = qw(IO::Socket);
-$VERSION = "1.20";
+$VERSION = "1.21";
 
 IO::Socket::UNIX->register_domain( AF_UNIX );
 
index a093238..3269b26 100644 (file)
@@ -11,7 +11,7 @@ use strict;
 use vars qw($VERSION);
 use Carp;
 
-$VERSION = "1.00";
+$VERSION = "1.01";
 
 {
     package IPC::Msg::stat;
index 641ab4b..287d438 100644 (file)
@@ -12,7 +12,7 @@ use strict;
 use vars qw($VERSION);
 use Carp;
 
-$VERSION = "1.00";
+$VERSION = "1.01";
 
 {
     package IPC::Semaphore::stat;
@@ -206,7 +206,7 @@ Returns the values of the semaphore set as an array.
 =item getncnt ( SEM )
 
 Returns the number of processed waiting for the semaphore C<SEM> to
-become greater than it's current value
+become greater than its current value
 
 =item getpid ( SEM )
 
index 0cc7400..a85ae5c 100644 (file)
@@ -14,7 +14,7 @@ use Config;
 require Exporter;
 @ISA = qw(Exporter);
 
-$VERSION = "1.03";
+$VERSION = "1.04";
 
 @EXPORT_OK = qw(
        GETALL GETNCNT GETPID GETVAL GETZCNT
index c7985f9..39e932d 100644 (file)
@@ -203,7 +203,7 @@ ftok(path, id)
         key_t k = ftok(path, id);
         ST(0) = k == (key_t) -1 ? &PL_sv_undef : sv_2mortal(newSViv(k));
 #else
-        DIE(aTHX_ PL_no_func, "ftok");
+       Perl_die(aTHX_ PL_no_func, "ftok"); return;
 #endif
 
 void
index e2b7be9..93f1d4f 100644 (file)
@@ -42,6 +42,18 @@ sub xs_o {   # many makes are too dumb to use xs_c then c_o
 ';
 }
 
+sub top_targets {      # many makes are too dumb to use xs_c then c_o
+    my($self) = shift;
+    my $out = $self->SUPER::top_targets(@_);
+    $out .
+'
+
+ListUtil.c: Util.c
+       @$(NOOP)
+
+';
+}
+
 __EOMM__
     }
 }
index 78324d0..8a7a8a3 100644 (file)
@@ -75,7 +75,7 @@ hold a reference count on the object it references. Also when the reference
 count on that object reaches zero, REF will be set to undef.
 
 This is useful for keeping copies of references , but you don't want to
-prevent the object being DESTROY-ed at it's usual time.
+prevent the object being DESTROY-ed at its usual time.
 
 =back
 
diff --git a/ext/NDBM_File/hints/linux.pl b/ext/NDBM_File/hints/linux.pl
new file mode 100644 (file)
index 0000000..47f9d2c
--- /dev/null
@@ -0,0 +1,6 @@
+# Some distributions have both gdbm and ndbm
+# Prefer gdbm to avoid the broken ndbm in some distributions
+# (no null key support)
+# Jonathan Stowe <gellyfish@gellyfish.com>
+use Config;
+$self->{LIBS} = ['-lgdbm'] if $Config{libs} =~ /\b-lgdbm\b/;
index 6a5e30d..e979851 100644 (file)
@@ -6,7 +6,7 @@ use strict;
 
 our($VERSION, $XS_VERSION, @ISA, @EXPORT_OK);
 
-$VERSION = "1.04";
+$VERSION = "1.05";
 $XS_VERSION = "1.03";
 
 use Carp;
index a803b5f..5a5e220 100644 (file)
@@ -3,7 +3,7 @@ package Safe;
 use 5.003_11;
 use strict;
 
-our $VERSION = "2.06";
+our $VERSION = "2.07";
 
 use Carp;
 
index 5bb6ab1..aae4cf3 100755 (executable)
@@ -20,6 +20,7 @@ print "1..29\n";
 $Is_W32 = $^O eq 'MSWin32';
 $Is_NetWare = $^O eq 'NetWare';
 $Is_Dos = $^O eq 'dos';
+$Is_MPE = $^O eq 'mpeix';
 
 $testfd = open("TEST", O_RDONLY, 0) and print "ok 1\n";
 read($testfd, $buffer, 9) if $testfd > 2;
@@ -72,7 +73,11 @@ sub SigINT {
 }
 }
 
-print &_POSIX_OPEN_MAX > $fds[1] ? "ok 12\n" : "not ok 12\n";
+if ($Is_MPE) {
+    print "ok 12 # skipped, _POSIX_OPEN_MAX is inaccurate on MPE\n"
+} else {
+    print &_POSIX_OPEN_MAX > $fds[1] ? "ok 12\n" : "not ok 12\n"
+}
 
 print getcwd() =~ m#/t$# ? "ok 13\n" : "not ok 13\n";
 
index c38b122..70e8e19 100644 (file)
@@ -117,11 +117,17 @@ eval {
 };
 print $@ ? "ok 17\n" : "not ok 17\n";
 
-$newaction=POSIX::SigAction->new(sub { $ok10=1; });
-sigaction(SIGCONT, POSIX::SigAction->new('DEFAULT'));
-{
-       local($^W)=0;
-       kill 'CONT', $$;
+if ($^O eq 'VMS') {
+    print "ok 18 # Skip: SIGCONT not trappable in $^O\n";
+} else {
+    $newaction=POSIX::SigAction->new(sub { $ok10=1; });
+    if (eval { SIGCONT; 1 }) {
+       sigaction(SIGCONT, POSIX::SigAction->new('DEFAULT'));
+       {
+           local($^W)=0;
+           kill 'CONT', $$;
+       }
+    }
+    print $bad18 ? "not ok 18\n" : "ok 18\n";
 }
-print $bad18 ? "not ok 18\n" : "ok 18\n";
 
index d71ab8e..e28a409 100644 (file)
@@ -2,8 +2,8 @@ BEGIN {
        chdir 't' if -d 't';
        @INC = '../lib';
        require Config; import Config;
-       if ($Config{'extensions'} !~ /\bPerlIO\b/) {
-           print "1..0 # Skip: PerlIO was not built\n";
+       unless ($Config{'useperlio'}) {
+           print "1..0 # Skip: PerlIO not used\n";
            exit 0;
        }
 }
old mode 100755 (executable)
new mode 100644 (file)
similarity index 99%
rename from ext/ODBM_File/sdbm.t
rename to ext/SDBM_File/sdbm.t
index 57928e0..49bc9f1
@@ -40,7 +40,7 @@ my $Dfile = "Op_dbmx.pag";
 if (! -e $Dfile) {
        ($Dfile) = <Op_dbmx.*>;
 }
-if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'dos') {
+if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin') {
     print "ok 2 # Skipped: different file permission semantics\n";
 }
 else {
index 77d73bb..becaec3 100644 (file)
@@ -28,6 +28,10 @@ sub BEGIN {
         print "1..0 # Skip: Storable was not built\n";
         exit 0;
     }
+    if ($^O eq 'mpeix') {
+       print "1..0 # Skip: truncate missing on MPE\n";
+       exit 0;
+    }  
 
     require 'lib/st-dump.pl';
 }
index 3deef81..6220a60 100644 (file)
@@ -3,7 +3,7 @@ require Exporter;
 use XSLoader ();
 our($VERSION, @ISA, @EXPORT);
 
-$VERSION = "1.0";
+$VERSION = "1.01";
 
 @ISA = qw(Exporter);
 @EXPORT_OK = qw(yield cond_signal cond_broadcast cond_wait async);
index db35b95..95f1a08 100644 (file)
@@ -18,6 +18,7 @@ use strict;
 my $have_gettimeofday  = defined &Time::HiRes::gettimeofday;
 my $have_usleep                = defined &Time::HiRes::usleep;
 my $have_ualarm                = defined &Time::HiRes::ualarm;
+my $have_time          = defined &Time::HiRes::time;
 
 import Time::HiRes 'gettimeofday'      if $have_gettimeofday;
 import Time::HiRes 'usleep'            if $have_usleep;
@@ -54,7 +55,7 @@ else {
     ok 4, ($two[0] > $one[0] || ($two[0] == $one[0] && $two[1] > $one[1])),
            "@two is not greater than @one";
 
-    my $f = Time::HiRes::time;
+    my $f = Time::HiRes::time();
     ok 5, $f > 850_000_000, "$f too small";
     ok 6, $f - $two[0] < 2, "$f - @two >= 2";
 }
@@ -74,9 +75,9 @@ else {
        skip 8;
     }
     else {
-       my $f = Time::HiRes::time;
+       my $f = Time::HiRes::time();
        usleep(500_000);
-        my $f2 = Time::HiRes::time;
+        my $f2 = Time::HiRes::time();
        my $d = $f2 - $f;
        ok 8, $d > 0.4 && $d < 0.8, "slept $d secs $f to $f2";
     }
@@ -97,7 +98,7 @@ else {
     ok 10, $f < 2, $f;
 }
 
-if (!$have_usleep) {
+if (!$have_usleep || !$have_gettimeofday) {
     skip 11;
 }
 else {
@@ -129,7 +130,9 @@ else {
 
 # new test: did we even get close?
 
-{
+if (!$have_time) {
+    skip 14
+} else {
  my $t = time();
  my $tf = Time::HiRes::time();
  ok 14, (abs($tf - $t) <= 1),
@@ -152,11 +155,11 @@ unless (defined &Time::HiRes::gettimeofday
     print "$f\nok 15\n";
 
     print "# sleep...";
-    $r = [Time::HiRes::gettimeofday];
+    $r = [Time::HiRes::gettimeofday()];
     sleep (0.5);
     print Time::HiRes::tv_interval($r), "\nok 16\n";
 
-    $r = [Time::HiRes::gettimeofday];
+    $r = [Time::HiRes::gettimeofday()];
     $i = 5;
     $SIG{ALRM} = "tick";
     while ($i)
@@ -187,7 +190,7 @@ unless (defined &Time::HiRes::setitimer
     use Time::HiRes qw (setitimer getitimer ITIMER_VIRTUAL);
 
     my $i = 3;
-    my $r = [Time::HiRes::gettimeofday];
+    my $r = [Time::HiRes::gettimeofday()];
 
     $SIG{VTALRM} = sub {
        $i ? $i-- : setitimer(ITIMER_VIRTUAL, 0);
index db0592a..83db866 100644 (file)
@@ -107,15 +107,23 @@ gettimeofday (struct timeval *tp, int nothing)
 */
 static $DESCRIPTOR(dscepoch,"01-JAN-1970 00:00:00.00");
 
+#ifdef __VAX
+static long base_adjust=0L;
+#else
 static __int64 base_adjust=0;
+#endif
 
 int
 gettimeofday (struct timeval *tp, void *tpz)
 {
  long ret;
+#ifdef __VAX
+ long quad;
+ div_t ans1,ans2;
+#else
  __int64 quad;
  __qdiv_t ans1,ans2;
-
+#endif
 /*
         In case of error, tv_usec = 0 and tv_sec = VMS condition code.
         The return from function is also set to -1.
@@ -135,8 +143,13 @@ gettimeofday (struct timeval *tp, void *tpz)
  ret=sys$gettim(&quad); /* Get VMS system time */
  if ((1 && ret) == 1) {
         quad -= base_adjust; /* convert to epoch offset */
+#ifdef __VAX
+        ans1=div(quad,DIV_100NS_TO_SECS);
+        ans2=div(ans1.rem,DIV_100NS_TO_USECS);
+#else
         ans1=qdiv(quad,DIV_100NS_TO_SECS);
         ans2=qdiv(ans1.rem,DIV_100NS_TO_USECS);
+#endif
         tp->tv_sec = ans1.quot; /* Whole seconds */
         tp->tv_usec = ans2.quot; /* Micro-seconds */
  } else {
diff --git a/ext/Time/HiRes/hints/sco.pl b/ext/Time/HiRes/hints/sco.pl
new file mode 100644 (file)
index 0000000..73ff149
--- /dev/null
@@ -0,0 +1,3 @@
+# osr5 needs to explicitly link against libc to pull in usleep
+$self->{LIBS} = ['-lc'];
+
index 6c50bea..483d148 100644 (file)
@@ -1,7 +1,7 @@
 package attrs;
 use XSLoader ();
 
-$VERSION = "1.0";
+$VERSION = "1.01";
 
 =head1 NAME
 
index 32cee21..98e89ce 100644 (file)
@@ -1,6 +1,6 @@
 package re;
 
-$VERSION = 0.02;
+our $VERSION = 0.03;
 
 =head1 NAME
 
diff --git a/gv.c b/gv.c
index 71ec31d..86f4843 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -126,7 +126,7 @@ Perl_gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi)
 
        PL_sub_generation++;
        CvGV(GvCV(gv)) = gv;
-       CvFILE(GvCV(gv)) = CopFILE(PL_curcop);
+       CvFILE_set_from_cop(GvCV(gv), PL_curcop);
        CvSTASH(GvCV(gv)) = PL_curstash;
 #ifdef USE_THREADS
        CvOWNER(GvCV(gv)) = 0;
@@ -447,7 +447,7 @@ Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
          * pass along the same data via some unused fields in the CV
          */
         CvSTASH(cv) = stash;
-        SvPVX(cv) = (char *)name; /* cast to loose constness warning */
+        SvPVX(cv) = (char *)name; /* cast to lose constness warning */
         SvCUR(cv) = len;
         return gv;
     }
diff --git a/handy.h b/handy.h
index c2bfe1e..9fd6de8 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -343,7 +343,7 @@ Converts the specified character to lowercase.
 #   define isASCII(c)  ((c) <= 127)
 #   define isCNTRL(c)  ((c) < ' ')
 #   define isGRAPH(c)  (isALNUM(c) || isPUNCT(c))
-#   define isPRINT(c)  (((c) > 32 && (c) < 127) || isSPACE(c))
+#   define isPRINT(c)  (((c) > 32 && (c) < 127) || (c) == ' ')
 #   define isPUNCT(c)  (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64)  || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
 #   define isXDIGIT(c)  (isdigit(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
 #   define toUPPER(c)  (isLOWER(c) ? (c) - ('a' - 'A') : (c))
index 3d6e8d8..a5313d4 100644 (file)
@@ -53,7 +53,7 @@ esac
 
 # AIX 4.3.* and above default to using nm for symbol extraction
 case "$osvers" in
-   3.*|4.1.*|4.2.*)
+   3.*|4.1.*|4.2.*|4.3.0.*)
       usenm='undef'
       usenativedlopen='false'
       ;;
@@ -266,9 +266,17 @@ EOCBU
 cat > UU/uselargefiles.cbu <<'EOCBU'
 case "$uselargefiles" in
 ''|$define|true|[yY]*)
+    # Configure should take care of use64bitint and use64bitall being
+    # defined before uselargefiles.cbu is consulted.
+    if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
+# Keep these at the left margin.
+ccflags_uselargefiles="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
+ldflags_uselargefiles="`getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
+    else
 # Keep these at the left margin.
 ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
 ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
+    fi
        # _Somehow_ in AIX 4.3.1.0 the above getconf call manages to
        # insert(?) *something* to $ldflags so that later (in Configure) evaluating
        # $ldflags causes a newline after the '-b64' (the result of the getconf).
@@ -280,8 +288,13 @@ ldflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
        # Therefore the line re-evaluating ldflags_uselargefiles: it seems to fix
        # the whatever it was that AIX managed to break. --jhi
        ldflags_uselargefiles="`echo $ldflags_uselargefiles`"
+    if test X"$use64bitint:$quadtype" = X"$define:long" -o X"$use64bitall" = Xdefine; then
+# Keep this at the left margin.
+libswanted_uselargefiles="`getconf XBS5_LP64_OFF64_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
+    else
 # Keep this at the left margin.
 libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
+    fi
        case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in
        '');;
        *) ccflags="$ccflags $ccflags_uselargefiles"
index ff787fe..9ff2747 100644 (file)
@@ -66,7 +66,7 @@ ccflags="${ccflags} -pipe -fno-common -DHAS_TELLDIR_PROTOTYPE";
 ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN"
 
 # cpp-precomp is problematic.
-cppflags='-no-precomp';
+cppflags='-traditional-cpp';
 
 # Shared library extension is .dylib.
 # Bundle extension is .bundle.
index 8eb6ac4..6a105fd 100644 (file)
@@ -123,6 +123,7 @@ case "$osvers" in
 0*|1*|2*|3*) ;;
 
 *)
+       ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
        if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
            usenm=false
        fi
index da8485f..21ad30c 100644 (file)
@@ -72,7 +72,9 @@ case `$cc -v 2>&1`"" in
                            gnu_as=yes
                            ;;
                        *)                      # HPas
-                           ccflags="$ccflags -Wa,+DA2.0"
+                           case "$gccversion" in
+                               [12]*) ccflags="$ccflags -Wa,+DA2.0" ;;
+                               esac
                            ;;
                        esac
                    # gcc with gld will not accept +vnocompatwarnings
@@ -81,8 +83,12 @@ case `$cc -v 2>&1`"" in
                            gnu_ld=yes
                            ;;
                        *)                      # HPld
-                           ldflags="$ldflags -Wl,+vnocompatwarnings"
-                           ccflags="$ccflags -Wl,+vnocompatwarnings"
+                           case "$gccversion" in
+                               [12]*)
+                                   ldflags="$ldflags -Wl,+vnocompatwarnings"
+                                   ccflags="$ccflags -Wl,+vnocompatwarnings"
+                                   ;;
+                               esac
                            ;;
                        esac
                    ;;
@@ -107,12 +113,12 @@ toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
 
 ### 64 BITNESS
 
-# Some gcc versions do native 64 bit long (e.g. 2.9-hppa-000310)
+# Some gcc versions do native 64 bit long (e.g. 2.9-hppa-000310 and gcc-3.0)
 # We have to force 64bitness to go search the right libraries
     gcc_64native=no
 case "$ccisgcc" in
     $define|true|[Yy])
-       echo 'int main(){long l;printf("%d\n",sizeof(l));}'>try.c
+       echo 'int main(){long l;printf("%d\\n",sizeof(l));}'>try.c
        $cc -o try $ccflags $ldflags try.c
        if [ "`try`" = "8" ]; then
            cat <<EOM >&4
index 27c9bd9..d142de5 100644 (file)
@@ -2,7 +2,7 @@
 # Andreas Koenig <k@franz.ww.TU-Berlin.DE> and Gerd Knops <gerti@BITart.com>.
 # Comments, questions, and improvements welcome!
 #
-# These hints work for NeXT 3.2 and 3.3.  3.0 has it's own
+# These hints work for NeXT 3.2 and 3.3.  3.0 has its own
 # special hint file.
 #
 
index eb11ff5..126f611 100644 (file)
@@ -169,9 +169,9 @@ else
     else
        d_fork='undef'
     fi
-    lddlflags="-Zdll -Zomf -Zmt -Zcrtdll $ld_dll_optimize"
+    lddlflags="-Zdll -Zomf -Zmt -Zcrtdll -Zlinker /e:2"
     # Recursive regmatch may eat 2.5M of stack alone.
-    ldflags='-Zexe -Zomf -Zmt -Zcrtdll -Zstack 32000'
+    ldflags='-Zexe -Zomf -Zmt -Zcrtdll -Zstack 32000 -Zlinker /e:2'
     if [ $emxcrtrev -ge 50 ]; then 
        ccflags="-Zomf -Zmt -DDOSISH -DOS2=2 -DEMBED -I. $_defemxcrtrev"
     else
@@ -285,36 +285,110 @@ fi
 # Apply patches if needed
 case "$0$running_c_cmd" in
   *[/\\]Configure|*[/\\]Configure.|Configure|Configure.) # Skip Configure.cmd
-    if grep "^libnames" ./Configure > /dev/null; then
+    if test "Xyes" = "X$configure_cmd_loop"; then
+       cat <<EOC >&2
+!!!
+!!! PANIC: Loop of self-invocations detected, aborting!
+!!!
+EOC
+       exit 20
+    fi
+    configure_cmd_loop=yes
+    export configure_cmd_loop
+
+    configure_needs_patch=''
+    if test -s ./os2/diff.configure; then
+       if ! grep "^#OS2-PATCH-APPLIED" ./Configure > /dev/null; then
+           configure_needs_patch=yes       
+       fi
+    fi
+    if test -n "$configure_needs_patch"; then
        # Not patched!
+       # Restore the initial command line arguments
        if test -f ./Configure.cmd ; then
-           echo "!!!" >&2
-           echo "!!! I see that what is running is ./Configure." >&2
-           echo "!!! ./Configure is not patched, but ./Configure.cmd exists." >&2
-           echo "!!!" >&2
-           echo "!!! You are supposed to run Configure.cmd, not Configure" >&2
-           echo "!!!  after an automagic patching." >&2
-           echo "!!!" >&2
-           echo "!!! If you insist on running Configure, please" >&2
-           echo "!!!  patch it manually from ./os2/diff.configure." >&2
-           echo "!!!" >&2
+           cat <<EOC >&2
+!!!
+!!! I see that what is running is ./Configure.
+!!! ./Configure is not patched, but ./Configure.cmd exists.
+!!!
+!!! You are supposed to run Configure.cmd, not Configure
+!!!  after an automagic patching.
+!!!
+!!! If you insist on running Configure, you may
+!!!  patch it manually from ./os2/diff.configure.
+!!!
+!!! However, I went through incredible hoolahoops, and I expect I can
+!!!  auto-restart Configure.cmd myself.  I will start it with arguments:
+!!!
+!!!    Configure.cmd $args_exp
+!!!
+EOC
+           rp='Do you want to auto-restart Configure.cmd?'
+           dflt='y'
+           . UU/myread
+           case "$ans" in
+               [yY]) echo >&4 "Okay, continuing." ;;
+               *) echo >&4 "Okay, bye."
+                  exit 2
+                  ;;
+           esac
+           eval "set X $args_exp";
+           shift;
+           # Restore the output
+           exec Configure.cmd "$@" 1>&2
            exit 2
        fi
-       echo "!!!" >&2
-       echo "!!! You did not patch ./Configure!" >&2
-       echo "!!! I create Configure.cmd and patch it from ./os2/diff.configure." >&2
-       echo "!!!" >&2
-       echo "$gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch" >&2
+       cat <<EOC >&2
+!!!
+!!! You did not patch ./Configure!
+!!! I can create Configure.cmd and patch it from ./os2/diff.configure with the command
+!!!
+!!!   $gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch
+EOC
+       rp='Do you want to auto-patch Configure to Configure.cmd?'
+       dflt='y'
+       . UU/myread
+       case "$ans" in
+               [yY]) echo >&4 "Okay, continuing." ;;
+               *) echo >&4 "Okay, bye."
+                  exit 2
+                  ;;
+       esac
        ($gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch) >&2
-       echo "!!!" >&2
-       echo "!!! The report of patching is copied to 00_auto_patch." >&2
-       echo "!!! Now you need to restart Configure.cmd with all the options" >&2
-       echo "!!!" >&2
+       cat <<EOC >&2
+!!!
+!!! The report of patching is copied to 00_auto_patch.
+!!! Now we need to restart Configure.cmd with all the options.
+!!!
+EOC
        echo "extproc sh" > Configure.ctm
-       cat Configure.cmd >> Configure.ctm && mv -f Configure.ctm Configure.cmd
-       exit 0
+       ( cat Configure.cmd >> Configure.ctm && mv -f Configure.ctm Configure.cmd ) || (echo "!!! Failure to add extproc-line to Configure.cmd." >&2 ; exit 21)
+       cat <<EOC >&2
+!!! I went through incredible hoolahoops, and I expect I can
+!!!  auto-restart Configure.cmd myself.  I will start it with arguments:
+!!!
+!!!    Configure.cmd $args_exp
+!!!
+EOC
+       rp='Do you want to auto-restart Configure.cmd?'
+       dflt='y'
+       . UU/myread
+       case "$ans" in
+               [yY]) echo >&4 "Okay, continuing." ;;
+               *) echo >&4 "Okay, bye."
+                  exit 2
+                  ;;
+       esac
+       eval "set X $args_exp";
+       shift;
+       exec Configure.cmd "$@" 1>&2
+       exit 2
     else
-       echo "!!! Apparently we are running a patched Configure." >&2
+       if test -s ./os2/diff.configure; then
+           echo "!!! Apparently we are running a patched Configure." >&2
+       else
+           echo "!!! Apparently there is no need to patch Configure." >&2
+       fi
     fi 
     ;;
   *) echo "!!! Apparently we are running a renamed Configure: '$0'." >&2
@@ -335,6 +409,22 @@ $define|true|[yY]*)
 esac
 EOCBU
 
+if test -z "$cryptlib"; then
+       cryptlib=`UU/loc crypt$lib_ext "" $libpth`
+       if $test -n "$cryptlib"; then
+               cryptlib=-lcrypt
+       else
+               cryptlib=`UU/loc ufc$lib_ext "" $libpth`
+               if $test -n "$cryptlib"; then
+                       cryptlib=-lufc
+               fi
+       fi
+fi
+if test -n "$cryptlib"; then
+       libs="$libs $cryptlib"
+       # d_crypt=define
+fi
+
 # Now install the external modules. We are in the ./hints directory.
 
 cd ./os2/OS2
@@ -347,6 +437,7 @@ cp -rfu * ../../ext/OS2/
 
 # Install tests:
 
+cp -uf ../*.t ../../t/lib
 for xxx in * ; do
        if $test -d $xxx/t; then
                cp -uf $xxx/t/*.t ../../t/lib
index 4eff5a8..4f6f370 100644 (file)
@@ -25,6 +25,8 @@ case "$ld" in
 esac
 
 # -DMAXSIG=38 maximum signal number
+# -DPERL_IGNORE_FPUSIG=SIGFPE allows Perl to be cavalier with FP overflow
+#   (particularly in numeric.c:S_mulexp10())
 # -DOEMVS is used in place of #ifdef __MVS__ in certain places.
 # -D_OE_SOCKETS alters system headers.
 # -D_XOPEN_SOURCE_EXTENDEDA alters system headers.
@@ -33,8 +35,8 @@ esac
 # -DEBCDIC should come from Configure and need not be mentioned here.
 # Prepend your favorites with Configure -Dccflags=your_favorites
 case "$ccflags" in
-'') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
-*) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
+'') ccflags='-DMAXSIG=38 -DPERL_IGNORE_FPUSIG=SIGFPE -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
+*) ccflags="$ccflags -DMAXSIG=38 -DPERL_IGNORE_FPUSIG=SIGFPE -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
 esac
 
 # Turning on optimization breaks perl.
index 79742af..8a4f289 100644 (file)
@@ -19,10 +19,11 @@ esac
 # -DPOSIX_BC
 # -DUSE_PURE_BISON
 # -D_XOPEN_SOURCE_EXTENDED alters system headers.
+# -DPERL_IGNORE_FPUSIG=SIGFPE
 # Prepend your favorites with Configure -Dccflags=your_favorites
 case "$ccflags" in
-'') ccflags='-K enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED' ;;
-*) ccflags='$ccflags -Kenum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED' ;;
+'') ccflags='-K enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -DPERL_IGNORE_FPUSIG=SIGFPE' ;;
+*) ccflags='$ccflags -Kenum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -DPERL_IGNORE_FPUSIG=SIGFPE' ;;
 esac
 
 # ccdlflags have yet to be determined.
index 06d9010..24199c9 100644 (file)
@@ -1,16 +1,22 @@
 #----------------------------------------------------------------
 # QNX hints
 #
+# These hints were written for QNX4, but are in the process
+# of being extended to encompass Neutrino as well.
+#
 # As of perl5.004_04, all tests pass under:
 #  QNX 4.23A
 #  Watcom 10.6 with Beta/970211.wcc.update.tar.F
 #  socket3r.lib Nov21 1996.
+# perl-5.6.1 runs well on QNX4 with a few known test failures
+# perl-5.6.0 ships with QNX RTP (Neutrino) but the build is
+# not yet straightforward.
 #
 # As with many unix ports, this one depends on a few "standard"
-# unix utilities which are not necessarily standard for QNX.
+# unix utilities which are not necessarily standard for QNX4.
 #
 # /bin/sh  This is used heavily by Configure and then by
-#          perl itself. QNX's version is fine, but Configure
+#          perl itself. QNX4's version is fine, but Configure
 #          will choke on the 16-bit version, so if you are
 #          running QNX 4.22, link /bin/sh to /bin32/ksh
 # ar       This is the standard unix library builder.
 # cpp      Configure and perl need a way to invoke a C
 #          preprocessor. I have created a simple cover
 #          for cc which does the right thing. Without this,
-#          Configure will create it's own wrapper which works,
+#          Configure will create its own wrapper which works,
 #          but it doesn't handle some of the command line arguments
 #          that perl will throw at it.
 # make     You really need GNU make to compile this. GNU make
 #          ships by default with QNX 4.23, but you can get it
 #          from quics for earlier versions.
 #----------------------------------------------------------------
-# Outstanding Issues:
-#   lib/posix.t test fails on test 17 because acos(1) != 0.
+# Outstanding Issues for QNX4:
+#   There is no support for dynamically linked libraries in
+#   QNX4.
+# 
+#   ext/Cwd/Cwd.t will complain if `pwd` and cwd don't give
+#   the same results. cwd calls `fullpath -t`, so if you
+#   cd `fullpath -t` before running the test, it will
+#   pass.
+#
+#   lib/File/Find/taint.t will complain if '.' is in your
+#   PATH. The PATH test is triggered because cwd calls
+#   `fullpath -t`.
+#
+#   lib/ExtUtils.t: If you follow these hints and include
+#   -w4 in your ccflags, this test will complain about
+#   extra .err files appearing in its test directory.
+#
+#   ext/IO/lib/IO/t/io_sock.t Still investigating
+#   ext/POSIX/sigaction.t Still investigating
+#
+# Older issues:
+#   lib/posix.t test failed on test 17 because acos(1) != 0.
 #      Resolved in 970211 Beta
 #   lib/io_udp.t test hangs because of a bug in getsockname().
 #      Fixed in latest BETA socket3r.lib
-#   There is currently no support for dynamically linked
-#      libraries.
 #----------------------------------------------------------------
 # These hints were submitted by:
 #   Norton T. Allen
@@ -52,127 +76,137 @@ echo "Some tests may fail. Please read the hints/qnx.sh file."
 echo ""
 
 #----------------------------------------------------------------
-# At present, all QNX systems are equivalent architectures,
+# At present, all QNX4 systems are equivalent architectures,
 # so it is reasonable to call archname=x86-qnx rather than
 # making an unnecessary distinction between AT-qnx and PCI-qnx,
-# for example.
-#----------------------------------------------------------------
-archname='x86-qnx'
+# for example. I will use uname's architecture for Neutrino.
+#----------------------------------------------------------------
+set X `uname -a`
+shift
+[ "$1" != "QNX" ] && echo "uname doesn't look like QNX!"
+case $4 in
+  42[2-9]) archname='x86-qnx';;
+  *) osname='nto'
+        osvers=$3
+     archname="$5-nto";;
+esac
 
-#----------------------------------------------------------------
-# QNX doesn't come with a csh and the ports of tcsh I've used
-# don't work reliably:
-#----------------------------------------------------------------
-csh=''
-d_csh='undef'
-full_csh=''
+if [ "$osname" = "qnx" ]; then
+  #----------------------------------------------------------------
+  # QNX doesn't come with a csh and the ports of tcsh I've used
+  # don't work reliably:
+  #----------------------------------------------------------------
+  csh=''
+  d_csh='undef'
+  full_csh=''
 
-#----------------------------------------------------------------
-# setuid scripts are secure under QNX.
-#  (Basically, the same race conditions apply, but assuming
-#  the scripts are located in a secure directory, the methods
-#  for exploiting the race condition are defeated because
-#  the loader expands the script name fully before executing
-#  the interpreter.)
-#----------------------------------------------------------------
-d_suidsafe='define'
+  #----------------------------------------------------------------
+  # setuid scripts are secure under QNX.
+  #  (Basically, the same race conditions apply, but assuming
+  #  the scripts are located in a secure directory, the methods
+  #  for exploiting the race condition are defeated because
+  #  the loader expands the script name fully before executing
+  #  the interpreter.)
+  #----------------------------------------------------------------
+  d_suidsafe='define'
 
-#----------------------------------------------------------------
-# difftime is implemented as a preprocessor macro, so it doesn't show
-# up in the libraries:
-#----------------------------------------------------------------
-d_difftime='define'
+  #----------------------------------------------------------------
+  # difftime is implemented as a preprocessor macro, so it doesn't show
+  # up in the libraries:
+  #----------------------------------------------------------------
+  d_difftime='define'
 
-#----------------------------------------------------------------
-# strtod is in the math library, but we can't tell Configure
-# about the math library or it will confuse the linker
-#----------------------------------------------------------------
-d_strtod='define'
+  #----------------------------------------------------------------
+  # strtod is in the math library, but we can't tell Configure
+  # about the math library or it will confuse the linker
+  #----------------------------------------------------------------
+  d_strtod='define'
 
-lib_ext='3r.lib'
-libc='/usr/lib/clib3r.lib'
+  lib_ext='3r.lib'
+  libc='/usr/lib/clib3r.lib'
 
-#----------------------------------------------------------------
-# ccflags:
-# I like to turn the warnings up high, but a few common
-# constructs make a lot of noise, so I turn those warnings off.
-# A few still remain...
-#
-# unix.h is required as a general rule for unixy applications.
-#----------------------------------------------------------------
-ccflags='-mf -w4 -Wc,-wcd=202 -Wc,-wcd=203 -Wc,-wcd=302 -Wc,-fi=unix.h'
+  #----------------------------------------------------------------
+  # ccflags:
+  # I like to turn the warnings up high, but a few common
+  # constructs make a lot of noise, so I turn those warnings off.
+  # A few still remain...
+  #
+  # unix.h is required as a general rule for unixy applications.
+  #----------------------------------------------------------------
+  ccflags='-mf -w4 -Wc,-wcd=202 -Wc,-wcd=203 -Wc,-wcd=302 -Wc,-fi=unix.h'
 
-#----------------------------------------------------------------
-# ldflags:
-# If you want debugging information, you must specify -g on the
-# link as well as the compile. If optimize != -g, you should
-# remove this.
-#----------------------------------------------------------------
-ldflags="-g -N1M"
+  #----------------------------------------------------------------
+  # ldflags:
+  # If you want debugging information, you must specify -g on the
+  # link as well as the compile. If optimize != -g, you should
+  # remove this.
+  #----------------------------------------------------------------
+  ldflags="-g -N1M"
 
-so='none'
-selecttype='fd_set *'
+  so='none'
+  selecttype='fd_set *'
 
-#----------------------------------------------------------------
-# Add -lunix to list of libs. This is needed mainly so the nm
-# search will find funcs in the unix lib. Including unix.h should
-# automatically include the library without -l.
-#----------------------------------------------------------------
-libswanted="$libswanted unix"
+  #----------------------------------------------------------------
+  # Add -lunix to list of libs. This is needed mainly so the nm
+  # search will find funcs in the unix lib. Including unix.h should
+  # automatically include the library without -l.
+  #----------------------------------------------------------------
+  libswanted="$libswanted unix"
 
-if [ -z "`which ar 2>/dev/null`" ]; then
-  cat <<-'EOF' >&4
-       I don't see an 'ar', so I'm guessing you are running
-       Watcom 9.5 or earlier. You may want to install the ar
-       cover found in the qnx subdirectory of this distribution.
-       It might reasonably be placed in /usr/local/bin.
+  if [ -z "`which ar 2>/dev/null`" ]; then
+       cat <<-'EOF' >&4
+         I don't see an 'ar', so I'm guessing you are running
+         Watcom 9.5 or earlier. You may want to install the ar
+         cover found in the qnx subdirectory of this distribution.
+         It might reasonably be placed in /usr/local/bin.
 
        EOF
-fi
-#----------------------------------------------------------------
-# Here is a nm script which fixes up wlib's output to look
-# something like nm's, at least enough so that Configure can
-# use it.
-#----------------------------------------------------------------
-if [ -z "`which nm 2>/dev/null`" ]; then
-  cat <<-EOF
-       Creating a quick-and-dirty nm cover for Configure to use:
+  fi
+  #----------------------------------------------------------------
+  # Here is a nm script which fixes up wlib's output to look
+  # something like nm's, at least enough so that Configure can
+  # use it.
+  #----------------------------------------------------------------
+  if [ -z "`which nm 2>/dev/null`" ]; then
+       cat <<-EOF
+         Creating a quick-and-dirty nm cover for       Configure to use:
 
        EOF
-  cat >./UU/nm <<-'EOF'
-       #! /bin/sh
-       #__USAGE
-       #%C     <lib> [<lib> ...]
-       #       Designed to mimic Unix's nm utility to list
-       #       defined symbols in a library
-       unset WLIB
-       for i in $*; do wlib $i; done |
-         awk '
-           /^  / {
-             for (i = 1; i <= NF; i++) {
-               sub("_$", "", $i)
-               print "000000  T " $i
-             }
-           }'
+       cat >./UU/nm <<-'EOF'
+         #! /bin/sh
+         #__USAGE
+         #%C   <lib> [<lib> ...]
+         #     Designed to mimic Unix's nm utility to list
+         #     defined symbols in a library
+         unset WLIB
+         for i in $*; do wlib $i; done |
+               awk '
+                 /^  / {
+                       for (i = 1; i <= NF; i++) {
+                         sub("_$", "", $i)
+                         print "000000  T " $i
+                       }
+                 }'
        EOF
-  chmod +x ./UU/nm
-fi
+       chmod +x ./UU/nm
+  fi
 
-cppstdin=`which cpp 2>/dev/null`
-if [ -n "$cppstdin" ]; then
-  cat <<-EOF >&4
-       I found a cpp at $cppstdin and will assume it is a good
-       thing to use. If this proves to be false, there is a
-       thin cover for cpp in the qnx subdirectory of this
-       distribution which you could move into your path.
+  cppstdin=`which cpp 2>/dev/null`
+  if [ -n "$cppstdin" ]; then
+       cat <<-EOF >&4
+         I found a cpp at $cppstdin and will assume it is a good
+         thing to use. If this proves to be false, there is a
+         thin cover for cpp in the qnx subdirectory of this
+         distribution which you could move into your path.
        EOF
-  cpprun="$cppstdin"
-else
-  cat <<-EOF >&4
+       cpprun="$cppstdin"
+  else
+       cat <<-EOF >&4
        
-       There is a cpp cover in the qnx subdirectory of this
-       distribution which works a little better than the
-       Configure default. You may wish to copy it to
-       /usr/local/bin or some other suitable location.
+         There is a cpp cover in the qnx subdirectory of this
+         distribution which works a little better than the
+         Configure default. You may wish to copy it to
+         /usr/local/bin or some other suitable location.
        EOF
-fi     
+  fi
+fi
index 079ab78..1d1d5c2 100644 (file)
@@ -112,7 +112,7 @@ then
 else
     ###############################################################
     # Need this in release 5 because of changed fpu exeption rules
-    ccflags="$ccflags -D PERL_SCO5"
+    ccflags="$ccflags -D HAS_FPSETMASK"
 
     ###############################################################
     # In Release 5, always compile ELF objects
index 592bc3e..2f3b733 100644 (file)
@@ -2,7 +2,7 @@ archname='s390'
 archobjs='uts/strtol_wrap.o'
 cc='cc'
 cccdlflags='-pic'
-ccflags='-Xa -XTSTRINGS=1500000 -DStrtol=strtol_wrap32 -DStrtoul=strtoul_wrap32'
+ccflags='-Xa -XTSTRINGS=1500000 -DStrtol=strtol_wrap32 -DStrtoul=strtoul_wrap32 -DPERL_IGNORE_FPUSIG=SIGFPE'
 d_bincompat3='undef'
 d_csh='undef' 
 d_lstat='define'
index c91ae9c..6ef65e2 100644 (file)
@@ -198,7 +198,7 @@ sub AUTOLOAD {
     ($constname = $AUTOLOAD) =~ s/.*:://;
     my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
-       if ($! =~ /Invalid/ || $!{EINVAL}) {
+       if ($! =~ /Invalid/) {
            $AutoLoader::AUTOLOAD = $AUTOLOAD;
            goto &AutoLoader::AUTOLOAD;
        }
@@ -318,8 +318,6 @@ JNI - Perl encapsulation of the Java Native Interface
 
 =head1 DESCRIPTION
 
-This module provides an encapsulation in Perl of the Java Native Interface.
-
 =head1 Exported constants
 
   JNI_ABORT
index f482695..ea67a2e 100644 (file)
-/*
- * Copyright 1997, O'Reilly & Associate, Inc.
- *
- * This package may be copied under the same terms as Perl itself.
- */
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#include <stdio.h>
-#include <jni.h>
-
-#ifndef PERL_VERSION
-#  include <patchlevel.h>
-#  define PERL_REVISION                5
-#  define PERL_VERSION         PATCHLEVEL
-#  define PERL_SUBVERSION      SUBVERSION
-#endif
-
-#if PERL_REVISION == 5 && (PERL_VERSION < 4 || (PERL_VERSION == 4 && PERL_SUBVERSION <= 75))
-#  define PL_na                na
-#  define PL_sv_no     sv_no
-#  define PL_sv_undef  sv_undef
-#  define PL_dowarn    dowarn
-#endif
-
-#ifndef newSVpvn
-#  define newSVpvn(a,b)        newSVpv(a,b)
-#endif
-
-#ifndef pTHX
-#  define pTHX         void
-#  define pTHX_
-#  define aTHX
-#  define aTHX_
-#  define dTHX         extern int JNI___notused
-#endif
-
-#ifndef WIN32
-#  include <dlfcn.h>
-#endif
-
-#ifdef EMBEDDEDPERL
-extern JNIEnv* jplcurenv;
-extern int jpldebug;
-#else
-JNIEnv* jplcurenv;
-int jpldebug = 1;
-#endif
-
-#define SysRet jint
-
-#ifdef WIN32
-static void JNICALL call_my_exit(jint status)
-{
-    my_exit(status);
-}
-#else
-static void call_my_exit(jint status)
-{
-    my_exit(status);
-}
-#endif
-
-jvalue*
-makeargs(char *sig, SV** svp, int items)
-{
-    jvalue* jv = (jvalue*)safemalloc(sizeof(jvalue) * items);
-    int ix = 0;
-    char *s = sig;
-    JNIEnv* env = jplcurenv;
-    char *start;
-    STRLEN n_a;
-
-    if (jpldebug)
-       fprintf(stderr, "sig = %s, items = %d\n", sig, items);
-    if (*s++ != '(')
-       goto cleanup;
-
-    while (items--) {
-       SV *sv = *svp++;
-       start = s;
-       switch (*s++) {
-       case 'Z':
-           jv[ix++].z = (jboolean)(SvIV(sv) != 0);
-           break;
-       case 'B':
-           jv[ix++].b = (jbyte)SvIV(sv);
-           break;
-       case 'C':
-           jv[ix++].c = (jchar)SvIV(sv);
-           break;
-       case 'S':
-           jv[ix++].s = (jshort)SvIV(sv);
-           break;
-       case 'I':
-           jv[ix++].i = (jint)SvIV(sv);
-           break;
-       case 'J':
-           jv[ix++].j = (jlong)SvNV(sv);
-           break;
-       case 'F':
-           jv[ix++].f = (jfloat)SvNV(sv);
-           break;
-       case 'D':
-           jv[ix++].d = (jdouble)SvNV(sv);
-           break;
-       case '[':
-           switch (*s++) {
-           case 'Z':
-               if (SvROK(sv)) {
-                   SV* rv = (SV*)SvRV(sv);
-                   if (SvOBJECT(rv))
-                       jv[ix++].l = (jobject)(void*)SvIV(rv);
-                   else if (SvTYPE(rv) == SVt_PVAV) {
-                       jsize len = av_len((AV*)rv) + 1;
-                       jboolean* buf = (jboolean*)malloc(len * sizeof(jboolean));
-                       int i;
-                       SV** esv;
-
-                       jbooleanArray ja = (*env)->NewBooleanArray(env, len);
-                       for (esv = AvARRAY((AV*)rv), i = 0; i < len; esv++, i++)
-                           buf[i] = (jboolean)SvIV(*esv);
-                       (*env)->SetBooleanArrayRegion(env, ja, 0, len, buf);
-                       free((void*)buf);
-                       jv[ix++].l = (jobject)ja;
-                   }
-                   else
-                       jv[ix++].l = (jobject)(void*)0;
-               }
-               else if (SvPOK(sv)) {
-                   jsize len = sv_len(sv) / sizeof(jboolean);
-
-                   jbooleanArray ja = (*env)->NewBooleanArray(env, len);
-                   (*env)->SetBooleanArrayRegion(env, ja, 0, len, (jboolean*)SvPV(sv,n_a));
-                   jv[ix++].l = (jobject)ja;
-