(j3.2006) (SC22WG5.3731) the interoperability TR - an alternative descriptor design

Aleksandar Donev donev1 at llnl.gov
Wed Dec 3 23:39:26 EST 2008


Hello,

> For DESCRIPTOR, a procedure called from Fortran is invoked in a processor
> dependent fashion.  If the calling sequences are compatible, it might
> be called directly; if not, it would be called via a thunking mechanism
> written in assembler.
I am at a loss as to what to write except that I see absolutely nothing 
good about this proposal, and I see many downsides. I am sure Nick has 
good reasons but they escape me almost entirely.

In particular, the opaqueness of the whole proposal (possible indirect 
calls of unknown overheads, complex structures to describe even trivial 
arguments, etc.) will make it very hard for people to use. The 
functionality gained is mostly academic and does not justify the complexity.

The descriptor TR arose out of *existing* practice and needs programmers 
have expressed. Vendors will tell you that users have often asked for 
the format of their array descriptors so they can thinker with them. For 
example, I have done it and use in my daily codes (I have a 
Descriptors.f90 in my sources). Some vendors have published their 
descriptors in their documentation.

The TR's purpose is to make the job easier for both implementors and 
users. There is one standardized interface to manipulating the array 
descriptors, that each vendor implements. The purpose was NOT to 
manipulate the calling conventions, just simply the fields in an opaque 
array descriptor. I understand it is in some way short sighted because 
it ties to existing practice and not a more general extensible 
framework, but it is PRACTICAL and USEFUL now to lots of programmers. 
Complex designs are not.

Best,
Aleks



More information about the J3 mailing list