All
Enclosed are the minutes from this weeks call
regards
Andrew
-------

Minutes of the 8th February 2018 Teleconference     Austin-854 Page 1 of 1
Submitted by Andrew Josey, The Open Group. 10th February 2018

Attendees:
    Mark Ziegast, SHware Systems Dev.
    Jeorg Schilling, FOKUS Fraunhofer
    Don Cragun, IEEE PASC OR
    Nick Stoughton, USENIX, ISO/IEC JTC 1/SC 22 OR
    Geoff Clare, The Open Group
    Andrew Josey, The Open Group
    Martin Rehak, Oracle, The Open Group OR
    David Clissold, IBM
    Eric Blake, Red Hat

* General news 

IEEE has formally published 2017 edition, so we have until 2027 to
get Issue 8 out :-) The Open Group PDFs and HTML will follow soon.

* Outstanding actions

( Please note that this section has been flushed to shorten the minutes -
to locate the previous set of outstanding actions, look to the minutes
from 28 Jan 2016)

Bug 0000249: Add standard support for $'...' in shell   Reopened
http://austingroupbugs.net/bug_view_page.php?bug_id=249
We will return to bug 249 on a future call.

Bug 0000953: Alias expansion is under-specified   Was Accepted as Marked
http://austingroupbugs.net/view.php?id=953
Richard has an action to propose new wording to discuss in a future telecon.

* Current Business

Bug 1068: Binding to a system-assigned port. OPEN
http://austingroupbugs.net/bug_view_page.php?bug_id=1068

There was a previous action from the ealier to find a volunteer to
liaise with IETF.  Andrew reported he had one volunteer, and has
forwarded the details to the Core team.

We did not discuss this, but should pick up on a future call.

Bug 1072: m4 ifelse argument expansion clarification Accept as Marked
http://austingroupbugs.net/view.php?id=1072       

An interpretation is required.

Interpretation response:

The standard is unclear on this issue, and no conformance distinction
can be made between alternative implementations based on this. This
is being referred to the sponsor.

Rationale:

All known m4 implementations perform macro expansion and argument
collection in the same manner; but the wording used in the standard
did not give enough details on how this occurs.

Notes to the Editor (not part of this interpretation):

All page and line numbers are for the 2016 edition.

On page 2934 lines 97081-97090 change:
    The m4 utility shall compare each token from the input against
    the set of built-in and user-defined macros. If the token matches
    the name of a macro, then the token shall be replaced by the
    macro’s defining text, if any, and rescanned for matching macro
    names. Once no portion of the token matches the name of a macro,
    it shall be written to standard output. Macros may have arguments,
    in which case the arguments shall be substituted into the
    defining text before it is rescanned.

    Macro calls have the form:

    name(arg1, arg2, ..., argn)

    Macro names shall consist of letters, digits, and underscores,
    where the first character is not a digit. Tokens not of this
    form shall not be treated as macros.

to:
    The m4 utility shall compare each token from the input against
    the set of built-in and user-defined macros. If the token matches
    the name of a macro, then the token shall be replaced by the
    macro’s defining text, if any, then scanning for tokens shall
    resume at the start of the macro's defining text concatenated
    with the subsequent input. If a token does not match the name
    of a macro, it shall be written to standard output. Macros may
    have arguments, in which case the arguments shall be substituted
    into the defining text before it is rescanned.

    No special meaning shall be given to characters enclosed between
    matching left and right quoting strings, other than identifying
    nested quoting while finding the matching right quoting string,
    but the outermost quoting strings shall themselves be discarded.
    By default, the left quoting string consists of a grave accent
    (backquote) and the right quoting string consists of an acute
    accent (single-quote); see also the changequote macro.

    Comments are written but not scanned for matching macro names;
    by default, the begin-comment string consists of the <number-sign>
    character and the end-comment string consists of a <newline>.
    See also the changecom and dnl macros.

    Name tokens shall consist of the longest possible sequence of
    letters, digits, and underscores, where the first character is
    not a digit. Tokens not of this form shall not be treated as
    name tokens. A macro call is a name token that matches the name
    of a built-in or user-defined macro. Macro calls can have either
    of the following forms, which shall be distinguished by whether
    or not the macro name is immediately followed by a <left-parenthesis>:

        name

        name(arg1, arg2, ..., argn)

On page 2934 lines 97094-97106 change:
    If a macro name is followed by a <left-parenthesis>, its arguments
    are the <comma>-separated tokens between the <left-parenthesis>
    and the matching <right-parenthesis>. Unquoted white-space
    characters preceding each argument shall be ignored. All other
    characters, including trailing white-space characters, are
    retained. <comma> characters enclosed between <left-parenthesis>
    and <right-parenthesis> characters do not delimit arguments.

    Arguments are positionally defined and referenced. The string
    "<tt>$1</tt>" in the defining text shall be replaced by the
    first argument. Systems shall support at least nine arguments;
    only the first nine can be referenced, using the strings
    "<tt>$1</tt>" to "<tt>$9</tt>", inclusive. The string "<tt>$0</tt>"
    is replaced with the name of the macro. The string "<tt>$#</tt>"
    is replaced by the number of arguments as a string. The string
    "<tt>$*</tt>" is replaced by a list of all of the arguments,
    separated by <comma> characters. The string "<tt>$@</tt>" is
    replaced by a list of all of the arguments separated by <comma>
    characters, and each argument is quoted using the current left
    and right quoting strings. The string "<tt>${</tt>" produces
    unspecified behavior.

to:
    If a macro name is followed by a <left-parenthesis>, the
    subsequent text shall be tokenized and expanded until a token
    is encountered that is not a quoted string and whose expansion
    includes a matching unquoted <right-parenthesis>. The expanded
    text between the <left-parenthesis> and the matching unquoted
    <right-parenthesis> is the macro's argument text. An unquoted
    <comma> character within the macro's argument text shall mark
    the end of one argument and the beginning of the next argument
    unless the unquoted <comma> is enclosed within a nested unquoted
    <left-parenthesis>, <right-parenthesis> pair. The unquoted
    <comma> characters that separate the arguments, and any unquoted
    whitespace characters at the beginning of each argument, shall
    be discarded. All other characters in the macro's argument text,
    including any whitespace characters at the end of an argument
    and any nested parenthesized text, shall be retained. The input
    text containing the macro name, the following <left-parenthesis>,
    and all tokens up to and including the token whose expansion
    contained the matching unquoted <right-parenthesis> shall be
    replaced, and tokenization shall resume on the result of
    performing argument substition on the macro's defining text
    followed by any expanded text that followed the matching unquoted
    <right-parenthesis>. Otherwise, the macro name was not followed
    by a <left-parenthesis>, and tokenization shall resume on the
    result of performing argument substitution with zero arguments
    on the macro's defining text.

    During argument substitution, arguments shall be positionally
    defined and referenced. The string "<tt>$1</tt>" in the defining
    text shall be replaced by the first argument. Systems shall
    support at least nine arguments; only the first nine can be
    referenced, using the strings "<tt>$1</tt>" to "<tt>$9</tt>",
    inclusive. The string "<tt>$0</tt>" shall be replaced with the
    name of the macro. The string "<tt>$#</tt>" shall be replaced
    by the number of arguments as a minimal string of decimal digits
    ('0' if the macro was invoked without being followed by a
    <left-parenthesis>, otherwise 1 more than the number of unquoted
    <comma> characters that divided arguments in the macro's argument
    text). The string "<tt>$*</tt>" shall be replaced by a list of
    all of the arguments, separated by <comma> characters. The
    string "<tt>$@</tt>" shall be replaced by a list of all of the
    arguments separated by <comma> characters, and each argument
    shall be quoted using the current left and right quoting strings.
    The string "<tt>${</tt>" produces unspecified behavior.

On page 2934, delete lines 97110-97116:

    No special meaning is given to any characters enclosed between
    matching left and right quoting strings, but the quoting strings
    are themselves discarded. By default, the left quoting string
    consists of a grave accent (backquote) and the right quoting
    string consists of an acute accent (single-quote); see also the
    changequote macro.

    Comments are written but not scanned for matching macro names;
    by default, the begin-comment string consists of the <number-sign>
    character and the end-comment string consists of a <newline>.
    See also the changecom and dnl macros.

(as these lines were moved and reworded in the earlier changeset at line 97081)

On page 2935 line 97129 (changecom), change:
    The behavior is unspecified if either argument is provided but
    null.

to:
    The behavior is unspecified if either argument is provided but
    null, or if either argument includes letters, digits, underscore,
    or <left-parenthesis>.


On page 2935 line 97133 (changequote), change:
    The behavior is unspecified if there is a single argument or
    either argument is null.

to:
    The behavior is unspecified if there is a single argument, or
    if either argument is null or includes letters, digits, underscore,
    or <left-parenthesis>.

On page 2936 line 97206 (ifelse), remove the following parenthetical remark:

    (after macro expansion of both arguments)

On page 2940, in the EXAMPLES section, after line 97369, add the
following (note to editor: feel free to use bullets or other list
identifiers instead of numbers, if that is better):

    In the following six examples, an additional line is evaluated
    after this prologue of three definitions:

    define(`macro', `argument 2 is :`$2':, called with $# arguments')dnl
    define(`argumentsa', `Arguments')dnl
    define(`a', `.')dnl

    1. The additional line:

    macro`'a

    produces:

    argument 2 is ::, called with 0 arguments.

    Explanation: macro is called with 0 arguments (as shown by the
    $# substitution), the substitution of $2 is the empty string,
    and the empty quoted string after the expansion text prevents
    concatenation with the subsequent "a", which in turn lets macro
    a expand to the final <tt>.</tt>.

    2. The additional line:
     

    macro()a

    produces:

    argument 2 is ::, called with 1 Arguments


    Explanation: macro is called with one (empty string) argument;
    then the defining text ending in "arguments" is concatenated
    with the subsequent "a" to form the next macro name argumentsa
    which is expanded into <tt>Arguments</tt> before the final
    output.

    3. The additional line:
     
    macro(  1, ( ,2,) ,  `3')

    produces:

    argument 2 is :( ,2,) :, called with 3 arguments

    Explanation: Leading (but not internal or trailing) space is
    removed before the argument substituted for $2, and the unquoted
    commas embedded in parentheses do not delineate arguments.

    4. The additional line:
     
    macro(  `1', `mac2(,`2',)', `3')

    produces:

    argument 2 is :mac2(,`2',):, called with 3 arguments

    Explanation: Regardless of whether mac2 is a defined macro,
    quoting in the macro call prevents interpretation of "mac2"
    during argument collection, and the quoting in the defining
    text of macro prevents interpretation of "mac2" in the substitution
    of $2 during rescan of the output of macro.

    5. The additional line:
     
    undefine(`mac2')macro(  1, mac2(,2,), 3)

    produces:

    argument 2 is :mac2(,2,):, called with 3 arguments

    Explanation: mac2 is not a macro name when scanned during
    argument collection, so it and the subsequent parenthesized
    text is used literally.

    6. The additional line:
     
    define(`mac2', `hi $@')macro(  1, mac2( ,2,), 3)

    produces:
     
    argument 2 is :hi :, called with 5 arguments

    Explanation: mac2 is a macro name, so collecting the arguments
    to macro requires scanning the output of mac2(,2,) (the text
    <tt>hi `',`2',`'</tt> after substitution of $@); this output
    contains unquoted commas causing additional arguments to be
    visible to macro.

Next Steps
----------
The next call is on Feb 15th, 2018 (a Thursday)

Calls are anchored on US time. (8am Pacific) 

This call will be for the regular 90 minutes.

http://austingroupbugs.net

An IRC channel will be available for the meeting
irc://irc.freenode.net/austingroupbugs

An etherpad is usually up for the meeting, with a URL using the date format as 
below:

https://posix.rhansen.org/p/201x-mm-dd
username=posix password=2115756#

--------
Andrew Josey                    The Open Group
Austin Group Chair          
Email: a.jo...@opengroup.org 
Apex Plaza, Forbury Road,Reading,Berks.RG1 1AX,England
Tel:+44 118 9023044





Reply via email to