(j3.2006) One of the proposals in 12-195 that didn't get out of subgroup
Van Snyder
Van.Snyder
Wed Oct 31 18:01:38 EDT 2012
One of the proposals in 12-195 that didn't make it out of subgroup was
to replace <procedure-name> and <proc-component-ref> in <proc_target>
and <actual-arg> with <procedure-designator>. This admits
<data-ref>%<binding-name> into procedure pointer assignment and as an
actual argument.
I have spoken with the colleague who asked for this, and gotten more
understanding of why he wants it.
He has a complicated decision procedure, to choose which type-bound
procedure to invoke. He doesn't want this in his inner loop. He'd like
to make the decision early, and record it either as a procedure pointer
assignment, or an argument association. I suggested an index and a case
selector, but his profiling shows that has important, although not huge,
overhead. He also objects to the additional code bulk. I suggested
different dynamic types for the different cases, but he said that had
similar (actually a tiny bit more) overhead.
Can we revisit this in February, or is it permanently off the table? It
seems like a trivial change both to the standard and within a processor.
Two syntax rules get shorter by one line each. Processors already know
how to work out which procedure <data_ref>%<binding-name> denotes. The
interface compatibility rules ought to be adequate, in the case of the
pointer or dummy argument having explicit interface (which wouldn't be
an unreasonable requirement if <data_ref> is polymorphic). If not, a
few additional words might be necessary to deal with (or maybe prohibit)
a polymorphic <data-ref>.
More information about the J3
mailing list