On Sun, Sep 16, 2018 at 5:17 AM Greg Stein <gst...@gmail.com> wrote: > On Sat, Sep 15, 2018 at 8:48 AM Greg Stein <gst...@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.