From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Fri Jun  8 23:11:15 2012
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id A582735696A; Fri,  8 Jun 2012 23:11:15 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
X-Greylist: delayed 344 seconds by postgrey-1.34 at www5.open-std.org; Fri, 08 Jun 2012 23:11:14 CEST
Received: from exprod6og112.obsmtp.com (exprod6og112.obsmtp.com [64.18.1.29])
	by www.open-std.org (Postfix) with ESMTP id 6C7473568BD
	for <sc22wg5@open-std.org>; Fri,  8 Jun 2012 23:11:13 +0200 (CEST)
Received: from CFWEX01.americas.cray.com ([136.162.34.11]) (using TLSv1) by exprod6ob112.postini.com ([64.18.5.12]) with SMTP
	ID DSNKT9JqcS7rQUEn/bVCX4dMUpMsEtwKsP2L@postini.com; Fri, 08 Jun 2012 14:11:14 PDT
Received: from fortran.us.cray.com (172.31.19.200) by
 CFWEX01.americas.cray.com (172.30.88.25) with Microsoft SMTP Server id
 14.2.247.3; Fri, 8 Jun 2012 16:02:56 -0500
Message-ID: <4FD26884.9040901@cray.com>
Date: Fri, 8 Jun 2012 16:03:00 -0500
From: Bill Long <longb@cray.com>
Reply-To: <longb@cray.com>
Organization: Cray Inc.
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: fortran standards email list for J3 <j3@j3-fortran.org>
CC: "Whitlock, Stan" <stan.whitlock@intel.com>, Malcolm Cohen
	<malcolm@nag-j.co.jp>, sc22wg5 <sc22wg5@open-std.org>
Subject: Re: (j3.2006) (SC22WG5.4692) J3/12-147 for meeting #198: interp letter
 ballot #25 due 8-Jun-2012
References: <20120507002039.DA2493568A2@www.open-std.org>
In-Reply-To: <20120507002039.DA2493568A2@www.open-std.org>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

Hi Stan,

Below is my ballot.  I've copied you and Malcolm separately in case the 
j3 server is unavailable.  Sorry if you get duplicates.

Cheers,
Bill



Vote from Bill Long on Interp Ballot 25:

Yes  No   Number     Title



-Y-  ---  F03/0017   Dummy procedure pointers and PRESENT

---  -N-  F03/0018   Multiple identical specific procedures in 
type-bound generic interfaces

-Y-  ---  F03/0019   Multiple identical specific procedures in generic 
interface blocks

-Y-  ---  F03/0021   What kind of token is a stop code?

-Y-  ---  F03/0046   Unlimited polymorphic pointers in common blocks

-C-  ---  F03/0053   The BIND attribute for C_PTR and C_FUNPTR

-Y-  ---  F03/0065   Relational equivalence

-C-  ---  F03/0084   IEEE_SET_ROUNDING_MODE in a subroutine

-Y-  ---  F03/0096   Can a read statement change the unit value?

-Y-  ---  F03/0103   Restrictions on dummy arguments not present for 
polymorphic type or parameterized derived type

-Y-  ---  F03/0116   indistinguishable specifics for a generic interface 
with use association

-Y-  ---  F03/0118   Are lower bounds of assumed-shape arrays assumed?

-Y-  ---  F03/0120   When are parameterized sequence types the same type?

-Y-  ---  F03/0121   Precise FP semantics of the REAL intrinsic

-Y-  ---  F08/0004   Is TARGET argument of ASSOCIATED a pointer or 
nonpointer dummy?

-C-  ---  F08/0008   IEEE exceptions for intrinsic functions

-Y-  ---  F08/0031   PURE INTENT(OUT) finalization

-Y-  ---  F08/0032   PURE FUNCTION result finalization

-Y-  ---  F08/0038   Are pointless restrictions on DIM arguments intended?

---  -N-  F08/0040   MOVE_ALLOC for coarrays

-Y-  ---  F08/0042   SOURCE= questions

-C-  ---  F08/0043   Executing a type-bound procedure on a coindexed object

-Y-  ---  F08/0048   Sequence association for coarrays

-Y-  ---  F08/0054   Requirements for needing an explicit interface

-C-  ---  F08/0055   G editing for reals

-Y-  ---  F08/0056   Non-polymorphic ALLOCATE with polymorphic SOURCE=

-Y-  ---  F08/0057   Interoperability with empty types

-Y-  ---  F08/0058   ENTRY point RESULT variable

-C-  ---  F08/0059   Auto-targetting requirements

-Y-  ---  F08/0060   Procedure pointer assignment with an EXTERNAL target

-Y-  ---  F08/0061   Description of the CONTIGUOUS attribute misworded?

-Y-  ---  F08/0062   Mixing default initialization with DATA initialization

-Y-  ---  F08/0063   G editing to a narrow output field

-Y-  ---  F08/0064   STATUS of GET_ENVIRONMENT_VARIABLE

-Y-  ---  F08/0065   Should certain procedures in intrinsic modules be pure?

-Y-  ---  F08/0066   Are certain expressions with pointer initialization 
constant?

-C-  ---  F08/0067   Passing arrays of extended type objects

-Y-  ---  F08/0068   Pointer association and extended type arrays

-Y-  ---  F08/0069   Which part of an effective argument becomes undefined?

-Y-  ---  F08/0070   Finalization of INTENT(OUT) arguments

-Y-  ---  F08/0071   Vector subscript target

-Y-  ---  F08/0072   Final subroutines with corank

-C-  ---  F08/0073   Polymorphic auto-targetting


Reason for F03/0018 NO vote:

Generic resolution is based on differences between the interfaces of
the specific procedures in the generic interface.  The interface for a
specific type-bound procedure is that of the <procedure-name>
(4.5.5p6), not that of the <binding-name>.  In the examples, there is
only one <procedure-name> (myadd). Ambiguity is not possible if there
is only one specific interface.


Comment for F03/0053:

I agree with John's comment that allowing private components in a
BIND(C) type was unwise. Not only does this circumvent the goal of
private components, but it would also interfere with a useful addition
to interoperability should C ever introduce an idea similar to private
struct members. The intent of the original C interoperability was to
focus on areas where C and Fortran had comparable features. The list
in 15.3.4p1 disallows most of the differences - were private
components just overlooked?


Comment for F03/0084:

Is there a missing line in the example code?  It seems like there
should have been

   CALL IEEE_SET_ROUNDING_MODE (IEEE_UP)
just before the line
   Z1 = X*Y

Otherwise the code seems pointless since round-to-nearest is the
default on most systems.


Comment for F08/0008:

The new paragraph at [325:12+] seems to lack context at the beginning.
I assume we mean "is assigned or returned" as the result of invoking
an intrinsic procedure.


Reason for F08/0040 NO vote:

An image control statement is sufficient to separate execution
segments, but does not necessarily imply synchronization.  But that is
needed in the case where MOVE_ALLOC has coarray arguments and at least
one of them is allocated on entry.  You need all of the images to call
the routine; effectively there is an internal SYNC ALL.
Otherwise, if image X is calling MOVE_ALLOC while image Y is trying to
reference the coarray being "moved", the references would likely be to
the wrong memory locations. All of the images need to collectively
agree on the new memory location.  The edits do not seem to adequately
cover this situation.


Comment for F08/0043:

The restriction on having a polymorphic coindexed actual argument only
correspond to a dummy argument that is not polymorphic is quite
restrictive since essentially all type-bound procedures have
polymorphic passed-object arguments (C456). When I tried the example
program with one compiler, it compiled and executed without error and
produced the expected output. We might want to consider some
relaxation of this restriction in the next standard.

Removing the redundant constraint C1229 does not seem to rise to the
level of fixing an error in the standard. This could be put off to the
next standard.


Comment for F08/0055:

Given the complexity of the edits, it would be quite helpful if the
answer to the questions included the expected output based on the new
text.


Comment for F08/0059:

The edit for [295:16-17] seems to make the edit in F08/0073 redundant.


Comment for F08/0067:

I think the answer is fine for standards purposes. However, just as an
implementation observation, the test case is likely to work anyway
since a polymorphic dummy argument will trigger a pass-by-descriptor,
and the shape information is likely to be available in the descriptor.


Comment for F08/0073:

The edit at [295:16-17] in F08/0059 makes the edit in this interp
unnecessary.



-- 
Bill Long                                           longb@cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101


