[J3] Clarification on F18/017
Steve Lionel
steve at stevelionel.com
Mon Jun 8 16:54:05 EDT 2020
On 6/8/2020 12:31 PM, Ondřej Čertík via J3 wrote:
> So we discussed it both inside LANL and outside, and at LANL we definitely do not want the CBPA order to be allowed, and it seems a lot of people in the wider community agree.
>
> In your analysis you explained that due to automatic deallocation predating finalizers, it is natural for some compilers to allow CBPA.
>
> Is there any other motivation to allow the CBPA order?
>
Looking at the discussion in
https://github.com/j3-fortran/fortran_proposals/issues/146, it would
appear that "a lot of people in the wider community" resolves to you,
Reuben, Peter, and Neil Carlson. In that thread, Reuben says: "I think
"CBPA" is, at least, very counter-intuitive to users and should not be
allowed, although at the moment I can't come up with a good technical
reason for why it should not be allowed. But it does seem that it would
defy user's expectation. There were some further discussions on coming
up with a better fix that would address all of these issues at once."
So... What is the technical reason for disallowing CBPA and how would
you change the interp to satisfy the other requirements? Were there
indeed "further discussions" and what did they come up with? In that
thread I see complaints that C++ users wouldn't expect it, but Fortran
is not C++ and its rules for polymorphism aren't the same; to me this
smacks of appeal to emotion
<https://en.wikipedia.org/wiki/Appeal_to_emotion>.
I will note that it is not unheard of for us to pass an interp and then
change that part of the language again in the next revision, or even a
later corrigendum. You've already identified a way that the programmer
can avoid the unwanted ordering, so I am struggling to see a significant
problem here. Passing this interp doesn't preclude another whack at it
if you have solid technical reasons for doing so. This interp DOES
eliminate the double finalization that none of us want and doesn't break
previously correct programs. It is also a minimal disturbance to a
published standard, which is the goal interps should shoot for. More
significant behavior changes belong in new revisions.
Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20200608/a5191ff7/attachment.htm>
More information about the J3
mailing list