[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: The meaning of double-underscore symbols

From: Max Bowsher <maxb_at_ukf.net>
Date: 2005-10-05 00:35:06 CEST

kfogel@collab.net wrote:
> Philip Martin <philip@codematters.co.uk> writes:
>>> "Max Bowsher" <maxb@ukf.net> writes:
>>>> svn_error__locate: used almost everywhere
>>>
>>> Mmm, sort of.
>>>
>>> It's present in the expansions of some svn_err_* macros, but that's
>>> okay. Those macros are in the correct space, and whatever they want
>>> to do is fine, because the macro would always be changed along with
>>> the internal implementation on which it depends.
>>
>> Although macros hide the double underscore name at the source code
>> level, the compiled object code will still have a dependency on the
>> svn_error__locate name. Thus we have to treat svn_error__locate like
>> any other public symbol, despite the use of double underscore.
>
> It depends on what "treat ... like" means, exactly.
>
> Internally, Subversion can guarantee (to itself) that it will only use
> svn_error__locate() for these macros. Thus, anyone using the macros
> together with the correct set of full Subversion libraries -- which is
> how we say Subversion works -- will not run into trouble. Were we to
> change the definition of svn_error__locate(), we'd change the macros
> at the same time.
>
> Can you say a scenario you have in mind, where having the symbols be
> in the object code, even if not the source code, would be a problem?
> I feel like I may be being insufficiently imaginative here...

ABI compatibility.
We have promised that stuff compiled against 1.2 will run with 1.3 libs,
etc.

Max.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Oct 5 00:36:14 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.