hadoop-zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Hunt <ph...@apache.org>
Subject Re: ZooKeeper 3.1 and C API/ABI
Date Thu, 05 Feb 2009 18:46:55 GMT
Chris, that's unfortunate re the version number (config.h), but I think 
I see why that is -- config.h should only really be visible in the 
implementation, not exposed through the includes.

I've created a JIRA for this:
https://issues.apache.org/jira/browse/ZOOKEEPER-293

We'll hold 3.1 for this JIRA, I'll create a new release candidate when 
the patch is ready. (hopefully today)

Ben, Mahadev please be available to review/fasttrack this JIRA.

Patrick

Chris Darroch wrote:
> Hi --
> 
>>> Btw, the version is in the config.h file, generated by autotools, as 
>>> VERSION. We don't break that out as individual parameters but we can 
>>> if there is interest.
>>
>>    That's useful, I'd missed that.  Thanks; that should work for me
>> for now.
> 
>   Sorry ... on second glance, I'll have to retract that.  The problem
> here is that config.h doesn't get installed by "make install", it's
> just used by the autoconf stuff.  So there's no simple way that I'm
> aware of to check the C API version at compile time.
> 
>   For 3.1.0, I'd suggest either reverting ZOOKEEPER-255 until 4.0.0,
> or making sure there's at least a way of determining the API version
> using C macros.  For example, I'd want to be able to do something like:
> 
> #if ZOO_MAJOR_VERSION >= 3 && ZOO_MINOR_VERSION >= 1
>    zoo_set(..., stat);
> #else
>    zoo_set(...);
> #endif
> 
>   Ideally, as I mentioned, until 4.0.0 the zoo_set() functionality
> would be moved to a zoo_stat_set() or zoo_set_exec() function,
> and zoo_set() would keep its existing definition but become just
> a wrapper that invoked the new function with a NULL stat argument.
> That would be the "APR way", I think, of handling this situation.
> With the next major version the new function with the extra argument
> could be renamed back to zoo_set().
> 
>   It's slightly ugly, I know, if you're thinking of this as a bug
> which needs to be fixed urgently.  If you're not concerned about
> backward API compatibility, at a minimum I'd request externally
> visible macros in zookeeper.h for 3.1.0:
> 
> #define ZOO_MAJOR_VERSION 3
> #define ZOO_MINOR_VERSION 1
> #define ZOO_PATCH_VERSION 0
> 
>   Thanks,
> 
> Chris.
> 

Mime
View raw message