Integerize mg.c; eliminate warning on C< local($)) >
[p5sagit/p5-mst-13.2.git] / Changes
diff --git a/Changes b/Changes
index 466332e..09af1ae 100644 (file)
--- a/Changes
+++ b/Changes
-New things
-----------
-    The -w switch is much more informative.
+Please note: This file provides a summary of significant changes
+between versions and sub-versions of Perl, not necessarily a complete
+list of each modification.  If you'd like more detailed information,
+please consult the comments in the patches on which the relevant
+release of Perl is based.  (Patches can be found on any CPAN
+site, in the .../src/5.0 directory for full version releases,
+or in the .../src/5/0/unsupported directory for sub-version
+releases.)
 
-    References.  See t/op/ref.t for examples.  All entities in Perl 5 are
-    reference counted so that it knows when each item should be destroyed.
+----------------
+Version 5.003_05
+----------------
 
-    Objects.  See t/op/ref.t for examples.
+This patch was primarily to fix bugs and to clean up some of
+the remaining issues from in 5.003_04.  The details are described below.
+A very brief summary is:
 
-    => is now a synonym for comma.  This is useful as documentation for
-    arguments that come in pairs, such as initializers for associative arrays,
-    or named arguments to a subroutine.
+o Visible Changes to Core Functionality
 
-    All functions have been turned into list operators or unary operators,
-    meaning the parens are optional.  Even subroutines may be called as
-    list operators if they've already been declared.
+   -Add support for a READLINE method to tied filehandles.
+    
+   -times function now uses CLK_TCK if HZ is not available, rather
+    than just defaulting to 60.  times output might change on some
+    systems, but should be correct now.
 
-    More embeddible.  See main.c and embed_h.sh.  Multiple interpreters
-    in the same process are supported (though not with interleaved
-    execution yet).
+   -AnyDBM_File (modifying ISA does not work as expected)
+    Now behaves as documented:  Modifying ISA works to select
+    order in which *DB* modules are tried.  The default is still
+    the same.
 
-    The interpreter is now flattened out.  Compare Perl 4's eval.c with
-    the perl 5's pp.c.  Compare Perl 4's 900 line interpreter loop in cmd.c
-    with Perl 5's 1 line interpreter loop in run.c.  Eventually we'll make
-    everything non-blocking so we can interface nicely with a scheduler.
+o Configure and build enhancements
 
-    eval is now treated more like a subroutine call.  Among other things,
-    this means you can return from it.
+   -Enhance detection of [gs]etpgrp() variants.  Some systems have
+    BSD-style behavior for one and POSIX for the other.  Use
+    [gs]etpgid() instead, whenever possible.
+  
+   -You can now build a shared libperl.so without running through
+    the LD_RUN_PATH hoops, if your system supports appropriate
+    ld command-line options.  Solaris, NetBSD, and Linux are currently
+    supported.  Others are easy to add.  (This makes like a lot easier
+    for embedders.)
 
-    Format value lists may be spread over multiple lines by enclosing in
-    a do {} block.
+   -VMS updates.
+    
+   -Fix installperl and installman so that the -n option really only
+    prints commands.  (previously, it would still do the mkdirs.)
 
-    You may now define BEGIN and END subroutines for each package.  The BEGIN
-    subroutine executes the moment it's parsed.  The END subroutine executes
-    just before exiting.
+o Bug fixes
 
-    Flags on the #! line are interpreted even if the script wasn't
-    executed directly.  (And even if the script was located by "perl -x"!)
+   -debugger ought to work.
 
-    The ?: operator is now legal as an lvalue.
+   -A new heredoc tag in Makefile.SH is now quoted.  This prevented
+    5.003_04 from working most places.
 
-    List context now propagates to the right side of && and ||, as well
-    as the 2nd and 3rd arguments to ?:.
+   -numerous smaller ones, detailed below.
 
-    The "defined" function can now take a general expression.
+o Specific Changes
 
-    Lexical scoping available via "my".  eval can see the current lexical
-    variables.
+Here are the specific file-by-file changes.
 
-    The preferred package delimiter is now :: rather than '.
+# This is my patch perl5.003_05.pat to perl5.003_04
+# The full description is below.
+# Please execute the following commands before applying this patch.
+# (You can feed this patch to 'sh' to do so.)
+#  Andy Dougherty              <doughera@lafcol.lafayette.edu>
 
-    tie/untie are now preferred to dbmopen/dbmclose.  Multiple DBM
-    implementations are allowed in the same executable, so you can
-    write scripts to interchange data among different formats.
+# We'll create a new test, but patch won't automatically make it
+# executable.
+touch t/io/read.t
+chmod +x t/io/read.t
 
-    New "and" and "or" operators work just like && and || but with
-    a precedence lower than comma, so they work better with list operators.
+exit 0
 
-    New functions include: abs(), chr(), uc(), ucfirst(), lc(), lcfirst(),
-    chomp(), glob()
 
-    require with a number checks to see that the version of Perl that is
-    currently running is at least that number.
+This is patch perl5.003_05.pat to perl version 5.003_04.
+This takes you from 5.003_04 to 5.003_05.
 
-    Dynamic loading of external modules is now supported.
+To apply this patch, run the above commands,
+cd to your perl source directory and then type
 
-    There is a new quote form qw//, which is equivalent to split(' ', q//).
+       patch -p1 -N < perl5.003_05.pat
 
-    Assignment of a reference to a glob value now just replaces the
-    single element of the glob corresponding to the reference type:
-       *foo = \$bar, *foo = \&bletch;
+The changes are described after each /^Index/ line below.  This is
+designed so you can examine each change with a command such as
 
-    Filehandle methods are now supported:
-       output_autoflush STDOUT 1;
+       csplit -k perl5.003_05.pat '/^Index:/' '{99}'
 
-    There is now an "English" module that provides human readable translations
-    for cryptic variable names.
+Patch and enjoy,
 
-    Autoload stubs can now call the replacement subroutine with goto &realsub.
+    Andy Dougherty             doughera@lafcol.lafayette.edu
+    Dept. of Physics
+    Lafayette College, Easton PA 18042
 
-    Subroutines can be defined lazily in any package by declaring an AUTOLOAD
-    routine, which will be called if a non-existent subroutine is called in
-    that package.
+Index: Changes
 
-    Several previously added features have been subsumed under the new
-    keywords "use" and "no".  Saying "use Module LIST" is short for
-       BEGIN { require Module; import Module LIST; }
-    The "no" keyword is identical except that it calls "unimport" instead.
-    The earlier pragma mechanism now uses this mechanism, and two new
-    modules have been added to the library to implement "use integer"
-    and variations of "use strict vars, refs, subs".
+    Updated for 5.003_05.
 
-    Variables may now be interpolated literally into a pattern by prefixing
-    them with \Q, which works just like \U, but backwhacks non-alphanumerics
-    instead.  There is also a corresponding quotemeta function.
+Index: Configure
 
-    Any quantifier in a regular expression may now be followed by a ? to
-    indicate that the pattern is supposed to match as little as possible.
+    Allow command line or hint-file overrides of $afs.
 
-    Pattern matches may now be followed by an m or s modifier to explicitly
-    request multiline or singleline semantics.  An s modifier makes . match
-    newline.
+    Allow trailing spaces in nm output for HPUX10.
 
-    Patterns may now contain \A to match only at the beginning of the string,
-    and \Z to match only at the end.  These differ from ^ and $ in that
-    they ignore multiline semantics.  In addition, \G matches where the
-    last interation of m//g or s///g left off.
+    Check for newer BIND 'search' directives in /etc/resolv.conf as well
+    as older 'domain' directive.
 
-    Non-backreference-producing parens of various sorts may now be
-    indicated by placing a ? directly after the opening parenthesis,
-    followed by a character that indicates the purpose of the parens.
-    An :, for instance, indicates simple grouping.  (?:a|b|c) will
-    match any of a, b or c without producing a backreference.  It does
-    "eat" the input.  There are also assertions which do not eat the
-    input but do lookahead for you.  (?=stuff) indicates that the next
-    thing must be "stuff".  (?!nonsense) indicates that the next thing
-    must not be "nonsense".
+    Enhance detection of [gs]etpgrp() variants.  Some systems have
+    BSD-style behavior for one and POSIX for the other.  Use
+    [gs]etpgid() instead, whenever possible.
 
-    The negation operator now treats non-numeric strings specially.
-    A -"text" is turned into "-text", so that -bareword is the same
-    as "-bareword".  If the string already begins with a + or -, it
-    is flipped to the other sign.
+    Include -s in the -h summary of available options.
 
-Incompatibilities
------------------
-    @ now always interpolates an array in double-quotish strings.  Some programs
-    may now need to use backslash to protect any @ that shouldn't interpolate.
+    Allow command-line override of $afs.
 
-    Ordinary variables starting with underscore are no longer forced into
-    package main.
+    Handle trailing spaces in nm-output on HPUX10.
 
-    s'$lhs'$rhs' now does no interpolation on either side.  It used to
-    interplolate $lhs but not $rhs.
+    Set shrpenv for handling LD_RUN_PATH, if needed. (This used to
+    be in Makefile.SH.  Now it's available for other modules too.)
 
-    The second and third arguments of splice are now evaluated in scalar
-    context (like the book says) rather than list context.
+    When using shared libperl, avoid LD_RUN_PATH if possible by adding
+    correct ld flags.  Currently, Solaris and NetBSD get the correct
+    -R $archlibexp/CORE, and Linux gets its
+    -Wl,-rpath,$archlibexp/CORE flag.  Other contributions are
+    welcome.
 
-    Saying "shift @foo + 20" is now a semantic error because of precedence.
+Index: INSTALL
 
-    "open FOO || die" is now incorrect.  You need parens around the filehandle.
+    Correct libperl5 -> libperl typo.
 
-    The elements of argument lists for formats are now evaluated in list
-    context.  This means you can interpolate list values now.
+    Describe MakeMaker's Warning (will try anyway) messages.
 
-    You can't do a goto into a block that is optimized away.  Darn.
+    More info on where and how to send reports.
 
-    It is no longer syntactically legal to use whitespace as the name
-    of a variable, or as a delimiter for any kind of quote construct.
+    Add info on non-Unix ports.
 
-    Some error messages will be different.
 
-    The caller function now returns a false value in a scalar context if there
-    is no caller.  This lets library files determine if they're being required.
+Index: MANIFEST
 
-    m//g now attaches its state to the searched string rather than the
-    regular expression.
+    Add new test t/io/read.t.
 
-    "reverse" is no longer allowed as the name of a sort subroutine.
+    Add new hints files for ODBM_File for ultrix and hpux.
 
-    taintperl is no longer a separate executable.  There is now a -T
-    switch to turn on tainting when it isn't turned on automatically.
+    Add new pod checker script.
 
-    Symbols starting with _ are no longer forced into package main, except
-    for $_ itself (and @_, etc.).
+Index: Makefile.SH
 
-    Double-quoted strings may no longer end with an unescaped $ or @.
+    A new heredoc tag in Makefile.SH needs to be quoted.
 
-    Negative array subscripts now count from the end of the array.
+    shrpenv stuff moved to Configure.
 
-    The comma operator in a scalar context is now guaranteed to give a
-    scalar context to its arguments.
+Index: Porting/Glossary
 
-    The ** operator now binds more tightly than unary minus.
+    Updated to match Configure.
 
-    Setting $#array lower now discards array elements so that destructors
-    work reasonably.
+Index: README.vms
 
-    delete is not guaranteed to return the old value for tied arrays,
-    since this capability may be onerous for some modules to implement.
+    VMS 5.003_05 Update.
 
-    Attempts to set $1 through $9 now result in a run-time error.
+Index: av.h
+
+    Subject: turbidity in av.[ch]
+    Date: Sun, 10 Dec 1995 00:21:31 -0500
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+
+    Some unclean code that I noticed today.
+
+Index: config_H
+
+    Updated to match newest config_h.SH.
+
+Index: config_h.SH
+
+    Updated to match Configure.
+
+    Changed the DLSYM_NEEDS_UNDERSCORE comment to 
+    /**/ to conform to metaconfig style.
+
+Index: emacs/cperl-mode.el
+
+    From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+    Subject: Newer CPerl-mode
+
+Index: ext/DB_File/DB_File.pm
+
+    Update to DB_File 1.03.
+
+Index: ext/DB_File/DB_File.xs
+
+    Update to DB_File 1.03.
+
+Index: ext/Fcntl/Fcntl.pm
+
+    Date: Thu, 5 Sep 1996 18:19:14 -0400 (EDT)
+    From: Chip Salzenberg <salzench@nielsenmedia.com>
+    Subject: No AutoLoader for Fcntl
+
+    Just like Socket, Fcntl doesn't need splitting and AutoLoading.
+
+Index: ext/FileHandle/FileHandle.pm
+
+    From: Roderick Schertler <roderick@gate.net>
+    Subject: FileHandle::DESTROY for fd 0
+
+    This fixes FileHandle::DESTROY when called on stdin.
+
+Index: ext/ODBM_File/ODBM_File.xs
+
+    Attempt to correct for "Bad free" in Ultrix and HPUX versions of
+    odbm.
+
+Index: ext/ODBM_File/hints/hpux.pl
+
+    Try to work around "bad free" in dbmclose().
+
+Index: ext/ODBM_File/hints/ultrix.pl
+
+    Try to work around "bad free" in dbmclose().
+
+Index: ext/Socket/Socket.pm
+
+    Date: Thu, 5 Sep 1996 09:58:08 +0200
+    From: Andreas Koenig <k@anna.in-berlin.de>
+    Subject: Patch to inhibit autosplit on Socket.pm
+
+    This patch inhibits production and use of a completely useless
+    auto/Socket/autosplit.ix.
+
+Index: handy.h
+
+    Make a little more C++-friendly for IBM's CSET++ compiler.
+
+Index: hints/convexos.sh
+
+    Remove [gs]etpgrp workaround.  Configure & perl.h should handle
+    this now.
+
+Index: hints/hpux.sh
+
+    Add note about possible gcc GR3 warning message.
+
+    Remove [gs]etpgrp workaround.  Configure & perl.h should handle
+    this now.
+
+Index: hints/sco.sh
+
+    Turn off optimization for stock cc.  This appears to
+    prevent miniperl core dumps.
+
+Index: hints/solaris_2.sh
+
+    Catch GNU ld even though it doesn't identify itself as a GNU tool.
+    Thanks to Tim Pierce <twpierce@midway.uchicago.edu>.
+
+Index: hints/sunos_4_1.sh
+
+    Describe solution for the __lib_version problem with acc on
+    SunOS.
+
+Index: hv.c
+
+    Date: Thu, 05 Sep 1996 00:25:28 -0400
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+    Subject: minor misc. cleanup
+
+    This patch makes some minor cleanups to the sources.  No change
+    in functionality whatsoever.
+
+    Date: Thu, 05 Sep 1996 02:52:21 -0400
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+
+    Subject: debugger problems--another patch (was Re: 5.003_04)
+
+    I have tried to avoid copying of hash keys that are passed to
+    magical hashes, but it seems that copying may be unavoidable
+    since the hv_*_ent() functions could be PADTMPs (and other
+    SVs that may get reused) as keys.
+
+    VMS dynamic %ENV fix
+
+Index: installman
+
+    From: scotth@sgi.com
+    Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)
+
+    Fix installperl so that the -n option really only prints commands.
+    (previously, it would still do the mkdirs.)
+
+    an "ignore installed" option, so that it doesn't bother to check
+    to see if the target already exists (an optimization that I
+    *don't* want it to do when I do #1 above)
+
+Index: installperl
+
+    From: scotth@sgi.com
+    Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)
+
+    Fix installperl so that the -n option really only prints commands.
+    (previously, it would still do the mkdirs.)
+
+    an "ignore installed" option, so that it doesn't bother to check
+    to see if the target already exists (an optimization that I
+    *don't* want it to do when I do #1 above)
+
+Index: lib/AnyDBM_File.pm
+
+    AnyDBM_File (modifying ISA does not work as expected)
+    Now behaves as documented:  Modifying ISA works to select
+    order in which *DB* modules are tried.  The default is still
+    the same.
+
+
+    Add helpful "die" message to end of AnyDBM_File.  Previously
+    it would return a 0, and the failure would eventually show up
+    somewhere else in the script and be hard to track down.  It is
+    a failure if perl can't open AnyDBM_File.  The test regression
+    suite is supposed to indicate this as a failure too.
+
+Index: lib/ExtUtils/Install.pm
+
+    Updated to MakeMaker-5.38.
+
+    Fix for VMS utime.
+
+Index: lib/ExtUtils/Liblist.pm
+
+    Updated to MakeMaker-5.38.
+
+Index: lib/ExtUtils/MM_Unix.pm
+    Updated to MakeMaker-5.38.
+
+Index: lib/ExtUtils/MakeMaker.pm
+
+    Updated to MakeMaker-5.38.
+
+    Updated to MakeMaker-5.39 to allow CFLAGS in hint files.
+
+Index: lib/ExtUtils/Manifest.pm
+
+    Updated to MakeMaker-5.38.
+
+Index: lib/ExtUtils/Mkbootstrap.pm
+
+    Updated to MakeMaker-5.38.
+
+Index: lib/ExtUtils/Mksymlists.pm
+
+    Updated to MakeMaker-5.38.
+
+Index: lib/File/Find.pm
+
+    From: Michael Mahan <mahanm@nextwork.rose-hulman.edu>
+    Subject: Cwd::fastcwd in File::Find
+
+    Is there a good reason why File::Find uses Cwd::fastcwd instead of
+    Cwd:cwd when fastcwd isn't as portable?
+    [In particular, fastcwd() doesn't work on AFS.]
+
+Index: lib/Math/Complex.pm
+
+    There was a mistake in the sqrt routine in lib/Math/Complex.pm that
+    gave wrong answers when the magnitude of the imaginary part of the
+    argument exceeded the magnitude of the real part.  Line 69 had too
+    many sqrt($y)'s.  Further, expressions were re-arranged so that
+    calls to the expensive real sqrt() routine were reduced from 4 to 2
+    in this case.
+
+Index: lib/open3.pl
+
+    The I/O directions on the dad_wtr and kid_rdr were backwards.
+    IO/Open3.pm didn't have this error.
+
+Index: lib/syslog.pl
+
+    Date: Tue, 03 Sep 1996 20:33:54 -0400
+    From: Roderick Schertler <roderick@gate.net>
+    Subject: syslog.pl `use Socket' lossage
+
+    syslog.pl tries but fails to use
+    Socket.pm, the problem is that use doesn't return a true value.  This
+    module should be recast in terms of Sys::Syslog, of course.
+
+Index: makedepend.SH
+
+    This patch eliminates "\|" in sed patterns in makedepend.SH, since
+    they're not really needed anyway in this one case.
+
+Index: mg.c
+
+    Ok, here's a tested patch for the debugger problem.
+    I was missing the fact that DB::dbline magic is actually
+    uppercase (which means hv_store_ent() etc., will pass SV keys
+    to the vtbl_dbline handlers).
+
+    Replace the oft-repeated mg_ptr incantation with
+    the simple MgPVKEY macro.
+
+    Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
+    additional parens around the "mg".
+
+    (lines near 584) Part of VMS changes.  I don't know what this did.
+
+    Date: Fri, 23 Aug 1996 17:20:22 -0400 (EDT)
+    From: Chip Salzenberg <salzench@nielsenmedia.com>
+    Subject: Integerize mg.c; eliminate warning on C< local($)) >
+
+    This patch converts magic variables ($!, $^E, etc.) to use integers
+    (C<sv_setiv>) instead of floats.  It also eliminates a warning from
+    C< local($)) >, via a hack similar to $!.
+
+Index: mg.h
+
+    Replace the oft-repeated mg_ptr incantation with
+    the simple MgPVKEY macro.
+
+    Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
+    additional parens around the "mg".
+
+Index: nostdio.h
+
+    Add _STDIO_LOADED (VMS) to list of guard symbols.
+
+Index: op.c
+
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+    Subject: Re: \ ( @array ) busted for lexical @array (once more)
+
+Index: patchlevel.h
+
+    Change to subversion 5.
+
+Index: perl.c
+
+    Make floating point constants Locale-friendly.
+
+Index: perl.h
+
+    One last LONG & co. fix (yet another cut'n'paste error) and a few
+    minor cleanups. Nothing crucial.
+
+    Make a little more C++-friendly for IBM's CSET++ compiler.
+
+    Enhance detection of [gs]etpgrp() variants.  Some systems have
+    BSD-style behavior for one and POSIX for the other.  Use
+    [gs]etpgid() instead, whenever possible.
+
+Index: perlio.c
+
+    Eliminate potential "signed vs. unsigned" warning
+
+    Add PerlIO_reopen and PerlIO_cgetname functions.
+
+Index: perlsdio.h
+
+    Don't supply redundant parameters for PerlIO_open and PerlIO_fdopen.
+
+    Include PerlIO_reopen and PerlIO_getname.
+
+    s/FILE_(CNT|PTR)_LVALUE/STDIO_(CNT|PTR)_LVALUE to fix a typo.
+    This had prevented SV_FAST_FGETS from working anywhere.
+
+    Include PerlIO_canset_cnt.  I'm not sure how this is supposed to
+    differ from STDIO_CNT_LVALUE.
+
+Index: pod/Makefile
+
+    Remove trailing spaces in pods.
+    Include a call to the checkpods script in the Makefile (though it's
+    not ordinarily used by users).
+
+Index: pod/checkpods.PL
+
+    New script to check for common errors in pods.  This is not
+    normally called during the perl build process, but you can
+    use it with  B<make check>.
+
+Index: pod/perlfunc.pod
+
+    Document correct C<use POSIX ":wait_h";> usage.
+
+    Add notes about POSIX [gs]etpgrp.
+
+Index: pod/perlipc.pod
+
+    Document correct C<use POSIX ":wait_h";> usage.
+
+Index: pod/perlref.pod
+
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+    Subject: Re: \ ( @array ) busted for lexical @array (once more)
+
+Index: pod/perltie.pod
+
+    Date: Thu, 29 Aug 1996 15:14:51 +0200
+    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
+    Subject: more TIEHANDLE
+
+    This adds support for a READLINE method.
+
+Index: pod/perltrap.pod
+
+    Here's documentation on the change in split's behavior between Perl 4
+    and Perl 5.
+
+    Subject: More (and less!) 425traps
+
+    Large integer traps
+
+    Precedence
+
+    warn STDERR
+
+    Change blank lines to empty lines.
+
+Index: pod/perlvar.pod
+
+    Be explicit about $/="" matching empty lines, that is, lines
+    with no spaces or tabs.
+
+    Change blank lines to empty lines.
+
+Index: pp.c
+
+    Date: Fri, 23 Aug 1996 17:22:40 -0400 (EDT)
+    From: Chip Salzenberg <salzench@nielsenmedia.com>
+    Subject: Minor integer speedups in mathematics
+
+    This patch provides minor speedups by using integer math and SVt_IV
+    values when performing bitwise operations and modulus.
+
+    Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
+    From: Kenneth Albanowski <kjahds@kjahds.com>
+    Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)
+
+    (double)auint cast added for call to sv_setnv().
+
+Index: pp_hot.c
+
+    Date: Thu, 05 Sep 1996 00:25:28 -0400
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+    Subject: minor misc. cleanup
+
+    This patch makes some minor cleanups to the sources.  No change
+    in functionality whatsoever.
+
+    Date: Thu, 29 Aug 1996 15:14:51 +0200
+    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
+    Subject: more TIEHANDLE
+
+    This adds support for a READLINE method.
+
+Index: pp_sys.c
+
+    Clear any buffer space exposed by by read().
+    This is almost certainly a bug-fix.
+
+    Undef and then re-define my_chsize from Perl_my_chsize to
+    just plain chsize if this system HAS_CHSIZE.  This probably only
+    applies to SCO.  This shows the perils of having internal
+    functions with the same name as external library functions :-).
+
+    Use CLK_TCK if HZ is not available.
+
+Index: sv.c
+
+    Fix more spots where we had PerlIO_stderr() and should have had
+    Perl_debug_log instead.
+
+    Date: Fri, 23 Aug 1996 17:26:42 -0400 (EDT)
+    From: Chip Salzenberg <salzench@nielsenmedia.com>
+    Subject: Minor potential bug in AV creation
+
+    I wasn't the one who originated this patch.  But it looks like it
+    would improve the safety of AV creation.
+
+    Remove potentially incorrect casts on PerlIO_set_ptrcnt.
+    'ptr' is already STDCHAR, which is supposed to be the type of
+    char used in stdio.h, so we shouldn't have to cast it.
+
+Index: t/io/read.t
+
+    Clear any buffer space exposed by by read().
+    This is almost certainly a bug-fix.
+
+Index: t/lib/db-btree.t
+
+    Update to DB_File 1.03.
+
+Index: t/lib/db-hash.t
+
+    Update to DB_File 1.03.
+
+Index: t/lib/db-recno.t
+
+    Update to DB_File 1.03.
+
+Index: t/lib/io_sock.t
+
+    From: Lupe Christoph <lupe@alanya.m.isar.de>
+    Subject: Perl 5.003.03: race condition in t/lib/io_sock.t
+
+    io_sock.t works by forking a subprocess it can communicate with.
+    It has the subprocess wait for the main process by sleeping 10
+    seconds or until an alarm arrives.
+
+    With my setup, the alarm signal arrives *before* the child
+    has a chance to ignore the alarm signal.
+
+    I fixed this by moving the "$SIG{ALRM} = sub {};" up before the
+    fork. It does not hurt to have the parent ignore alarms, too.
+
+Index: t/op/inc.t
+
+    One last LONG & co. fix (yet another cut'n'paste error) and a few
+    minor cleanups. Nothing crucial.
+
+Index: t/op/misc.t
+
+    Date: Thu, 29 Aug 1996 15:14:51 +0200
+    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
+    Subject: more TIEHANDLE
+
+    This adds support for a READLINE method.
+
+Index: t/op/pack.t
+
+    Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
+    From: Kenneth Albanowski <kjahds@kjahds.com>
+    Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)
+
+Index: t/op/ref.t
+
+    From: Gurusamy Sarathy <gsar@engin.umich.edu>
+    Subject: Re: \ ( @array ) busted for lexical @array (once more)
+
+Index: universal.c
+
+    Date: Thu, 29 Aug 96 07:05:10 BST
+    From: Graham Barr <bodg@tiuk.ti.com>
+    Subject: Re: UNIVERSAL::class busted
+
+    yes, but I also noticed that this does not check that the reference
+    is an object, so the patch should be
+
+Index: unixish.h
+
+    Change comment style so that IBM's picky xlc compiler doesn't
+    think we've mistakenly tried to nest comments.
+
+Index: util.c
+
+    One last LONG & co. fix (yet another cut'n'paste error) and a few
+    minor cleanups. Nothing crucial.
+
+Index: utils/h2xs.PL
+
+    Date: Fri, 6 Sep 1996 06:09:20 -0400 (EDT)
+    From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+    Subject: updated h2xs
+
+    Changes:
+       a) Docs and examples for -x updated;
+       b) Path to xxxx.h would not be changed to /usr/include/xxxx.h
+    unless this file exists (outside of VMS, I'm afraid to make an error
+    there). - Useful with -x option, when the file may be eaten via -I
+    inside -F.
+       c) .h file would be scanned only if needed.
+       d) typemap would be generated (with T_PTROBJ).
+       e) Documentation (=list) for autogenerated guys would be
+    included into POD.
+       f) duplicated XSUBs would not be generated;
+       g) arguments to XSUBs being arrays are recognized (note that
+    xsubpp would probably choke on such guys).
+
+    -x option requires C-Scan-0.3 (releases a couple of minutes ago to
+           ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
+    should propagate to CPAN soon).
+
+Index: utils/perlbug.PL
+
+    Fix typo $Config{'has_sockets'} ought to be $Config{'d_socket'};
+
+Index: utils/perldoc.PL
+
+    More choices in the pager war.  Unfortunately, we can't rely on
+    all users agreeing with the Sysadmin's choice, nor can we
+    assign a default preference order, since opinions vary.  If the
+    user doesn't have $ENV{PAGER} set, we do want to pick up one that
+    at least works, so we'll try whatever Configure found.
+
+Index: vms/Makefile
+
+    VMS 5.003_05 Update.
+
+Index: vms/config.vms
+
+    VMS 5.003_05 Update.
+
+Index: vms/descrip.mms
+
+    VMS 5.003_05 Update.
+
+Index: vms/ext/Stdio/Stdio.pm
+
+    VMS 5.003_05 Update.
+
+Index: vms/ext/filespec.t
+
+    VMS 5.003_05 Update.
+
+Index: vms/gen_shrfls.pl
+
+    VMS 5.003_05 Update.
+
+Index: vms/perlvms.pod
+
+    VMS 5.003_05 Update.
+
+Index: vms/vms.c
+
+    VMS 5.003_05 Update.
+
+Index: vms/vmsish.h
+
+    VMS 5.003_05 Update.
+
+----------------
+Version 5.003_04
+----------------
+
+This patch was primarily to fix bugs and to clean up some of
+the changes made in 5.003_03.  The details are described below.
+A very brief summary is:
+
+o Visible Changes to Core Functionality
+
+   -Allow and document permissions for FileHandle::new and
+    IO::File::new.
+   -glob in Safe compartment used to allow shell access; now
+    it's in the same category as `` and system().
+
+o Configure and build enhancements
+   
+   -perl library name is again -lperl, not -lperl5 in some cases.
+   -Several hint files no longer set -g -DDEBUGGING by default.
+    Instead, they just turn off optimization, since that is
+    probably what was intended.
+   -Include OS/2 and Plan9 updates.
+
+o Bug fixes
+
+   -SEGV with $_[0] and circular references fixed.
+   -Ilya's debugger patch.
+   -FAKE typeglobs fixed.
+   -truncate with file name now works.
+   -lval substr() no longer coredumps with refs
+   -lval substr now clears lexicals in re-entered scopes.
+   -core dump in caller() for signal handler for __DIE__.
+
+o Specific Changes
+
+Here are the specific file-by-file changes.
+    
+# This is my patch perl5.003_04.pat to perl5.003_03
+# The full description is below.
+# Please execute the following commands before applying this patch.
+# (You can feed this patch to 'sh' to do so.)
+#  Andy Dougherty              <doughera@lafcol.lafayette.edu>
+
+# Obsolete perl4 hint file.
+rm -f hints/dnix.sh
+# Obsolete
+rm -f os2/notes
+
+# We'll create a new test, but patch won't automatically make it
+# executable.
+touch t/op/gv.t
+chmod +x t/op/gv.t
+
+exit 0
+
+
+This is patch perl5.003_04.pat to perl version 5.003_03.
+This takes you from 5.003_03 to 5.003_04.
+
+To apply this patch, run the above commands,
+cd to your perl source directory and then type
+
+       patch -p1 -N < perl5.003_04.pat
+
+The changes are described after each /^Index/ line below.  This is
+designed so you can examine each change with a command such as
+
+       csplit -k perl5.003_04.pat '/^Index:/' '{99}'
+
+Patch and enjoy,
+
+    Andy Dougherty             doughera@lafcol.lafayette.edu
+    Dept. of Physics
+    Lafayette College, Easton PA 18042
+
+
+Index: Changes
+
+    Updated for 5.003_04.
+
+Index: Configure
+
+    Change name of shared libperl library back to libperl.so.xxx,
+    so that a simple -lperl picks up either libperl.a or
+    libperl.so.xxx.
+
+    Check if $sh='' in case we've reloaded an old config.sh
+
+Index: INSTALL
+
+    Change name of shared perl library to libperl, instead of
+    libperl5.
+
+    Add notes about fragility of shared libperl and the usefulness
+    of archlib to separate different binaries.
+
+Index: MANIFEST
+
+    os2/notes removed
+
+    obsolete hints/dnix.sh removed.
+
+    New typeglob test.
+
+Index: Makefile.SH
+
+    For building shared libperl, relocate whole rule to
+    inside the if test -f $osname/Makefile.SHs case.
+
+Index: Porting/Glossary
+
+    Updated.
+
+Index: README.os2
+
+    Updated.
+
+Index: av.c
+
+    Subject: Re: SEGV with $_[0] and circular references
+
+    Subject: random cleanup
+
+    This patch removes a few obvious redundancies in the source.
+
+Index: config_H
+
+    Updated.  Note new comments to make AIX happy.
+
+Index: config_h.SH
+
+    Change /*#define../**/ into /*#define../ **/
+    to make IBM's xlc compiler shut up about nested comments.
+    The /*#define FOO /**/ is a perfectly legal un-nested comment, and
+    I wish IBM would fix it's blasted compiler instead.  In the meantime
+    we'll take mercy on the poor AIX user and get rid of the screenfulls
+    of stupid warning messages.  Thanks to Hallvard B Furuseth
+    <h.b.furuseth@usit.uio.no> for the fix.
+
+Index: dump.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: ext/FileHandle/FileHandle.pm
+
+    This patch documents the behavior of FileHandle::{new,open} with
+    regard to open modes.  It also documents the exportation of Fcntl
+    constants.
+
+    This patch fixes a bug observed by Tom Christiansen: FileHandle::new
+    didn't allow for file permissions after the file mode.  Here's a patch.
+
+Index: ext/IO/lib/IO/File.pm
+
+    This patch fixes a bug observed by Tom Christiansen: IO::File::new
+    didn't allow for file permissions after the file mode.  Here's a patch.
+
+    This patch documents the behavior of IO::File::{new,open} with
+    regard to open modes.  It also documents the exportation of Fcntl
+    constants.
+
+Index: ext/Opcode/Opcode.pm
+
+    Subject: Re: glob in Safe compartment allows shell access
+
+    I've moved the glob op into the same opcode tag as backticks and system
+    and added a comment.
+
+Index: gv.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: handy.h
+
+    Subject: Patch for LONG_MAX & co.
+
+    Sorry about adding yet another #ifdef forest, but hopefully this
+    should resolve the *_MAX issues permanently. It adds to the
+    previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
+    symbols the complete set of
+    /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
+    those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
+    Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
+    and get appropriate figures. All references to LONG_(MIN|MAX) are
+    changed appropriately.
+
+    The .c changes have the side effect of making cast_uv properly use quad
+    limits if quads are in use, but longs aren't 64 bit. Hopefully this all
+    works, but I don't have any handy Crays to try it out on.
+
+    Add notes on perl's internal types, specifically Quad_t and IV.
+
+Index: hints/hpux.sh
+
+    Remove the d_bsdpgrp hint.  The defaults should be ok.
+
+Index: hints/irix_6_2.sh
+
+    Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
+    unless that's what the user really wants.
+
+Index: hints/mpeix.sh
+
+    Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
+    unless that's what the user really wants.
+
+Index: hints/os2.sh
+
+    Fixes for sh vs. bin_sh + cleanup.
+
+Index: hints/ultrix_4.sh
+
+    Don't call optimize=-g, just call optimize=none.  The -g
+    pulls in -DDEBUGGING, which might not be wanted.
+
+Index: lib/ExtUtils/MM_Unix.pm
+
+    .C$(obj_ext) removed under OS/2 - conflicts with .c$(obj_ext).
+
+Index: lib/ExtUtils/xsubpp
+
+    Fix SCOPE?  (See pod/perlxs.pod).
+    Up version number to 1.938.
+
+Index: lib/Test/Harness.pm
+
+    Add a return value to runtests - non-zero if all tests ran ok,
+    zero otherwise.
+
+Index: lib/perl5db.pl
+
+    Ilya's debugger patch.
+       Undefined subroutine &Carp::longmess called at
+           /opt/perl5.003_03/lib/perl5db.pl line 1423.
+
+
+    Make perl5db compatible with the recent 'strict refs' enforcement
+    in %SIG.
+
+Index: malloc.c
+
+    A patch to perl5.003_02/malloc to give a sensible error abort() message
+    in ANSI C, and to give it to stderr instead of stdout.
+
+    Use config_h's STRINGIFY macro instead of pre-ANSI "p".
+
+Index: mg.c
+
+    Subject: FAKE typeglobs seriously busted (with patch)
+
+    Handling of fake typeglobs (scalars that are really globs
+    in disguise) is seriously busted since 5.002 (it wasn't
+    so in 5.001n).
+    The problem is that mg_get() on a glob calls gv_efullname()
+    which might coerce its first arg to a string.
+
+    Sub-critical patch to conceivably fix some %SIG problems. (Shared hash key
+    weren't being properly detected by some of the sig magic, but as shared
+    hash keys wouldn't normally be used in %SIG it's unlikely this is a
+    significant problem.)
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: myconfig
+
+    Update perlio-related variables.
+
+Index: op.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: opcode.h
+
+    Updated.  See opcode.pl.
+
+Index: opcode.pl
+
+    Subject: Re: truncate with file name does not work (with patch)
+
+    The prototype for truncate was changed so that perl won't die
+    with C<use strict;> when the first arg is a bareword (filehandle).
+    I think it was Tom (as in "tchrist") who brought this up.
+
+    Here's a patch that undoes the damage, makes it work with
+    C<use strict;>, and adds to the testsuite.
+
+Index: os2/Makefile.SHs
+
+    perllib vs. LIBPERL
+
+Index: os2/diff.configure
+
+    Updated.
+
+Index: os2/os2.c
+
+    SH_PATH_INI vs. BIN_SH
+
+Index: os2/os2ish.h
+
+    SH_PATH_INI added (needed to redefine SH_PATH for binary
+           distribution).
+    SH_PATH is redefined.
+
+Index: patchlevel.h
+
+    SUBVERSION 4.
+
+Index: perl.h
+
+    Subject: Patch for LONG_MAX & co.
+
+    Sorry about adding yet another #ifdef forest, but hopefully this
+    should resolve the *_MAX issues permanently. It adds to the
+    previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
+    symbols the complete set of
+    /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
+    those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
+    Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
+    and get appropriate figures. All references to LONG_(MIN|MAX) are
+    changed appropriately.
+
+    The .c changes have the side effect of making cast_uv properly use quad
+    limits if quads are in use, but longs aren't 64 bit. Hopefully this all
+    works, but I don't have any handy Crays to try it out on.
+
+    Add notes on perl's internal types, specifically Quad_t and IV.
+
+Index: perlio.c
+
+    Removes an incorrect prototype for setlinebuf from
+    perlio.c because it conflicts with the correct declaration in
+    MachTen's stdio.h (and possibly other stdio's as well).
+
+    Secondly, the code in perlio.c is not handling the (!PERLIO_IS_STDIO &
+    HAS_F[GS]ETPOS) case.  The patch fixes this omission (in a rather lumpen
+    manner).  I don't think this should affect platforms which try to hack a
+    different path through the #ifdef forest, but this assertion would benefit
+    from testing...
+
+    Dominic Dunlop
+
+Index: plan9/config.plan9
+
+    Updated.
+
+Index: plan9/fndvers
+
+    Updated.
+
+Index: plan9/mkfile
+
+    Updated.
+
+Index: plan9/setup.rc
+
+    Updated.
+
+Index: pod/perldiag.pod
+
+    Subject: lval substr() coredumps with refs (with patch)
+
+    substr() coredumps with a target that is a ref, when it is used in
+    an lvalue context.
+    The patch below corrects the problem by stringifying the reference
+    first (and emitting a warning when appropriate).
+
+Index: pod/perlxs.pod
+
+    document xsubpp SCOPE:
+
+Index: pp.c
+
+    Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
+
+    substr() in lvalue context interacts in buggy fashion with SVs that
+    are !SvOK.  This manifests itself with lexicals that have a REFCNT of
+    1, since these are merely "cleared in place" by setting SvOK_off.
+
+    Subject: lval substr() coredumps with refs (with patch)
+
+    substr() coredumps with a target that is a ref, when it is used in
+    an lvalue context.
+    The patch below corrects the problem by stringifying the reference
+    first (and emitting a warning when appropriate).
+
+    Subject: Patch for LONG_MAX & co.
+
+Index: pp_ctl.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: pp_hot.c
+
+    Subject: Patch for LONG_MAX & co.
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: pp_sys.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: proto.h
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: run.c
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+Index: sv.c
+
+    Subject: random cleanup
+
+    This patch removes a few obvious redundancies in the source.
+
+    Subject: sv_setsv patch
+
+    This patch changes neither behavior nor performance.  However, it does
+    reduce code size and improve maintainability by combining some common
+    code in gv_fullname() and gv_efullname().
+
+    From: Chip Salzenberg <salzench@nielsenmedia.com>
+    Subject: Track SVs for destruction when -DPURIFY
+
+    When checking for memory leaks, I compiled Perl with "-DPURIFY".
+    Although that flag improves the leak checking, it also breaks
+    destruction of global objects, because SVs aren't kept in captive
+    arenas any more.
+
+    This patch rectifies the problem by providing an alternative
+    method for keeping track of SVs when Perl is compiled for Purify.
+    It has no effect on normal operation.
+
+
+    Add comment about assert(len >=0) when len is unsigned anyway.
+
+Index: t/io/fs.t
+
+    Subject: Re: truncate with file name does not work (with patch)
+
+    The prototype for truncate was changed so that perl won't die
+    with C<use strict;> when the first arg is a bareword (filehandle).
+    I think it was Tom (as in "tchrist") who brought this up.
+
+    Here's a patch that undoes the damage, makes it work with
+    C<use strict;>, and adds to the testsuite.
+
+    The "not implemented" branch is missing a "\n".
+
+Index: t/op/gv.t
+
+    Subject: FAKE typeglobs seriously busted (with patch)
+
+    Handling of fake typeglobs (scalars that are really globs
+    in disguise) is seriously busted since 5.002 (it wasn't
+    so in 5.001n).
+
+    The problem is that mg_get() on a glob calls gv_efullname()
+    which might coerce its first arg to a string.
+
+Index: t/op/substr.t
+
+
+    Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
+
+    substr() in lvalue context interacts in buggy fashion with SVs that
+    are !SvOK.  This manifests itself with lexicals that have a REFCNT of
+    1, since these are merely "cleared in place" by setting SvOK_off.
+
+    Subject: lval substr() coredumps with refs (with patch)
+
+    substr() coredumps with a target that is a ref, when it is used in
+    an lvalue context.
+    The patch below corrects the problem by stringifying the reference
+    first (and emitting a warning when appropriate).
+
+Index: toke.c
+
+    Subject: Re: truncate with file name does not work (with patch)
+
+    The prototype for truncate was changed so that perl won't die
+    with C<use strict;> when the first arg is a bareword (filehandle).
+    I think it was Tom (as in "tchrist") who brought this up.
+
+    Here's a patch that undoes the damage, makes it work with
+    C<use strict;>, and adds to the testsuite.
+
+Index: util.c
+
+    Subject: Re: Perl 5.003 dumps core executing caller() in signal handler for
+           __DIE__ (with patch)
+
+    sv_2pv() might call croak() (which is not prepared to handle that
+    when it calls sv_2pv(), itself).  Likewise for warn() (but under
+    slightly more esoteric circumstances--mg_get() in sv_2pv() might
+    trigger a call to warn()).
+
+
+    Subject: Patch for LONG_MAX & co.
+
+    PERL_BADLANG is examined by default before issuing a warning during
+           internationalization.
+
+Index: utils/h2xs.PL
+
+    Make leading =head NAME item a paragraph so pod2man finds it.
+
+Index: utils/perldoc.PL
+
+    Use col -x to filter out half-line feeds (ESC-9) from
+    HP-UX nroff -man output.  (col -x isn't portable -- SunOS
+    doesn't support the -x option.)
+
+----------------
+Version 5.003_03
+----------------
+
+Most of the changes in 5.003_03 are to make the build and installation
+process more robust.  The details are described below.  A very brief
+summary is:
+
+o Visible Changes to Core Functionality
+
+   -Support for tied filehandles.
+
+o Configure enhancements
+
+   -How to build and install a shared libperl.so is now documented
+    and supported, though it's not the default for most platforms.
+
+o Bug fixes
+
+   -Support bit operations on strings longer than 15 bytes.
+
+   -If a regex supplied to split() contains paranthesized subpatterns
+    that can result in null matches, perl no longer coredumps.
+
+   -Fix problems with each() on tied hashes.
+
+   -Make h2ph architecture-independent by using Config at run-time
+    rather than extraction time.
+
+o Specific Changes
+
+Here are the specific file-by-file changes.
+
+# This is my patch perl5.003_03.pat to perl5.003_02
+# The full description is below.
+# Please execute the following commands before applying this patch.
+# (You can feed this patch to 'sh' to do so.)
+#  Andy Dougherty              <doughera@lafcol.lafayette.edu>
+
+# Absorbed into Changes5.002
+rm -f Changes.Conf
+
+# Not needed.
+rm -f ext/POSIX/mkposixman.pl
+
+# Moved to README.os2.  I'm not sure why the README files are
+# here rather than in the appropriate subdirectories.
+rm -f os2/README
+
+# Not needed.
+rm -f pod/Makefile.PL
+
+# New test for bit ops.
+touch t/op/bob.t
+
+# Patches that create new tests don't always make them executable.
+chmod +x t/*/*.t
+
+# Create a new directory for Porting and Patching info.
+mkdir Porting
+
+exit 0
+
+This is patch perl5.003_03.pat to perl version 5.003_02.
+This takes you from 5.003_02 to 5.003_03.
+
+To apply this patch, run the above commands,
+cd to your perl source directory and then type
+
+       patch -p1 -N < perl5.003_03.pat
+
+The changes are described after each /^Index/ line below.  This is
+designed so you can examine each change with a command such as
+
+       csplit -k perl5.003_03.pat '/^Index:/' '{99}'
+
+Patch and enjoy,
+
+    Andy Dougherty             doughera@lafcol.lafayette.edu
+    Dept. of Physics
+    Lafayette College, Easton PA 18042
+
+Index: Changes
+
+       Include 5.003_03 change notes.
+
+       Move older change notes to separate files.
+
+Index: Changes5.000
+
+       New file.  Changes from perl4.036 to 5.000.
+
+Index: Changes5.001
+
+       New file.  Changes from 5.000 to 5.001
+
+Index: Changes5.002
+
+       New file.  Changes from 5.001 to 5.002
+
+Index: Changes5.003
+
+       New file.  Changes from 5.002 to 5.003
+
+Index: Configure
+
+       Relaxed warning about ksh on exotic machines.
+
+       Changed usesafe to useopcode.
+
+       Add search for gzip and zip.
+
+       Look more carefully for $sh (the Bourne-ish shell).
+       Use that info to set $startsh correctly.
+
+       Change prompts for PerlIO interface.  See INSTALL
+       for how this is supposed to work.  The default is
+       still the same as in 5.003_02, namely don't use
+       any fancy new PerlIO stuff.
+
+       Don't look for sigvec() since we don't actually use it.
+       (Plus, it used to print an alarming misleading message about
+       race conditions.)
+
+       Look for stdio's _filbuf under the possible names of
+       _filbuf, __filbuf, and _fill.
+
+       New $useshrplib variable to control whether we build a shared
+       libperl.so.  The name of the library is in $libperl.
+       Always install it in $installarchlib/CORE/$libperl.
+
+       Check for <sys/resource.h> and <sys/wait.h> for NetBSD.
+
+       Replace old $altmake stuff with newer autoconf-ish
+       $make_set_make, which checks if $make sets $(MAKE).  Now you
+       choose an alternate make with sh Configure -Dmake=gmake (or
+       whatever).
+
+       Remove 'ln' for the list of essential commands.  Simulate
+       it with 'cp' if necessary.
+
+       Change `logname` prompts to handle extra gratuitous spaces in
+       Ultrix output.
+
+       Autodetect os2.
+
+       Fix silly bug in checking for fully-qualified names in /etc/hosts.
+
+       Generalize Gconvert tests.  Give correct and more useful
+       error messages.
+
+       Use $obj_ext instead of literal '.o' in the dynaloader test.
+
+       Include appropriate header files in bcopy() and memcpy()
+       tests.  Note whether memmove is available.
+
+       Check whether struct sigaction works (needed for Solaris 2.5
+       with -Xc).
+
+       Include appropriate header files for randbits test.
+
+Index: INSTALL
+
+       Add note about space requirements.
+
+       Update to match Configure changes (Opcode vs. Safe,
+       useperlio, useshrplib, etc.)
+
+       Reorganize the structure of some of the hints.
+
+       Miscellaneous clarifications.
+
+Index: MANIFEST
+
+       Updated.  5.003_02 introduced some massive patches, mostly
+       due to spacing changes.  I didn't bother to sort them all out;
+       I just started with 5.003's MANIEFST.
+
+Index: Makefile.SH
+
+       Support the new simplified shared libperl mechanism.
+
+       Use new $make_set_make directive.
+
+       Remove redundant libperl Make variable.
+
+       Remove unnecessary MAB variable.
+
+       Remove dependency of minitest on lib/Config.pm, since it could
+       well have been a failure of configpm that inspired testing
+       miniperl in the first place!
+
+Index: Porting/Glossary
+
+       New file describing all the config.sh variables.
+       Eventually, I hope to fill this directory with other useful
+       stuff.
+
+Index: README.os2
+
+       Replace old README.os2 with more up-to-date os2/README.
+
+Index: config_H
+
+       Updated to match current Configure and config_h.SH.
+       Some rearrangement of parts has occurred due to new
+       dependencies in the metaconfig units.
+
+Index: config_h.SH
+
+       Updated to match current Configure and config_h.SH.
+       Some rearrangement of parts has occurred due to new
+       dependencies in the metaconfig units.
+
+       Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
+       SITEARCH, and SITELIB.  Previous versions just included the
+       ~-expanded names (with unhelpful descriptions).  No functionality
+       is changed, but maybe it's a little better documented now.
+
+Index: doio.c
+
+       Possibly Include <signal.h> and <unistd.h>
+
+Index: doop.c
+
+       No longer prefer bcmp over memcmp when order doesn't matter.
+
+       Support bit operations on strings longer than 15 bytes.
+
+Index: embed.h
+
+       Auto-generated.
+
+Index: embed.pl
+
+       Expand warning at the top.
+
+Index: ext/IO/IO.pm
+
+       Clean up docmentation installation errors.
+
+Index: ext/IO/lib/IO/Seekable.pm
+
+       Clean up docmentation installation errors.
+
+Index: ext/IO/lib/IO/Select.pm
+
+       Clean up docmentation installation errors.
+
+Index: ext/Opcode/Opcode.xs
+
+       Add support for tied filehandles.
+
+Index: ext/SDBM_File/sdbm/sdbm.h
+
+       Change the Mymalloc to match Perl_malloc in perl.h.
+
+Index: ext/util/make_ext
+
+       Typo change.
+       Get rid of unused altmake.
+
+Index: global.sym
+
+       Fix problems with each() on tied hashes.
+
+Index: handy.h
+
+       Change safe*alloc functions to have prototypes that
+       match the system's malloc and free types.  That is, use
+       Malloc_t instead of char *, and Free_t instead of void.
+       This is necessary so . . .
+
+       Safefree cast matches type of free() whether it's perl's
+       malloc/free or the system's malloc/free.
+
+Index: hints/README.hints
+
+       Remove out-of-date info.
+
+       Document a bit about how hint files work.
+
+Index: hints/aix.sh
+
+       qmaxmem hint doesn't apply to gcc.
+
+Index: hints/dgux.sh
+
+       Configure will now automatically detect shared libperl stuff.
+
+Index: hints/dynixptx.sh
+
+       Fix typo in comment.
+       
+       Configure will now automatically detect shared libperl stuff.
+
+Index: hints/epix.sh
+
+       Use glibpth instead of libpth.  This allows Configure to
+       add local directories, such as /opt/local/lib, etc.
+
+Index: hints/irix_6_2.sh
+
+       Include some info on cc -n32 compile.
+
+Index: hints/linux.sh
+
+       Configure now tests gcvt() more thoroughly.
+
+Index: hints/machten_2.sh
+
+       Update where to find dld.
+
+Index: hints/mips.sh
+
+       Use glibpth instead of libpth.
+
+Index: hints/next_3.sh
+
+       Build up $mab dynamically.  Since $mab isn't used anywhere
+       anymore, this is useless.  However, $mab was never used for
+       next_3.sh anyway, so there's been no change in functionality.
+
+Index: hints/next_4.sh
+
+       Get rid of extraneous isnext_4 variable.  Configure and
+       Makefile.SH will use $osname and $osvers instead.
+
+       Build up $mab dynamically based on available architectures.
+
+       Absorb $mab into ccflags and ccdlflags.  I hope that will
+       cover everything.  (Configure should automatically remove
+       the -arch stuff from cppflags.)
+
+       Configure now knows next4 needs to use a shared libperl.5.so.
+
+       Allow users to use -Dprefix.
+
+Index: hints/os2.sh
+
+       Try to update to reflect newer shared libperl stuff.
+       I probably goofed :-).
+
+Index: hints/sco.sh
+
+       Additional notes on using icc.
+
+       Additional flags for dynamic loading.
+
+Index: hints/solaris_2.sh
+
+       Perl.h no longer prefers bcmp, so it's again ok if Configure
+       finds them, since perl will prefer the mem* versions anyway.
+
+Index: hints/sunos_4_0.sh
+
+       Don't include <unistd.h>
+
+Index: hints/sunos_4_1.sh
+
+       Add brief note about GNU as and ld.
+
+       Don't include <unistd.h>
+
+       Add notes about WHOA THERE messages.
+
+Index: hints/titanos.sh
+
+       Include sfio in libswanted.
+
+       Don't set libpth any more.
+
+Index: hints/umips.sh
+
+       New hint file.
+
+Index: hv.c
+
+       Use memcmp even in cases where ordering doesn't matter.
+
+       Fix problems with each() on tied hashes.
+
+Index: installperl
+
+       Simplify installation of shared libperl.so.
+
+       Avoid reaching Command Failed!!! with /usr/bin/perl.
+
+Index: lib/AutoSplit.pm
+
+       Clean up docmentation installation errors.
+
+Index: lib/ExtUtils/MM_Unix.pm
+
+       Remove MAB references.
+
+       Use 'useshrplib' instead of 'd_shrplib'
+
+Index: lib/ExtUtils/MakeMaker.pm
+
+       Remove mab references.
+
+Index: lib/FindBin.pm
+
+       Clean up docmentation installation errors.
+
+Index: lib/Symbol.pm
+
+       Put back in the BEGIN { require 5.002; }.  The version in
+       5.003_02 wouldn't work in 5.002 anyway.  Further, the whole
+       point of the construct is to catch 5.001m, so we can't use
+       syntax introduced after 5.001m to do that.
+
+Index: lib/Text/Wrap.pm
+
+       Remove double 'use strict'.
+
+Index: lib/perl5db.pl
+
+       Add explicit '&' to avoid warnings under strict refs.
+
+Index: lib/sigtrap.pm
+
+       Clean up docmentation installation errors.
+
+Index: makedepend.SH
+
+       Use Configure's $sh and $make_set_make variables.
+
+Index: mg.c
+
+       Include <unistd.h>
+
+       Use Safefree() macro instead of safefree() function with
+       a (possibly) incorrect cast.  The whole point of the
+       Safefree() macro is that it does the correct cast for you.
+
+
+Index: patchlevel.h
+
+       Change to SUBVERSION 3.
+
+Index: perl.c
+
+       Include <unistd.h>
+
+Index: perl.h
+
+       No longer prefer bcmp slightly for comparisons that don't care
+       about ordering.
+
+       Rely on Configure setting SH_PATH.
+
+       Change the function name to Pause() instead of pause() to
+       avoid potential prototype problems.  (This naming convention
+       is similar to the Fwrite and Fflush macros.)
+
+       Fix problems with each() on tied hashes.
+
+       Work around crypt prototype problem on NeXT.
+
+Index: perlio.c
+
+       Fixes to support non-std stdio.
+
+Index: perlio.h
+
+       Try to document the various #defines a bit.  This is far from
+       finished.
+
+       Remove a lot of trailing whitespace.  (It's of no consequence, but
+       but I'm not going to redo the patch just to put back in the trailing
+       whitespace either.)
+
+Index: perlsdio.h
+
+       Fixes to support non-std stdio.
+
+Index: perly.c
+
+       Restore use of Safefree() macro.
+
+Index: perly.c.diff
+
+       Restore use of Safefree() macro.
+
+Index: perly.h
+
+       Delete duplicate line.
+
+Index: plan9/buildinfo
+
+       Update.
+
+Index: pod/perlapio.pod
+
+       Clean up docmentation installation errors.
+
+Index: pod/perlipc.pod
+
+       Fix typo.
+
+       Untaint port number.
+
+Index: pod/perlmod.pod
+
+       Fix a minor nit regarding Exporter.
+
+Index: pod/perlre.pod
+
+       Clean up docmentation installation errors.
+
+Index: pod/perltie.pod
+
+       Add support for tied filehandles.
+
+Index: pod/perltrap.pod
+
+       Clean up docmentation installation errors.
+
+Index: pod/perlxstut.pod
+
+       Clean up docmentation installation errors.
+
+Index: pod/pod2man.PL
+
+       Clean up docmentation installation errors.
+
+Index: pp.c
+
+       Add support for tied filehandles.
+
+       If a regex supplied to split() contains paranthesized subpatterns
+       that can result in null matches, perl coredumps.
+
+Index: pp_hot.c
+
+       Use memcmp instead of bcmp even when we don't care about order.
+
+       Add support for tied filehandles.
+
+Index: pp_sys.c
+
+       Include <unistd.h>, <sys/wait.h>, and <sys/resource.h>.
+       (The latter two are especially for NetBSD.)
+
+       Don't assume sys/time.h and sys/select.h can't coexist.
+
+       Use Pause macro.
+
+Index: proto.h
+
+       Fix safe*alloc and safefree prototypes.
+
+Index: regexec.c
+
+       Use memcmp instead of bcmp even when we don't care about order.
+
+Index: sv.c
+
+       Use memcmp instead of bcmp even when we don't care about order.
+
+Index: t/lib/opcode.t
+
+       Add support for tied filehandles.
+
+Index: t/op/bop.t
+
+       Support bit operations on strings longer than 15 bytes.
+
+Index: t/op/misc.t
+
+       Add support for tied filehandles.
+
+Index: t/op/split.t
+
+       If a regex supplied to split() contains paranthesized subpatterns
+       that can result in null matches, perl coredumps.
+
+Index: toke.c
+
+       Include <unistd.h>.
+
+       Use memcmp instead of bcmp even when we don't care about order.
+
+Index: util.c
+
+       Include <unistd.h>.
+
+       Use correct types for safe*alloc and safefree functions.
+
+Index: utils/h2ph.PL
+
+       Make h2ph architecture-independent by using Config at run-time
+       rather than extraction time.
+
+Index: writemain.SH
+
+       Remove unnecessary curlies.  (They are a leftover from
+       an older auto_init mechanism.)
+
+Index: x2p/Makefile.SH
+
+       Use Configure's $sh and $make_set_make.
+
+       Remove MAB stuff, since it's now in ccflags.
+
+       Keep 5.003's RCS info.
+
+Index: x2p/a2p.h
+
+       Keep 5.003's RCS info.
+
+Index: x2p/str.c
+
+       Use Configure's FILE_filbuf macro instead of a raw _filbuf.
+
+----------------
+Version 5.003_02
+----------------
+o Visible Changes to Core Functionality
+  - Redefining constant subs, or changing sub's prototype now give warnings.
+  - Fixes for ++/-- of values close to max/min size of an integer 
+  - Warning for un-qualified bareword as handler in $SIG{}. 
+  - UNIVERSAL::isa can now be called as static method. 
+
+o Changes in Core Internals
+  - PerlIO abstraction added.
+    Perl core and standard extensions no longer assume ANSI C's stdio is IO
+    mechanism, Default Configure mode is still to use stdio via set of C macros.
+    Alternate modes are to use stdio via one perlio.c module, or 
+    to use sfio if available.
+    
+  - Several bug fixs from perl5-porters
+      - Make sources non-ANSI C correct again.
+      - SUPER in gv.c 
+      - Last of shared-hash-key patches
+      - eval '(0,1..3)'; # --> SegFault
+      - coredumps after simple subsitutes.
+      - Correction to UNIVERSAL::VERSION docs.
+      - Fixed io_udp test.
+      - Fixed another abuse of malloc'ed memory.
+  - Enabled DEBUGING_MSTATS whenever perl's malloc() is used.
+  - Reverted to default of not hiding perl's malloc (if used). 
+
+o Changes in the Standard Library and Utilities
+  - Fixed MakeMaker for static SDBM and builing in a link tree.
+  - Upgraded to IO-1.09, and includes latest (still experimental) IO::Select. 
+  - Documentation/test tweak to DB_File
+  - h2xs upgrade to allow use C::Scan module 
+
+o Changes in OS-specific and Build-time Support
+  - Attempted to re-created 5.003_01's NeXT support with metaconfig units.
+  - Updated MANIFEST 
+  - make minitest now depends on lib/Config.pm, as some of tests require it. 
+  - Included latest plan9 sub-directory
+  - Applied OS/2 patches.
+  - Typo patch for VMS.
+
+----------------
+Version 5.003_01
+----------------
+
+Version 5.003_01 contains bugfixes and additions accumulated since
+version 5.002_01, since the patch to version 5.003 was deliberately
+kept simple.  In addition to numerous small bugfixes in the core,
+library files, and documentation, this patch contains several
+significant revisions, summarized below:
+
+o Visible Changes to Core Functionality
+
+  - A port to Plan9 has been started, and changes are integrated into
+    the standard distribution.  As of this release, the Perl core
+    and several common extensions are working.
+
+  - A set of basic methods in the UNIVERSAL class have been added to
+    the Perl core.  Since UNIVERSAL is an implicit member of every
+    class's @ISA, the methods can be called via any object.
+
+  - A mandatory warning has been added for 'declarations' of lexical
+    variables using the "my" operator which mask an existing lexical
+    variable declared in the same scope, making the previous variable
+    inaccessible by its name.
+
+  - The "use" and "require" operators have been extended to allow
+    checking of the required module's version.  The "use" operator
+    can now be used for an immediate version check of Perl itself.
+
+  - A new "strict" pragma, "strict untie", has been added, which
+    produces an error if a tied value is untied when other references
+    exist to the internal object implementing the tie.
+
+  - Barewords used as associative array keys (i.e. when specifying
+    an associative array element like $foo{__BAR} or on the left
+    side of the => operator) may now begin with an underscore as
+    well as an alphabetic character.
+
+  - Some of the configuration information previously produced by the
+    -v switch has been moved to the -V switch, in order to keep -v
+    output concise.
+
+o Changes in Core Internals
+
+  - Symbol table and method lookups have been made faster.
+
+  - Perl subroutines which just return a constant value are now
+    optimized at compile time into inline constants.
+
+  - Management of keys for associative arrays has been improved to
+    conserve space when the same keys are reused frequently, and
+    to pass true Perl values to tie functions, instead of stringified
+    representations.
+
+  - Messages normally output to stderr may be directed to another
+    stream when Perl is built.  This allows some platforms to
+    present diagnostic output in a separate window from normal
+    program results.
+
+  - A bug which caused suiperl to fail silently, albeit securely,
+    in version 5.003 on some systems has been fixed.
+
+  - Management of Unix-style signal handlers via the %SIG associative
+    array has been made safer.
+
+  - Several global C symbols have been renamed to eliminate collisions
+    with system C header files or libraries on some platforms.
+    Unfortunately, this means that dynamic extensions compiled under
+    previous versions of Perl will need to be rebuilt for Perl
+    5.003_01.  We're in the process of cleaning up Perl's C
+    namespace to make it easier to link Perl with other binaries,
+    so this will probably happen again between now and version 5.004.
+    After that, we'll do our best to maintain binary compatibility
+    between versions.
+
+  - An alternate allocation strategy has been added to Perl's
+    optional private memory management routines.  This strategy,
+    which may be selected when Perl is built, is designed to
+    conserve memory in programs which allocate many small
+    chunks of memory with sizes near a power of 2, as is often
+    the case in Perl programs.
+
+  - Several memory leaks in the creation and destruction of
+    multiple interpreters have been fixed.
+
+o Changes in the Standard Library and Utilities
+
+  - The Opcode extension, which allows you to control a program's
+    access to Perl operations, has been added to the standard
+    distribution.  This extends the work begun in the original
+    Safe extension, and subsumes it.  The Safe interface is still
+    available.
+
+  - The IO extension, which provides a set of classes for object-
+    oriented handling of common I/O tasks, has been added to the
+    standard distribution.  The IO classes will form the basis
+    for future development of Perl's I/O interface, and will
+    subsume the FileHandle class in the near future.  The default
+    class to which all Perl I/O handles belong is now IO::Handle,
+    rather than FileHandle.
+
+  - The ExtUtils::Embed library module, which provides a set
+    of utility function to help in embedding Perl in other
+    applications, has been added to the standard distribution.
+
+  - The Fatal library module, which provides a simple interface
+    for creating "do-or-die" equivalents of existing functions,
+    has been added to the standard distribution.
+
+  - The FindBin library module, which determines the full path
+    to the currently executing program, has been added to the
+    standard distribution.
+
+  - The DB_File extension, and the Getopt::Long, Test::Harness,
+    Text::Tabs, Text::Wrap, Time::Local and sigtrap library modules
+    have been updated to the authors' latest versions.
+
+  - The Carp library module now considers the @ISA chain when
+    determining the caller's package for inclusion in error messages.
+
+  - The h2xs, perlbug, and xsubpp utilities have been updated.
+
+  - The standard Perl debugger has been updated, and the information
+    provided to the debugger when an XSUB is called has been improved,
+    making it possible for alternate debuggers (such as Devel::DProf)
+    to do a better job of tracking XSUB calls.
+
+  - The pod documentation formatting tools in the standard distribution
+    can now handle characters in the input stream whose high bit is set.
+
+  - The cperl-mode EMACS editing mode has been updated.
+
+o Changes in Documentation
+
+  - Typographic and formatting errors have been corrected in the pod
+    documentation for the core and standard library files
+
+  - Explanations of several core operators have been improved
+
+  - The perldebug, perlembed, perlipc, perlsec, and perltrap documents
+    extensively revised.
+
+o Changes in OS-specific and Build-time Support
+
+  - Support for the NeXT platform has been extended through
+    NeXTSTEP/OPENSTEP 4.0, and now includes the ability to create MABs.
+
+  - Support for OS/2 has been extended as well, and now includes
+    options for building a.out binaries.
+
+  - Support for VMS has also been extended, incorporating improved
+    processing of file specification strings, optional suppression of
+    carriage control interpretation for record-structured files,
+    improved support for the -S command line switch, a number of
+    VMS-specific bugfixes, and significantly improved performance
+    in line-oriented reading of files.
+
+  - Several hints files have been added or updated: aux.sh (updated),
+    convexos.sh (updated), irix_4.sh (updated), irix_5.sh (updated),
+    irix_6_2.sh (updated), next_3.sh (updated), next_3_2.sh (new),
+    next_3_3.sh (new), next_4.sh (new), os2/sh (updated),
+    sco.sh (updated), and solaris_2.sh (updated).
+
+  - The test driver for the regression tests now reports when a set
+    of tests have been skipped (presumable because the operation
+    they're designed to test isn't supported on the current system).