(j3.2006) nonstandard specifics of standard intrinsic generics

Malcolm Cohen malcolm
Mon Apr 21 03:45:44 EDT 2008

On Thu, 17 Apr 2008 18:16:21 +0900, Robert Corbett <Robert.Corbett at sun.com> wrote:
> I stated that the implementation provides a nonstandard specific
> interface for SQRT that takes an INTEGER argument.  That interface
> conflicts with the specific interface of the generic interface.
> The characteristics of the nonstandard intrinsic procedure and the
> procedure in the interface do not differ as specified in 16.2.3.
> Therefore, constraint C547 is violated.

No.  If the user provides a specific that would override some "specific" of an intrinsic, that intrinsic specific is not part of the generic identifier (it is inaccessible by that generic name).  I don't think we say that generic intrinsics are an ordinary set of specifics under a single generic (indeed some intrinsics are impossible to construct in that way).

> You might have a point.  It might be that the standard allows a
> processor to add nonstandard specific intrinsic interfaces to
> generic intrinsics, provided it does not treat cases where they
> cause conflicts with user generic interfaces as errors.

This interp was answered back in F90 days, and the answer is that the user is allowed to override the intrinsic for the precise reason that without that overriding capability it would be impossible to portably extend a generic name that was also an intrinsic name.  We have not reversed that decision, and the meaning is clear from the last sentence of the last paragraph of 16.2.3 (which directly contradicts your interpretation of the example above).

BTW, the interp is F90/000083.

It's possible that wording elsewhere in 16.2.3 could be improved.

................Malcolm Cohen (malcolm at nag-j.co.jp)

More information about the J3 mailing list