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

Re: svn_ra.h

From: Greg Stein <gstein_at_lyra.org>
Date: 2000-11-28 08:24:02 CET

On Tue, Nov 28, 2000 at 01:52:00AM -0500, Greg Hudson wrote:
> > Uh, but the problem is that we're going to have three shared
> > libraries that contain different implementations of the *same*
> > symbol.
>
> Obviously, that would have to be changed if we're not going to do
> dynamic loading.
>
> Maybe I'm a little late making this argument. I've just had bad
> experiences with almost every program I've seen which does dynamic
> loading, and I don't see what it buys us.

It buys us a way to support third parties who want to create repository
access layers.

Is this important for V1? Dunno.

I don't think that we want to load/unload them, and that we probably *do*
want to support a big-ass static link of the whole shebang. How do we solve
that? Not too hard... put all of the RA interface functions into a vtable.
(e.g. similar to the editor stuff)

When we load svn_ra_FOO, we look up the svn_ra_FOO_init symbol and call it.
That calls back into SVN to register the interface (as a name to function
table mapping).

This mechanism allows us to static link everything, and it allows us to
dynamic load multiple modules simultaneously without symbol conflict. The
only symbol that needs to be exposed is svn_ra_FOO_init. All other symbols
can be hidden.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/
Received on Sat Oct 21 14:36:15 2006

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.