Darin Fisher wrote:

> 
> what is an interface contract exactly?  in the case of a bit field 
> attribute, is it wrong to say that only specific bits are currently 
> defined and that other bits are reserved for future use?  the contract, 
> in this case, is well defined for all consumers of the interface.  this 
> is a very common way of making an interface ever-so-slightly extensible, 
> and IMO it definitely seems like it would be useful in helping us freeze 
> several mozilla interfaces.  are we worried about changes to the .xpt 
> files?  would modifying .xpt files somehow cause runtime problems?
> 
> darin

I think that it's wrong to say that bit fields are infinitely 
extensible, just because they happen to be bit fields and you can pass 
in whatever you want.  The contract that we're talking about here isn't 
just a binary one as you elude to, it also defines what you can pass in 
and what the expected behaviour should be as a result of that call.  I 
mean, why don't we just start using varargs for everything?

If you change the interface you have to change the behaviour of both the 
consumer and implementor of that interface.  If I've ever heard a 
definition of an interface change, that's it.

--Chris

-- 
------------
Christopher Blizzard
http://people.redhat.com/blizzard/
Mozilla.org - we're on a mission from God.  Still.
------------

Reply via email to