diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | LIMITATIONS | 22 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | doc/ChangeLog | 1 | ||||
-rw-r--r-- | doc/gawk.info | 1062 | ||||
-rw-r--r-- | doc/gawk.texi | 34 |
7 files changed, 592 insertions, 539 deletions
@@ -1,3 +1,11 @@ +2012-11-24 Arnold D. Robbins <arnold@skeeve.com> + + Directory cleanup. + + * TODO.xgawk, FUTURES: Merged into TODO. + * TODO: More stuff added. + * Makefile.am (EXTRA_DIST): Updated. + 2012-11-22 Arnold D. Robbins <arnold@skeeve.com> Cleanup of awk.h. diff --git a/LIMITATIONS b/LIMITATIONS deleted file mode 100644 index 719f018a..00000000 --- a/LIMITATIONS +++ /dev/null @@ -1,22 +0,0 @@ - Copyright (C) 2005, 2006 Free Software Foundation, Inc. - - Copying and distribution of this file, with or without modification, - are permitted in any medium without royalty provided the copyright - notice and this notice are preserved. - -This file describes limits of gawk on a Unix system (although it -is variable even then). Non-Unix systems may have other limits. - -# of fields in a record: MAX_LONG -Length of input record: MAX_INT -Length of output record: unlimited -Size of a field: MAX_INT -Size of a printf string: MAX_INT -Size of a literal string: MAX_INT -Characters in a character class: 2^(# of bits per byte) -# of file redirections: unlimited -# of pipe redirections: min(# of processes per user, # of open files) -double-precision floating point -Length of source line: unlimited -Number of input records in one file: MAX_LONG -Number of input records total: MAX_LONG diff --git a/Makefile.am b/Makefile.am index b73f532f..085eadfe 100644 --- a/Makefile.am +++ b/Makefile.am @@ -35,9 +35,7 @@ AM_MAKEFLAGS = 'CFLAGS=$(CFLAGS)' 'LDFLAGS=$(LDFLAGS)' EXTRA_DIST = \ ChangeLog.0 \ COPYING \ - FUTURES \ INSTALL \ - LIMITATIONS \ NEWS \ NEWS.0 \ POSIX.STD \ diff --git a/Makefile.in b/Makefile.in index f58c58e1..78e8fddc 100644 --- a/Makefile.in +++ b/Makefile.in @@ -363,9 +363,7 @@ AM_MAKEFLAGS = 'CFLAGS=$(CFLAGS)' 'LDFLAGS=$(LDFLAGS)' EXTRA_DIST = \ ChangeLog.0 \ COPYING \ - FUTURES \ INSTALL \ - LIMITATIONS \ NEWS \ NEWS.0 \ POSIX.STD \ diff --git a/doc/ChangeLog b/doc/ChangeLog index 53b59041..4f38e319 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -2,6 +2,7 @@ * gawk.texi (Future Extensions): Point to TODO file in the gawk dist. + (Implementation Limitations): New node, from old LIMITATIONS file. 2012-11-22 Arnold D. Robbins <arnold@skeeve.com> diff --git a/doc/gawk.info b/doc/gawk.info index 8c5b4356..0b7fd8cc 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -636,6 +636,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b) `git' repository. * Future Extensions:: New features that may be implemented one day. +* Implementation Limitations:: Some limitations of the implementation. * Basic High Level:: The high level view. * Basic Data Typing:: A very quick intro to data types. @@ -26474,6 +26475,7 @@ and maintainers of `gawk'. Everything in it applies specifically to extensions. * Additions:: Making Additions To `gawk'. * Future Extensions:: New features that may be implemented one day. +* Implementation Limitations:: Some limitations of the implementation. File: gawk.info, Node: Compatibility Mode, Next: Additions, Up: Notes @@ -26557,6 +26559,10 @@ out a copy using CVS, as follows: cvs -d:pserver:anonymous@pserver.git.sv.gnu.org:/gawk.git co -d gawk master + Note that this gateway is flakey; you may have better luck using a +more modern version control system like Bazaar, that has a Git plug-in +for working with Git repositories. + File: gawk.info, Node: Adding Code, Next: New Ports, Prev: Accessing The Source, Up: Additions @@ -26915,7 +26921,7 @@ maintainers had dropped `.gz' and `.bz2' files and only distribute include the generated files. -File: gawk.info, Node: Future Extensions, Prev: Additions, Up: Notes +File: gawk.info, Node: Future Extensions, Next: Implementation Limitations, Prev: Additions, Up: Notes C.3 Probable Future Extensions ============================== @@ -26926,13 +26932,44 @@ C.3 Probable Future Extensions Hey! Larry Wall - The `TODO' file in the `gawk' distribution lists possible future + The `TODO' file in the `gawk' Git repository lists possible future enhancements. Some of these relate to the source code, and others to possible new features. Please see that file for the list. *Note Additions::, if you are interested in tackling any of the projects listed there. +File: gawk.info, Node: Implementation Limitations, Prev: Future Extensions, Up: Notes + +C.4 Some Limitations of the Implementation +========================================== + +This following table describes limits of `gawk' on a Unix-like system +(although it is variable even then). Other systems may have different +limits. + +Item Limit +-------------------------------------------------------------------------- +Characters in a character 2^(number of bits per byte) +class +Length of input record `MAX_INT ' +Length of output record Unlimited +Length of source line Unlimited +Number of fields in a record `MAX_LONG' +Number of file redirections Unlimited +Number of input records in `MAX_LONG' +one file +Number of input records `MAX_LONG' +total +Number of pipe redirections min(number of processes per user, number + of open files) +Numeric values Double-precision floating point (if not + using MPFR) +Size of a field `MAX_INT ' +Size of a literal string `MAX_INT ' +Size of a printf string `MAX_INT ' + + File: gawk.info, Node: Basic Concepts, Next: Glossary, Prev: Notes, Up: Top Appendix D Basic Programming Concepts @@ -31723,515 +31760,516 @@ Index Tag Table: Node: Top1352 -Node: Foreword40058 -Node: Preface44403 -Ref: Preface-Footnote-147456 -Ref: Preface-Footnote-247562 -Node: History47794 -Node: Names50185 -Ref: Names-Footnote-151662 -Node: This Manual51734 -Ref: This Manual-Footnote-157640 -Node: Conventions57740 -Node: Manual History59874 -Ref: Manual History-Footnote-163144 -Ref: Manual History-Footnote-263185 -Node: How To Contribute63259 -Node: Acknowledgments64403 -Node: Getting Started68899 -Node: Running gawk71278 -Node: One-shot72464 -Node: Read Terminal73689 -Ref: Read Terminal-Footnote-175339 -Ref: Read Terminal-Footnote-275615 -Node: Long75786 -Node: Executable Scripts77162 -Ref: Executable Scripts-Footnote-179031 -Ref: Executable Scripts-Footnote-279133 -Node: Comments79680 -Node: Quoting82147 -Node: DOS Quoting86770 -Node: Sample Data Files87445 -Node: Very Simple90477 -Node: Two Rules95076 -Node: More Complex97223 -Ref: More Complex-Footnote-1100153 -Node: Statements/Lines100238 -Ref: Statements/Lines-Footnote-1104700 -Node: Other Features104965 -Node: When105893 -Node: Invoking Gawk108040 -Node: Command Line109501 -Node: Options110284 -Ref: Options-Footnote-1125682 -Node: Other Arguments125707 -Node: Naming Standard Input128365 -Node: Environment Variables129459 -Node: AWKPATH Variable130017 -Ref: AWKPATH Variable-Footnote-1132775 -Node: AWKLIBPATH Variable133035 -Node: Other Environment Variables133632 -Node: Exit Status136127 -Node: Include Files136802 -Node: Loading Shared Libraries140371 -Node: Obsolete141596 -Node: Undocumented142293 -Node: Regexp142536 -Node: Regexp Usage143925 -Node: Escape Sequences145951 -Node: Regexp Operators151714 -Ref: Regexp Operators-Footnote-1159094 -Ref: Regexp Operators-Footnote-2159241 -Node: Bracket Expressions159339 -Ref: table-char-classes161229 -Node: GNU Regexp Operators163752 -Node: Case-sensitivity167475 -Ref: Case-sensitivity-Footnote-1170443 -Ref: Case-sensitivity-Footnote-2170678 -Node: Leftmost Longest170786 -Node: Computed Regexps171987 -Node: Reading Files175397 -Node: Records177400 -Ref: Records-Footnote-1186324 -Node: Fields186361 -Ref: Fields-Footnote-1189394 -Node: Nonconstant Fields189480 -Node: Changing Fields191682 -Node: Field Separators197663 -Node: Default Field Splitting200292 -Node: Regexp Field Splitting201409 -Node: Single Character Fields204751 -Node: Command Line Field Separator205810 -Node: Field Splitting Summary209251 -Ref: Field Splitting Summary-Footnote-1212443 -Node: Constant Size212544 -Node: Splitting By Content217128 -Ref: Splitting By Content-Footnote-1220854 -Node: Multiple Line220894 -Ref: Multiple Line-Footnote-1226741 -Node: Getline226920 -Node: Plain Getline229136 -Node: Getline/Variable231225 -Node: Getline/File232366 -Node: Getline/Variable/File233688 -Ref: Getline/Variable/File-Footnote-1235287 -Node: Getline/Pipe235374 -Node: Getline/Variable/Pipe237934 -Node: Getline/Coprocess239041 -Node: Getline/Variable/Coprocess240284 -Node: Getline Notes240998 -Node: Getline Summary243785 -Ref: table-getline-variants244193 -Node: Read Timeout245051 -Ref: Read Timeout-Footnote-1248796 -Node: Command line directories248853 -Node: Printing249483 -Node: Print251114 -Node: Print Examples252451 -Node: Output Separators255235 -Node: OFMT256995 -Node: Printf258353 -Node: Basic Printf259259 -Node: Control Letters260798 -Node: Format Modifiers264610 -Node: Printf Examples270619 -Node: Redirection273334 -Node: Special Files280318 -Node: Special FD280851 -Ref: Special FD-Footnote-1284476 -Node: Special Network284550 -Node: Special Caveats285400 -Node: Close Files And Pipes286196 -Ref: Close Files And Pipes-Footnote-1293219 -Ref: Close Files And Pipes-Footnote-2293367 -Node: Expressions293517 -Node: Values294649 -Node: Constants295325 -Node: Scalar Constants296005 -Ref: Scalar Constants-Footnote-1296864 -Node: Nondecimal-numbers297046 -Node: Regexp Constants300105 -Node: Using Constant Regexps300580 -Node: Variables303635 -Node: Using Variables304290 -Node: Assignment Options306014 -Node: Conversion307886 -Ref: table-locale-affects313262 -Ref: Conversion-Footnote-1313886 -Node: All Operators313995 -Node: Arithmetic Ops314625 -Node: Concatenation317130 -Ref: Concatenation-Footnote-1319923 -Node: Assignment Ops320043 -Ref: table-assign-ops325031 -Node: Increment Ops326439 -Node: Truth Values and Conditions329909 -Node: Truth Values330992 -Node: Typing and Comparison332041 -Node: Variable Typing332830 -Ref: Variable Typing-Footnote-1336727 -Node: Comparison Operators336849 -Ref: table-relational-ops337259 -Node: POSIX String Comparison340808 -Ref: POSIX String Comparison-Footnote-1341764 -Node: Boolean Ops341902 -Ref: Boolean Ops-Footnote-1345980 -Node: Conditional Exp346071 -Node: Function Calls347803 -Node: Precedence351397 -Node: Locales355066 -Node: Patterns and Actions356155 -Node: Pattern Overview357209 -Node: Regexp Patterns358878 -Node: Expression Patterns359421 -Node: Ranges363106 -Node: BEGIN/END366072 -Node: Using BEGIN/END366834 -Ref: Using BEGIN/END-Footnote-1369565 -Node: I/O And BEGIN/END369671 -Node: BEGINFILE/ENDFILE371953 -Node: Empty374857 -Node: Using Shell Variables375173 -Node: Action Overview377458 -Node: Statements379815 -Node: If Statement381669 -Node: While Statement383168 -Node: Do Statement385212 -Node: For Statement386368 -Node: Switch Statement389520 -Node: Break Statement391617 -Node: Continue Statement393607 -Node: Next Statement395400 -Node: Nextfile Statement397790 -Node: Exit Statement400431 -Node: Built-in Variables402847 -Node: User-modified403942 -Ref: User-modified-Footnote-1412297 -Node: Auto-set412359 -Ref: Auto-set-Footnote-1424710 -Ref: Auto-set-Footnote-2424915 -Node: ARGC and ARGV424971 -Node: Arrays428822 -Node: Array Basics430327 -Node: Array Intro431153 -Node: Reference to Elements435471 -Node: Assigning Elements437741 -Node: Array Example438232 -Node: Scanning an Array439964 -Node: Controlling Scanning442278 -Ref: Controlling Scanning-Footnote-1447211 -Node: Delete447527 -Ref: Delete-Footnote-1450292 -Node: Numeric Array Subscripts450349 -Node: Uninitialized Subscripts452532 -Node: Multi-dimensional454160 -Node: Multi-scanning457254 -Node: Arrays of Arrays458845 -Node: Functions463490 -Node: Built-in464309 -Node: Calling Built-in465387 -Node: Numeric Functions467375 -Ref: Numeric Functions-Footnote-1471207 -Ref: Numeric Functions-Footnote-2471564 -Ref: Numeric Functions-Footnote-3471612 -Node: String Functions471881 -Ref: String Functions-Footnote-1495378 -Ref: String Functions-Footnote-2495507 -Ref: String Functions-Footnote-3495755 -Node: Gory Details495842 -Ref: table-sub-escapes497521 -Ref: table-sub-posix-92498875 -Ref: table-sub-proposed500226 -Ref: table-posix-sub501580 -Ref: table-gensub-escapes503126 -Ref: Gory Details-Footnote-1504333 -Ref: Gory Details-Footnote-2504384 -Node: I/O Functions504535 -Ref: I/O Functions-Footnote-1511190 -Node: Time Functions511337 -Ref: Time Functions-Footnote-1522229 -Ref: Time Functions-Footnote-2522297 -Ref: Time Functions-Footnote-3522455 -Ref: Time Functions-Footnote-4522566 -Ref: Time Functions-Footnote-5522678 -Ref: Time Functions-Footnote-6522905 -Node: Bitwise Functions523171 -Ref: table-bitwise-ops523729 -Ref: Bitwise Functions-Footnote-1527950 -Node: Type Functions528134 -Node: I18N Functions528604 -Node: User-defined530231 -Node: Definition Syntax531035 -Ref: Definition Syntax-Footnote-1535945 -Node: Function Example536014 -Node: Function Caveats538608 -Node: Calling A Function539029 -Node: Variable Scope540144 -Node: Pass By Value/Reference543107 -Node: Return Statement546547 -Node: Dynamic Typing549528 -Node: Indirect Calls550263 -Node: Library Functions559948 -Ref: Library Functions-Footnote-1562947 -Node: Library Names563118 -Ref: Library Names-Footnote-1566589 -Ref: Library Names-Footnote-2566809 -Node: General Functions566895 -Node: Strtonum Function567848 -Node: Assert Function570778 -Node: Round Function574104 -Node: Cliff Random Function575647 -Node: Ordinal Functions576663 -Ref: Ordinal Functions-Footnote-1579733 -Ref: Ordinal Functions-Footnote-2579985 -Node: Join Function580194 -Ref: Join Function-Footnote-1581965 -Node: Getlocaltime Function582165 -Node: Data File Management585880 -Node: Filetrans Function586512 -Node: Rewind Function590651 -Node: File Checking592038 -Node: Empty Files593132 -Node: Ignoring Assigns595362 -Node: Getopt Function596915 -Ref: Getopt Function-Footnote-1608219 -Node: Passwd Functions608422 -Ref: Passwd Functions-Footnote-1617397 -Node: Group Functions617485 -Node: Walking Arrays625569 -Node: Sample Programs627138 -Node: Running Examples627815 -Node: Clones628543 -Node: Cut Program629767 -Node: Egrep Program639612 -Ref: Egrep Program-Footnote-1647385 -Node: Id Program647495 -Node: Split Program651111 -Ref: Split Program-Footnote-1654630 -Node: Tee Program654758 -Node: Uniq Program657561 -Node: Wc Program664990 -Ref: Wc Program-Footnote-1669256 -Ref: Wc Program-Footnote-2669456 -Node: Miscellaneous Programs669548 -Node: Dupword Program670736 -Node: Alarm Program672767 -Node: Translate Program677516 -Ref: Translate Program-Footnote-1681903 -Ref: Translate Program-Footnote-2682131 -Node: Labels Program682265 -Ref: Labels Program-Footnote-1685636 -Node: Word Sorting685720 -Node: History Sorting689604 -Node: Extract Program691443 -Ref: Extract Program-Footnote-1698926 -Node: Simple Sed699054 -Node: Igawk Program702116 -Ref: Igawk Program-Footnote-1717273 -Ref: Igawk Program-Footnote-2717474 -Node: Anagram Program717612 -Node: Signature Program720680 -Node: Internationalization721780 -Node: I18N and L10N723212 -Node: Explaining gettext723898 -Ref: Explaining gettext-Footnote-1728964 -Ref: Explaining gettext-Footnote-2729148 -Node: Programmer i18n729313 -Node: Translator i18n733513 -Node: String Extraction734306 -Ref: String Extraction-Footnote-1735267 -Node: Printf Ordering735353 -Ref: Printf Ordering-Footnote-1738137 -Node: I18N Portability738201 -Ref: I18N Portability-Footnote-1740650 -Node: I18N Example740713 -Ref: I18N Example-Footnote-1743348 -Node: Gawk I18N743420 -Node: Advanced Features744037 -Node: Nondecimal Data745541 -Node: Array Sorting747124 -Node: Controlling Array Traversal747821 -Node: Array Sorting Functions756059 -Ref: Array Sorting Functions-Footnote-1759733 -Ref: Array Sorting Functions-Footnote-2759826 -Node: Two-way I/O760020 -Ref: Two-way I/O-Footnote-1765452 -Node: TCP/IP Networking765522 -Node: Profiling768366 -Node: Debugger775820 -Node: Debugging776788 -Node: Debugging Concepts777221 -Node: Debugging Terms779077 -Node: Awk Debugging781674 -Node: Sample Debugging Session782566 -Node: Debugger Invocation783086 -Node: Finding The Bug784415 -Node: List of Debugger Commands790903 -Node: Breakpoint Control792237 -Node: Debugger Execution Control795901 -Node: Viewing And Changing Data799261 -Node: Execution Stack802617 -Node: Debugger Info804084 -Node: Miscellaneous Debugger Commands808065 -Node: Readline Support813510 -Node: Limitations814341 -Node: Arbitrary Precision Arithmetic816593 -Ref: Arbitrary Precision Arithmetic-Footnote-1818235 -Node: General Arithmetic818383 -Node: Floating Point Issues820103 -Node: String Conversion Precision820984 -Ref: String Conversion Precision-Footnote-1822690 -Node: Unexpected Results822799 -Node: POSIX Floating Point Problems824952 -Ref: POSIX Floating Point Problems-Footnote-1828777 -Node: Integer Programming828815 -Node: Floating-point Programming830568 -Ref: Floating-point Programming-Footnote-1836877 -Node: Floating-point Representation837141 -Node: Floating-point Context838306 -Ref: table-ieee-formats839148 -Node: Rounding Mode840532 -Ref: table-rounding-modes841011 -Ref: Rounding Mode-Footnote-1844015 -Node: Gawk and MPFR844196 -Node: Arbitrary Precision Floats845438 -Ref: Arbitrary Precision Floats-Footnote-1847867 -Node: Setting Precision848178 -Node: Setting Rounding Mode850911 -Ref: table-gawk-rounding-modes851315 -Node: Floating-point Constants852495 -Node: Changing Precision853919 -Ref: Changing Precision-Footnote-1855319 -Node: Exact Arithmetic855493 -Node: Arbitrary Precision Integers858601 -Ref: Arbitrary Precision Integers-Footnote-1861601 -Node: Dynamic Extensions861748 -Node: Extension Intro863134 -Node: Plugin License864342 -Node: Extension Design865016 -Node: Old Extension Problems866087 -Ref: Old Extension Problems-Footnote-1867597 -Node: Extension New Mechanism Goals867654 -Ref: Extension New Mechanism Goals-Footnote-1870366 -Node: Extension Other Design Decisions870552 -Node: Extension Mechanism Outline872664 -Ref: load-extension873689 -Ref: load-new-function875167 -Ref: call-new-function876148 -Node: Extension Future Growth878142 -Node: Extension API Description878960 -Node: Extension API Functions Introduction880288 -Node: General Data Types884988 -Ref: General Data Types-Footnote-1890621 -Node: Requesting Values890920 -Ref: table-value-types-returned891651 -Node: Constructor Functions892605 -Node: Registration Functions895601 -Node: Extension Functions896286 -Node: Exit Callback Functions898105 -Node: Extension Version String899348 -Node: Input Parsers899998 -Node: Output Wrappers908577 -Node: Two-way processors912970 -Node: Printing Messages915092 -Ref: Printing Messages-Footnote-1916169 -Node: Updating `ERRNO'916321 -Node: Accessing Parameters917060 -Node: Symbol Table Access918290 -Node: Symbol table by name918802 -Ref: Symbol table by name-Footnote-1920972 -Node: Symbol table by cookie921052 -Ref: Symbol table by cookie-Footnote-1925181 -Node: Cached values925244 -Ref: Cached values-Footnote-1928687 -Node: Array Manipulation928778 -Ref: Array Manipulation-Footnote-1929876 -Node: Array Data Types929915 -Ref: Array Data Types-Footnote-1932618 -Node: Array Functions932710 -Node: Flattening Arrays936476 -Node: Creating Arrays943309 -Node: Extension API Variables948104 -Node: Extension Versioning948740 -Node: Extension API Informational Variables950641 -Node: Extension API Boilerplate951727 -Node: Finding Extensions955561 -Node: Extension Example956108 -Node: Internal File Description956846 -Node: Internal File Ops960534 -Ref: Internal File Ops-Footnote-1971981 -Node: Using Internal File Ops972121 -Ref: Using Internal File Ops-Footnote-1974477 -Node: Extension Samples974743 -Node: Extension Sample File Functions976186 -Node: Extension Sample Fnmatch984659 -Node: Extension Sample Fork986385 -Node: Extension Sample Ord987599 -Node: Extension Sample Readdir988375 -Node: Extension Sample Revout989879 -Node: Extension Sample Rev2way990472 -Node: Extension Sample Read write array991162 -Node: Extension Sample Readfile993045 -Node: Extension Sample API Tests993800 -Node: Extension Sample Time994325 -Node: gawkextlib995632 -Node: Language History998013 -Node: V7/SVR3.1999535 -Node: SVR41001856 -Node: POSIX1003298 -Node: BTL1004306 -Node: POSIX/GNU1005040 -Node: Common Extensions1010575 -Node: Ranges and Locales1011682 -Ref: Ranges and Locales-Footnote-11016300 -Ref: Ranges and Locales-Footnote-21016327 -Ref: Ranges and Locales-Footnote-31016587 -Node: Contributors1016808 -Node: Installation1021104 -Node: Gawk Distribution1021998 -Node: Getting1022482 -Node: Extracting1023308 -Node: Distribution contents1025000 -Node: Unix Installation1030222 -Node: Quick Installation1030839 -Node: Additional Configuration Options1032801 -Node: Configuration Philosophy1034278 -Node: Non-Unix Installation1036620 -Node: PC Installation1037078 -Node: PC Binary Installation1038377 -Node: PC Compiling1040225 -Node: PC Testing1043169 -Node: PC Using1044345 -Node: Cygwin1048530 -Node: MSYS1049530 -Node: VMS Installation1050044 -Node: VMS Compilation1050647 -Ref: VMS Compilation-Footnote-11051654 -Node: VMS Installation Details1051712 -Node: VMS Running1053347 -Node: VMS Old Gawk1054954 -Node: Bugs1055428 -Node: Other Versions1059280 -Node: Notes1064595 -Node: Compatibility Mode1065182 -Node: Additions1065965 -Node: Accessing The Source1066892 -Node: Adding Code1068318 -Node: New Ports1074360 -Node: Derived Files1078495 -Ref: Derived Files-Footnote-11083803 -Ref: Derived Files-Footnote-21083837 -Ref: Derived Files-Footnote-31084437 -Node: Future Extensions1084535 -Node: Basic Concepts1085079 -Node: Basic High Level1085760 -Ref: figure-general-flow1086031 -Ref: figure-process-flow1086630 -Ref: Basic High Level-Footnote-11089859 -Node: Basic Data Typing1090044 -Node: Glossary1093399 -Node: Copying1118710 -Node: GNU Free Documentation License1156267 -Node: Index1181404 +Node: Foreword40138 +Node: Preface44483 +Ref: Preface-Footnote-147536 +Ref: Preface-Footnote-247642 +Node: History47874 +Node: Names50265 +Ref: Names-Footnote-151742 +Node: This Manual51814 +Ref: This Manual-Footnote-157720 +Node: Conventions57820 +Node: Manual History59954 +Ref: Manual History-Footnote-163224 +Ref: Manual History-Footnote-263265 +Node: How To Contribute63339 +Node: Acknowledgments64483 +Node: Getting Started68979 +Node: Running gawk71358 +Node: One-shot72544 +Node: Read Terminal73769 +Ref: Read Terminal-Footnote-175419 +Ref: Read Terminal-Footnote-275695 +Node: Long75866 +Node: Executable Scripts77242 +Ref: Executable Scripts-Footnote-179111 +Ref: Executable Scripts-Footnote-279213 +Node: Comments79760 +Node: Quoting82227 +Node: DOS Quoting86850 +Node: Sample Data Files87525 +Node: Very Simple90557 +Node: Two Rules95156 +Node: More Complex97303 +Ref: More Complex-Footnote-1100233 +Node: Statements/Lines100318 +Ref: Statements/Lines-Footnote-1104780 +Node: Other Features105045 +Node: When105973 +Node: Invoking Gawk108120 +Node: Command Line109581 +Node: Options110364 +Ref: Options-Footnote-1125762 +Node: Other Arguments125787 +Node: Naming Standard Input128445 +Node: Environment Variables129539 +Node: AWKPATH Variable130097 +Ref: AWKPATH Variable-Footnote-1132855 +Node: AWKLIBPATH Variable133115 +Node: Other Environment Variables133712 +Node: Exit Status136207 +Node: Include Files136882 +Node: Loading Shared Libraries140451 +Node: Obsolete141676 +Node: Undocumented142373 +Node: Regexp142616 +Node: Regexp Usage144005 +Node: Escape Sequences146031 +Node: Regexp Operators151794 +Ref: Regexp Operators-Footnote-1159174 +Ref: Regexp Operators-Footnote-2159321 +Node: Bracket Expressions159419 +Ref: table-char-classes161309 +Node: GNU Regexp Operators163832 +Node: Case-sensitivity167555 +Ref: Case-sensitivity-Footnote-1170523 +Ref: Case-sensitivity-Footnote-2170758 +Node: Leftmost Longest170866 +Node: Computed Regexps172067 +Node: Reading Files175477 +Node: Records177480 +Ref: Records-Footnote-1186404 +Node: Fields186441 +Ref: Fields-Footnote-1189474 +Node: Nonconstant Fields189560 +Node: Changing Fields191762 +Node: Field Separators197743 +Node: Default Field Splitting200372 +Node: Regexp Field Splitting201489 +Node: Single Character Fields204831 +Node: Command Line Field Separator205890 +Node: Field Splitting Summary209331 +Ref: Field Splitting Summary-Footnote-1212523 +Node: Constant Size212624 +Node: Splitting By Content217208 +Ref: Splitting By Content-Footnote-1220934 +Node: Multiple Line220974 +Ref: Multiple Line-Footnote-1226821 +Node: Getline227000 +Node: Plain Getline229216 +Node: Getline/Variable231305 +Node: Getline/File232446 +Node: Getline/Variable/File233768 +Ref: Getline/Variable/File-Footnote-1235367 +Node: Getline/Pipe235454 +Node: Getline/Variable/Pipe238014 +Node: Getline/Coprocess239121 +Node: Getline/Variable/Coprocess240364 +Node: Getline Notes241078 +Node: Getline Summary243865 +Ref: table-getline-variants244273 +Node: Read Timeout245131 +Ref: Read Timeout-Footnote-1248876 +Node: Command line directories248933 +Node: Printing249563 +Node: Print251194 +Node: Print Examples252531 +Node: Output Separators255315 +Node: OFMT257075 +Node: Printf258433 +Node: Basic Printf259339 +Node: Control Letters260878 +Node: Format Modifiers264690 +Node: Printf Examples270699 +Node: Redirection273414 +Node: Special Files280398 +Node: Special FD280931 +Ref: Special FD-Footnote-1284556 +Node: Special Network284630 +Node: Special Caveats285480 +Node: Close Files And Pipes286276 +Ref: Close Files And Pipes-Footnote-1293299 +Ref: Close Files And Pipes-Footnote-2293447 +Node: Expressions293597 +Node: Values294729 +Node: Constants295405 +Node: Scalar Constants296085 +Ref: Scalar Constants-Footnote-1296944 +Node: Nondecimal-numbers297126 +Node: Regexp Constants300185 +Node: Using Constant Regexps300660 +Node: Variables303715 +Node: Using Variables304370 +Node: Assignment Options306094 +Node: Conversion307966 +Ref: table-locale-affects313342 +Ref: Conversion-Footnote-1313966 +Node: All Operators314075 +Node: Arithmetic Ops314705 +Node: Concatenation317210 +Ref: Concatenation-Footnote-1320003 +Node: Assignment Ops320123 +Ref: table-assign-ops325111 +Node: Increment Ops326519 +Node: Truth Values and Conditions329989 +Node: Truth Values331072 +Node: Typing and Comparison332121 +Node: Variable Typing332910 +Ref: Variable Typing-Footnote-1336807 +Node: Comparison Operators336929 +Ref: table-relational-ops337339 +Node: POSIX String Comparison340888 +Ref: POSIX String Comparison-Footnote-1341844 +Node: Boolean Ops341982 +Ref: Boolean Ops-Footnote-1346060 +Node: Conditional Exp346151 +Node: Function Calls347883 +Node: Precedence351477 +Node: Locales355146 +Node: Patterns and Actions356235 +Node: Pattern Overview357289 +Node: Regexp Patterns358958 +Node: Expression Patterns359501 +Node: Ranges363186 +Node: BEGIN/END366152 +Node: Using BEGIN/END366914 +Ref: Using BEGIN/END-Footnote-1369645 +Node: I/O And BEGIN/END369751 +Node: BEGINFILE/ENDFILE372033 +Node: Empty374937 +Node: Using Shell Variables375253 +Node: Action Overview377538 +Node: Statements379895 +Node: If Statement381749 +Node: While Statement383248 +Node: Do Statement385292 +Node: For Statement386448 +Node: Switch Statement389600 +Node: Break Statement391697 +Node: Continue Statement393687 +Node: Next Statement395480 +Node: Nextfile Statement397870 +Node: Exit Statement400511 +Node: Built-in Variables402927 +Node: User-modified404022 +Ref: User-modified-Footnote-1412377 +Node: Auto-set412439 +Ref: Auto-set-Footnote-1424790 +Ref: Auto-set-Footnote-2424995 +Node: ARGC and ARGV425051 +Node: Arrays428902 +Node: Array Basics430407 +Node: Array Intro431233 +Node: Reference to Elements435551 +Node: Assigning Elements437821 +Node: Array Example438312 +Node: Scanning an Array440044 +Node: Controlling Scanning442358 +Ref: Controlling Scanning-Footnote-1447291 +Node: Delete447607 +Ref: Delete-Footnote-1450372 +Node: Numeric Array Subscripts450429 +Node: Uninitialized Subscripts452612 +Node: Multi-dimensional454240 +Node: Multi-scanning457334 +Node: Arrays of Arrays458925 +Node: Functions463570 +Node: Built-in464389 +Node: Calling Built-in465467 +Node: Numeric Functions467455 +Ref: Numeric Functions-Footnote-1471287 +Ref: Numeric Functions-Footnote-2471644 +Ref: Numeric Functions-Footnote-3471692 +Node: String Functions471961 +Ref: String Functions-Footnote-1495458 +Ref: String Functions-Footnote-2495587 +Ref: String Functions-Footnote-3495835 +Node: Gory Details495922 +Ref: table-sub-escapes497601 +Ref: table-sub-posix-92498955 +Ref: table-sub-proposed500306 +Ref: table-posix-sub501660 +Ref: table-gensub-escapes503206 +Ref: Gory Details-Footnote-1504413 +Ref: Gory Details-Footnote-2504464 +Node: I/O Functions504615 +Ref: I/O Functions-Footnote-1511270 +Node: Time Functions511417 +Ref: Time Functions-Footnote-1522309 +Ref: Time Functions-Footnote-2522377 +Ref: Time Functions-Footnote-3522535 +Ref: Time Functions-Footnote-4522646 +Ref: Time Functions-Footnote-5522758 +Ref: Time Functions-Footnote-6522985 +Node: Bitwise Functions523251 +Ref: table-bitwise-ops523809 +Ref: Bitwise Functions-Footnote-1528030 +Node: Type Functions528214 +Node: I18N Functions528684 +Node: User-defined530311 +Node: Definition Syntax531115 +Ref: Definition Syntax-Footnote-1536025 +Node: Function Example536094 +Node: Function Caveats538688 +Node: Calling A Function539109 +Node: Variable Scope540224 +Node: Pass By Value/Reference543187 +Node: Return Statement546627 +Node: Dynamic Typing549608 +Node: Indirect Calls550343 +Node: Library Functions560028 +Ref: Library Functions-Footnote-1563027 +Node: Library Names563198 +Ref: Library Names-Footnote-1566669 +Ref: Library Names-Footnote-2566889 +Node: General Functions566975 +Node: Strtonum Function567928 +Node: Assert Function570858 +Node: Round Function574184 +Node: Cliff Random Function575727 +Node: Ordinal Functions576743 +Ref: Ordinal Functions-Footnote-1579813 +Ref: Ordinal Functions-Footnote-2580065 +Node: Join Function580274 +Ref: Join Function-Footnote-1582045 +Node: Getlocaltime Function582245 +Node: Data File Management585960 +Node: Filetrans Function586592 +Node: Rewind Function590731 +Node: File Checking592118 +Node: Empty Files593212 +Node: Ignoring Assigns595442 +Node: Getopt Function596995 +Ref: Getopt Function-Footnote-1608299 +Node: Passwd Functions608502 +Ref: Passwd Functions-Footnote-1617477 +Node: Group Functions617565 +Node: Walking Arrays625649 +Node: Sample Programs627218 +Node: Running Examples627895 +Node: Clones628623 +Node: Cut Program629847 +Node: Egrep Program639692 +Ref: Egrep Program-Footnote-1647465 +Node: Id Program647575 +Node: Split Program651191 +Ref: Split Program-Footnote-1654710 +Node: Tee Program654838 +Node: Uniq Program657641 +Node: Wc Program665070 +Ref: Wc Program-Footnote-1669336 +Ref: Wc Program-Footnote-2669536 +Node: Miscellaneous Programs669628 +Node: Dupword Program670816 +Node: Alarm Program672847 +Node: Translate Program677596 +Ref: Translate Program-Footnote-1681983 +Ref: Translate Program-Footnote-2682211 +Node: Labels Program682345 +Ref: Labels Program-Footnote-1685716 +Node: Word Sorting685800 +Node: History Sorting689684 +Node: Extract Program691523 +Ref: Extract Program-Footnote-1699006 +Node: Simple Sed699134 +Node: Igawk Program702196 +Ref: Igawk Program-Footnote-1717353 +Ref: Igawk Program-Footnote-2717554 +Node: Anagram Program717692 +Node: Signature Program720760 +Node: Internationalization721860 +Node: I18N and L10N723292 +Node: Explaining gettext723978 +Ref: Explaining gettext-Footnote-1729044 +Ref: Explaining gettext-Footnote-2729228 +Node: Programmer i18n729393 +Node: Translator i18n733593 +Node: String Extraction734386 +Ref: String Extraction-Footnote-1735347 +Node: Printf Ordering735433 +Ref: Printf Ordering-Footnote-1738217 +Node: I18N Portability738281 +Ref: I18N Portability-Footnote-1740730 +Node: I18N Example740793 +Ref: I18N Example-Footnote-1743428 +Node: Gawk I18N743500 +Node: Advanced Features744117 +Node: Nondecimal Data745621 +Node: Array Sorting747204 +Node: Controlling Array Traversal747901 +Node: Array Sorting Functions756139 +Ref: Array Sorting Functions-Footnote-1759813 +Ref: Array Sorting Functions-Footnote-2759906 +Node: Two-way I/O760100 +Ref: Two-way I/O-Footnote-1765532 +Node: TCP/IP Networking765602 +Node: Profiling768446 +Node: Debugger775900 +Node: Debugging776868 +Node: Debugging Concepts777301 +Node: Debugging Terms779157 +Node: Awk Debugging781754 +Node: Sample Debugging Session782646 +Node: Debugger Invocation783166 +Node: Finding The Bug784495 +Node: List of Debugger Commands790983 +Node: Breakpoint Control792317 +Node: Debugger Execution Control795981 +Node: Viewing And Changing Data799341 +Node: Execution Stack802697 +Node: Debugger Info804164 +Node: Miscellaneous Debugger Commands808145 +Node: Readline Support813590 +Node: Limitations814421 +Node: Arbitrary Precision Arithmetic816673 +Ref: Arbitrary Precision Arithmetic-Footnote-1818315 +Node: General Arithmetic818463 +Node: Floating Point Issues820183 +Node: String Conversion Precision821064 +Ref: String Conversion Precision-Footnote-1822770 +Node: Unexpected Results822879 +Node: POSIX Floating Point Problems825032 +Ref: POSIX Floating Point Problems-Footnote-1828857 +Node: Integer Programming828895 +Node: Floating-point Programming830648 +Ref: Floating-point Programming-Footnote-1836957 +Node: Floating-point Representation837221 +Node: Floating-point Context838386 +Ref: table-ieee-formats839228 +Node: Rounding Mode840612 +Ref: table-rounding-modes841091 +Ref: Rounding Mode-Footnote-1844095 +Node: Gawk and MPFR844276 +Node: Arbitrary Precision Floats845518 +Ref: Arbitrary Precision Floats-Footnote-1847947 +Node: Setting Precision848258 +Node: Setting Rounding Mode850991 +Ref: table-gawk-rounding-modes851395 +Node: Floating-point Constants852575 +Node: Changing Precision853999 +Ref: Changing Precision-Footnote-1855399 +Node: Exact Arithmetic855573 +Node: Arbitrary Precision Integers858681 +Ref: Arbitrary Precision Integers-Footnote-1861681 +Node: Dynamic Extensions861828 +Node: Extension Intro863214 +Node: Plugin License864422 +Node: Extension Design865096 +Node: Old Extension Problems866167 +Ref: Old Extension Problems-Footnote-1867677 +Node: Extension New Mechanism Goals867734 +Ref: Extension New Mechanism Goals-Footnote-1870446 +Node: Extension Other Design Decisions870632 +Node: Extension Mechanism Outline872744 +Ref: load-extension873769 +Ref: load-new-function875247 +Ref: call-new-function876228 +Node: Extension Future Growth878222 +Node: Extension API Description879040 +Node: Extension API Functions Introduction880368 +Node: General Data Types885068 +Ref: General Data Types-Footnote-1890701 +Node: Requesting Values891000 +Ref: table-value-types-returned891731 +Node: Constructor Functions892685 +Node: Registration Functions895681 +Node: Extension Functions896366 +Node: Exit Callback Functions898185 +Node: Extension Version String899428 +Node: Input Parsers900078 +Node: Output Wrappers908657 +Node: Two-way processors913050 +Node: Printing Messages915172 +Ref: Printing Messages-Footnote-1916249 +Node: Updating `ERRNO'916401 +Node: Accessing Parameters917140 +Node: Symbol Table Access918370 +Node: Symbol table by name918882 +Ref: Symbol table by name-Footnote-1921052 +Node: Symbol table by cookie921132 +Ref: Symbol table by cookie-Footnote-1925261 +Node: Cached values925324 +Ref: Cached values-Footnote-1928767 +Node: Array Manipulation928858 +Ref: Array Manipulation-Footnote-1929956 +Node: Array Data Types929995 +Ref: Array Data Types-Footnote-1932698 +Node: Array Functions932790 +Node: Flattening Arrays936556 +Node: Creating Arrays943389 +Node: Extension API Variables948184 +Node: Extension Versioning948820 +Node: Extension API Informational Variables950721 +Node: Extension API Boilerplate951807 +Node: Finding Extensions955641 +Node: Extension Example956188 +Node: Internal File Description956926 +Node: Internal File Ops960614 +Ref: Internal File Ops-Footnote-1972061 +Node: Using Internal File Ops972201 +Ref: Using Internal File Ops-Footnote-1974557 +Node: Extension Samples974823 +Node: Extension Sample File Functions976266 +Node: Extension Sample Fnmatch984739 +Node: Extension Sample Fork986465 +Node: Extension Sample Ord987679 +Node: Extension Sample Readdir988455 +Node: Extension Sample Revout989959 +Node: Extension Sample Rev2way990552 +Node: Extension Sample Read write array991242 +Node: Extension Sample Readfile993125 +Node: Extension Sample API Tests993880 +Node: Extension Sample Time994405 +Node: gawkextlib995712 +Node: Language History998093 +Node: V7/SVR3.1999615 +Node: SVR41001936 +Node: POSIX1003378 +Node: BTL1004386 +Node: POSIX/GNU1005120 +Node: Common Extensions1010655 +Node: Ranges and Locales1011762 +Ref: Ranges and Locales-Footnote-11016380 +Ref: Ranges and Locales-Footnote-21016407 +Ref: Ranges and Locales-Footnote-31016667 +Node: Contributors1016888 +Node: Installation1021184 +Node: Gawk Distribution1022078 +Node: Getting1022562 +Node: Extracting1023388 +Node: Distribution contents1025080 +Node: Unix Installation1030302 +Node: Quick Installation1030919 +Node: Additional Configuration Options1032881 +Node: Configuration Philosophy1034358 +Node: Non-Unix Installation1036700 +Node: PC Installation1037158 +Node: PC Binary Installation1038457 +Node: PC Compiling1040305 +Node: PC Testing1043249 +Node: PC Using1044425 +Node: Cygwin1048610 +Node: MSYS1049610 +Node: VMS Installation1050124 +Node: VMS Compilation1050727 +Ref: VMS Compilation-Footnote-11051734 +Node: VMS Installation Details1051792 +Node: VMS Running1053427 +Node: VMS Old Gawk1055034 +Node: Bugs1055508 +Node: Other Versions1059360 +Node: Notes1064675 +Node: Compatibility Mode1065334 +Node: Additions1066117 +Node: Accessing The Source1067044 +Node: Adding Code1068647 +Node: New Ports1074689 +Node: Derived Files1078824 +Ref: Derived Files-Footnote-11084132 +Ref: Derived Files-Footnote-21084166 +Ref: Derived Files-Footnote-31084766 +Node: Future Extensions1084864 +Node: Implementation Limitations1085445 +Node: Basic Concepts1086672 +Node: Basic High Level1087353 +Ref: figure-general-flow1087624 +Ref: figure-process-flow1088223 +Ref: Basic High Level-Footnote-11091452 +Node: Basic Data Typing1091637 +Node: Glossary1094992 +Node: Copying1120303 +Node: GNU Free Documentation License1157860 +Node: Index1182997 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 0e83b268..fb008d74 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -844,6 +844,7 @@ particular records in a file and perform operations upon them. @command{git} repository. * Future Extensions:: New features that may be implemented one day. +* Implementation Limitations:: Some limitations of the implementation. * Basic High Level:: The high level view. * Basic Data Typing:: A very quick intro to data types. @end detailmenu @@ -34279,6 +34280,7 @@ maintainers of @command{gawk}. Everything in it applies specifically to extensions. * Additions:: Making Additions To @command{gawk}. * Future Extensions:: New features that may be implemented one day. +* Implementation Limitations:: Some limitations of the implementation. @end menu @node Compatibility Mode @@ -34367,6 +34369,10 @@ to check out a copy using CVS, as follows: cvs -d:pserver:anonymous@@pserver.git.sv.gnu.org:/gawk.git co -d gawk master @end example +Note that this gateway is flakey; you may have better luck using +a more modern version control system like Bazaar, that has a Git +plug-in for working with Git repositories. + @node Adding Code @appendixsubsec Adding New Features @@ -34874,11 +34880,37 @@ Arnold Robbins Larry Wall @end quotation -The @file{TODO} file in the @command{gawk} distribution lists possible +The @file{TODO} file in the @command{gawk} Git repository lists possible future enhancements. Some of these relate to the source code, and others to possible new features. Please see that file for the list. @xref{Additions}, if you are interested in tackling any of the projects listed there. + +@node Implementation Limitations +@appendixsec Some Limitations of the Implementation + +This following table describes limits of @command{gawk} on a Unix-like +system (although it is variable even then). Other systems may have +different limits. + +@c @multitable {Number of file redirections} {min(number of processes per user, number of open files)} +@multitable @columnfractions .40 .60 +@headitem Item @tab Limit +@item Characters in a character class @tab 2^(number of bits per byte) +@item Length of input record @tab @code{MAX_INT } +@item Length of output record @tab Unlimited +@item Length of source line @tab Unlimited +@item Number of fields in a record @tab @code{MAX_LONG} +@item Number of file redirections @tab Unlimited +@item Number of input records in one file @tab @code{MAX_LONG} +@item Number of input records total @tab @code{MAX_LONG} +@item Number of pipe redirections @tab min(number of processes per user, number of open files) +@item Numeric values @tab Double-precision floating point (if not using MPFR) +@item Size of a field @tab @code{MAX_INT } +@item Size of a literal string @tab @code{MAX_INT } +@item Size of a printf string @tab @code{MAX_INT } +@end multitable + @c ENDOFRANGE impis @c ENDOFRANGE gawii |