[nanomsg] Re: Release packaging and build systems

  • From: Martin Sustrik <sustrik@xxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Tue, 23 Jul 2013 08:15:03 +0200

Hi Luca,

Thanks for your work, I'll merge it shortly!

However, there's one aspect I wanted to discuss. Specifically, I am thinking of removing zmq compatibility support entirely. The reasoning is as follows:

Originally, I've implemented zmq compatibility library to allow non-C users to re-use 0MQ language bindings.

The important thing is that it was *not* meant to be a drop-in replacement for 0MQ. Semantics of nanomsg is not exactly the same as those of 0MQ and even though zmq compatibility layer provides a ABI-compatible drop-in library, existing applications would have to be modified to take the different semantics (different socket options, different behaviour of messaging patterns etc.) into account.

In short, the compatibility library won't help much with migrating existing applications from 0MQ to nanomsg.

Second, native nanomsg language bindings for all major languages have materialised in the meantime. (Thanks everyone!) Which in turn means that 95% of the users can use nanomsg directly, without the help of zmq comaptibility layer.


There's still something like ~5% of the userbase remaining that uses more exotic languages and can use the compat library to re-use existing 0MQ language bindings. However, the usage is kind of ugly (using numeric constants instead of symbolic names in some cases) and implementing an actual binding would work better for everyone.

Thougts anyone? Arguments for keeping the 0MQ compatibility library in place?

Martin


On 22/07/13 11:55, luca barbato wrote:
Hi, yesterday I should have completed the autotools alternate build
system by adding documentation and zmq compat support.

The CMakefiles now are preserved when issuing make dist.

Hopefully I'll prepare few patches to keep the CMake build system in
sync by adding the zmq pkg-config file generation, update the
versioning model and the preserve the autotools files while packaging.

I made the zmq support in line with the api 1.1.0/version 2.2.x

Let me know what you think.

lu



Other related posts: