gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-3819-g1570780
Date: Tue, 18 Dec 2018 13:30:38 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, feature/namespaces has been updated
       via  1570780af4e9009c3dd2c154134a3121eaccf0a8 (commit)
      from  304e9e556974cbaa4f5167c5689e2d432c517463 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=1570780af4e9009c3dd2c154134a3121eaccf0a8

commit 1570780af4e9009c3dd2c154134a3121eaccf0a8
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Dec 18 20:30:12 2018 +0200

    Add indexing to namespace chapter.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 10ad6a8..73fdea2 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,7 @@
 2018-12-18         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: Added more indexing to the debugger chapter.
+       Add more indexing to namespaces chapter, too.
 
 2018-12-12         Arnold D. Robbins     <address@hidden>
 
diff --git a/doc/gawk.info b/doc/gawk.info
index 6480809..2421363 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -22826,7 +22826,7 @@ with '-e' has such an implicit initial statement (*note 
Options::).
    Files included with '@include' (*note Include Files::) "push" and
 "pop" the current namespace.  That is, each '@include' saves the current
 namespace and starts over with an implicit '@namespace "awk"' which
-remains in effect until an explicit '@namespace' statement is seen.
+remains in effect until an explicit '@namespace' directive is seen.
 When 'gawk' finishes processing the included file, the saved namespace
 is restored and processing continues where it left off in the original
 file.
@@ -33641,6 +33641,7 @@ Index
 * /inet/... special files (gawk):        TCP/IP Networking.   (line   6)
 * /inet4/... special files (gawk):       TCP/IP Networking.   (line   6)
 * /inet6/... special files (gawk):       TCP/IP Networking.   (line   6)
+* ::, namespace separator:               Qualified Names.     (line   6)
 * ; (semicolon), AWKPATH variable and:   PC Using.            (line  13)
 * ; (semicolon), separating statements in actions: Statements/Lines.
                                                               (line  90)
@@ -33676,6 +33677,10 @@ Index
 * @include directive:                    Include Files.       (line   8)
 * @load directive:                       Loading Shared Libraries.
                                                               (line   8)
+* @namespace directive:                  Changing The Namespace.
+                                                              (line   6)
+* @namespace, no effect on BEGIN BEGINFILE, END, and ENDFILE: Changing The 
Namespace.
+                                                              (line  37)
 * [] (square brackets), regexp operator: Regexp Operators.    (line  56)
 * \ (backslash):                         Comments.            (line  50)
 * \ (backslash), as field separator:     Command Line Field Separator.
@@ -33916,6 +33921,11 @@ Index
 * awf (amazingly workable formatter) program: Glossary.       (line  23)
 * awk debugging, enabling:               Options.             (line 112)
 * awk language, POSIX version:           Assignment Ops.      (line 138)
+* awk namespace:                         Default Namespace.   (line   6)
+* awk namespace, identifier name storage: Internal Name Management.
+                                                              (line   6)
+* awk namespace, use for indirect function calls: Internal Name Management.
+                                                              (line   6)
 * awk profiling, enabling:               Options.             (line 270)
 * awk programs:                          Getting Started.     (line  12)
 * awk programs <1>:                      Executable Scripts.  (line   6)
@@ -34048,10 +34058,14 @@ Index
 * BEGIN pattern, pwcat program:          Passwd Functions.    (line 143)
 * BEGIN pattern, running awk programs and: Cut Program.       (line  63)
 * BEGIN pattern, TEXTDOMAIN variable and: Programmer i18n.    (line  60)
+* BEGIN, execution order not affected by @namespace: Changing The Namespace.
+                                                              (line  37)
 * BEGINFILE pattern:                     BEGINFILE/ENDFILE.   (line   6)
 * BEGINFILE pattern, Boolean patterns and: Expression Patterns.
                                                               (line  70)
 * beginfile() user-defined function:     Filetrans Function.  (line  62)
+* BEGINFILE, execution order not affected by @namespace: Changing The 
Namespace.
+                                                              (line  37)
 * Bentley, Jon:                          Glossary.            (line 204)
 * Benzinger, Michael:                    Contributors.        (line 100)
 * Berry, Karl:                           Acknowledgments.     (line  33)
@@ -34277,6 +34291,8 @@ Index
 * compiling gawk for VMS:                VMS Compilation.     (line   6)
 * compl:                                 Bitwise Functions.   (line  44)
 * complement, bitwise:                   Bitwise Functions.   (line  25)
+* component name:                        Qualified Names.     (line   6)
+* component names, naming rules:         Naming Rules.        (line   6)
 * compound statements, control statements and: Statements.    (line  10)
 * concatenating:                         Concatenation.       (line   9)
 * condition debugger command:            Breakpoint Control.  (line  54)
@@ -34332,6 +34348,8 @@ Index
 * ctime() user-defined function:         Function Example.    (line  74)
 * Curreli, Marco:                        Contributors.        (line 147)
 * currency symbols, localization:        Explaining gettext.  (line 104)
+* current namespace, pushing and popping: Changing The Namespace.
+                                                              (line  29)
 * current system time:                   Time Functions.      (line  68)
 * custom.h file:                         Configuration Philosophy.
                                                               (line  30)
@@ -34528,6 +34546,8 @@ Index
 * debugger, history expansion:           Readline Support.    (line   6)
 * debugger, how to start:                Debugger Invocation. (line   6)
 * debugger, instruction tracing:         Debugger Info.       (line  90)
+* debugger, interaction with namespaces: Namespace And Features.
+                                                              (line  17)
 * debugger, limitations:                 Limitations.         (line   6)
 * debugger, n command:                   Finding The Bug.     (line 105)
 * debugger, next command:                Finding The Bug.     (line 105)
@@ -34716,9 +34736,13 @@ Index
                                                               (line  44)
 * END pattern, operators and:            Using BEGIN/END.     (line  17)
 * END pattern, print statement and:      I/O And BEGIN/END.   (line  15)
+* END, execution order not affected by @namespace: Changing The Namespace.
+                                                              (line  37)
 * ENDFILE pattern:                       BEGINFILE/ENDFILE.   (line   6)
 * ENDFILE pattern, Boolean patterns and: Expression Patterns. (line  70)
 * endfile() user-defined function:       Filetrans Function.  (line  62)
+* ENDFILE, execution order not affected by @namespace: Changing The Namespace.
+                                                              (line  37)
 * endgrent() function (C library):       Group Functions.     (line 213)
 * endgrent() user-defined function:      Group Functions.     (line 216)
 * endpwent() function (C library):       Passwd Functions.    (line 208)
@@ -34803,6 +34827,8 @@ Index
                                                               (line   6)
 * extension API version:                 Extension Versioning.
                                                               (line   6)
+* extension API, interaction with namespaces: Namespace And Features.
+                                                              (line  22)
 * extension API, version number:         Auto-set.            (line 287)
 * extension example:                     Extension Example.   (line   6)
 * extension registration:                Registration Functions.
@@ -35304,6 +35330,8 @@ Index
 * implementation issues, gawk, debugging: Compatibility Mode. (line   6)
 * implementation issues, gawk, limits:   Getline Notes.       (line  14)
 * implementation issues, gawk, limits <1>: Redirection.       (line 129)
+* implicit namespace:                    Changing The Namespace.
+                                                              (line  25)
 * in operator:                           Comparison Operators.
                                                               (line  11)
 * in operator <1>:                       Precedence.          (line  82)
@@ -35564,6 +35592,7 @@ Index
 * minimum precision required by MPFR library: Auto-set.       (line 279)
 * mktime:                                Time Functions.      (line  25)
 * modifiers, in format specifiers:       Format Modifiers.    (line   6)
+* module, definition of:                 Global Namespace.    (line  17)
 * monetary information, localization:    Explaining gettext.  (line 104)
 * Moore, Duncan:                         Getline Notes.       (line  40)
 * MPFR, checking availability of:        Checking for MPFR.   (line   6)
@@ -35573,11 +35602,37 @@ Index
 * multiple-line records:                 Multiple Line.       (line   6)
 * n debugger command (alias for next):   Debugger Execution Control.
                                                               (line  43)
+* name managment:                        Internal Name Management.
+                                                              (line   6)
 * names, arrays/variables:               Library Names.       (line   6)
 * names, functions:                      Definition Syntax.   (line  24)
 * names, functions <1>:                  Library Names.       (line   6)
 * namespace issues:                      Library Names.       (line   6)
 * namespace issues, functions:           Definition Syntax.   (line  24)
+* namespace names, naming rules:         Naming Rules.        (line   6)
+* namespace, awk:                        Default Namespace.   (line   6)
+* namespace, default:                    Default Namespace.   (line   6)
+* namespace, definition of:              Global Namespace.    (line   6)
+* namespace, example code:               Namespace Example.   (line   6)
+* namespace, implicit:                   Changing The Namespace.
+                                                              (line  25)
+* namespace, pushing and popping:        Changing The Namespace.
+                                                              (line  29)
+* namespace, standard awk, global:       Global Namespace.    (line   6)
+* namespaces, backwards compatibility:   Namespace Summary.   (line  28)
+* namespaces, changing:                  Changing The Namespace.
+                                                              (line   6)
+* namespaces, interaction with debugger: Namespace And Features.
+                                                              (line  17)
+* namespaces, interaction with extension API: Namespace And Features.
+                                                              (line  22)
+* namespaces, interaction with pretty printer: Namespace And Features.
+                                                              (line   9)
+* namespaces, interaction with profiler: Namespace And Features.
+                                                              (line   9)
+* namespaces, qualified names:           Qualified Names.     (line   6)
+* namoing rules, namespaces and component names: Naming Rules.
+                                                              (line   6)
 * NetBSD:                                Glossary.            (line 746)
 * networks, programming:                 TCP/IP Networking.   (line   6)
 * networks, support for:                 Special Network.     (line   6)
@@ -35739,6 +35794,7 @@ Index
 * output, standard:                      Special FD.          (line   6)
 * p debugger command (alias for print):  Viewing And Changing Data.
                                                               (line  35)
+* package, definition of:                Global Namespace.    (line  17)
 * Papadopoulos, Panos:                   Contributors.        (line 131)
 * parent process ID of gawk process:     Auto-set.            (line 251)
 * parentheses (), in a profile:          Profiling.           (line 146)
@@ -35872,6 +35928,8 @@ Index
 * predefined variables, -v option, setting with: Options.     (line  45)
 * predefined variables, conveying information: Auto-set.      (line   6)
 * predefined variables, user-modifiable: User-modified.       (line   6)
+* pretty printer, interaction with namespaces: Namespace And Features.
+                                                              (line   9)
 * print debugger command:                Viewing And Changing Data.
                                                               (line  35)
 * print statement:                       Printing.            (line  16)
@@ -35924,6 +35982,8 @@ Index
                                                               (line 154)
 * PROCINFO, values of sorted_in:         Controlling Scanning.
                                                               (line  26)
+* profiler, interaction with namespaces: Namespace And Features.
+                                                              (line   9)
 * profiling awk programs:                Profiling.           (line   6)
 * profiling awk programs, dynamically:   Profiling.           (line 179)
 * program identifiers:                   Auto-set.            (line 193)
@@ -35954,6 +36014,8 @@ Index
 * q debugger command (alias for quit):   Miscellaneous Debugger Commands.
                                                               (line 100)
 * QSE awk:                               Other Versions.      (line 139)
+* qualified name, definition of:         Qualified Names.     (line   6)
+* qualified name, use of:                Qualified Names.     (line  17)
 * Quanstrom, Erik:                       Alarm Program.       (line   8)
 * question mark (?), ?: operator:        Precedence.          (line  91)
 * question mark (?), regexp operator:    Regexp Operators.    (line 111)
@@ -36534,6 +36596,7 @@ Index
 * unwatch debugger command:              Viewing And Changing Data.
                                                               (line  83)
 * up debugger command:                   Execution Stack.     (line  36)
+* uppercase names, namespace for:        Default Namespace.   (line  10)
 * user database, reading:                Passwd Functions.    (line   6)
 * user-defined functions:                User-defined.        (line   6)
 * user-defined, functions, counts, in a profile: Profiling.   (line 137)
diff --git a/doc/gawk.texi b/doc/gawk.texi
index ce8daa8..8b540ee 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -31684,8 +31684,6 @@ program being debugged, but occasionally it can.
 @node Namespaces
 @chapter Namespaces in @command{gawk}
 
address@hidden FIXME: Need to add indexing for this chapter
-
 This @value{CHAPTER} describes a feature that is specific to @command{gawk}.
 
 @menu
@@ -31703,6 +31701,8 @@ This @value{CHAPTER} describes a feature that is 
specific to @command{gawk}.
 @node Global Namespace
 @section Standard @command{awk}'s Single Namespace
 
address@hidden namespace, definition of
address@hidden namespace, standard @command{awk}, global
 In standard @command{awk}, there is a single, global, @dfn{namespace}.
 This means that @emph{all} function names and global variable names must
 be unique. For example, two different @command{awk} source files cannot
@@ -31715,6 +31715,8 @@ cause independently-developed library files to 
accidentally step on each
 other's ``private'' global variables
 (@pxref{Library Names}).
 
address@hidden package, definition of
address@hidden module, definition of
 Most other programming languages solve this issue by providing some kind
 of namespace control: a way to say ``this function is in namespace @var{xxx},
 and that function is in namespace @var{yyy}.''  (Of course, there is then
@@ -31729,6 +31731,10 @@ simple mechanism to put functions and global variables 
into separate namespaces.
 @node Qualified Names
 @section Qualified Names
 
address@hidden qualified name, definition of
address@hidden namespaces, qualified names
address@hidden @code{::}, namespace separator
address@hidden component name
 A @dfn{qualified name} is an identifier that includes a namespace name,
 the namespace separator @code{::}, and a @dfn{component} name.  For example, 
one
 might have a function named @code{posix::getpid()}.  Here, the namespace
@@ -31741,6 +31747,7 @@ Unlike C++, the @code{::} is @emph{not} an operator.  
No spaces are
 allowed between the namespace name, the @code{::}, and the component name.
 @end quotation
 
address@hidden qualified name, use of
 You must use qualified names from one namespace to access variables
 and functions in another.  This is especially important when using
 variable names to index the special @code{SYMTAB} array (@pxref{Auto-set}),
@@ -31749,11 +31756,15 @@ and when making indirect function calls 
(@pxref{Indirect Calls}).
 @node Default Namespace
 @section The Default Namespace
 
address@hidden namespace, default
address@hidden namespace, @code{awk}
address@hidden @code{awk} namespace
 The default namespace, not surprisingly, is @code{awk}.
 All of the predefined @command{awk} and @command{gawk} variables
 are in this namespace, and thus have qualified names like
 @code{awk::ARGC}, @code{awk::NF}, and so on.
 
address@hidden uppercase names, namespace for
 Furthermore, even when you have changed the namespace for your
 current source file (@pxref{Changing The Namespace}), @command{gawk}
 forces unqualified identifiers whose names are all uppercase letters
@@ -31764,6 +31775,8 @@ It also keeps your code looking natural.
 @node Changing The Namespace
 @section Changing The Namespace
 
address@hidden namespaces, changing
address@hidden @code{@@namespace} directive
 In order to set the current namespace, use an @code{@@namespace} directive
 at the top level of your program:
 
@@ -31788,25 +31801,37 @@ no concept of a ``current'' namespace once your 
program starts executing.
 Be sure you understand this.
 @end quotation
 
address@hidden namespace, implicit
address@hidden implicit namespace
 Each source file for @option{-i} and @option{-f} starts out with
 an implicit @samp{@@namespace "awk"}.  Similarly, each chunk of
 command-line code supplied with @option{-e} has such an implicit
 initial statement (@pxref{Options}).
 
address@hidden current namespace, pushing and popping
address@hidden namespace, pushing and popping
 Files included with @code{@@include} (@pxref{Include Files}) ``push''
 and ``pop'' the current namespace. That is, each @code{@@include} saves
 the current namespace and starts over with an implicit @samp{@@namespace
 "awk"} which remains in effect until an explicit @code{@@namespace}
-statement is seen.  When @command{gawk} finishes processing the included
+directive is seen.  When @command{gawk} finishes processing the included
 file, the saved namespace is restored and processing continues where it
 left off in the original file.
 
address@hidden @code{@@namespace}, no effect on @code{BEGIN} @code{BEGINFILE}, 
@code{END}, and @code{ENDFILE}
address@hidden @code{BEGIN}, execution order not affected by @code{@@namespace}
address@hidden @code{BEGINFILE}, execution order not affected by 
@code{@@namespace}
address@hidden @code{END}, execution order not affected by @code{@@namespace}
address@hidden @code{ENDFILE}, execution order not affected by 
@code{@@namespace}
 The use of @code{@@namespace} has no influence upon the order of execution
 of @code{BEGIN}, @code{BEGINFILE}, @code{END}, and @code{ENDFILE} rules.
 
 @node Naming Rules
 @section Namespace and Component Naming Rules
 
address@hidden namoing rules, namespaces and component names
address@hidden namespace names, naming rules
address@hidden component names, naming rules
 A number of rules apply to the namespace and component names, as follows.
 
 @itemize @bullet
@@ -31872,6 +31897,9 @@ $ @kbd{gawk -f systime.awk}
 @node Internal Name Management
 @section Internal Name Management
 
address@hidden name managment
address@hidden @code{awk} namespace, identifier name storage
address@hidden @code{awk} namespace, use for indirect function calls
 For backwards compatibility, all identifiers in the @code{awk} namespace
 are stored internally as unadorned identifiers (that is, without a
 leading @samp{awk::}).  This is mainly relevant
@@ -31902,6 +31930,7 @@ function compute()        @ii{This is really} 
report::compute()
 @node Namespace Example
 @section Namespace Example
 
address@hidden namespace, example code
 The following example is a revised version of the suite of routines
 developed in @ref{Passwd Functions}. See there for an explanation
 of how the code works.
@@ -32027,6 +32056,10 @@ $ @kbd{gawk -f ns_passwd.awk -f testpasswd.awk}
 This @value{SECTION} looks briefly at how the namespace facility interacts
 with other important @command{gawk} features.
 
address@hidden namespaces, interaction with profiler
address@hidden namespaces, interaction with pretty printer
address@hidden profiler, interaction with namespaces
address@hidden pretty printer, interaction with namespaces
 The profiler and pretty-printer (@pxref{Profiling}) have been enhanced
 to understand namespaces and the namespace naming rules presented in
 @ref{Naming Rules}.  In particular, the output groups functions in the same
@@ -32034,11 +32067,15 @@ namespace together, and has @code{@@namespace} 
directives in front
 of rules as necessary. This allows component names to be
 simple identifiers, instead of using qualified identifiers everywhere.
 
address@hidden namespaces, interaction with debugger
address@hidden debugger, interaction with namespaces
 Interaction with the debugger (@pxref{Debugging}) has not had to change
 (at least as of this writing).  Some of the internal byte codes changed
 in order to accommodate namespaces, and the debugger's @code{dump} command
 was adjusted to match.
 
address@hidden namespaces, interaction with extension API
address@hidden extension API, interaction with namespaces
 The extension API (@pxref{Dynamic Extensions}) has always allowed for
 placing functions into a different namespace, although this was not
 previously implemented.  However, the symbol lookup and symbol update
@@ -32075,6 +32112,7 @@ namespaces smoothly with their operation.  This applies 
most notably to
 the profiler / pretty-printer (@pxref{Profiling}) and to the extension
 facility (@pxref{Dynamic Extensions}).
 
address@hidden namespaces, backwards compatibility
 @item
 Overall, the namespace facility was designed and implemented such that
 backwards compatibility is paramount. Programs that don't use namespaces
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 724afd9..fb16364 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -30697,8 +30697,6 @@ program being debugged, but occasionally it can.
 @node Namespaces
 @chapter Namespaces in @command{gawk}
 
address@hidden FIXME: Need to add indexing for this chapter
-
 This @value{CHAPTER} describes a feature that is specific to @command{gawk}.
 
 @menu
@@ -30716,6 +30714,8 @@ This @value{CHAPTER} describes a feature that is 
specific to @command{gawk}.
 @node Global Namespace
 @section Standard @command{awk}'s Single Namespace
 
address@hidden namespace, definition of
address@hidden namespace, standard @command{awk}, global
 In standard @command{awk}, there is a single, global, @dfn{namespace}.
 This means that @emph{all} function names and global variable names must
 be unique. For example, two different @command{awk} source files cannot
@@ -30728,6 +30728,8 @@ cause independently-developed library files to 
accidentally step on each
 other's ``private'' global variables
 (@pxref{Library Names}).
 
address@hidden package, definition of
address@hidden module, definition of
 Most other programming languages solve this issue by providing some kind
 of namespace control: a way to say ``this function is in namespace @var{xxx},
 and that function is in namespace @var{yyy}.''  (Of course, there is then
@@ -30742,6 +30744,10 @@ simple mechanism to put functions and global variables 
into separate namespaces.
 @node Qualified Names
 @section Qualified Names
 
address@hidden qualified name, definition of
address@hidden namespaces, qualified names
address@hidden @code{::}, namespace separator
address@hidden component name
 A @dfn{qualified name} is an identifier that includes a namespace name,
 the namespace separator @code{::}, and a @dfn{component} name.  For example, 
one
 might have a function named @code{posix::getpid()}.  Here, the namespace
@@ -30754,6 +30760,7 @@ Unlike C++, the @code{::} is @emph{not} an operator.  
No spaces are
 allowed between the namespace name, the @code{::}, and the component name.
 @end quotation
 
address@hidden qualified name, use of
 You must use qualified names from one namespace to access variables
 and functions in another.  This is especially important when using
 variable names to index the special @code{SYMTAB} array (@pxref{Auto-set}),
@@ -30762,11 +30769,15 @@ and when making indirect function calls 
(@pxref{Indirect Calls}).
 @node Default Namespace
 @section The Default Namespace
 
address@hidden namespace, default
address@hidden namespace, @code{awk}
address@hidden @code{awk} namespace
 The default namespace, not surprisingly, is @code{awk}.
 All of the predefined @command{awk} and @command{gawk} variables
 are in this namespace, and thus have qualified names like
 @code{awk::ARGC}, @code{awk::NF}, and so on.
 
address@hidden uppercase names, namespace for
 Furthermore, even when you have changed the namespace for your
 current source file (@pxref{Changing The Namespace}), @command{gawk}
 forces unqualified identifiers whose names are all uppercase letters
@@ -30777,6 +30788,8 @@ It also keeps your code looking natural.
 @node Changing The Namespace
 @section Changing The Namespace
 
address@hidden namespaces, changing
address@hidden @code{@@namespace} directive
 In order to set the current namespace, use an @code{@@namespace} directive
 at the top level of your program:
 
@@ -30801,25 +30814,37 @@ no concept of a ``current'' namespace once your 
program starts executing.
 Be sure you understand this.
 @end quotation
 
address@hidden namespace, implicit
address@hidden implicit namespace
 Each source file for @option{-i} and @option{-f} starts out with
 an implicit @samp{@@namespace "awk"}.  Similarly, each chunk of
 command-line code supplied with @option{-e} has such an implicit
 initial statement (@pxref{Options}).
 
address@hidden current namespace, pushing and popping
address@hidden namespace, pushing and popping
 Files included with @code{@@include} (@pxref{Include Files}) ``push''
 and ``pop'' the current namespace. That is, each @code{@@include} saves
 the current namespace and starts over with an implicit @samp{@@namespace
 "awk"} which remains in effect until an explicit @code{@@namespace}
-statement is seen.  When @command{gawk} finishes processing the included
+directive is seen.  When @command{gawk} finishes processing the included
 file, the saved namespace is restored and processing continues where it
 left off in the original file.
 
address@hidden @code{@@namespace}, no effect on @code{BEGIN} @code{BEGINFILE}, 
@code{END}, and @code{ENDFILE}
address@hidden @code{BEGIN}, execution order not affected by @code{@@namespace}
address@hidden @code{BEGINFILE}, execution order not affected by 
@code{@@namespace}
address@hidden @code{END}, execution order not affected by @code{@@namespace}
address@hidden @code{ENDFILE}, execution order not affected by 
@code{@@namespace}
 The use of @code{@@namespace} has no influence upon the order of execution
 of @code{BEGIN}, @code{BEGINFILE}, @code{END}, and @code{ENDFILE} rules.
 
 @node Naming Rules
 @section Namespace and Component Naming Rules
 
address@hidden namoing rules, namespaces and component names
address@hidden namespace names, naming rules
address@hidden component names, naming rules
 A number of rules apply to the namespace and component names, as follows.
 
 @itemize @bullet
@@ -30885,6 +30910,9 @@ $ @kbd{gawk -f systime.awk}
 @node Internal Name Management
 @section Internal Name Management
 
address@hidden name managment
address@hidden @code{awk} namespace, identifier name storage
address@hidden @code{awk} namespace, use for indirect function calls
 For backwards compatibility, all identifiers in the @code{awk} namespace
 are stored internally as unadorned identifiers (that is, without a
 leading @samp{awk::}).  This is mainly relevant
@@ -30915,6 +30943,7 @@ function compute()        @ii{This is really} 
report::compute()
 @node Namespace Example
 @section Namespace Example
 
address@hidden namespace, example code
 The following example is a revised version of the suite of routines
 developed in @ref{Passwd Functions}. See there for an explanation
 of how the code works.
@@ -31040,6 +31069,10 @@ $ @kbd{gawk -f ns_passwd.awk -f testpasswd.awk}
 This @value{SECTION} looks briefly at how the namespace facility interacts
 with other important @command{gawk} features.
 
address@hidden namespaces, interaction with profiler
address@hidden namespaces, interaction with pretty printer
address@hidden profiler, interaction with namespaces
address@hidden pretty printer, interaction with namespaces
 The profiler and pretty-printer (@pxref{Profiling}) have been enhanced
 to understand namespaces and the namespace naming rules presented in
 @ref{Naming Rules}.  In particular, the output groups functions in the same
@@ -31047,11 +31080,15 @@ namespace together, and has @code{@@namespace} 
directives in front
 of rules as necessary. This allows component names to be
 simple identifiers, instead of using qualified identifiers everywhere.
 
address@hidden namespaces, interaction with debugger
address@hidden debugger, interaction with namespaces
 Interaction with the debugger (@pxref{Debugging}) has not had to change
 (at least as of this writing).  Some of the internal byte codes changed
 in order to accommodate namespaces, and the debugger's @code{dump} command
 was adjusted to match.
 
address@hidden namespaces, interaction with extension API
address@hidden extension API, interaction with namespaces
 The extension API (@pxref{Dynamic Extensions}) has always allowed for
 placing functions into a different namespace, although this was not
 previously implemented.  However, the symbol lookup and symbol update
@@ -31088,6 +31125,7 @@ namespaces smoothly with their operation.  This applies 
most notably to
 the profiler / pretty-printer (@pxref{Profiling}) and to the extension
 facility (@pxref{Dynamic Extensions}).
 
address@hidden namespaces, backwards compatibility
 @item
 Overall, the namespace facility was designed and implemented such that
 backwards compatibility is paramount. Programs that don't use namespaces

-----------------------------------------------------------------------

Summary of changes:
 doc/ChangeLog   |  1 +
 doc/gawk.info   | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 doc/gawk.texi   | 44 +++++++++++++++++++++++++++++++++++---
 doc/gawktexi.in | 44 +++++++++++++++++++++++++++++++++++---
 4 files changed, 147 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]