[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-3819-g1570780,
Arnold Robbins <=