From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Sat Jan 24 11:46:25 2015
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 B31E1358394; Sat, 24 Jan 2015 11:46:25 +0100 (CET)
Delivered-To: sc22wg5@open-std.org
X-Greylist: delayed 4243 seconds by postgrey-1.34 at www5.open-std.org; Sat, 24 Jan 2015 11:46:24 CET
Received: from userp1050.oracle.com (userp1050.oracle.com [156.151.31.82])
	by www.open-std.org (Postfix) with ESMTP id 0B63C356E63
	for <sc22wg5@open-std.org>; Sat, 24 Jan 2015 11:46:23 +0100 (CET)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81])
	by userp1050.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t0O9Zf70029447
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <sc22wg5@open-std.org>; Sat, 24 Jan 2015 09:35:41 GMT
Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
	by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t0O9ZYUH006666
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <sc22wg5@open-std.org>; Sat, 24 Jan 2015 09:35:34 GMT
Received: from userz7022.oracle.com (userz7022.oracle.com [156.151.31.86])
	by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id t0O9ZXIT009325
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <sc22wg5@open-std.org>; Sat, 24 Jan 2015 09:35:34 GMT
Received: from abhmp0001.oracle.com (abhmp0001.oracle.com [141.146.116.7])
	by userz7022.oracle.com (8.14.5+Sun/8.14.4) with ESMTP id t0O9ZWoe009305
	for <sc22wg5@open-std.org>; Sat, 24 Jan 2015 09:35:33 GMT
Received: from [10.132.140.77] (/10.132.140.77)
	by default (Oracle Beehive Gateway v4.0)
	with ESMTP ; Sat, 24 Jan 2015 01:35:32 -0800
Message-ID: <54C3674B.3030806@oracle.com>
Date: Sat, 24 Jan 2015 01:35:07 -0800
From: Robert Corbett <robert.corbett@oracle.com>
Reply-To: robert.corbett@oracle.com
Organization: Oracle America
User-Agent: Mozilla/5.0 (X11; SunOS sun4u; rv:6.0) Gecko/20110814 Thunderbird/6.0
MIME-Version: 1.0
To: WG5 <sc22wg5@open-std.org>
Subject: WG5 straw ballot 8 on Fortran 2008 interpretations
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
X-Source-IP: userp1040.oracle.com [156.151.31.81]
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

The following Fortran 2008 interpretations are being balloted:

Yes  No   Number     Title

-Y-  --- F08/0099   VOLATILE in specification expressions
-Y-  --- F08/0100   IMPORT statement and prior explicit declaration
-Y-  --- F08/0101   NAMELIST and multiple occurrences of a variable
-Y-  --- F08/0102   MERGE and polymorphism
-C-  --- F08/0103   Pointers to internal procedures with different host
                     instances
-Y-  --- F08/0104   IEEE Inquiry Functions
-Y-  --- F08/0106   MOVE_ALLOC for a remote array
-Y-  --- F08/0108   ultimate components and coarrays
-Y-  --- F08/0112   STAT= and ERRMSG= in ALLOCATE and DEALLOCATE
-Y-  --- F08/0113   Specifiers in image control statements

-----------------------------------------------------
F08/0103 C

The answer given requires processors to use less efficient implementations
of procedure pointers that target internal procedures and actual arguments
that are internal procedures than is necessary.  Allowing the two
argument form of the intrinsic function ASSOCIATED to take procedure
arguments effectively banned some optimizations, but at least a case
can be made for doing so.  Requiring ASSOCIATED to return .FALSE. in the
case where the arguments ultimately reference different instances of the
same internal procedure prohibits a processor from taking advantage of the
special case where the internal procedure references only statically
allocated variables in the host scoping unit.  I cannot think of a case
where such semantics are useful.  If the answer had been that the result
returned by ASSOCIATED is undefined when both arguments reference the same
internal procedure, more efficient implementations would be possible.

Nonetheless, I do not oppose the interpretation.  The new semantics given by
the interpretation should at least be implementable for processors where
pointers to internal procedures are allowed.

Robert Corbett
