[haiku-commits] Re: haiku: hrev50368 - src/kits/network/libnetapi headers/os/net

  • From: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
  • To: "haiku-commits@xxxxxxxxxxxxx" <haiku-commits@xxxxxxxxxxxxx>
  • Date: Wed, 22 Jun 2016 10:47:33 +1200

On 22 June 2016 at 08:18, Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> wrote:

On Tue, Jun 21, 2016 at 12:10:06PM -0500, looncraz wrote:
On 6/21/2016 11:24, Adrien Destugues wrote:

We do this only once the class design is considered "done" and stable.
The reason is, if we add the padding early, by the time the design is
finalized, there may be not that much padding left for future evolutions
anymore.

That seems like pretty poor reasoning - as adding the padding early would
result in much fewer total breakages.  Adding new padding for the final
version would only break the in-development versions from the release
versions, instead of creating numerous incompatible version during
development, leading to repeated rebuilding of dependent packages.

As I mentionned, WIP classes should be in a static library and in the
BPrivate namespace. This way, once an app is compiled, it embeds a
specific version of the class and there is no ABI to maintain. This
removes the need for the padding altogether, until the class is made
public.

For some reason, this was not done for these network kit classes, which
creates a problem. It may be a bit late to move the class now to a
static lib, however, as that would also result in ABI breakage.

Meh, better to do it now while users of these classes is likely small.

Other related posts: