(j3.2006) (SC22WG5.3846) [ukfortran] 09-007/UTI 151

Malcolm Cohen malcolm
Tue Jan 13 03:54:45 EST 2009

Reinhold Bader wrote:
>  I'm trying to understand the UTI 151 (since I was initially responsible for the
>  new feature I guess I should 
I don't see why you need to, though of course you can if you wish.  I 
expect someone will be looking at this at meeting 187.
> before it is unceremoniously ripped out
>  again ...).
That only happens if it cannot be fixed - there is no suggestion in the 
UTI or anywhere else that it will just get ripped out for no good reason.
>  Here some comments:
> (1) In fact, the term "indirect" is not explicitly defined for access to entities at all
No, so it is normal English.
> ; it is
>       used in the standard in the context of
>      * procedure invocation,
>      * object reference through a pointer
>      * use reference of modules
>      This may well be reason enough to either properly define it
No.  It's only being used once here, so rather than define it rigorously 
and use it once, just use the rigorous wording once.
>  or choose a different
>      wording for what the feature is intended for.
Obviously different wording here is essential IMO.
> (2) However, I am not sure I understand that any ambiguities actually occur based on
>       the bullet list in UTI 151.
I think otherwise, as I tried to explain in the text of the UTI.
>  In my opinion, "all-encompassing" pretty much is what
>       is intended by the rule since it refers to *use association* only.
I don't agree that the words there convey such an implication (or if 
they do, it is a very weak one - too weak in fact).

>       For example take the case of  Bullet 1:
...snipped example that doesn't match what the first bullet says.

>   If I am misunderstanding the bullet list, can someone provide an example
>       which demonstrates either an ambiguity or a situation which cannot be checked by the
>       compiler?
Access via a use-associated pointer that is pointer-associated with the 
module entity.  As it says, "access via use then pointer association".  
Is this allowed?  I know neither whether it is allowed by the current 
wording, nor whether it was intended to be allowed.  One might *guess* 
that it is supposed to be allowed... but it is not clear to me.

It's also not clear to me just what this restriction is supposed to be 
giving us - since in many cases it looks like one could wriggle around 
it (unlike the previous version); that certainly makes it harder to 
reason about.  Maybe the restriction shouldn't be there at all!  Or, if 
there is a real problem, maybe we ought not to loosen it after all!

I don't think it's impossible to get the wording right (whatever "right" 
is),  but just saying "indirectly" is almost certainly wrong.

.....................Malcolm Cohen, Nihon NAG, Tokyo.

More information about the J3 mailing list