John:  I remember last year that you told us that we didn't need a
        contract for certain desktop modules (libcdio and liboil) to
        build with GCC or link against libgcc.  I notice GCC is listed
        as External in PSARC 2004/742, and normally External/Volatile
        interfaces require contracts.  Can you remind us why a contract
        isn't needed for GCC?  You can see below for some background on
        why this issue came up again.  Thanks.

Stephen:

> Its just a useful piece of software.  We are not shipping anything that
> depends on it.

Thanks, I was just curious.  Also, thanks for ARC'ing this.

>>> http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/#EXPSARC
 >>
>> I normally see people refer to the stability level as defined in the
>> case rather than doing translations in their Imported Interface Table 
>> (e.g. External->Volatile).  I remember that when the new taxonomy was
>> released, there was some wiggle-room where projects could redefine
>> External to either Volatile or Uncommitted.  So it might not always be
>> accurate to assume the translations apply to a given interface.
> 
> Well thats not what the mapping table on opensolaris says.  It notes
> Volatile as a direct name change of External.  It lists Evolving as
> either Committed or Uncomitted.  It is not for me to upgrade someone
> elses interface classification.  I have seen a lot of confusion around
> these classifications over the years and I dont see the value in using
> multiple labels in the same case.  I was going for consistency.
> 
>> Therefore, it is probably safer to list "External" unless there is a
>> newer case where the interface owner has clarified it as Volatile.
> 
> If you are saying the table is wrong then get it updated, please.

Like with any rule, there are exceptions.  I was just pointing out
that you can make mistakes making assumptions about interfaces for
which you are unfamiliar.  I know I've done it.

Many ARC cases seem to just guess what imported interface stability
levels should be, and leave off the case #.

>> Normally in the Imported Interface table you list the ARC case which
>> defines the stability level for the interface in the comment column.
>> Since you didn't list a case, it wasn't clear to me what case you were
>> referring to.  For all I know, there might be a newer case than the
>> one I referred to.  This is probably not a big deal, but perhaps
>> explains my confusion.
> 
> It is listed in the file I sent out (PSARC/2004/742) so I don't
> understand your confusion.  I listed all the case numbers for the
> imported interfaces and feel I spent far too long looking for them.  I
> wish there was an easy way to do that.

In hindsight, I'm not sure why I was confused either.  Sorry, I now see
you did clearly list case numbers in your imported interface table.

> Also, since you didn't mention
> the case you were refering to and by your own admission it is difficult
> to know which is the latest case for an interface for all I know there
> IS a newer case.

I did a lot of research to try and track down a concrete reason why a
contract is not required to use GCC or link against libgcc.  After
searching for about 30 minutes, the best I could find was an email
dated from February, 2007 where I said that John Fischer told us we
don't need a contract at some meeting.  At any rate, I know we didn't
pursue a contract for libcdio or liboil based on these discussions.
I have a vague memory that GCC might be one of the odd cases where
External ended up being mapped to Uncommitted.  Thus my comments
about this.  Sorry, I should have been more clear.

Brian



Reply via email to