[inseparable changes from patch from perl5.003_24 to perl5.003_25]
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index b33f1ff..56745d1 100644 (file)
@@ -34,21 +34,6 @@ application of opcode masks.  The revised Safe module has a new API
 and is implemented using the new Opcode module.  Please read the new
 Opcode and Safe documentation.
 
-=head2 Extended Fcntl Module
-
-The Fcntl module now supports these new constants
-
-       F_GETOWN F_SETOWN
-       O_ASYNC O_DEFER O_DSYNC O_RSYNC O_SYNC
-       O_EXLOCK O_SHLOCK
-
-provided that your operating system supports these constants. The
-constants are for use with the Perl sysopen() and fcntl(). These
-constants are also visible for the basic database modules like the
-SDBM_File. For the exact meaning of these contants and other Fcntl
-constants please refer to the fcntl() documentation of your operating
-system. Unsupported constants will cause run-time errors.
-
 =head2 Internal Change: FileHandle Deprecated
 
 Filehandles are now stored internally as type IO::Handle.
@@ -69,8 +54,8 @@ the F<INSTALL> file for how to use it.
 
 =item $^E
 
-Extended error message under some platforms ($EXTENDED_OS_ERROR
-if you C<use English>).
+Extended error message on some platforms.  (Also known as
+$EXTENDED_OS_ERROR if you C<use English>).
 
 =item $^H
 
@@ -94,6 +79,15 @@ See the F<INSTALL> file for information on how to enable this option.
 As a disincentive to casual use of this advanced feature,
 there is no C<use English> long name for this variable.
 
+=item $^S
+
+The status returned by the last pipe close, back-tick (C<``>) command, or
+system() operator, in the native system format.  On UNIX and UNIX-like
+systems, C<$^S> is a synonym for C<$?>.  Elsewhere, C<$^S> can be used to
+determine aspects of child status that are system-specific.  Check C<$^O>
+before using this variable.  (Mnemonic: System-Specific Subprocess Status.
+Also known as $SYSTEM_CHILD_STATUS if you C<use English>.)
+
 =back
 
 =head2 New and Changed Built-in Functions
@@ -243,7 +237,7 @@ before, and is fine now:
 The C<UNIVERSAL> package automatically contains the following methods that
 are inherited by all other classes:
 
-=over 4
+=over
 
 =item isa(CLASS)
 
@@ -420,6 +414,16 @@ Disable unsafe opcodes, or any named opcodes, when compiling Perl code.
 
 =head1 Modules
 
+=head2 Installation Directories
+
+The I<installperl> script now places the Perl source files for
+extensions in the architecture-specific library directory, which is
+where the shared libraries for extensions have always been.  This
+change is intended to allow administrators to keep the Perl 5.004
+library directory unchanged from a previous version, without running
+the risk of binary incompatibility between extensions' Perl source and
+shared libraries.
+
 =head2 Fcntl
 
 New constants in the existing Fcntl modules are now supported,
@@ -429,6 +433,21 @@ provided that your operating system happens to support them:
     O_ASYNC O_DEFER O_DSYNC O_FSYNC O_SYNC 
     O_EXLOCK O_SHLOCK
 
+These constants are intended for use with the Perl operators sysopen()
+and fcntl() and the basic database modules like SDBM_File.  For the
+exact meaning of these and other Fcntl constants please refer to your
+operating system's documentation for fcntl() and open().
+
+In addition, the Fcntl module now provides these constants for use
+with the Perl operator flock():
+
+       LOCK_SH LOCK_EX LOCK_NB LOCK_UN
+
+These constants are defined in all environments (because where there is
+no flock() system call, Perl emulates it).  However, for historical
+reasons, these constants are not exported unless they are explicitly
+requested with the ":flock" tag (e.g. C<use Fcntl ':flock'>).
+
 =head2 Module Information Summary
 
 Brand new modules, arranged by topic rather than strictly
@@ -499,6 +518,52 @@ And these functions are now exported:
     sinh cosh tanh cotanh asinh acosh atanh acotanh
     cplx cplxe
 
+=head2 DB_File
+
+There have been quite a few changes made to DB_File. Here are a few of
+the highlights:
+
+=over
+
+=item *
+
+Fixed a handful of bugs.
+
+=item *
+
+By public demand, added support for the standard hash function exists().
+
+=item *
+
+Made it compatible with Berkeley DB 1.86.
+
+=item *
+
+Made negative subscripts work with RECNO interface.
+
+=item *
+
+Changed the default flags from O_RDWR to O_CREAT|O_RDWR and the default
+mode from 0640 to 0666.
+
+=item *
+
+Made DB_File automatically import the open() constants (O_RDWR,
+O_CREAT etc.) from Fcntl, if available.
+
+=item *
+
+Updated documentation.
+
+=back
+
+Refer to the HISTORY section in DB_File.pm for a complete list of
+changes. Everything after DB_File 1.01 has been added since 5.003.
+
+=head2 Net::Ping
+
+Major rewrite - support added for both udp echo and real icmp pings.
+
 =head2 Overridden Built-ins
 
 Many of the Perl built-ins returning lists now have
@@ -524,6 +589,8 @@ For example, you can now say
 
 =head2 xsubpp
 
+=over
+
 =item C<void> XSUBs now default to returning nothing
 
 Due to a documentation/implementation bug in previous versions of
@@ -543,12 +610,34 @@ It does so by examining the text of the XSUB: if I<xsubpp> finds
 what looks like an assignment to C<ST(0)>, it assumes that the
 XSUB's return type is really C<SV *>.
 
+=back
+
+=head1 C Language API Changes
+
+=over
+
+=item C<gv_fetchmethod> and C<perl_call_sv>
+
+The C<gv_fetchmethod> function finds a method for an object, just like
+in Perl 5.003.  The GV it returns may be a method cache entry.
+However, in Perl 5.004, method cache entries are not visible to users;
+therefore, they can no longer be passed directly to C<perl_call_sv>.
+Instead, you should use the C<GvCV> macro on the GV to extract its CV,
+and pass the CV to C<perl_call_sv>.
+
+The most likely symptom of passing the result of C<gv_fetchmethod> to
+C<perl_call_sv> is Perl's producing an "Undefined subroutine called"
+error on the I<second> call to a given method (since there is no cache
+on the first call).
+
+=back
+
 =head1 Documentation Changes
 
 Many of the base and library pods were updated.  These
 new pods are included in section 1:
 
-=over 4
+=over
 
 =item L<perldelta>
 
@@ -592,7 +681,7 @@ increasing order of desperation):
    (X) A very fatal error (non-trappable).
    (A) An alien error message (not generated by Perl).
 
-=over 4
+=over
 
 =item "my" variable %s masks earlier declaration in same scope