On Thu, Nov 6, 2014 at 8:55 PM, Ben Reser <ben_at_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.
Received on 2014-11-06 22:50:27 CET