diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1151 | ||||
-rw-r--r-- | doc/gawk.texi | 116 | ||||
-rw-r--r-- | doc/gawktexi.in | 116 |
4 files changed, 823 insertions, 564 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 9b77b107..ad7c52a3 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2013-12-16 John E. Malmberg <wb8tyw@qsl.net> + + * gawktexi.in: Updates to VMS sections. + 2013-12-12 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Fix the presentation of asort() and asorti(). diff --git a/doc/gawk.info b/doc/gawk.info index 42228cae..bc807235 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -614,9 +614,12 @@ texts being (a) (see below), and with the Back-Cover Texts being (b) * VMS Installation:: Installing `gawk' on VMS. * VMS Compilation:: How to compile `gawk' under VMS. +* VMS Dynamic Extensions:: Compiling `gawk' dynamic + extensions on VMS. * VMS Installation Details:: How to install `gawk' under VMS. * VMS Running:: How to run `gawk' under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. * Bugs:: Reporting Problems and Bugs. @@ -10735,7 +10738,7 @@ File: gawk.info, Node: Multidimensional, Next: Arrays of Arrays, Prev: Uninit * Menu: -* Multiscanning:: Scanning multidimensional arrays. +* Multiscanning:: Scanning multidimensional arrays. A multidimensional array is an array in which an element is identified by a sequence of indices instead of a single index. For @@ -25204,6 +25207,8 @@ the current version of `gawk'. - Prestandard VAX C compiler for VAX/VMS + - GCC for VAX and Alpha has not been tested for a while. + @@ -26229,51 +26234,106 @@ older designation "VMS" is used throughout to refer to OpenVMS. * Menu: * VMS Compilation:: How to compile `gawk' under VMS. +* VMS Dynamic Extensions:: Compiling `gawk' dynamic extensions on + VMS. * VMS Installation Details:: How to install `gawk' under VMS. * VMS Running:: How to run `gawk' under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. -File: gawk.info, Node: VMS Compilation, Next: VMS Installation Details, Up: VMS Installation +File: gawk.info, Node: VMS Compilation, Next: VMS Dynamic Extensions, Up: VMS Installation 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' utility. From the source directory, -use either: +`Makefile' for use with the `MMS' or `MMK' utility. From the source +directory, use either: + + $ @[.vms]vmsbuild.com + +or: - $ @[.VMS]VMSBUILD.COM + $ MMS/DESCRIPTION=[.vms]descrip.mms gawk or: - $ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK + $ 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 +available from `https://github.com/endlesssoftware/mmk'. + + With `ODS-5' volumes and extended parsing enabled, the case of the +target parameter may need to be exact. Older versions of `gawk' could be built with VAX C or GNU C on VAX/VMS, as well as with DEC C, but that is no longer supported. DEC C (also briefly known as "Compaq C" and now known as "HP C," but referred -to here as "DEC C") is required. Both `VMSBUILD.COM' and `DESCRIP.MMS' +to here as "DEC C") is required. Both `vmsbuild.com' and `descrip.mms' contain some obsolete support for the older compilers but are set up to use DEC C by default. - `gawk' has been tested under Alpha/VMS 7.3-1 using Compaq C V6.4, -and on Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.(1) + `gawk' has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 using +Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3. +The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both Alpha +and IA64 VMS 8.4 used HP C 7.3.(1) + + Work is currently being done for a procedure to build `gawk' and +create a PCSI kit for compatible with the GNV product. ---------- Footnotes ---------- (1) The IA64 architecture is also known as "Itanium." -File: gawk.info, Node: VMS Installation Details, Next: VMS Running, Prev: VMS Compilation, Up: VMS Installation +File: gawk.info, Node: VMS Dynamic Extensions, Next: VMS Installation Details, Prev: VMS Compilation, Up: VMS Installation + +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 Alpha and Itanium: + + /name=(as_is,short) + /float=ieee/ieee_mode=denorm_results + + For VAX: + + /name=(as_is,short) + + Compile time macros need to be defined before the first VMS-supplied +header file is included. + + #if (__CRTL_VER >= 70200000) && !defined (__VAX) + #define _LARGEFILE 1 + #endif + + #ifndef __VAX + #ifdef __CRTL_VER + #if __CRTL_VER >= 80200000 + #define _USE_STD_STAT 1 + #endif + #endif + #endif + + +File: gawk.info, Node: VMS Installation Details, Next: VMS Running, Prev: VMS Dynamic Extensions, Up: VMS Installation -B.3.2.2 Installing `gawk' on VMS +B.3.2.3 Installing `gawk' on VMS ................................ -To install `gawk', all you need is a "foreign" command, which is a -`DCL' symbol whose value begins with a dollar sign. For example: +To use `gawk', all you need is a "foreign" command, which is a `DCL' +symbol whose value begins with a dollar sign. For example: - $ GAWK :== $disk1:[gnubin]GAWK + $ GAWK :== $disk1:[gnubin]gawk Substitute the actual location of `gawk.exe' for `$disk1:[gnubin]'. The symbol should be placed in the `login.com' of any user who wants to run @@ -26281,9 +26341,14 @@ symbol should be placed in the `login.com' of any user who wants to run Alternatively, the symbol may be placed in the system-wide `sylogin.com' procedure, which allows all users to run `gawk'. + If your `gawk' was installed by a PCSI kit into the `GNV$GNU:' +directory tree, the program will be known as +`GNV$GNU:[bin]gnv$gawk.exe' and the help file will be +`GNV$GNU:[vms_help]gawk.hlp'. + Optionally, the help entry can be loaded into a VMS help library: - $ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP + $ LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp (You may want to substitute a site-specific help library rather than the standard VMS library `HELPLIB'.) After loading the help text, the @@ -26305,9 +26370,9 @@ If `AWK_LIBRARY' has no definition, a default value of `SYS$LIBRARY:' is used for it. -File: gawk.info, Node: VMS Running, Next: VMS Old Gawk, Prev: VMS Installation Details, Up: VMS Installation +File: gawk.info, Node: VMS Running, Next: VMS GNV, Prev: VMS Installation Details, Up: VMS Installation -B.3.2.3 Running `gawk' on VMS +B.3.2.4 Running `gawk' on VMS ............................. Command-line parsing and quoting conventions are significantly different @@ -26341,9 +26406,25 @@ When defining it, the value should be quoted so that it retains a single translation and not a multitranslation `RMS' searchlist. -File: gawk.info, Node: VMS Old Gawk, Prev: VMS Running, Up: VMS Installation +File: gawk.info, Node: VMS GNV, Next: VMS Old Gawk, Prev: VMS Running, Up: VMS Installation + +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 +`https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/'. + + The normal build procedure for `gawk' produces a program that is +suitable for use with GNV. At this time work is being done to create +the procedures for building a PCSI kit to replace the older `gawk' port. + + +File: gawk.info, Node: VMS Old Gawk, Prev: VMS GNV, Up: VMS Installation -B.3.2.4 Some VMS Systems Have An Old Version of `gawk' +B.3.2.6 Some VMS Systems Have An Old Version of `gawk' ...................................................... Some versions of VMS have an old version of `gawk'. To access it, @@ -32176,520 +32257,522 @@ Index Tag Table: Node: Top1360 -Node: Foreword40460 -Node: Preface44805 -Ref: Preface-Footnote-147858 -Ref: Preface-Footnote-247954 -Node: History48186 -Node: Names50560 -Ref: Names-Footnote-152037 -Node: This Manual52109 -Ref: This Manual-Footnote-157883 -Node: Conventions57983 -Node: Manual History60139 -Ref: Manual History-Footnote-163587 -Ref: Manual History-Footnote-263628 -Node: How To Contribute63702 -Node: Acknowledgments64846 -Node: Getting Started69055 -Node: Running gawk71434 -Node: One-shot72620 -Node: Read Terminal73845 -Ref: Read Terminal-Footnote-175495 -Ref: Read Terminal-Footnote-275771 -Node: Long75942 -Node: Executable Scripts77318 -Ref: Executable Scripts-Footnote-179151 -Ref: Executable Scripts-Footnote-279253 -Node: Comments79800 -Node: Quoting82267 -Node: DOS Quoting86890 -Node: Sample Data Files87565 -Node: Very Simple90609 -Node: Two Rules95208 -Node: More Complex97355 -Ref: More Complex-Footnote-1100285 -Node: Statements/Lines100370 -Ref: Statements/Lines-Footnote-1104832 -Node: Other Features105097 -Node: When106025 -Node: Invoking Gawk108172 -Node: Command Line109633 -Node: Options110416 -Ref: Options-Footnote-1125808 -Node: Other Arguments125833 -Node: Naming Standard Input128491 -Node: Environment Variables129585 -Node: AWKPATH Variable130143 -Ref: AWKPATH Variable-Footnote-1132901 -Node: AWKLIBPATH Variable133161 -Node: Other Environment Variables133879 -Node: Exit Status136842 -Node: Include Files137517 -Node: Loading Shared Libraries141086 -Node: Obsolete142450 -Node: Undocumented143147 -Node: Regexp143389 -Node: Regexp Usage144778 -Node: Escape Sequences146804 -Node: Regexp Operators152473 -Ref: Regexp Operators-Footnote-1159853 -Ref: Regexp Operators-Footnote-2160000 -Node: Bracket Expressions160098 -Ref: table-char-classes161988 -Node: GNU Regexp Operators164511 -Node: Case-sensitivity168234 -Ref: Case-sensitivity-Footnote-1171202 -Ref: Case-sensitivity-Footnote-2171437 -Node: Leftmost Longest171545 -Node: Computed Regexps172746 -Node: Reading Files176083 -Node: Records178085 -Ref: Records-Footnote-1186974 -Node: Fields187011 -Ref: Fields-Footnote-1190044 -Node: Nonconstant Fields190130 -Node: Changing Fields192332 -Node: Field Separators198291 -Node: Default Field Splitting200920 -Node: Regexp Field Splitting202037 -Node: Single Character Fields205379 -Node: Command Line Field Separator206438 -Node: Field Splitting Summary209879 -Ref: Field Splitting Summary-Footnote-1212990 -Node: Constant Size213091 -Node: Splitting By Content217675 -Ref: Splitting By Content-Footnote-1221401 -Node: Multiple Line221441 -Ref: Multiple Line-Footnote-1227288 -Node: Getline227467 -Node: Plain Getline229683 -Node: Getline/Variable231778 -Node: Getline/File232925 -Node: Getline/Variable/File234266 -Ref: Getline/Variable/File-Footnote-1235865 -Node: Getline/Pipe235952 -Node: Getline/Variable/Pipe238651 -Node: Getline/Coprocess239758 -Node: Getline/Variable/Coprocess241010 -Node: Getline Notes241747 -Node: Getline Summary244534 -Ref: table-getline-variants244942 -Node: Read Timeout245854 -Ref: Read Timeout-Footnote-1249595 -Node: Command line directories249652 -Node: Printing250282 -Node: Print251913 -Node: Print Examples253250 -Node: Output Separators256034 -Node: OFMT257794 -Node: Printf259152 -Node: Basic Printf260058 -Node: Control Letters261597 -Node: Format Modifiers265409 -Node: Printf Examples271418 -Node: Redirection274133 -Node: Special Files281098 -Node: Special FD281631 -Ref: Special FD-Footnote-1285256 -Node: Special Network285330 -Node: Special Caveats286180 -Node: Close Files And Pipes286976 -Ref: Close Files And Pipes-Footnote-1293959 -Ref: Close Files And Pipes-Footnote-2294107 -Node: Expressions294257 -Node: Values295389 -Node: Constants296065 -Node: Scalar Constants296745 -Ref: Scalar Constants-Footnote-1297604 -Node: Nondecimal-numbers297786 -Node: Regexp Constants300786 -Node: Using Constant Regexps301261 -Node: Variables304316 -Node: Using Variables304971 -Node: Assignment Options306695 -Node: Conversion308567 -Ref: table-locale-affects314068 -Ref: Conversion-Footnote-1314692 -Node: All Operators314801 -Node: Arithmetic Ops315431 -Node: Concatenation317936 -Ref: Concatenation-Footnote-1320728 -Node: Assignment Ops320848 -Ref: table-assign-ops325836 -Node: Increment Ops327167 -Node: Truth Values and Conditions330601 -Node: Truth Values331684 -Node: Typing and Comparison332733 -Node: Variable Typing333526 -Ref: Variable Typing-Footnote-1337423 -Node: Comparison Operators337545 -Ref: table-relational-ops337955 -Node: POSIX String Comparison341504 -Ref: POSIX String Comparison-Footnote-1342460 -Node: Boolean Ops342598 -Ref: Boolean Ops-Footnote-1346676 -Node: Conditional Exp346767 -Node: Function Calls348499 -Node: Precedence352093 -Node: Locales355762 -Node: Patterns and Actions356851 -Node: Pattern Overview357905 -Node: Regexp Patterns359574 -Node: Expression Patterns360117 -Node: Ranges363802 -Node: BEGIN/END366768 -Node: Using BEGIN/END367530 -Ref: Using BEGIN/END-Footnote-1370261 -Node: I/O And BEGIN/END370367 -Node: BEGINFILE/ENDFILE372649 -Node: Empty375563 -Node: Using Shell Variables375879 -Node: Action Overview378164 -Node: Statements380521 -Node: If Statement382375 -Node: While Statement383874 -Node: Do Statement385918 -Node: For Statement387074 -Node: Switch Statement390226 -Node: Break Statement392323 -Node: Continue Statement394313 -Node: Next Statement396106 -Node: Nextfile Statement398496 -Node: Exit Statement401139 -Node: Built-in Variables403555 -Node: User-modified404650 -Ref: User-modified-Footnote-1413008 -Node: Auto-set413070 -Ref: Auto-set-Footnote-1426148 -Ref: Auto-set-Footnote-2426353 -Node: ARGC and ARGV426409 -Node: Arrays430260 -Node: Array Basics431765 -Node: Array Intro432591 -Node: Reference to Elements436908 -Node: Assigning Elements439178 -Node: Array Example439669 -Node: Scanning an Array441401 -Node: Controlling Scanning443715 -Ref: Controlling Scanning-Footnote-1448802 -Node: Delete449118 -Ref: Delete-Footnote-1451883 -Node: Numeric Array Subscripts451940 -Node: Uninitialized Subscripts454123 -Node: Multidimensional455750 -Node: Multiscanning458842 -Node: Arrays of Arrays460431 -Node: Functions465071 -Node: Built-in465890 -Node: Calling Built-in466968 -Node: Numeric Functions468956 -Ref: Numeric Functions-Footnote-1472788 -Ref: Numeric Functions-Footnote-2473145 -Ref: Numeric Functions-Footnote-3473193 -Node: String Functions473462 -Ref: String Functions-Footnote-1496382 -Ref: String Functions-Footnote-2496511 -Ref: String Functions-Footnote-3496759 -Node: Gory Details496846 -Ref: table-sub-escapes498525 -Ref: table-sub-posix-92499879 -Ref: table-sub-proposed501230 -Ref: table-posix-sub502584 -Ref: table-gensub-escapes504129 -Ref: Gory Details-Footnote-1505305 -Ref: Gory Details-Footnote-2505356 -Node: I/O Functions505507 -Ref: I/O Functions-Footnote-1512492 -Node: Time Functions512639 -Ref: Time Functions-Footnote-1523572 -Ref: Time Functions-Footnote-2523640 -Ref: Time Functions-Footnote-3523798 -Ref: Time Functions-Footnote-4523909 -Ref: Time Functions-Footnote-5524021 -Ref: Time Functions-Footnote-6524248 -Node: Bitwise Functions524514 -Ref: table-bitwise-ops525076 -Ref: Bitwise Functions-Footnote-1529297 -Node: Type Functions529481 -Node: I18N Functions530632 -Node: User-defined532259 -Node: Definition Syntax533063 -Ref: Definition Syntax-Footnote-1537973 -Node: Function Example538042 -Node: Function Caveats540636 -Node: Calling A Function541057 -Node: Variable Scope542172 -Node: Pass By Value/Reference545135 -Node: Return Statement548643 -Node: Dynamic Typing551624 -Node: Indirect Calls552555 -Node: Library Functions562240 -Ref: Library Functions-Footnote-1565753 -Ref: Library Functions-Footnote-2565896 -Node: Library Names566067 -Ref: Library Names-Footnote-1569538 -Ref: Library Names-Footnote-2569758 -Node: General Functions569844 -Node: Strtonum Function570872 -Node: Assert Function573802 -Node: Round Function577128 -Node: Cliff Random Function578671 -Node: Ordinal Functions579687 -Ref: Ordinal Functions-Footnote-1582757 -Ref: Ordinal Functions-Footnote-2583009 -Node: Join Function583218 -Ref: Join Function-Footnote-1584989 -Node: Getlocaltime Function585189 -Node: Readfile Function588930 -Node: Data File Management590769 -Node: Filetrans Function591401 -Node: Rewind Function595470 -Node: File Checking596857 -Node: Empty Files597951 -Node: Ignoring Assigns600181 -Node: Getopt Function601734 -Ref: Getopt Function-Footnote-1613037 -Node: Passwd Functions613240 -Ref: Passwd Functions-Footnote-1622215 -Node: Group Functions622303 -Node: Walking Arrays630387 -Node: Sample Programs632524 -Node: Running Examples633198 -Node: Clones633926 -Node: Cut Program635150 -Node: Egrep Program644995 -Ref: Egrep Program-Footnote-1652768 -Node: Id Program652878 -Node: Split Program656494 -Ref: Split Program-Footnote-1660013 -Node: Tee Program660141 -Node: Uniq Program662944 -Node: Wc Program670373 -Ref: Wc Program-Footnote-1674639 -Ref: Wc Program-Footnote-2674839 -Node: Miscellaneous Programs674931 -Node: Dupword Program676119 -Node: Alarm Program678150 -Node: Translate Program682903 -Ref: Translate Program-Footnote-1687290 -Ref: Translate Program-Footnote-2687538 -Node: Labels Program687672 -Ref: Labels Program-Footnote-1691043 -Node: Word Sorting691127 -Node: History Sorting695011 -Node: Extract Program696850 -Ref: Extract Program-Footnote-1704353 -Node: Simple Sed704481 -Node: Igawk Program707543 -Ref: Igawk Program-Footnote-1722700 -Ref: Igawk Program-Footnote-2722901 -Node: Anagram Program723039 -Node: Signature Program726107 -Node: Advanced Features727207 -Node: Nondecimal Data729093 -Node: Array Sorting730676 -Node: Controlling Array Traversal731373 -Node: Array Sorting Functions739657 -Ref: Array Sorting Functions-Footnote-1743526 -Node: Two-way I/O743720 -Ref: Two-way I/O-Footnote-1749152 -Node: TCP/IP Networking749222 -Node: Profiling752066 -Node: Internationalization759563 -Node: I18N and L10N760988 -Node: Explaining gettext761674 -Ref: Explaining gettext-Footnote-1766742 -Ref: Explaining gettext-Footnote-2766926 -Node: Programmer i18n767091 -Node: Translator i18n771293 -Node: String Extraction772086 -Ref: String Extraction-Footnote-1773047 -Node: Printf Ordering773133 -Ref: Printf Ordering-Footnote-1775917 -Node: I18N Portability775981 -Ref: I18N Portability-Footnote-1778430 -Node: I18N Example778493 -Ref: I18N Example-Footnote-1781131 -Node: Gawk I18N781203 -Node: Debugger781824 -Node: Debugging782795 -Node: Debugging Concepts783228 -Node: Debugging Terms785084 -Node: Awk Debugging787681 -Node: Sample Debugging Session788573 -Node: Debugger Invocation789093 -Node: Finding The Bug790425 -Node: List of Debugger Commands796913 -Node: Breakpoint Control798247 -Node: Debugger Execution Control801911 -Node: Viewing And Changing Data805271 -Node: Execution Stack808627 -Node: Debugger Info810094 -Node: Miscellaneous Debugger Commands814076 -Node: Readline Support819252 -Node: Limitations820083 -Node: Arbitrary Precision Arithmetic822335 -Ref: Arbitrary Precision Arithmetic-Footnote-1823984 -Node: General Arithmetic824132 -Node: Floating Point Issues825852 -Node: String Conversion Precision826733 -Ref: String Conversion Precision-Footnote-1828438 -Node: Unexpected Results828547 -Node: POSIX Floating Point Problems830700 -Ref: POSIX Floating Point Problems-Footnote-1834525 -Node: Integer Programming834563 -Node: Floating-point Programming836302 -Ref: Floating-point Programming-Footnote-1842633 -Ref: Floating-point Programming-Footnote-2842903 -Node: Floating-point Representation843167 -Node: Floating-point Context844332 -Ref: table-ieee-formats845171 -Node: Rounding Mode846555 -Ref: table-rounding-modes847034 -Ref: Rounding Mode-Footnote-1850049 -Node: Gawk and MPFR850228 -Node: Arbitrary Precision Floats851483 -Ref: Arbitrary Precision Floats-Footnote-1853926 -Node: Setting Precision854242 -Ref: table-predefined-precision-strings854928 -Node: Setting Rounding Mode857073 -Ref: table-gawk-rounding-modes857477 -Node: Floating-point Constants858664 -Node: Changing Precision860093 -Ref: Changing Precision-Footnote-1861490 -Node: Exact Arithmetic861664 -Node: Arbitrary Precision Integers864802 -Ref: Arbitrary Precision Integers-Footnote-1867820 -Node: Dynamic Extensions867967 -Node: Extension Intro869425 -Node: Plugin License870690 -Node: Extension Mechanism Outline871375 -Ref: load-extension871792 -Ref: load-new-function873270 -Ref: call-new-function874265 -Node: Extension API Description876280 -Node: Extension API Functions Introduction877493 -Node: General Data Types882359 -Ref: General Data Types-Footnote-1887958 -Node: Requesting Values888257 -Ref: table-value-types-returned888988 -Node: Constructor Functions889942 -Node: Registration Functions892962 -Node: Extension Functions893647 -Node: Exit Callback Functions895872 -Node: Extension Version String897121 -Node: Input Parsers897771 -Node: Output Wrappers907528 -Node: Two-way processors912038 -Node: Printing Messages914246 -Ref: Printing Messages-Footnote-1915323 -Node: Updating `ERRNO'915475 -Node: Accessing Parameters916214 -Node: Symbol Table Access917444 -Node: Symbol table by name917956 -Node: Symbol table by cookie919703 -Ref: Symbol table by cookie-Footnote-1923833 -Node: Cached values923896 -Ref: Cached values-Footnote-1927345 -Node: Array Manipulation927436 -Ref: Array Manipulation-Footnote-1928534 -Node: Array Data Types928573 -Ref: Array Data Types-Footnote-1931276 -Node: Array Functions931368 -Node: Flattening Arrays935134 -Node: Creating Arrays941986 -Node: Extension API Variables946711 -Node: Extension Versioning947347 -Node: Extension API Informational Variables949248 -Node: Extension API Boilerplate950334 -Node: Finding Extensions954138 -Node: Extension Example954698 -Node: Internal File Description955428 -Node: Internal File Ops959519 -Ref: Internal File Ops-Footnote-1971027 -Node: Using Internal File Ops971167 -Ref: Using Internal File Ops-Footnote-1973520 -Node: Extension Samples973786 -Node: Extension Sample File Functions975310 -Node: Extension Sample Fnmatch983795 -Node: Extension Sample Fork985521 -Node: Extension Sample Inplace986739 -Node: Extension Sample Ord988517 -Node: Extension Sample Readdir989353 -Node: Extension Sample Revout990885 -Node: Extension Sample Rev2way991478 -Node: Extension Sample Read write array992168 -Node: Extension Sample Readfile994051 -Node: Extension Sample API Tests994869 -Node: Extension Sample Time995394 -Node: gawkextlib996758 -Node: Language History999518 -Node: V7/SVR3.11001040 -Node: SVR41003360 -Node: POSIX1004802 -Node: BTL1006188 -Node: POSIX/GNU1006922 -Node: Common Extensions1012457 -Node: Ranges and Locales1013763 -Ref: Ranges and Locales-Footnote-11018381 -Ref: Ranges and Locales-Footnote-21018408 -Ref: Ranges and Locales-Footnote-31018668 -Node: Contributors1018889 -Node: Installation1023964 -Node: Gawk Distribution1024858 -Node: Getting1025342 -Node: Extracting1026168 -Node: Distribution contents1027860 -Node: Unix Installation1033380 -Node: Quick Installation1033997 -Node: Additional Configuration Options1036441 -Node: Configuration Philosophy1037918 -Node: Non-Unix Installation1040272 -Node: PC Installation1040730 -Node: PC Binary Installation1042029 -Node: PC Compiling1043877 -Node: PC Testing1046821 -Node: PC Using1047997 -Node: Cygwin1052182 -Node: MSYS1053182 -Node: VMS Installation1053696 -Node: VMS Compilation1054299 -Ref: VMS Compilation-Footnote-11055306 -Node: VMS Installation Details1055364 -Node: VMS Running1056999 -Node: VMS Old Gawk1058606 -Node: Bugs1059080 -Node: Other Versions1062936 -Node: Notes1069020 -Node: Compatibility Mode1069820 -Node: Additions1070603 -Node: Accessing The Source1071530 -Node: Adding Code1072970 -Node: New Ports1079015 -Node: Derived Files1083150 -Ref: Derived Files-Footnote-11088471 -Ref: Derived Files-Footnote-21088505 -Ref: Derived Files-Footnote-31089105 -Node: Future Extensions1089203 -Node: Implementation Limitations1089780 -Node: Extension Design1091032 -Node: Old Extension Problems1092186 -Ref: Old Extension Problems-Footnote-11093694 -Node: Extension New Mechanism Goals1093751 -Ref: Extension New Mechanism Goals-Footnote-11097116 -Node: Extension Other Design Decisions1097302 -Node: Extension Future Growth1099408 -Node: Old Extension Mechanism1100244 -Node: Basic Concepts1101984 -Node: Basic High Level1102665 -Ref: figure-general-flow1102936 -Ref: figure-process-flow1103535 -Ref: Basic High Level-Footnote-11106764 -Node: Basic Data Typing1106949 -Node: Glossary1110304 -Node: Copying1135766 -Node: GNU Free Documentation License1173323 -Node: Index1198460 +Node: Foreword40645 +Node: Preface44990 +Ref: Preface-Footnote-148043 +Ref: Preface-Footnote-248139 +Node: History48371 +Node: Names50745 +Ref: Names-Footnote-152222 +Node: This Manual52294 +Ref: This Manual-Footnote-158068 +Node: Conventions58168 +Node: Manual History60324 +Ref: Manual History-Footnote-163772 +Ref: Manual History-Footnote-263813 +Node: How To Contribute63887 +Node: Acknowledgments65031 +Node: Getting Started69240 +Node: Running gawk71619 +Node: One-shot72805 +Node: Read Terminal74030 +Ref: Read Terminal-Footnote-175680 +Ref: Read Terminal-Footnote-275956 +Node: Long76127 +Node: Executable Scripts77503 +Ref: Executable Scripts-Footnote-179336 +Ref: Executable Scripts-Footnote-279438 +Node: Comments79985 +Node: Quoting82452 +Node: DOS Quoting87075 +Node: Sample Data Files87750 +Node: Very Simple90794 +Node: Two Rules95393 +Node: More Complex97540 +Ref: More Complex-Footnote-1100470 +Node: Statements/Lines100555 +Ref: Statements/Lines-Footnote-1105017 +Node: Other Features105282 +Node: When106210 +Node: Invoking Gawk108357 +Node: Command Line109818 +Node: Options110601 +Ref: Options-Footnote-1125993 +Node: Other Arguments126018 +Node: Naming Standard Input128676 +Node: Environment Variables129770 +Node: AWKPATH Variable130328 +Ref: AWKPATH Variable-Footnote-1133086 +Node: AWKLIBPATH Variable133346 +Node: Other Environment Variables134064 +Node: Exit Status137027 +Node: Include Files137702 +Node: Loading Shared Libraries141271 +Node: Obsolete142635 +Node: Undocumented143332 +Node: Regexp143574 +Node: Regexp Usage144963 +Node: Escape Sequences146989 +Node: Regexp Operators152658 +Ref: Regexp Operators-Footnote-1160038 +Ref: Regexp Operators-Footnote-2160185 +Node: Bracket Expressions160283 +Ref: table-char-classes162173 +Node: GNU Regexp Operators164696 +Node: Case-sensitivity168419 +Ref: Case-sensitivity-Footnote-1171387 +Ref: Case-sensitivity-Footnote-2171622 +Node: Leftmost Longest171730 +Node: Computed Regexps172931 +Node: Reading Files176268 +Node: Records178270 +Ref: Records-Footnote-1187159 +Node: Fields187196 +Ref: Fields-Footnote-1190229 +Node: Nonconstant Fields190315 +Node: Changing Fields192517 +Node: Field Separators198476 +Node: Default Field Splitting201105 +Node: Regexp Field Splitting202222 +Node: Single Character Fields205564 +Node: Command Line Field Separator206623 +Node: Field Splitting Summary210064 +Ref: Field Splitting Summary-Footnote-1213175 +Node: Constant Size213276 +Node: Splitting By Content217860 +Ref: Splitting By Content-Footnote-1221586 +Node: Multiple Line221626 +Ref: Multiple Line-Footnote-1227473 +Node: Getline227652 +Node: Plain Getline229868 +Node: Getline/Variable231963 +Node: Getline/File233110 +Node: Getline/Variable/File234451 +Ref: Getline/Variable/File-Footnote-1236050 +Node: Getline/Pipe236137 +Node: Getline/Variable/Pipe238836 +Node: Getline/Coprocess239943 +Node: Getline/Variable/Coprocess241195 +Node: Getline Notes241932 +Node: Getline Summary244719 +Ref: table-getline-variants245127 +Node: Read Timeout246039 +Ref: Read Timeout-Footnote-1249780 +Node: Command line directories249837 +Node: Printing250467 +Node: Print252098 +Node: Print Examples253435 +Node: Output Separators256219 +Node: OFMT257979 +Node: Printf259337 +Node: Basic Printf260243 +Node: Control Letters261782 +Node: Format Modifiers265594 +Node: Printf Examples271603 +Node: Redirection274318 +Node: Special Files281283 +Node: Special FD281816 +Ref: Special FD-Footnote-1285441 +Node: Special Network285515 +Node: Special Caveats286365 +Node: Close Files And Pipes287161 +Ref: Close Files And Pipes-Footnote-1294144 +Ref: Close Files And Pipes-Footnote-2294292 +Node: Expressions294442 +Node: Values295574 +Node: Constants296250 +Node: Scalar Constants296930 +Ref: Scalar Constants-Footnote-1297789 +Node: Nondecimal-numbers297971 +Node: Regexp Constants300971 +Node: Using Constant Regexps301446 +Node: Variables304501 +Node: Using Variables305156 +Node: Assignment Options306880 +Node: Conversion308752 +Ref: table-locale-affects314253 +Ref: Conversion-Footnote-1314877 +Node: All Operators314986 +Node: Arithmetic Ops315616 +Node: Concatenation318121 +Ref: Concatenation-Footnote-1320913 +Node: Assignment Ops321033 +Ref: table-assign-ops326021 +Node: Increment Ops327352 +Node: Truth Values and Conditions330786 +Node: Truth Values331869 +Node: Typing and Comparison332918 +Node: Variable Typing333711 +Ref: Variable Typing-Footnote-1337608 +Node: Comparison Operators337730 +Ref: table-relational-ops338140 +Node: POSIX String Comparison341689 +Ref: POSIX String Comparison-Footnote-1342645 +Node: Boolean Ops342783 +Ref: Boolean Ops-Footnote-1346861 +Node: Conditional Exp346952 +Node: Function Calls348684 +Node: Precedence352278 +Node: Locales355947 +Node: Patterns and Actions357036 +Node: Pattern Overview358090 +Node: Regexp Patterns359759 +Node: Expression Patterns360302 +Node: Ranges363987 +Node: BEGIN/END366953 +Node: Using BEGIN/END367715 +Ref: Using BEGIN/END-Footnote-1370446 +Node: I/O And BEGIN/END370552 +Node: BEGINFILE/ENDFILE372834 +Node: Empty375748 +Node: Using Shell Variables376064 +Node: Action Overview378349 +Node: Statements380706 +Node: If Statement382560 +Node: While Statement384059 +Node: Do Statement386103 +Node: For Statement387259 +Node: Switch Statement390411 +Node: Break Statement392508 +Node: Continue Statement394498 +Node: Next Statement396291 +Node: Nextfile Statement398681 +Node: Exit Statement401324 +Node: Built-in Variables403740 +Node: User-modified404835 +Ref: User-modified-Footnote-1413193 +Node: Auto-set413255 +Ref: Auto-set-Footnote-1426333 +Ref: Auto-set-Footnote-2426538 +Node: ARGC and ARGV426594 +Node: Arrays430445 +Node: Array Basics431950 +Node: Array Intro432776 +Node: Reference to Elements437093 +Node: Assigning Elements439363 +Node: Array Example439854 +Node: Scanning an Array441586 +Node: Controlling Scanning443900 +Ref: Controlling Scanning-Footnote-1448987 +Node: Delete449303 +Ref: Delete-Footnote-1452068 +Node: Numeric Array Subscripts452125 +Node: Uninitialized Subscripts454308 +Node: Multidimensional455935 +Node: Multiscanning459028 +Node: Arrays of Arrays460617 +Node: Functions465257 +Node: Built-in466076 +Node: Calling Built-in467154 +Node: Numeric Functions469142 +Ref: Numeric Functions-Footnote-1472974 +Ref: Numeric Functions-Footnote-2473331 +Ref: Numeric Functions-Footnote-3473379 +Node: String Functions473648 +Ref: String Functions-Footnote-1496568 +Ref: String Functions-Footnote-2496697 +Ref: String Functions-Footnote-3496945 +Node: Gory Details497032 +Ref: table-sub-escapes498711 +Ref: table-sub-posix-92500065 +Ref: table-sub-proposed501416 +Ref: table-posix-sub502770 +Ref: table-gensub-escapes504315 +Ref: Gory Details-Footnote-1505491 +Ref: Gory Details-Footnote-2505542 +Node: I/O Functions505693 +Ref: I/O Functions-Footnote-1512678 +Node: Time Functions512825 +Ref: Time Functions-Footnote-1523758 +Ref: Time Functions-Footnote-2523826 +Ref: Time Functions-Footnote-3523984 +Ref: Time Functions-Footnote-4524095 +Ref: Time Functions-Footnote-5524207 +Ref: Time Functions-Footnote-6524434 +Node: Bitwise Functions524700 +Ref: table-bitwise-ops525262 +Ref: Bitwise Functions-Footnote-1529483 +Node: Type Functions529667 +Node: I18N Functions530818 +Node: User-defined532445 +Node: Definition Syntax533249 +Ref: Definition Syntax-Footnote-1538159 +Node: Function Example538228 +Node: Function Caveats540822 +Node: Calling A Function541243 +Node: Variable Scope542358 +Node: Pass By Value/Reference545321 +Node: Return Statement548829 +Node: Dynamic Typing551810 +Node: Indirect Calls552741 +Node: Library Functions562426 +Ref: Library Functions-Footnote-1565939 +Ref: Library Functions-Footnote-2566082 +Node: Library Names566253 +Ref: Library Names-Footnote-1569724 +Ref: Library Names-Footnote-2569944 +Node: General Functions570030 +Node: Strtonum Function571058 +Node: Assert Function573988 +Node: Round Function577314 +Node: Cliff Random Function578857 +Node: Ordinal Functions579873 +Ref: Ordinal Functions-Footnote-1582943 +Ref: Ordinal Functions-Footnote-2583195 +Node: Join Function583404 +Ref: Join Function-Footnote-1585175 +Node: Getlocaltime Function585375 +Node: Readfile Function589116 +Node: Data File Management590955 +Node: Filetrans Function591587 +Node: Rewind Function595656 +Node: File Checking597043 +Node: Empty Files598137 +Node: Ignoring Assigns600367 +Node: Getopt Function601920 +Ref: Getopt Function-Footnote-1613223 +Node: Passwd Functions613426 +Ref: Passwd Functions-Footnote-1622401 +Node: Group Functions622489 +Node: Walking Arrays630573 +Node: Sample Programs632710 +Node: Running Examples633384 +Node: Clones634112 +Node: Cut Program635336 +Node: Egrep Program645181 +Ref: Egrep Program-Footnote-1652954 +Node: Id Program653064 +Node: Split Program656680 +Ref: Split Program-Footnote-1660199 +Node: Tee Program660327 +Node: Uniq Program663130 +Node: Wc Program670559 +Ref: Wc Program-Footnote-1674825 +Ref: Wc Program-Footnote-2675025 +Node: Miscellaneous Programs675117 +Node: Dupword Program676305 +Node: Alarm Program678336 +Node: Translate Program683089 +Ref: Translate Program-Footnote-1687476 +Ref: Translate Program-Footnote-2687724 +Node: Labels Program687858 +Ref: Labels Program-Footnote-1691229 +Node: Word Sorting691313 +Node: History Sorting695197 +Node: Extract Program697036 +Ref: Extract Program-Footnote-1704539 +Node: Simple Sed704667 +Node: Igawk Program707729 +Ref: Igawk Program-Footnote-1722886 +Ref: Igawk Program-Footnote-2723087 +Node: Anagram Program723225 +Node: Signature Program726293 +Node: Advanced Features727393 +Node: Nondecimal Data729279 +Node: Array Sorting730862 +Node: Controlling Array Traversal731559 +Node: Array Sorting Functions739843 +Ref: Array Sorting Functions-Footnote-1743712 +Node: Two-way I/O743906 +Ref: Two-way I/O-Footnote-1749338 +Node: TCP/IP Networking749408 +Node: Profiling752252 +Node: Internationalization759749 +Node: I18N and L10N761174 +Node: Explaining gettext761860 +Ref: Explaining gettext-Footnote-1766928 +Ref: Explaining gettext-Footnote-2767112 +Node: Programmer i18n767277 +Node: Translator i18n771479 +Node: String Extraction772272 +Ref: String Extraction-Footnote-1773233 +Node: Printf Ordering773319 +Ref: Printf Ordering-Footnote-1776103 +Node: I18N Portability776167 +Ref: I18N Portability-Footnote-1778616 +Node: I18N Example778679 +Ref: I18N Example-Footnote-1781317 +Node: Gawk I18N781389 +Node: Debugger782010 +Node: Debugging782981 +Node: Debugging Concepts783414 +Node: Debugging Terms785270 +Node: Awk Debugging787867 +Node: Sample Debugging Session788759 +Node: Debugger Invocation789279 +Node: Finding The Bug790611 +Node: List of Debugger Commands797099 +Node: Breakpoint Control798433 +Node: Debugger Execution Control802097 +Node: Viewing And Changing Data805457 +Node: Execution Stack808813 +Node: Debugger Info810280 +Node: Miscellaneous Debugger Commands814262 +Node: Readline Support819438 +Node: Limitations820269 +Node: Arbitrary Precision Arithmetic822521 +Ref: Arbitrary Precision Arithmetic-Footnote-1824170 +Node: General Arithmetic824318 +Node: Floating Point Issues826038 +Node: String Conversion Precision826919 +Ref: String Conversion Precision-Footnote-1828624 +Node: Unexpected Results828733 +Node: POSIX Floating Point Problems830886 +Ref: POSIX Floating Point Problems-Footnote-1834711 +Node: Integer Programming834749 +Node: Floating-point Programming836488 +Ref: Floating-point Programming-Footnote-1842819 +Ref: Floating-point Programming-Footnote-2843089 +Node: Floating-point Representation843353 +Node: Floating-point Context844518 +Ref: table-ieee-formats845357 +Node: Rounding Mode846741 +Ref: table-rounding-modes847220 +Ref: Rounding Mode-Footnote-1850235 +Node: Gawk and MPFR850414 +Node: Arbitrary Precision Floats851669 +Ref: Arbitrary Precision Floats-Footnote-1854112 +Node: Setting Precision854428 +Ref: table-predefined-precision-strings855114 +Node: Setting Rounding Mode857259 +Ref: table-gawk-rounding-modes857663 +Node: Floating-point Constants858850 +Node: Changing Precision860279 +Ref: Changing Precision-Footnote-1861676 +Node: Exact Arithmetic861850 +Node: Arbitrary Precision Integers864988 +Ref: Arbitrary Precision Integers-Footnote-1868006 +Node: Dynamic Extensions868153 +Node: Extension Intro869611 +Node: Plugin License870876 +Node: Extension Mechanism Outline871561 +Ref: load-extension871978 +Ref: load-new-function873456 +Ref: call-new-function874451 +Node: Extension API Description876466 +Node: Extension API Functions Introduction877679 +Node: General Data Types882545 +Ref: General Data Types-Footnote-1888144 +Node: Requesting Values888443 +Ref: table-value-types-returned889174 +Node: Constructor Functions890128 +Node: Registration Functions893148 +Node: Extension Functions893833 +Node: Exit Callback Functions896058 +Node: Extension Version String897307 +Node: Input Parsers897957 +Node: Output Wrappers907714 +Node: Two-way processors912224 +Node: Printing Messages914432 +Ref: Printing Messages-Footnote-1915509 +Node: Updating `ERRNO'915661 +Node: Accessing Parameters916400 +Node: Symbol Table Access917630 +Node: Symbol table by name918142 +Node: Symbol table by cookie919889 +Ref: Symbol table by cookie-Footnote-1924019 +Node: Cached values924082 +Ref: Cached values-Footnote-1927531 +Node: Array Manipulation927622 +Ref: Array Manipulation-Footnote-1928720 +Node: Array Data Types928759 +Ref: Array Data Types-Footnote-1931462 +Node: Array Functions931554 +Node: Flattening Arrays935320 +Node: Creating Arrays942172 +Node: Extension API Variables946897 +Node: Extension Versioning947533 +Node: Extension API Informational Variables949434 +Node: Extension API Boilerplate950520 +Node: Finding Extensions954324 +Node: Extension Example954884 +Node: Internal File Description955614 +Node: Internal File Ops959705 +Ref: Internal File Ops-Footnote-1971213 +Node: Using Internal File Ops971353 +Ref: Using Internal File Ops-Footnote-1973706 +Node: Extension Samples973972 +Node: Extension Sample File Functions975496 +Node: Extension Sample Fnmatch983981 +Node: Extension Sample Fork985707 +Node: Extension Sample Inplace986925 +Node: Extension Sample Ord988703 +Node: Extension Sample Readdir989539 +Node: Extension Sample Revout991071 +Node: Extension Sample Rev2way991664 +Node: Extension Sample Read write array992354 +Node: Extension Sample Readfile994237 +Node: Extension Sample API Tests995055 +Node: Extension Sample Time995580 +Node: gawkextlib996944 +Node: Language History999704 +Node: V7/SVR3.11001226 +Node: SVR41003546 +Node: POSIX1004988 +Node: BTL1006374 +Node: POSIX/GNU1007108 +Node: Common Extensions1012709 +Node: Ranges and Locales1014015 +Ref: Ranges and Locales-Footnote-11018633 +Ref: Ranges and Locales-Footnote-21018660 +Ref: Ranges and Locales-Footnote-31018920 +Node: Contributors1019141 +Node: Installation1024216 +Node: Gawk Distribution1025110 +Node: Getting1025594 +Node: Extracting1026420 +Node: Distribution contents1028112 +Node: Unix Installation1033632 +Node: Quick Installation1034249 +Node: Additional Configuration Options1036693 +Node: Configuration Philosophy1038170 +Node: Non-Unix Installation1040524 +Node: PC Installation1040982 +Node: PC Binary Installation1042281 +Node: PC Compiling1044129 +Node: PC Testing1047073 +Node: PC Using1048249 +Node: Cygwin1052434 +Node: MSYS1053434 +Node: VMS Installation1053948 +Node: VMS Compilation1054712 +Ref: VMS Compilation-Footnote-11056327 +Node: VMS Dynamic Extensions1056385 +Node: VMS Installation Details1057406 +Node: VMS Running1059240 +Node: VMS GNV1060842 +Node: VMS Old Gawk1061547 +Node: Bugs1062017 +Node: Other Versions1065873 +Node: Notes1071957 +Node: Compatibility Mode1072757 +Node: Additions1073540 +Node: Accessing The Source1074467 +Node: Adding Code1075907 +Node: New Ports1081952 +Node: Derived Files1086087 +Ref: Derived Files-Footnote-11091408 +Ref: Derived Files-Footnote-21091442 +Ref: Derived Files-Footnote-31092042 +Node: Future Extensions1092140 +Node: Implementation Limitations1092717 +Node: Extension Design1093969 +Node: Old Extension Problems1095123 +Ref: Old Extension Problems-Footnote-11096631 +Node: Extension New Mechanism Goals1096688 +Ref: Extension New Mechanism Goals-Footnote-11100053 +Node: Extension Other Design Decisions1100239 +Node: Extension Future Growth1102345 +Node: Old Extension Mechanism1103181 +Node: Basic Concepts1104921 +Node: Basic High Level1105602 +Ref: figure-general-flow1105873 +Ref: figure-process-flow1106472 +Ref: Basic High Level-Footnote-11109701 +Node: Basic Data Typing1109886 +Node: Glossary1113241 +Node: Copying1138703 +Node: GNU Free Documentation License1176260 +Node: Index1201397 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 80638e46..f11e2be5 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -822,9 +822,12 @@ particular records in a file and perform operations upon them. * VMS Installation:: Installing @command{gawk} on VMS. * VMS Compilation:: How to compile @command{gawk} under VMS. +* VMS Dynamic Extensions:: Compiling @command{gawk} dynamic + extensions on VMS. * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. * Bugs:: Reporting Problems and Bugs. @@ -15031,7 +15034,7 @@ on the command line (@pxref{Options}). @section Multidimensional Arrays @menu -* Multiscanning:: Scanning multidimensional arrays. +* Multiscanning:: Scanning multidimensional arrays. @end menu @cindex subscripts in arrays, multidimensional @@ -33564,6 +33567,9 @@ Tandem (non-POSIX) @item Prestandard VAX C compiler for VAX/VMS +@item +GCC for VAX and Alpha has not been tested for a while. + @end itemize @end itemize @@ -34835,8 +34841,11 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. @menu * VMS Compilation:: How to compile @command{gawk} under VMS. +* VMS Dynamic Extensions:: Compiling @command{gawk} dynamic extensions on + VMS. * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. @end menu @@ -34844,41 +34853,99 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. @appendixsubsubsec Compiling @command{gawk} on VMS @cindex compiling @command{gawk} for VMS -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} utility. From the source -directory, use either: +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. +From the source directory, use either: @example -$ @kbd{@@[.VMS]VMSBUILD.COM} +$ @kbd{@@[.vms]vmsbuild.com} @end example @noindent or: @example -$ @kbd{MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK} +$ @kbd{MMS/DESCRIPTION=[.vms]descrip.mms gawk} @end example +@noindent +or: + +@example +$ @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 available from @uref{https://github.com/endlesssoftware/mmk}. + +With @code{ODS-5} volumes and extended parsing enabled, the case of the target +parameter may need to be exact. + Older versions of @command{gawk} could be built with VAX C or GNU C on VAX/VMS, as well as with DEC C, but that is no longer supported. DEC C (also briefly known as ``Compaq C'' and now known as ``HP C,'' but referred to here as ``DEC C'') is required. Both -@code{VMSBUILD.COM} and @code{DESCRIP.MMS} contain some obsolete support +@code{vmsbuild.com} and @code{descrip.mms} contain some obsolete support for the older compilers but are set up to use DEC C by default. -@command{gawk} has been tested under Alpha/VMS 7.3-1 using Compaq C V6.4, -and on Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.@footnote{The IA64 -architecture is also known as ``Itanium.''} +@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 +using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3. +The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both +Alpha and IA64 VMS 8.4 used HP C 7.3.@footnote{The IA64 architecture +is also known as ``Itanium.''} + +Work is currently being done for a procedure to build @command{gawk} and create +a PCSI kit for compatible with the GNV product. + +@node VMS Dynamic Extensions +@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}. +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 Alpha and Itanium: + +@example +/name=(as_is,short) +/float=ieee/ieee_mode=denorm_results +@end example + +For VAX: + +@example +/name=(as_is,short) +@end example + +Compile time macros need to be defined before the first VMS-supplied +header file is included. + +@example +#if (__CRTL_VER >= 70200000) && !defined (__VAX) +#define _LARGEFILE 1 +#endif + +#ifndef __VAX +#ifdef __CRTL_VER +#if __CRTL_VER >= 80200000 +#define _USE_STD_STAT 1 +#endif +#endif +#endif +@end example @node VMS Installation Details @appendixsubsubsec Installing @command{gawk} on VMS -To install @command{gawk}, all you need is a ``foreign'' command, which is -a @code{DCL} symbol whose value begins with a dollar sign. For example: +To use @command{gawk}, all you need is a ``foreign'' command, which is a +@code{DCL} symbol whose value begins with a dollar sign. For example: @example -$ @kbd{GAWK :== $disk1:[gnubin]GAWK} +$ @kbd{GAWK :== $disk1:[gnubin]gawk} @end example @noindent @@ -34890,10 +34957,15 @@ Alternatively, the symbol may be placed in the system-wide @file{sylogin.com} procedure, which allows all users to run @command{gawk}. +If your @command{gawk} was installed by a PCSI kit into the +@file{GNV$GNU:} directory tree, the program will be known as +@file{GNV$GNU:[bin]gnv$gawk.exe} and the help file will be +@file{GNV$GNU:[vms_help]gawk.hlp}. + Optionally, the help entry can be loaded into a VMS help library: @example -$ @kbd{LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP} +$ @kbd{LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp} @end example @noindent @@ -34958,6 +35030,20 @@ of @env{AWKPATH} is a comma-separated list of directory specifications. When defining it, the value should be quoted so that it retains a single translation and not a multitranslation @code{RMS} searchlist. +@node VMS GNV +@appendixsubsubsec 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 @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. +See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}. + +The normal build procedure for @command{gawk} produces a program that +is suitable for use with GNV. At this time work is being done to create +the procedures for building a PCSI kit to replace the older @command{gawk} +port. + @ignore @c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct @c and building gawk for it has not been tested in many years, but these diff --git a/doc/gawktexi.in b/doc/gawktexi.in index f385107b..c4dbea5c 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -817,9 +817,12 @@ particular records in a file and perform operations upon them. * VMS Installation:: Installing @command{gawk} on VMS. * VMS Compilation:: How to compile @command{gawk} under VMS. +* VMS Dynamic Extensions:: Compiling @command{gawk} dynamic + extensions on VMS. * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. * Bugs:: Reporting Problems and Bugs. @@ -14370,7 +14373,7 @@ on the command line (@pxref{Options}). @section Multidimensional Arrays @menu -* Multiscanning:: Scanning multidimensional arrays. +* Multiscanning:: Scanning multidimensional arrays. @end menu @cindex subscripts in arrays, multidimensional @@ -32713,6 +32716,9 @@ Tandem (non-POSIX) @item Prestandard VAX C compiler for VAX/VMS +@item +GCC for VAX and Alpha has not been tested for a while. + @end itemize @end itemize @@ -33984,8 +33990,11 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. @menu * VMS Compilation:: How to compile @command{gawk} under VMS. +* VMS Dynamic Extensions:: Compiling @command{gawk} dynamic extensions on + VMS. * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. +* VMS GNV:: The VMS GNV Project. * VMS Old Gawk:: An old version comes with some VMS systems. @end menu @@ -33993,41 +34002,99 @@ The older designation ``VMS'' is used throughout to refer to OpenVMS. @appendixsubsubsec Compiling @command{gawk} on VMS @cindex compiling @command{gawk} for VMS -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} utility. From the source -directory, use either: +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. +From the source directory, use either: @example -$ @kbd{@@[.VMS]VMSBUILD.COM} +$ @kbd{@@[.vms]vmsbuild.com} @end example @noindent or: @example -$ @kbd{MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK} +$ @kbd{MMS/DESCRIPTION=[.vms]descrip.mms gawk} @end example +@noindent +or: + +@example +$ @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 available from @uref{https://github.com/endlesssoftware/mmk}. + +With @code{ODS-5} volumes and extended parsing enabled, the case of the target +parameter may need to be exact. + Older versions of @command{gawk} could be built with VAX C or GNU C on VAX/VMS, as well as with DEC C, but that is no longer supported. DEC C (also briefly known as ``Compaq C'' and now known as ``HP C,'' but referred to here as ``DEC C'') is required. Both -@code{VMSBUILD.COM} and @code{DESCRIP.MMS} contain some obsolete support +@code{vmsbuild.com} and @code{descrip.mms} contain some obsolete support for the older compilers but are set up to use DEC C by default. -@command{gawk} has been tested under Alpha/VMS 7.3-1 using Compaq C V6.4, -and on Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.@footnote{The IA64 -architecture is also known as ``Itanium.''} +@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 +using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3. +The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both +Alpha and IA64 VMS 8.4 used HP C 7.3.@footnote{The IA64 architecture +is also known as ``Itanium.''} + +Work is currently being done for a procedure to build @command{gawk} and create +a PCSI kit for compatible with the GNV product. + +@node VMS Dynamic Extensions +@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}. +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 Alpha and Itanium: + +@example +/name=(as_is,short) +/float=ieee/ieee_mode=denorm_results +@end example + +For VAX: + +@example +/name=(as_is,short) +@end example + +Compile time macros need to be defined before the first VMS-supplied +header file is included. + +@example +#if (__CRTL_VER >= 70200000) && !defined (__VAX) +#define _LARGEFILE 1 +#endif + +#ifndef __VAX +#ifdef __CRTL_VER +#if __CRTL_VER >= 80200000 +#define _USE_STD_STAT 1 +#endif +#endif +#endif +@end example @node VMS Installation Details @appendixsubsubsec Installing @command{gawk} on VMS -To install @command{gawk}, all you need is a ``foreign'' command, which is -a @code{DCL} symbol whose value begins with a dollar sign. For example: +To use @command{gawk}, all you need is a ``foreign'' command, which is a +@code{DCL} symbol whose value begins with a dollar sign. For example: @example -$ @kbd{GAWK :== $disk1:[gnubin]GAWK} +$ @kbd{GAWK :== $disk1:[gnubin]gawk} @end example @noindent @@ -34039,10 +34106,15 @@ Alternatively, the symbol may be placed in the system-wide @file{sylogin.com} procedure, which allows all users to run @command{gawk}. +If your @command{gawk} was installed by a PCSI kit into the +@file{GNV$GNU:} directory tree, the program will be known as +@file{GNV$GNU:[bin]gnv$gawk.exe} and the help file will be +@file{GNV$GNU:[vms_help]gawk.hlp}. + Optionally, the help entry can be loaded into a VMS help library: @example -$ @kbd{LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP} +$ @kbd{LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp} @end example @noindent @@ -34107,6 +34179,20 @@ of @env{AWKPATH} is a comma-separated list of directory specifications. When defining it, the value should be quoted so that it retains a single translation and not a multitranslation @code{RMS} searchlist. +@node VMS GNV +@appendixsubsubsec 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 @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. +See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}. + +The normal build procedure for @command{gawk} produces a program that +is suitable for use with GNV. At this time work is being done to create +the procedures for building a PCSI kit to replace the older @command{gawk} +port. + @ignore @c The VMS POSIX product, also known as POSIX for OpenVMS, is long defunct @c and building gawk for it has not been tested in many years, but these |