[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