Neil Hopcroft

A digital misfit

The poverty trap

…I’ve finally escaped from it!

My first paycheque has at last made it to my account here, I’m no longer on the breadline, so to celebrate I went for a triple cheeseburger with large fries at Wendys. Erm, not much of a celebration I know but I’ve been craving greasy spoon food for a few days now and thats as close as I’ve found so far.

And today I’ve been mostly explaining binary compatibility, what it is, how to maintain it, what happens when you dont and how to break it for personal entertainment.


3 comments

  1. Re: binary compatibility

    Its very important to keep your interfaces consistent from one release to the next…

    Erm…any clues?

    • Anonymous

      Re: binary compatibility

      The worst thing is that you’re never quite sure you have binary compatability, until you try to run the program and find it throws up an unexpected error. Just like relationships…

      Don’t the programmers at Nokia (Nippon) know about binary compatibility already?

      Chip (the as yet unregistered Marvelousmrchip)

      • Re: binary compatibility

        Thats the point, binary compatibility is easy to maintain if you know what it means[0], but most people don’t even know what it is and think they don’t need to worry about it, even some of the ones who should know better.

        is registered, one day he’ll start posting….?

        [0] In this context it means not changing function parameters or return types[1], or data structures accessed by anything other than function calls[2], or the size of data in classes from which it is valid to derive other classes.[3]
        [1] With some caveats that actually there are some valid changes of the use of const parameters which will maintain binary compatibility
        [2] Excluding inline functions
        [3] Of course, you need to maintain the contract the function fulfils, but thats a design issue not a binary compatibility issue, and can be enforce by sensible use of assert()

Leave a Reply

Your email address will not be published.