diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 6 | ||||
-rw-r--r-- | doc/gawk.info | 124 | ||||
-rw-r--r-- | doc/gawk.texi | 46 | ||||
-rw-r--r-- | doc/gawktexi.in | 46 |
4 files changed, 163 insertions, 59 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 82150f34..8c58e5d4 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,9 +1,13 @@ +2013-12-23 John E. Malmberg <wb8tyw@qsl.net> + + * gawktexi.in: Document the VMS exit status encoding. + 2013-12-21 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in (Additional Configuration Options): Document the --disable-extensions option. -2013-12-16 John E. Malmberg <wb8tyw@qsl.net> +2013-12-16 John E. Malmberg <wb8tyw@qsl.net> * gawktexi.in: Updates to VMS sections. diff --git a/doc/gawk.info b/doc/gawk.info index 2589f0b5..4b1352f7 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -26255,7 +26255,7 @@ B.3.2.1 Compiling `gawk' on VMS To compile `gawk' under VMS, there is a `DCL' command procedure that issues all the necessary `CC' and `LINK' commands. There is also a -`Makefile' for use with the `MMS' or `MMK' utility. From the source +`Makefile' for use with the `MMS' and `MMK' utilities. From the source directory, use either: $ @[.vms]vmsbuild.com @@ -26268,8 +26268,8 @@ or: $ MMK/DESCRIPTION=[.vms]descrip.mms gawk - `MMK' is an open source freeware near clone of `MMS' and can better -handle `ODS-5' volumes with upper- and lower-case filenames. `MMK' is + `MMK' is an open source, free, near-clone of `MMS' and can better +handle `ODS-5' volumes with upper- and lowercase filenames. `MMK' is available from `https://github.com/endlesssoftware/mmk'. With `ODS-5' volumes and extended parsing enabled, the case of the @@ -26301,10 +26301,11 @@ B.3.2.2 Compiling `gawk' Dynamic Extensions on VMS .................................................. Dynamic extensions need to be compiled with the same compiler options -for floating point, pointer size, and symbol name handling as `gawk'. -Alpha and Itanium should use IEEE floating point. The pointer size is -32 bits, and the symbol name handling is to be exact case with CRC -shortening for symbols longer than 32 bits. +for floating point, pointer size, and symbol name handling as were used +to compile `gawk' itself. Alpha and Itanium should use IEEE floating +point. The pointer size is 32 bits, and the symbol name handling +should be exact case with CRC shortening for symbols longer than 32 +bits. For Alpha and Itanium: @@ -26404,6 +26405,35 @@ If any other dash-type options (or multiple parameters such as data files to process) are present, there is no ambiguity and `--' can be omitted. + The `exit' value is a Unix-style value and is encoded to a VMS exit +status value when the program exits. + + The VMS severity bits will be set based on the `exit' value. A +failure is indicated by 1 and VMS sets the `ERROR' status. A fatal +error is indicated by 2 and VMS will set the `FATAL' status. All other +values will have the `SUCCESS' status. The exit value is encoded to +comply with VMS coding standards and will have the `C_FACILITY_NO' of +`0x350000' with the constant `0xA000' added to the number shifted over +by 3 bits to make room for the severity codes. + + To extract the actual `gawk' exit code from the VMS status use: + + unix_status = (vms_status .and. &x7f8) / 8 + +A C program that uses `exec()' to call `gawk' will get the original +Unix-style exit value. + + Older versions of `gawk' treated a Unix exit code 0 as 1, a failure +as 2, a fatal error as 4, and passed all the other numbers through. +This violated the VMS exit status coding requirements. + + VAX/VMS floating point uses unbiased rounding. *Note Round +Function::. + + VMS reports time values in GMT unless one of the `SYS$TIMEZONE_RULE' +or `TZ' logical names is set. Older versions of VMS, such as VAX/VMS +7.3 do not set these logical names. + The default search path, when looking for `awk' program files specified by the `-f' option, is `"SYS$DISK:[],AWK_LIBRARY:"'. The logical name `AWKPATH' can be used to override this default. The format @@ -26420,7 +26450,7 @@ B.3.2.5 The VMS GNV Project The VMS GNV package provides a build environment similar to POSIX with ports of a collection of open source tools. The `gawk' found in the GNV base kit is an older port. Currently the GNV project is being -reorganized to be individual PCSI packages for each component. See +reorganized to supply individual PCSI packages for each component. See `https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/'. The normal build procedure for `gawk' produces a program that is @@ -30577,6 +30607,7 @@ Index * exclamation point (!), !~ operator: Regexp Usage. (line 19) * exit statement: Exit Statement. (line 6) * exit status, of gawk: Exit Status. (line 6) +* exit status, of VMS: VMS Running. (line 29) * exp() function: Numeric Functions. (line 18) * expand utility: Very Simple. (line 69) * Expat XML parser library: gawkextlib. (line 33) @@ -30726,6 +30757,7 @@ Index (line 6) * floating-point, numbers <1>: Unexpected Results. (line 6) * floating-point, numbers: General Arithmetic. (line 6) +* floating-point, VAX/VMS: VMS Running. (line 51) * fnmatch extension function: Extension Sample Fnmatch. (line 6) * FNR variable <1>: Auto-set. (line 103) @@ -31805,13 +31837,13 @@ Index * Schorr, Andrew: Acknowledgments. (line 60) * Schreiber, Bert: Acknowledgments. (line 38) * Schreiber, Rita: Acknowledgments. (line 38) -* search paths <1>: VMS Running. (line 29) +* search paths <1>: VMS Running. (line 58) * search paths <2>: PC Using. (line 11) * search paths <3>: Igawk Program. (line 368) * search paths <4>: AWKLIBPATH Variable. (line 6) * search paths: AWKPATH Variable. (line 6) * search paths, for shared libraries: AWKLIBPATH Variable. (line 6) -* search paths, for source files <1>: VMS Running. (line 29) +* search paths, for source files <1>: VMS Running. (line 58) * search paths, for source files <2>: PC Using. (line 11) * search paths, for source files <3>: Igawk Program. (line 368) * search paths, for source files: AWKPATH Variable. (line 6) @@ -32748,41 +32780,41 @@ Node: VMS Installation1054207 Node: VMS Compilation1054971 Ref: VMS Compilation-Footnote-11056586 Node: VMS Dynamic Extensions1056644 -Node: VMS Installation Details1057665 -Node: VMS Running1059499 -Node: VMS GNV1061101 -Node: VMS Old Gawk1061806 -Node: Bugs1062276 -Node: Other Versions1066132 -Node: Notes1072216 -Node: Compatibility Mode1073016 -Node: Additions1073799 -Node: Accessing The Source1074726 -Node: Adding Code1076166 -Node: New Ports1082211 -Node: Derived Files1086346 -Ref: Derived Files-Footnote-11091667 -Ref: Derived Files-Footnote-21091701 -Ref: Derived Files-Footnote-31092301 -Node: Future Extensions1092399 -Node: Implementation Limitations1092976 -Node: Extension Design1094228 -Node: Old Extension Problems1095382 -Ref: Old Extension Problems-Footnote-11096890 -Node: Extension New Mechanism Goals1096947 -Ref: Extension New Mechanism Goals-Footnote-11100312 -Node: Extension Other Design Decisions1100498 -Node: Extension Future Growth1102604 -Node: Old Extension Mechanism1103440 -Node: Basic Concepts1105180 -Node: Basic High Level1105861 -Ref: figure-general-flow1106132 -Ref: figure-process-flow1106731 -Ref: Basic High Level-Footnote-11109960 -Node: Basic Data Typing1110145 -Node: Glossary1113500 -Node: Copying1138962 -Node: GNU Free Documentation License1176519 -Node: Index1201656 +Node: VMS Installation Details1057695 +Node: VMS Running1059529 +Node: VMS GNV1062363 +Node: VMS Old Gawk1063072 +Node: Bugs1063542 +Node: Other Versions1067398 +Node: Notes1073482 +Node: Compatibility Mode1074282 +Node: Additions1075065 +Node: Accessing The Source1075992 +Node: Adding Code1077432 +Node: New Ports1083477 +Node: Derived Files1087612 +Ref: Derived Files-Footnote-11092933 +Ref: Derived Files-Footnote-21092967 +Ref: Derived Files-Footnote-31093567 +Node: Future Extensions1093665 +Node: Implementation Limitations1094242 +Node: Extension Design1095494 +Node: Old Extension Problems1096648 +Ref: Old Extension Problems-Footnote-11098156 +Node: Extension New Mechanism Goals1098213 +Ref: Extension New Mechanism Goals-Footnote-11101578 +Node: Extension Other Design Decisions1101764 +Node: Extension Future Growth1103870 +Node: Old Extension Mechanism1104706 +Node: Basic Concepts1106446 +Node: Basic High Level1107127 +Ref: figure-general-flow1107398 +Ref: figure-process-flow1107997 +Ref: Basic High Level-Footnote-11111226 +Node: Basic Data Typing1111411 +Node: Glossary1114766 +Node: Copying1140228 +Node: GNU Free Documentation License1177785 +Node: Index1202922 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index b56fbbad..43e518c1 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -34863,7 +34863,7 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. To compile @command{gawk} under VMS, there is a @code{DCL} command procedure that issues all the necessary @code{CC} and @code{LINK} commands. There is -also a @file{Makefile} for use with the @code{MMS} or @code{MMK} utility. +also a @file{Makefile} for use with the @code{MMS} and @code{MMK} utilities. From the source directory, use either: @example @@ -34884,8 +34884,8 @@ or: $ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk} @end example -@code{MMK} is an open source freeware near clone of @code{MMS} and -can better handle @code{ODS-5} volumes with upper- and lower-case filenames. +@code{MMK} is an open source, free, near-clone of @code{MMS} and +can better handle @code{ODS-5} volumes with upper- and lowercase filenames. @code{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}. With @code{ODS-5} volumes and extended parsing enabled, the case of the target @@ -34911,9 +34911,10 @@ a PCSI kit for compatible with the GNV product. @appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS Dynamic extensions need to be compiled with the same compiler options for -floating point, pointer size, and symbol name handling as @command{gawk}. +floating point, pointer size, and symbol name handling as were used +to compile @command{gawk} itself. Alpha and Itanium should use IEEE floating point. The pointer size is 32 bits, -and the symbol name handling is to be exact case with CRC shortening for +and the symbol name handling should be exact case with CRC shortening for symbols longer than 32 bits. For Alpha and Itanium: @@ -35027,6 +35028,39 @@ flag is required to force Unix-style parsing rather than @code{DCL} parsing. If other dash-type options (or multiple parameters such as data files to process) are present, there is no ambiguity and @option{--} can be omitted. +@cindex exit status, of VMS +The @code{exit} value is a Unix-style value and is encoded to a VMS exit +status value when the program exits. + +The VMS severity bits will be set based on the @code{exit} value. +A failure is indicated by 1 and VMS sets the @code{ERROR} status. +A fatal error is indicated by 2 and VMS will set the @code{FATAL} status. +All other values will have the @code{SUCCESS} status. The exit value is +encoded to comply with VMS coding standards and will have the +@code{C_FACILITY_NO} of @code{0x350000} with the constant @code{0xA000} +added to the number shifted over by 3 bits to make room for the severity codes. + +To extract the actual @command{gawk} exit code from the VMS status use: + +@example +unix_status = (vms_status .and. &x7f8) / 8 +@end example + +@noindent +A C program that uses @code{exec()} to call @command{gawk} will get the original +Unix-style exit value. + +Older versions of @command{gawk} treated a Unix exit code 0 as 1, a failure +as 2, a fatal error as 4, and passed all the other numbers through. +This violated the VMS exit status coding requirements. + +@cindex floating-point, VAX/VMS +VAX/VMS floating point uses unbiased rounding. @xref{Round Function}. + +VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE} +or @code{TZ} logical names is set. Older versions of VMS, such as VAX/VMS +7.3 do not set these logical names. + @c @cindex directory search @c @cindex path, search @cindex search paths @@ -35044,7 +35078,7 @@ translation and not a multitranslation @code{RMS} searchlist. The VMS GNV package provides a build environment similar to POSIX with ports of a collection of open source tools. The @command{gawk} found in the GNV base kit is an older port. Currently the GNV project is being reorganized -to be individual PCSI packages for each component. +to supply individual PCSI packages for each component. See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}. The normal build procedure for @command{gawk} produces a program that diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 51b90877..fc465648 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -34012,7 +34012,7 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. To compile @command{gawk} under VMS, there is a @code{DCL} command procedure that issues all the necessary @code{CC} and @code{LINK} commands. There is -also a @file{Makefile} for use with the @code{MMS} or @code{MMK} utility. +also a @file{Makefile} for use with the @code{MMS} and @code{MMK} utilities. From the source directory, use either: @example @@ -34033,8 +34033,8 @@ or: $ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk} @end example -@code{MMK} is an open source freeware near clone of @code{MMS} and -can better handle @code{ODS-5} volumes with upper- and lower-case filenames. +@code{MMK} is an open source, free, near-clone of @code{MMS} and +can better handle @code{ODS-5} volumes with upper- and lowercase filenames. @code{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}. With @code{ODS-5} volumes and extended parsing enabled, the case of the target @@ -34060,9 +34060,10 @@ a PCSI kit for compatible with the GNV product. @appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS Dynamic extensions need to be compiled with the same compiler options for -floating point, pointer size, and symbol name handling as @command{gawk}. +floating point, pointer size, and symbol name handling as were used +to compile @command{gawk} itself. Alpha and Itanium should use IEEE floating point. The pointer size is 32 bits, -and the symbol name handling is to be exact case with CRC shortening for +and the symbol name handling should be exact case with CRC shortening for symbols longer than 32 bits. For Alpha and Itanium: @@ -34176,6 +34177,39 @@ flag is required to force Unix-style parsing rather than @code{DCL} parsing. If other dash-type options (or multiple parameters such as data files to process) are present, there is no ambiguity and @option{--} can be omitted. +@cindex exit status, of VMS +The @code{exit} value is a Unix-style value and is encoded to a VMS exit +status value when the program exits. + +The VMS severity bits will be set based on the @code{exit} value. +A failure is indicated by 1 and VMS sets the @code{ERROR} status. +A fatal error is indicated by 2 and VMS will set the @code{FATAL} status. +All other values will have the @code{SUCCESS} status. The exit value is +encoded to comply with VMS coding standards and will have the +@code{C_FACILITY_NO} of @code{0x350000} with the constant @code{0xA000} +added to the number shifted over by 3 bits to make room for the severity codes. + +To extract the actual @command{gawk} exit code from the VMS status use: + +@example +unix_status = (vms_status .and. &x7f8) / 8 +@end example + +@noindent +A C program that uses @code{exec()} to call @command{gawk} will get the original +Unix-style exit value. + +Older versions of @command{gawk} treated a Unix exit code 0 as 1, a failure +as 2, a fatal error as 4, and passed all the other numbers through. +This violated the VMS exit status coding requirements. + +@cindex floating-point, VAX/VMS +VAX/VMS floating point uses unbiased rounding. @xref{Round Function}. + +VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE} +or @code{TZ} logical names is set. Older versions of VMS, such as VAX/VMS +7.3 do not set these logical names. + @c @cindex directory search @c @cindex path, search @cindex search paths @@ -34193,7 +34227,7 @@ translation and not a multitranslation @code{RMS} searchlist. The VMS GNV package provides a build environment similar to POSIX with ports of a collection of open source tools. The @command{gawk} found in the GNV base kit is an older port. Currently the GNV project is being reorganized -to be individual PCSI packages for each component. +to supply individual PCSI packages for each component. See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}. The normal build procedure for @command{gawk} produces a program that |