On Sun, Sep 16, 2018 at 5:17 AM Greg Stein <gstein_at_gmail.com> wrote:
> On Sat, Sep 15, 2018 at 8:48 AM Greg Stein <gstein_at_gmail.com> wrote:
> >...
>
>> No no no... I agree with Brane above. It is confusing, and if people
>> mistakenly mix/match releases things will Just Break. Mysteriously. And
>> horribly. And possibly data-destructively.
>>
>
> To clarify the above a bit:
>
> Consider if the mid-LTS had an entrypoint with 3 parameters, so a client
> coded to that to (also) experiment with the feature set. So Alan has got
> his client installed, trying out this new "shelve" feature, running against
> the mid-LTS release that has been on the system for the past year.
>
> The following week, Brian, his system administrator upgrades to the LTS
> release, for the admin's sanity. "What? LTS releases? YAY! Less work for
> me."
>
> In the LTS, the entrypoint takes 5 parameters. So the function reads wonky
> stuff from the stack. Hilarity ensues.
>
> Brian now gets a call from Alan: "I was working with $client, doing all my
> normal Subversion work. But now it seems that my working copy is corrupted.
> What happened?"
>
> The hilarity ends. Alan is told he can't use his nifty client. Alan gets
> angry. Brian bangs his head on his desk, and wonders how 18 years of random
> Subversion upgrades were always safe. But not this week. Why did it break
> this week? And it was an LTS release!?! Why....
>
If the function name begins with x_ until the API stabilizes, that should
prevent the 3 parameter/5 parameter hilarity described above, no? The
client should fail to start due to dynamic linking failure.
Received on 2018-09-16 14:24:03 CEST