X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlvms.pod;h=9854ff855a2b5a1545475f9689aa30466447b2dd;hb=c1effa61278e47c916466883d74905b04fedc388;hp=b8993d818d1c1635af183ee0e716b488f88275f6;hpb=dd0cfdaa8f18412a5bea90a5dd33b46569dea1c5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlvms.pod b/pod/perlvms.pod index b8993d8..9854ff8 100644 --- a/pod/perlvms.pod +++ b/pod/perlvms.pod @@ -678,7 +678,7 @@ if neither of the $! or $? status values are ones that would cause the native status to be interpreted as being what VMS classifies as SEVERE_ERROR severity for DCL error handling. -When the future POSIX_EXIT mode is active, C, the native VMS exit +When C is active (see L below), the native VMS exit status value will have either one of the C<$!> or C<$?> or C<$^E> or the UNIX value 255 encoded into it in a way that the effective original value can be decoded by other programs written in C, including Perl @@ -691,21 +691,18 @@ If none of the above apply, the UNIX value of 255 will be encoded into a native VMS exit status value. Please note a significant difference in the behavior of C in -the future POSIX_EXIT mode is that it does not force a VMS +the C mode is that it does not force a VMS SEVERE_ERROR status on exit. The UNIX exit values of 2 through 255 will be encoded in VMS status values with severity levels of SUCCESS. The UNIX exit value of 1 will be encoded in a VMS status value with a severity level of ERROR. This is to be compatible with how the VMS C library encodes these values. -The minimum severity level set by C in a future POSIX_EXIT mode -may be changed to be ERROR or higher before that mode becomes fully active -depending on the results of testing and further review. If this is -done, the behavior of c in the future POSIX_EXIT will close enough -to the default mode that most DCL shell scripts will probably not notice -a difference. +The minimum severity level set by C in C mode +may be changed to be ERROR or higher in the future depending on the +results of testing and further review. -See C<$?> for a description of the encoding of the UNIX value to +See L for a description of the encoding of the UNIX value to produce a native VMS status containing it. @@ -1167,17 +1164,17 @@ is that setting C<$?> to zero results in the generic success value SS$_NORMAL, and setting C<$?> to a non-zero value results in the generic failure status SS$_ABORT. See also L. -With the future POSIX_EXIT mode set, setting C<$?> will cause the -new value to also be encoded into C<$^E> so that the either the -original parent or child exit status values of 0 to 255 -can be automatically recovered by C programs expecting _POSIX_EXIT -behavior. If both a parent and a child exit value are non-zero, then it -will be assumed that this is actually a VMS native status value to -be passed through. The special value of 0xFFFF is almost a NOOP as -it will cause the current native VMS status in the C library to -become the current native Perl VMS status, and is handled this way -as consequence of it known to not be a valid native VMS status value. -It is recommend that only values in range of normal UNIX parent or +With the C logical name defined as "ENABLE", +setting C<$?> will cause the new value to be encoded into C<$^E> +so that either the original parent or child exit status values + 0 to 255 can be automatically recovered by C programs expecting +_POSIX_EXIT behavior. If both a parent and a child exit value are +non-zero, then it will be assumed that this is actually a VMS native +status value to be passed through. The special value of 0xFFFF is +almost a NOOP as it will cause the current native VMS status in the +C library to become the current native Perl VMS status, and is handled +this way as it is known to not be a valid native VMS status value. +It is recommend that only values in the range of normal UNIX parent or child status numbers, 0 to 255 are used. The pragma C makes C<$?> reflect the actual @@ -1186,10 +1183,18 @@ described above. This pragma also disables the conversion of non-zero values to SS$_ABORT when setting C<$?> in an END block (but zero will still be converted to SS$_NORMAL). -Do not use the pragma C with the future -POSIX_EXIT mode, as they are at times requesting conflicting -actions and the consequence of ignoring this advice will be -undefined to allow future improvements in the POSIX exit handling. +Do not use the pragma C with C +enabled, as they are at times requesting conflicting actions and the +consequence of ignoring this advice will be undefined to allow future +improvements in the POSIX exit handling. + +In general, with C enabled, more detailed information +will be availble in the exit status for DCL scripts or other native VMS tools, +and will give the expected information for Posix programs. It has not been +made the default in order to preserve backward compatibility. + +N.B. Setting C implicitly enables +C. =item $| @@ -1212,8 +1217,7 @@ problems. =head1 Revision date -This document was last updated on 3-Dec-2007, for Perl 5, -patchlevel 10. +Please see the git repository for revision history. =head1 AUTHOR