\documentclass[nocolor,memo]{j3}
\renewcommand{\hdate}{25 April 2007}
\renewcommand{\vers}{J3/07-190r1}
\usepackage{lineno}
\usepackage{longtable}
\usepackage{xr}
\externaldocument{007}
\input txtest
\begin{document}
\vspace{-10pt}
\begin{tabbing}
Subject: \hspace*{0.25in}\=Comments on Clause 7\\
From: \>Van Snyder\\
\end{tabbing}
\edits{07-007r1}
\stdref{142:11-22}[It is confusing and verbose to say that the operation
involves the specified list of operators, and then say that the operator
is the operator in the operation. Why not define the operators first, as
at [142:23-30]? Editor: Replace the paragraphs:]
A \tdef{numeric intrinsic operator} is +, --, *, /, or **. A \tdef{numeric
intrinsic operation} is an intrinsic operation for which the
\si{intrinsic-operator} is a numeric intrinsic operator and the operands
are of numeric type.
The \tdef{character intrinsic operator} is //. The \tdef{character
intrinsic operation} is the intrinsic operation for which the
\si{intrinsic-operator} is the character intrinsic operator and the
operands are of type chaacter.
A \tdef{logical intrinsic operator} is .AND., .OR., .XOR., .NOT., .EQV.,
or .NEQV.. A \tdef{logical intrinsic operation} is an intrinsic operation
for which the \si{intrinsic-operator} is a logical intrinsic operator and
both operands are of type logical.
A \tdef{bits intrinsic operator} is //, .AND., .OR., .XOR., .NOT., .EQV.,
or .NEQV.. A \tdef{bits intrinsic operation} is an intrinsic operation for
which the \si{intrinsic-operator} is a bits intrinsic operator and at
least one operand is of type bits.
\stdref{144:2-3}[Doesn't belong here; probably shouldn't even be normative.
Editor: Delete the paragraph.]
\stdref{144:4-12}[Why is [144:4-9] so long winded? Editor: Replace the paragraph:]
If both operands of a division operation are integers the result $q$ is
the integer such that $x_1 / x_2 = q + r$ where $r$ is an integer such
that $0 \leq |r| < |x_2|$ and the sign of $r$ is the same as the sign of
$q$.
[Then move 7.1.5.2.2 and 7.1.5.2.3 to [145:3-].]
\stdref{145: Note 7.19}[To make up for deleting [144:2-3] insert the following
after ``A / 5.0'':]
\hspace*{1in}A ** B\hspace*{2in}1/(A ** (-B))\\
\hspace*{1in}A ** B\hspace*{2in}(1/A) ** (-B)\\
For integer A and B with nonzero A and negative B, either of the last two
alternative forms show that the result is zero. The final alternative form is
not recommended for real A if B is large and sufficiently negative that $\log_2
|B|$ is greater than the number of guard digits.
\stdref{146:7-9}[Paragraph concerns evaluation, not interpretation, and
it's confusing. Editor: Move ``with the value of $x_2$'' before
``concatenated'', than move the paragraph to [146:10+].]
\stdref{147:1, Table 7.8}[Paragraph and Table 7.8 concerns evaluation, not
interpretation, and it's confusing. Editor: Move [147:2] to [147:1-].]
\stdref{148:1-5, Table 7.10}[Paragraphs and Table 7.19 concern evaluation, not
interpretation, and it's confusing. Editor: Move [148:6] to [148:1-].]
\stdref{149:10-11}[Paragraph is about evaluation, not interpretation,
notwithstanding that it says ``interpreted\dots.'' Editor: Replace ``is
interpreted as having'' by ``has'', then move the paragraph to [150:15+]
\stdref{149:16-17}[Paragraph is about evaluation, not interpretation,
notwithstanding that it says ``interpreted\dots.'' Editor: Replace ``is
interpreted as having'' by ``has'', then move the paragraph to [150:15+]
\stdref{150:10-14}[Paragraphs are about evaluation, not interpretation,
notwithstanding that they say ``interpreted\dots.'' Editor: Replace ``is
interpreted as having'' by ``has'', then move the paragraphs to [150:15+]
\stdref{152: Note 7.30}[Editor: Replace ``often'' by ``obviously''.]
\stdref{153:1+}[Needs an ISO-mandated subclause heading.]
\stdref{153:6-8}[Editor: Replace ``type parameters and the declared and
dynamic types'' by ``declared and dynamic type and type parameters'';
replace ``type parameters and the declared and dynamic type'' by
``declared and dynamic type and type parameters''.]
\stdref{153:34-154:2}[Editor: Move to [120:4+], where it belongs.]
\stdref{154:3}[Editor: Insert ``(6.2.2.2.2)'' after ``subscript''.]
\stdref{155:20-21}[Editor: Insert ``an initialization expression or''
before ``an expression'', insert ``or defined by a specification
function'' after ``intrinsic'' (this is a little bit of feature creep),
delete item (1) from the list.]
\stdref{156:18}[Can't reference both functions at once. Editor: Replace
``functions'' by ``function''.]
\stdref{156: Note 7.34}[Creating a new instance while construction of one
is in progress shouldn't really be a problem. The real problem is that
the recursion can't stop. Editor: Replace ``The prohibition \dots\
progress'' by ``Recursion would not terminate and therefore is
prohibited.''.]
\stdref{156:35}[A module procedure is in a modle, so this applies to
module procedures, too. Editor: Insert ``the \si{specification-part} of''
before ``a module''.]
\stdref{157:10-11}[One might momentarily wonder what is ``a reference to
an initialization target?'' Editor: Exchange ``a reference to the
intrinsic function NULL'' and ``an initialization target''.]
\stdref{157:23-28}[Editor: Move item (8) and its subitems to [157:12+] to
make the structure parallel to the list in 7.1.11.]
\stdref{158:12}[A module procedure is in a modle, so this applies to
module procedures, too. Editor: Insert ``the \si{specification-part} of''
before ``a module''.]
\stdref{158: Note 7.36}[Replace ``explicit-shaped'' by ``explicit-shape''
in the last line of the note.]
\stdref{158:16+}[Needs an ISO-mandated subclause heading.]
\stdref{158:17}[The subclause is about assignment statements, not
variables; the assignment statement ought to be the subject. Editor:
Replace the paragraph:]
Execution of an assignment statement can define or redefine the value of a
variable.
[not ``defines or redefines'' because zero-size arrays or zero-length
strings don't get defined or redefined.]
\stdref{159:7}[Editor: Replace ``\si{variable}'' by ``the variable''.]
\stdref{161: Note 7.40}[Editor: In he antepenultimate line of Note 7.40
replace ``will cause'' by ``causes''; in the penultimate line replace
``will be'' by ``is''.]
\stdref{161: Note 7.42}[Every character kind has a blank, so the blank
padding character is kind dependent, not procesor dependent. Editor:
Delete the first sentence.]
\stdref{163:22}[Editor: Replace ``operation'' by ``assignment''.]
\stdref{163:26}[In dozens of places in the last several pages, we were
able to get by with ``the variable'' instead of ``the variable in the
assignment.'' Editor: Delete ``in the assignment''.]
\stdref{165:3}[Editor: Insert ``(6.2.2.2.2)'' after ``subscript''.]
\stdref{166:16}[Editor: Delete ``no'' and insert ``not'' before
``specified''.]
\stdref{169:16}[Editor: Insert ``control'' after ``pending''.]
\stdref{172:1}[Editor: Replace ``variable that'' by ``variable. If
\si{type-spec} appears the variable is an integer of the specified kind.
Otherwise it''.]
\stdref{172:Note 7.58}[Make the note more illustrative: Replace ``{\tt
INTEGER :: X = -1}'' by ``{\tt REAL :: X = -1.5}'', insert ``{\tt INTEGER
::}'' before ``{\tt X}'' in the {\tt FORALL} statement, replace ``-1'' by
``-1.5'' in the text after the code.]
\stdref{174: Note 7.61}[Editor: Replace ``will be'' by ``are'' in the
text between the input and output.]
%=======================================================================
\section{Comments and questions without edits}
\stdref{149:4}What happens when an object is converted to type bits?
Where is ``converted'' defined? Perhaps ``converted to'' should be
``interpreted as if it were of''.
\stdref{154:18-155:6}It is confusing to specify some of the material on
type, type parameters and shape here, some in 7.1.5.*, and some in both
places.
\stdref{7.2}The term ``variable'' and the syntex term ``\si{variable}''
appear to be used randomly. Do we want to be consistent?
\stdref{163:2+}Do we need to say something about intrinsic assignment of
derived-type objects from one image to another if the type has pointer
components? Either ``it's prohibited'' or ``pointer components become
undefined?''
\stdref{165:25}There's no normative mention here of pointer assignment
arising from intrinsic derived-type assignment. In light of C725 at
[164:29] it appears that it's impossible for a pointer and target to be on
different images. How does it come about?
\stdref{166:29-33}Should these paragraphs be constraints, say C733a and
C733b?
\stdref{171:12}What is the point of C746? What's the problem with
a left-hand function in a \si{forall-assignment-stmt}, so long as it's
pure? Isn't that already covered by C744?
\stdref{172:11}There's no requirement that if functions appear in the
\si{subscript}s or \si{stride} they shall be pure, or that one shall not
depend upon another, so how can we get away with evaluating them in any
order?
\stdref{176:4-5}Shouldn't this be a constraint?
%=======================================================================
\section{Does this need an interp?}
\stdref{155:15-17}The requirement ought to be a constraint. Either way,
it prevents using length type parameters within type definitions.
Conflicts with C453 [66:1-3]. C540 [94:11-12] also prevents using
specification expressions for component bounds.
\stdref{171:2}Do we need ``and \si{forall-triplet-spec}'' after
``\si{scalar-mask-expr}''?
\stdref{171:12+}It appears to be permitted to have identical
\si{index-name}s in the same FORALL statement. Shouldn't there be a
constraint against it?
\label{lastpage}
\end{document}