diff options
-rw-r--r-- | README_d/ChangeLog | 7 | ||||
-rw-r--r-- | README_d/README.VMS | 36 | ||||
-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 | ||||
-rw-r--r-- | vms/vms-notes | 610 |
7 files changed, 1475 insertions, 565 deletions
diff --git a/README_d/ChangeLog b/README_d/ChangeLog index 50681113..beaf198e 100644 --- a/README_d/ChangeLog +++ b/README_d/ChangeLog @@ -1,5 +1,10 @@ +2013-12-16 John E. Malmberg <wb8tyw@qsl.net> + + * README.VMS: Further updates. + 2013-12-05 John E. Malmberg <wb8tyw@qsl.net> - * readme.vms: updated with current build information. + + * README.VMS: updated with current build information. 2013-07-02 Arnold D. Robbins <arnold@skeeve.com> diff --git a/README_d/README.VMS b/README_d/README.VMS index 84bfe2f4..2bf8e86e 100644 --- a/README_d/README.VMS +++ b/README_d/README.VMS @@ -37,6 +37,38 @@ Most recent builds are using: GAWK was originally ported for VMS V4.6 and up. It has not been tested with a release that old for some time. +Compiling 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. + +Alpha and Itanium: + +/name=(as_is,short) +/float=ieee/ieee_mode=denorm_results + +VAX: + +/name=(as_is,short) + +Compile time macros needed 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 + Installing GAWK on VMS: @@ -48,6 +80,10 @@ That symbol should be placed in the user's login.com or in the system- wide sylogin.com procedure so that it will be defined every time the user logs on. +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 (You may want to substitute a site-specific help library rather than 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 diff --git a/vms/vms-notes b/vms/vms-notes index 23943bb9..312a562f 100644 --- a/vms/vms-notes +++ b/vms/vms-notes @@ -6,3 +6,613 @@ Per Anders Wallin, the HP VMS porting guide is available at http://h71000.www7.hp.com/portability/portingguidelines.html This file documents this fact, and anything else of interest. +From wb8tyw@qsl.net Wed Dec 11 20:03:44 2013 +Return-Path: <wb8tyw@qsl.net> +Received: from skeeve.com (skeeve.com [127.0.0.1]) + by skeeve.com (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id rBBI3gNX002464 + for <arnold@localhost>; Wed, 11 Dec 2013 20:03:43 +0200 +X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on + frenzy.freefriends.org +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM + autolearn=ham version=3.3.1 +X-Envelope-From: wb8tyw@qsl.net +X-Envelope-To: <arnold@skeeve.com> +Received: from frenzy.freefriends.org [66.54.153.139] + by skeeve.com with IMAP (fetchmail-6.3.21) + for <arnold@localhost> (single-drop); Wed, 11 Dec 2013 20:03:43 +0200 (IST) +Received: from Encompasserve.org (Eisner.encompasserve.org [67.53.90.116]) + by freefriends.org (8.14.6/8.14.6) with ESMTP id rBB5jaW9020988 + for <arnold@skeeve.com>; Tue, 10 Dec 2013 22:45:40 -0700 +Received: from [192.168.0.101] + (173-19-202-206.client.mchsi.com [173.19.202.206]) + by Encompasserve.org (PMDF V6.6 #13031) + with ESMTPSA id <01P1SYL5LELG002FZE@Encompasserve.org> for arnold@skeeve.com; + Tue, 10 Dec 2013 23:45:35 -0600 (CST) +Date: Tue, 10 Dec 2013 23:45:36 -0600 +From: "John E. Malmberg" <wb8tyw@qsl.net> +Subject: Re: Some questions... +In-reply-to: <201312110426.rBB4QXXc003297@skeeve.com> +To: Aharon Robbins <arnold@skeeve.com> +Cc: wb8tyw@qsl.net +Message-id: <52A7FC00.2040905@qsl.net> +MIME-version: 1.0 +Content-type: text/plain; charset=ISO-8859-1; format=flowed +Content-transfer-encoding: 7BIT +User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 + Thunderbird/17.0.3 +References: <529A9537.7090404@qsl.net> <201312110426.rBB4QXXc003297@skeeve.com> +Status: RO + +On 12/10/2013 10:26 PM, Aharon Robbins wrote: +> Hi. Some questions about your changes. +> +> 1. I notice that there is at least one instance of #if __VMS, where as +> it seems most code uses #if VMS. Is that on purpose? If not, which +> is correct? + +VMS is a macro historically pre-defined by C compilers on C before the +ANSI rules. + +Under strict ANSI rules, a standards compliant compiler is not allowed +to pre-define macros that are not prefixed by "__". + +Which means that you can not count on the VMS macro being defined unless +you do it yourself. + +So __VMS is the ANSI correct definition. But it would be a lot of work +to change all the code. + +The vms_config.h that is now generated has these lines in it to make +sure that VMS is defined. + +#ifdef __VMS /* ANSI compliant */ +#ifndef VMS /* PRE-ansi */ +#define VMS 1 +#endif +#endif + +This may be needed for other architectures. It only shows up as an +issue if you set a "strict" compliance flag on the compile command. + +> 2. For the include of the main wrapper. Gawk already has a routine +> os_arg_fixup which is intended to manipulate argc and argv as needed +> by an OS-specific routine before main() parses it. A quick look at +> the wrapper looks to me like it could be made to fit within that framework, +> which would keep #if and the include out of the mainline code. + +I can look at that. I can also look to see if I can move the logic from +vms_crtl_init.c into it in a way that would sidestep that it has no +copyright notice at all. The result would be code that is almost +identical to code that is in the official Perl distribution. + +GNV was started as a user project and when the VMS POSIX product was +dropped and they needed a Unix like environment, Digital took over the +GNV product, but did not really do much to keep it up to date. + +The routine in vms_crtl_init.c is actually called before main() is +called, so just linking a module with it in is all that it takes to +activate the change. Unfortunately I do not know how to get it to +magically fix up the argv array. + +> If that looks reasonable to you, can you make that change? You can send +> it as a diff against what you currently have already done. + +I will look at it tomorrow night. I also found another change needed +for vms_args.c to work properly under a bash shell. + +> I'm sorry about the hassle on the copyrights, but I really have to play +> this game by the FSF rules. I hope we can get it clarified soon +> so that I can include the files in the dist. + +I hope so. I have not seen a reply from Karl yet. He did say that +there are other options. + +This would clear the way for getting the similar code accepted into the +Bash and coreutils repositories. I have a report that the first bash +4.3 beta built on VMS and looked real good on the test run. + +I am currently working on adapting the packaging scripts from bash and +coreutils to gawk. Each product has had it unique features, so I have +not yet come up with a generic set of scripts. + +This is a preview what will be coming: + +backup_gawk_src.com - Builds a VMS equivalent to tar archive. By +placing the source in the PCSI kit, it covers the requirement of +providing source somewhere with the binary. + +build_gawk_pcsi_desc.com - Creates a VMS PCSI package manifest file. + +build_gawk_pcsi_text.com - text output by the VMS PCSI package installer. + +compare_gawk_source.com - I have the source checked out on an NFS +server. The backup program needs me to copy it to a VMS volume first. +This procedure makes sure that the two copies are the same and ready for +backup. + +gawk_alias_setup.com - Sets up gawk and awk links to gnv$gawk.exe. +Needed to repair when sins of the past partially break an install. + +gawk_verb.cld - for gawk to use gnv$gawk.exe as an image. Different +than gawk.cld. To properly add an image to the VMS command table, it +needs a prefix. I have "GNV$" registered as a prefix for this purpose. + +gnv_gawk_kit_name.com - Calculates the VMS PCSI package name, used for +both file names and file contents. + +gnv_gawk_startup.com - Run at VMS startup to make sure that the +environment is set up properly for gawk. + +pcsi_gawk_file_list.txt - Source file for build_gawk_pcsi_desc.com. + +remove_old_gawk.com - Needed to properly clean up sins of the past. +Only touches the the GNV provided gawk and awk programs. + +stage_gawk_install.com - Does a pre-install into a fake "root" directory +tree for the kitting procedure to pull files out of. + +Regards, +-John + +From wb8tyw@qsl.net Thu Dec 12 12:21:57 2013 +Return-Path: <wb8tyw@qsl.net> +Received: from skeeve.com (skeeve.com [127.0.0.1]) + by skeeve.com (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id rBCAIn2l004322 + for <arnold@localhost>; Thu, 12 Dec 2013 12:21:55 +0200 +X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on + frenzy.freefriends.org +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM + autolearn=ham version=3.3.1 +X-Envelope-From: wb8tyw@qsl.net +X-Envelope-To: <arnold@skeeve.com> +Received: from frenzy.freefriends.org [66.54.153.139] + by skeeve.com with IMAP (fetchmail-6.3.21) + for <arnold@localhost> (single-drop); Thu, 12 Dec 2013 12:21:55 +0200 (IST) +Received: from Encompasserve.org (Eisner.encompasserve.org [67.53.90.116]) + by freefriends.org (8.14.6/8.14.6) with ESMTP id rBC6FboY024650 + for <arnold@skeeve.com>; Wed, 11 Dec 2013 23:15:41 -0700 +Received: from [192.168.0.101] + (173-19-202-206.client.mchsi.com [173.19.202.206]) + by Encompasserve.org (PMDF V6.6 #13031) + with ESMTPSA id <01P1UDWPUU7M002J4J@Encompasserve.org> for arnold@skeeve.com; + Thu, 12 Dec 2013 00:15:35 -0600 (CST) +Date: Thu, 12 Dec 2013 00:15:38 -0600 +From: "John E. Malmberg" <wb8tyw@qsl.net> +Subject: Re: Some questions... +In-reply-to: <201312110755.rBB7tIrb026097@freefriends.org> +To: arnold@skeeve.com +Cc: wb8tyw@qsl.net +Message-id: <52A9548A.5060604@qsl.net> +MIME-version: 1.0 +Content-type: multipart/mixed; boundary="Boundary_(ID_0V6xQMBg8dMk2LzZyR0ioQ)" +User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 + Thunderbird/17.0.3 +References: <529A9537.7090404@qsl.net> <201312110426.rBB4QXXc003297@skeeve.com> + <52A7FC00.2040905@qsl.net> <201312110755.rBB7tIrb026097@freefriends.org> +Status: RO +X-Status: A + +This is a multi-part message in MIME format. + +--Boundary_(ID_0V6xQMBg8dMk2LzZyR0ioQ) +Content-type: text/plain; charset=ISO-8859-1; format=flowed +Content-transfer-encoding: 7BIT + +I moved the vms_gawk_main_wrapper.c code into gawkmisc.vms so that file +is not needed anymore. + +I also discovered that we were not building with exact case public +symbols, so I fixed up the source to build with exact case symbols. +This will be more important when building dynamic plug-ins, and in the +future if and when the other related packages can be built with it. + +This caused small changes to most of the source files in VMS, as all the +system services routines were in the wrong case. + +I see that just about everything has been backed out of git until the +legal stuff is resolved. + +This is what I currently have for io.c changes based on a branch I just +made against master. + +And this is what the diff for the vms/gawkmisc.vms changes are, which +eliminates the change to main.c. + +Regards, +-John + + + +On 12/11/2013 1:55 AM, arnold@skeeve.com wrote: +> Hi. +> +> Thahks for the answers. I will address some of this later; I'm at work now. +> +> I would like to emphasize that, from my perspective, the priorities are: +> +> 1. Code changes (os_arg_fixup, etc.). +> 2. Documentation revisions. +> 3. The other VMS-only goodies that you described. +> +> The documentation revisions are not optional; I have to have them. +> +> But, as I said, it's enough if you give me plain text. I can do the +> markup. If the markup is what's holding you back then don't bother, +> just send me text, with some kind of clear indication of the sectioning / +> subsectioning (if any), and I'll do the markup. +> +> Karl replied further to me; I don't know if it was on purpose or +> by accident that he didn't include you. I will include you on the +> further correspondance that I need to send. +> +> Believe me, I very much want to move this forward, but I really do +> have to play by the rules. +> +> Thanks, +> +> Arnold +> + + +--Boundary_(ID_0V6xQMBg8dMk2LzZyR0ioQ) +Content-type: application/gzip; name=gawk_io_c_vms.patch.gz +Content-transfer-encoding: base64 +Content-disposition: attachment; filename=gawk_io_c_vms.patch.gz + +H4sICANRqVICAzAwMDEtaW8uYy1yZWRpcmVjdC1BZGQtYWRkaXRpb25hbC1WTVMtZXJyb3It +Y29kZXMucGF0Y2gAnVV/b9pIEP0bf4q5pmptwI5tzM82FRRImyqQXEhzV51OyPaOwY3t5Wwn +TdT0u9/sGhNIIuVyKyTvzs6bfTNvdjlMeQy+7Ti+z3zT902n6wZdz/acltU0zQBNn7VZs2m2 +ut0GTHgCM1yB1QbT7Mkf2KZpKYcUpgdf+DKBiRvFHqYLeP/D6+S3P/r/ZJGRYP5BGbk59uAP +ZHWwLBihT1irAXaj12z0GjboZss0ldmV9x39vAd/nQ7Oh5//hpAbPqgpsjAlu9aDAWPgMhbm +IU/cCC4mM8A05Sn4nGFmSIACaoI3eRBGSIgzzNNb4CtMwA1yJM+IZ2GygIzHCMIpMxRF13UF +hks3WeAxX8Ad0HCgRkMpSMghzLYpzVtD1yXaLoKBL6OIRLsQJhmmgmum1rQ6NIFhhMVa1xSF +hUEAur4Ic3D370/37udKmDC8AdfqYIc1DAO7zGx6Llim2XIcQXsbqRCbHXS/D7pVb0DNqreh +31dqouq6ZeskQjmkcmPjXjw5HilYK/2rL1blMfal+pAKG+bmhvnM53lOzRQG4eXGCO8zYWZG +7IZRP/P8RcQ9d50EKFApOYhzMHZvPcy4f4llHgyDMJGZQEAZjL58Oj01dpWSeE9+1vo4AV2j +Junjt5sMW51dfaRjIY2cSlVsq94iXehDWpA0sIcJnSIo7oVBQQOZSrXUlNpemPjRFUNKLqMd +Y/lB2AI6O4DZ7PV8/OfHb+fHEzIWuG0jmDe2azkA+1WpTMdwIEMqd3Wf/ItDtw5I4/IEKIM9 +rJQaMK0ijWK2xVwk5rRskZjTaheJQam1enTy8eshVKv+VSrWdfA4jyC7DFcr0pviVCoV4li4 +xW7iLjDGhF4DIir2qKUSDgdgvpPLgNGc4bVoHTVI3FhEDJOYWk59lb7StHdKjdyolqoqfA/g +aHoxOD4azT8PpqPjsQZv3oC6DnoA48nhERk1+ClhRX5znqC6DvSE5T9S+FXSF9eBEPLMIgnB +7jdgfJ6nbnl/ikpUrlaMHs35+OxsejIPk7ygSiFFlbtOp07vZ63blF8ylddRnZ6MxlCVyzne +rOr0COXFbn67wmJZpVhBtK654PCgDHB3B/emqaxMwWqnCKJTRQtSWyl6od4gWi3dfdFnF23D +epvBEM7OjyHMiEJ+lSbiZudLWtLTmKPLZIEe4WpPwzDDDU6wodvOg5KyunSvMXmbQ56GyICT +ewornuX6RcuwIbslXJxpopv03Wvy+9eT8wFdE/o3Gz7ce/YKibwxEsR2ynh0ItpLZrfZ3d3e +KTFFJaFlSyrw7FCv3Rv/9Qa9ncXdnaI/H+ApvMxU0+4f6/8BF8e/GH82oQCD4VCCK1LWJxxm +36ba0z24fn3KSv+kVxcUy2gbXUX5F+2/BB3kCAAA + +--Boundary_(ID_0V6xQMBg8dMk2LzZyR0ioQ) +Content-type: application/gzip; name=gawk_gawkmisc_vms.gdiff.gz +Content-transfer-encoding: base64 +Content-disposition: attachment; filename=gawk_gawkmisc_vms.gdiff.gz + +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 +/gvg4az2BTMAAA== + +--Boundary_(ID_0V6xQMBg8dMk2LzZyR0ioQ)-- + +From wb8tyw@qsl.net Sun Dec 8 19:58:11 2013 +Return-Path: <wb8tyw@qsl.net> +Received: from skeeve.com (skeeve.com [127.0.0.1]) + by skeeve.com (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id rB8Hw8Y1002346 + for <arnold@localhost>; Sun, 8 Dec 2013 19:58:10 +0200 +X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on + frenzy.freefriends.org +X-Spam-Level: +X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM + autolearn=ham version=3.3.1 +X-Envelope-From: wb8tyw@qsl.net +X-Envelope-To: <arnold@skeeve.com> +Received: from frenzy.freefriends.org [66.54.153.139] + by skeeve.com with IMAP (fetchmail-6.3.21) + for <arnold@localhost> (single-drop); Sun, 08 Dec 2013 19:58:10 +0200 (IST) +Received: from Encompasserve.org (Eisner.encompasserve.org [67.53.90.116]) + by freefriends.org (8.14.6/8.14.6) with ESMTP id rB84BBd2018585 + for <arnold@skeeve.com>; Sat, 7 Dec 2013 21:11:14 -0700 +Received: from [192.168.0.101] + (173-19-202-206.client.mchsi.com [173.19.202.206]) + by Encompasserve.org (PMDF V6.6 #13031) + with ESMTPSA id <01P1OOF0VUTE001YI1@Encompasserve.org> for arnold@skeeve.com; + Sat, 07 Dec 2013 22:11:09 -0600 (CST) +Date: Sat, 07 Dec 2013 22:11:05 -0600 +From: "John E. Malmberg" <wb8tyw@qsl.net> +Subject: Re: VMS patch for config.h generation, passing tests. +In-reply-to: <52A277C3.303@qsl.net> +To: "John E. Malmberg" <wb8tyw@qsl.net> +Cc: arnold@skeeve.com, r.pat.rankin@gmail.com, anders_s_wallin@yahoo.se +Message-id: <52A3F159.9000607@qsl.net> +MIME-version: 1.0 +Content-type: text/plain; charset=ISO-8859-1; format=flowed +Content-transfer-encoding: 7BIT +User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 + Thunderbird/17.0.3 +References: <52A17089.9060701@qsl.net> + <201312060840.rB68eH2F029601@freefriends.org> <52A277C3.303@qsl.net> +Status: R +X-Status: A + +I have merged in your changes with my local copy, but not sure yet what +to do to get the git status happy. + +Unfortunately the VMS 8.3 Alpha manyfile test failed. Closing 2 files +in io.c was not good enough. I am trying again with closing 4 files. +Still failed. I am going to have to add some diagnostics to identify +the failure. + +And the beginfile1 test also is failing on VMS 8.3 Alpha. I will look +at that after I resolve the manyfile issue. + +I also did not notice that ofmta test failed on VMS 7.3 VAX. The +floating point number is rounding differently. I get the same result +with the replacement SNPRINTF or the VMS provided SNPRINTF. + +TOAD> diff ofmta.ok sys$disk:[]_ofmta.tmp +************ +File SRC_ROOT:[GAWK.TEST]OFMTA.OK;1 + 5 4.234 + 6 4.2345 hi +****** +File LCL_ROOT:[GAWK.TEST]_OFMTA.TMP;2 + 5 4.235 + 6 4.2345 hi +************ + +I tried that build again with #undef HAVE_VPRINTF, and it failed. + + From eval.c: + I1 8733 #ifndef HAVE_VPRINTF + I1 8734 #error "you lose: you need a system with vfprintf" + .1 +%CC-E-ERRORMESSAGE, (1) #error "you lose: you need a system with vfprintf" + +Note that the error message has the wrong routine name. + +I have looked over the manual, and will try to get some detailed changes +to it. + +Some preliminary things to help collect my thoughts. + +As the MMS program has a lot of issues with ODS-5, Some open source +programmers have switched to Madgoat Make, known as MMK from +https://github.com/endlesssoftware/mmk . MMK uses most unmodified MMS +description files and handles ODS-5 volumes better than MMS does. + +The optional POSIX subsystem is no longer supported on VMS. While I +used to know at what version this support stopped in my head, I have +forgotten, and so far have not found that with an online search. + +Most of the C runtime routines that formerly required the POSIX +subsystem are in the VMS C runtime, so there no separate POSIX builds +needed for newer versions of VMS. + +The behavior of the VMS C runtime is controlled by feature settings that +can be set by logical names before the program is run. + +These feature settings include the support of longer filenames with +almost any characters including UTF-8, on ODS-5 volumes and if routines +should behave in a more Unix like fashion. + +I will be adding vms_crtl_init.c to the next commit for vmsbuild.com and +descrip.mms. This vms_crtl_init.c detects when the program is running +under a bash or similar shell and sets the feature settings for better +UNIX compatibility, or sets them for better DCL compatibilities. +It makes sure that the extended filename support is enabled. +This way a single binary can be used for both the VMS environment and +the DCL environment. + +As a replacement, a GNV https://sourceforge.net/projects/gnv/ was +created. There is older version of gawk that is provided by that package. + +Recently a group of programmers have started trying to correct issues +with the GNV project and reorganize it as a collection of packages along +wth a VMSPORTS https://sourceforge.net/projects/vms-ports/ effort. + +The GNV environment provides a Bash shell and several other utilities +intended to simulate a Unix environment. + +The web page https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/ +documents what needs to be done before installing these newer packages +while GNV is in the transition phase. + +Currently only Bash 4.2.45 and Coreutils 8.21 have been packaged, both +are fixing critical issues in GNV. + +I plan to have a GAWK PCSI package that will be installed with the VMS +PRODUCT command. This package will install into the GNV directory +structure, which mimics a Linux directory tree, so I will need to +determine where to put the gawk.hlp file in it. + +Regards, +-John + + + +On 12/6/2013 7:20 PM, John E. Malmberg wrote: +> Hello Arnold, +> +> I almost missed this, the gmail randomizer threw it in the spam folder. +> It tends to do that with about 1 to 5 percent of my incoming e-mail. +> +> I am still learning git, so I am not sure how to regenerate the patch +> set. If you can help me with the commands, I can try to regenerate it. +> +> I ended up doing two patches, because I forgot that VMS execute +> permission is interpreted differently than Unix, so is usually on. +> +> I did not change the commands to kick off the build procedure, just the +> internals. +> +> Unfortunately Texinfo is not in my toolbox. I will look at the *.tex* +> files to see what I can figure out for editing the source format for any +> changes. I did update the readme.vms FILE. +> +> Also this patch should enable the dynamic extension loading, which I +> forgot to put in the change list. +> +> To better support dynamic extensions, gawk on VMS/ALPHA should be built +> using IEEE floating point. +> +> This slightly changes the precision of floating point output. I am not +> sure that anyone would notice. IA64 defaults to IEEE, and VAX can not +> support IEEE. +> +> The reason for this is that most open source packages expect the IEEE +> behavior, so it seems best to default to that when possible. +> +> When we get this step resolved, I am going to work on the procedure to +> generate a installable package in the VMS PCSI format. +> +> Regards, +> -John +> +> +> +> On 12/6/2013 2:40 AM, arnold@skeeve.com wrote: +>> Hi. +>> +>> Thanks for this. I already pushed the change you suggested about +>> version.c. Do you want to pull and regenerate this patch set? +>> Or should I just apply it all and you'll send me an updated patch? +>> +>> Finally, we need the manual updated about the build procedure. If +>> Texinfo isn't in your toolbox, you can just send me plain text and I'll +>> handle the formatting, but the manual needs to be updated and also +>> and README files. +>> +>> This is great work and it's exciting that VMS gawk is progressing +>> this way. +>> +>> Thanks, +>> +>> Arnold +>> +>> "John E. Malmberg" <wb8tyw@qsl.net> wrote: +>> +>>> Forgot to document that the previous strftime test was incorrect as it +>>> was not specifying a timezone on VMS versions that support timezones +>>> which made the behavior different than on Unix/Linux. The test has been +>>> fixed. +>>> +>>> All tests now passing on VAX/VMS 7.3, Alpha and IA64/VMS 8.4. +>>> Tests are still running on ALPHA/VMS 8.3, but I am expecting them to +>>> also pass. +>>> +>>> VMS build procedures no longer need to be edited when the version number +>>> changes. +>>> +>>> 2013-12-05 John E. Malmberg <wb8tyw@qsl.net> +>>> +>>> * New config_h.com to generate config.h +>>> +>>> * New gawk_ident.com generates ident line for link option file. +>>> +>>> * Add version_c.com to create version.c from version.in. +>>> +>>> * Remove fcntl.h covering up real fcntl.h. If an older version +>>> of VMS needs this file, the build procedure should be updated +>>> to generate it from a template. +>>> +>>> * descrip.mms: Use command files to generate files based +>>> on same input files as a Linux build. +>>> +>>> * gawkmisc.vms (files_are_same): support _USE_STD_STAT for VMS 8.x. +>>> +>>> * generate_config_vms_h_gawk.com: Generates a helper file +>>> config_vms.h to cover issues config_h.com can not handle. +>>> +>>> * vmsbuild.com: Use command files to generate files based +>>> on the same input files as a Linux build. +>>> +>>> * vms_misc.c (vms_open): VMS CRTL setting errno to ENOENT where +>>> it should be set to EMFILE. +>>> +>>> Regards, +>>> -John +> + |