Open joortcom opened 1 year ago
@ebezault I saw you self-assigned this issue, so what do you think of the problem reported in the paper? mind to share?
I did not read the paper yet. It's on my TODO list for the coming weeks. I'm sorry I did not look at this issue before. I was not able to work on the Gobo project in 2023 due to professional workload. I do remember that ECMA now disables diamonds (and hence the problem which comes with it) by allowing only one conforming inheritance path (the other inheritance paths should be non-conforming). But I have to read the paper and dive into ECMA standard again to give a more thorough answer. As far as I know no Eiffel compiler supports this new rule from the ECMA standard because it would break existing code.
ECMA now disables diamonds
Oh, when it happened? I didn't see this in the ECMA 2006.
Any open new ECMA documents update (even draft) or discussion forums I can take a look?
Thanks.
I did a quick search, but was not able to find it. I'll come back to you on this after I read the paper and looked deeper in the ECMA documents.
OK, my memory was wrong. I found some old notes from ECMA standardization meetings (see below). In the draft of standard before its first edition, the select
clause had been removed, and only one conforming inheritance path was allowed in case of repeated inheritance. The committee decided to reject this rule before the first edition:
Select clause (section 15.5, page 325): The team decided to keep select and still have nonconforming inheritance because the two mechanisms address different needs. Keeping select allows having two or more conforming paths whenever needed.
The section and page number are from the draft version. I think that it relates to the rule VMRC (8.16.10 page 94) in the second edition of the standard.
Sorry for the confusion. I still need to read your paper though (I guess that it's your paper, because the github login ids are different).
@ebezault
Hi Eric,
I'd like hear what you think of this paper:
https://github.com/joortcom/eiffel_rename
https://github.com/joortcom/eiffel_rename/blob/main/eiffel_rename.pdf
1) is it a real flaw in the Eiffel's renaming mechanism in this diamond problem? 2) how does the proposed fix sounds to you?
I'd really appreciated it if you can tell me your thoughts.
Thanks.