JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for COMP-FORTRAN-90 Archives


COMP-FORTRAN-90 Archives

COMP-FORTRAN-90 Archives


COMP-FORTRAN-90@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

COMP-FORTRAN-90 Home

COMP-FORTRAN-90 Home

COMP-FORTRAN-90  2000

COMP-FORTRAN-90 2000

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Chapter 12, Section 4

From:

Richard Maine <[log in to unmask]>

Reply-To:

Richard Maine <[log in to unmask]>

Date:

Tue, 10 Oct 2000 10:07:59 -0700 (PDT)

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (97 lines)

Thorsten Ohl writes:
 >     Constraint: A procedure-name actual-arg shall not be the name of an
 >     internal procedure or of statement function and shall not be the
 >     generic name of a procedure unless it is also a specific name
 >     (12.3.2.1, 13.1).
 > 
 > Why?  If there is an INTERFACE for the actual-arg, the compiler should
 > have enough information to resolve the generic name.
 > 
 > Is this going to change?

I must repeat the usual caveat in answering any question that begins
with "why".  The only actually corrrect answer to a "why" question
about the standard is "because that's what was voted in."  Any other
answer is nothing but speculation about the state of mind of the
people voting.  There are *SLIGHTLY* better grounds for such
speculation in this case than in the political arena - but not as
much as you might think - or you wouldn't phrase the questions with
"why".  I sometimes can't recall my own reasons for voting for
something, much less other people's reasons.  People are not obligated
to state the reasons for their votes (though they often do), and
if they do state reasons, there is no guarantee that the stated
reasons are the "real" ones.  That being said..

Let me first answer the part that you didn't specifically mention in
your query.  Calling an internal procedure or statement function has
complications with recursive procedures.  It would likely be necessary
to pass not only the address of the procedure, but also the address
of an "activation record" (or I'm told that's what compiler-types
call it) of the particular instantiation of the host so that the
internal procedure gets the right copies of host-associated things.
This is alleged to be possible, but it would have been an extra
complication in a language already criticised as being too complicated
(this stuff was added in f90).  The demand was judged not worth the
extra complication..at least by a majority (I wasn't there and its
not clear whether or not this judgement was universal).  I was there
when it was proposed to relax this part of the restriction in f95.
It was proposed - didn't get enough votes.  One might suspect that
a majority felt the benefits not worth the cost.  This is, however,
purely speculation about motives.  Anyone who claims to know more
definitively is misleading you.

On generics, your statement presumes an explicit interface for the
called procedure, and that that explicit interface includes an
explicit interface for the dummy (not for the actual as you
incorrectly state - there is no syntax to directly specify an explicit
interface for actual arguments; you can specify the interface for a
dummy, which places compatability requirements of the actual).

Thus, at a minimum, there would have to be a set of conditions to be
met in order to allow this.  Getting those conditions right would be a
bit of a complication, with questionable payback for the complication.

And now what happens when the procedure you are calling is generic?
You are relying on knowledge of the procedure interface to determine
the type of the actual argument.  And then you are relying on the
type of the actual argument to determine which procedure to call.
This circular dependence might not have a unique resolution.  I'd
call this just another case of the general rule that types of things
are not determined by context.  Generic resolution is controlled
by the types of the arguments to the generic - not by the context
in which the generic is used.  In this case, you aren't actually
giving arguments for the generic.

This all may be resolvable, but it is not at all trivial.  Indeed,
I'd see it as pretty complex - including consideration of possible
cases where you might want to actually pass a generic as a generic
instead of seleting a specific to pass...and that would certainly
be a substantial language addition.

One final thing to keep in mind for questions of this general nature:
There really doesn't have to be concrete reason for a proposed feature
to be rejected.  Every feature added means work for the committee and
for implementors.  There have been more worthwhile features proposed
than there is any hope of getting done.  Any work put into one feature
is work that won't be put into some other feature.  So the real
question is seldom "is this feature a good idea?"  Its much more often
"is this feature more important than the others that won't get done
if this one is done?"  There are features that get rejected because
a majority thinks them just plain a bad idea, but far more things
get rejected on the basis of not being important enough to get the
needed share of the finite resources available.

How does one "explain" rejection of an idea that a clear majority of
the committee thinks is a good idea...but just not important enough?
You can't point out specific things wrong with it - there may be none.
One ends up falling back to the "it just didn't get enough votes",
which is, in the end, the real reason.

-- 
Richard Maine
[log in to unmask]



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
February 2023
November 2022
September 2022
February 2022
January 2022
June 2021
November 2020
September 2020
June 2020
May 2020
April 2020
December 2019
October 2019
September 2019
March 2019
February 2019
January 2019
November 2018
October 2018
September 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
December 2015
November 2015
October 2015
September 2015
August 2015
June 2015
April 2015
March 2015
January 2015
December 2014
November 2014
October 2014
August 2014
July 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
July 2013
June 2013
May 2013
April 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
August 2010
July 2010
June 2010
March 2010
February 2010
January 2010
December 2009
October 2009
August 2009
July 2009
June 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager