On Thu, Nov 6, 2014 at 8:55 PM, Ben Reser <b...@reser.org> wrote:

> On 11/6/14 5:10 AM, Nico Kadel-Garcia wrote:
> > Out of curiosity, do the same issues occur with gcc on a modern box?
> > Ther'e's a lot to like about MacPorts, but I don't think it's the
> > primary build and testing platform for Subversion.
>
> Yes gcc is going to have the same issues because the declarations he needs
> have
> been removed from svn_sorts.h  These declarations have been there since
> 1.0.
> Prior to 1.0 they had names in the APR namespace, since it was expected
> this
> functionality would be moved to APR.  Before 1.0 we cleaned up that
> namespace
> problem and marked them private (by documentation and by using __ in the
> names).  Of course since they were still in a public header they are
> effectively public APIs.  Bert noticed that there were a lot of these
> private
> APIs added to the svn_sorts.h header since 1.8 on trunk and so he moved
> all of
> them into a private header that isn't installed.  This meant he moved the
> ones
> that had been there since 1.0, thus breaking any 3rd party code that
> depended
> on them.
>
> Ideally we would have never exposed these.  Ideally 3rd parties would have
> observed the private markers and not used them.
>
> I suggested that we resolve this by restoring the long standing private
> APIs
> that had been exposed.  While not adding any new APIs.  If nobody objects
> to
> that suggestion soon I'm going to just do it.
>

+1.

I've been scanning the public headers for more such instances
and found the following, including the sort API ones:

svn_cmdline.h
    svn_cmdline__getopt_init (1.4)

svn_error.h
    SVN_ERR__TRACED (1.7)

svn_sorts.h
    svn_sort__hash (1.0)
    svn_sort__bsearch_lower_bound (1.6)
    svn_sort__array_insert (1.6)
    svn_sort__array_delete (1.8)

svn_types.h
    svn__apr_hash_index_key (1.7)
    svn__apr_hash_index_klen (1.7)
    svn__apr_hash_index_val (1.7)

Only svn_sort__hash() seems to be critical. We might want to
restore the sorted array functions as well but I'm -0 on that.

I think we should list all these changes in our release notes,
also mentioning that the svn__apr_hash_index_* functions
have been removed entirely. SVN_ERR__TRACED doesn't
even have to be mentioned, IMO.

-- Stefan^2.

Reply via email to