[coyotos-dev] IDL compatibility

Charles Landau clandau at macslab.com
Mon Jul 9 17:07:29 EDT 2007


While we're on the subject of IDL, and now that MarkM is back, I'd 
like to reopen this discussion by posing some questions.

1. Is it possible to have more than one name for the same method?

It is desireable to have more than one name, for several reasons.
a. You come up with better names. For example, you decide 
"CreateWidget" is preferable to "MakeWidget". You want to add the new 
name, but retain the old for compatibility.
b. Users come up with better names. For example, a Francophone 
prefers to use ""CreerWidget".
c. You rename something ("eros" to "capros", just to take a random 
example). You want to add the new name, but retain the old for 
compatibility.

The answer may be, yes, you can always:
#define secondaryName originalName

but one would have to construct, by hand, such interface files for 
all the supported languages.

2. If it's not possible, how can I solve the issues above?

An answer that says "you have to get it right the first time and 
never change it" ignores the realities of software maintenance.


At 4:21 AM -0700 6/20/07, Charles Landau wrote:
>I'm afraid I contributed to confusion by emphasizing renaming.
>
>Removing a name that is in use is clearly problematic. My situation
>is exceptional because I can find and change all the uses of the
>name. It's unreasonable to expect IDL to handle exceptional
>situations.
>
>At 6:43 PM -0400 6/19/07, Jonathan S. Shapiro wrote:
>>if you go to add a method to an existing interface,
>>adding it in the middle of the file should not cause other code points
>>to break.
>
>This implies that adding a name for a new method does not break the
>IDL "contract".
>
>I see no reason why adding a *new* name for an *existing* method
>should break the contract.
>
>>The name defines the *identity* of the type or the method.
>
>This implies that a method cannot have more than one name. This is a
>misfeature. Having multiple names for the same thing is useful,
>necessary, and perfectly manageable.



More information about the coyotos-dev mailing list