[interfacekit] Re: How backwards compatible?

  • From: "Erik Jaesler" <erik@xxxxxxxxxxxxxx>
  • To: interfacekit@xxxxxxxxxxxxx
  • Date: Sat, 27 Jul 2002 08:05:18 -0700

My only suggestion with regard to this is to not code in such as way as 
to *preclude* adding R3 compatibility later, if need be.

e

>I am working on BPropertyInfo and I have run into a minor issue.  I 
>have a plan to address it, but I want to check with some people on the 
>mailing list first.
>
>Prior to R4, the struct property_info structure had only five elements 
>to it.  With R4, the structure was changed and three new elements were 
>added to it.  This means that code that pass a property_info to a 
>BPropertyInfo class using the old header from R3 will have a different 
>size structure than what is found in R4.
>
>To handle this, Be changed the constructor for BPropertyInfo.  The old 
>R3 constructor was moved so it became private.  However, existing 
>binaries will still use this private constructor and this constructor 
>knows the structure passed in is the old format and it converts it to 
>the new structure.  Any code compiled on R4 or newer will use a new 
>constructor.  Because it is compiled on R4 or later, the right 
>property_info structure and BPropertyInfo constructor gets called.
>
>So, the question becomes should I bother to implement the code to 
>convert between the old property_info structure and the new one (as of 
>R4) and implement this private constructor.  Here are the things I have 

>considered:
>
>- On Intel, R4 was incompatible with R3.  So, all current Intel BeOS 
>binaries should not be using the old constructor/old structure format.  

>I have checked all ELF files on my BeOS machine and confirmed that none 

>of them link against this deprecated constructor.  From this 
>perspective it should be safe not to implement it.
>
>- On PPC, R4 is compatible with R3.  If OpenBeOS is to be compatible 
>with PPC in the future, we will need this constructor etc in order to 
>run PPC binaries from R3.  Personally, I think this isn't too likely.  
>If we do end up with a PPC version of OpenBeOS, I suspect it will not 
>be compatible at all and be based on the gcc toolchain.
>
>- I am worried that there may be flattened R3 BPropertyInfo's out there 

>on someones harddisk, even on Intel.  Perhaps Be handled unflattening 
>these also.  If we don't implement support for old BPropertyInfo 
>unflattening, we may have some minor compatibility issues.  I think the 

>risk here is very low however.
>
>Given all of this, I have decided _not_ to implement this backward 
>compatibility to the R3 BPropertyInfo interface.  If anyone has any 
>concerns about this, please let me know.  Thanks.
>
>--
>Jeremy Rand
>jrand@xxxxxxxx

Necessity is the plea for every infringement of human freedom. It is the 
argument of tyrants; it is the creed of slaves.
        -William Pitt, British prime-minister (1759-1806)


Other related posts: