- 12 Feb, 2016 5 commits
-
-
Pieter Hintjens authored
Solution: it's a lot of work to define the tests in project.gyp so I did this using gsl to generate the JSON, from a small XML list of the test cases. To keep this, and the hundreds of .mk files, away from the root directory, I've moved the gyp files into builds/gyp, where you would run them. It all seems to work now. Next up, OS/X and Windows :)
-
Pieter Hintjens authored
Doesn't affect building, just potentially confusing. Solution: fix it.
-
Pieter Hintjens authored
It's all over the place. Solution: remove duplicates and try to move main includes to start of source. Also, include net/if.h always, so that the code will compile if ZMQ_HAVE_IFADDRS isn't defined.
-
Pieter Hintjens authored
This is rather insane since the code knows well enough what systems support if_nametoindex. I blame this on over-use of autotools early in libzmq's days. Anyhow, this breaks gyp builds on OS/X. Solution: add ZMQ_HAVE_IFADDRS to build/gyp/platform.hpp for OS/X.
-
Pieter Hintjens authored
Solution: add necessary macros into builds/gyp/platform.hpp Work for Linux now, other platforms to test.
-
- 11 Feb, 2016 6 commits
-
-
Pieter Hintjens authored
I'm adding gyp support so that we can easily pull in libzmq and other C/C++ projects into gyp packages, especially via node-gyp. Solution: add gyp definition This works only for Windows, OS/X, and Linux. We set a single macro in project.gyp according to the system, and the rest is done in builds/gyp/platform.hpp. The values in that file are not dynamic. Your mileage will vary.
-
Pieter Hintjens authored
- they have no copyright / license statement - they are in some randomish directory structure - they are a mix of postable and non-portable files - they do not conform to conditional compile environment Overall, it makes it rather more work than needed, in build scripts. Solution: clean up tweetnacl sauce. - merged code into single tweetnacl.c and .h - standard copyright header, DJB to AUTHORS - moved into src/ along with all other source files - all system and conditional compilation hidden in these files - thus, they can be compiled and packaged in all cases - ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl - HAVE_LIBSODIUM is set when we're using external libsodium
-
Pieter Hintjens authored
It's especially annoying to see this: --enable-perf Build performance measurement tools [default=yes]. --disable-eventfd disable eventfd [default=no] --enable-curve-keygen Build curve key-generation tool [default=yes]. Solution: all options should explain the non-default case. Also the language should be enable/disable, with/without, rather than yes/no. E.g. '--without-docs'.
-
Pieter Hintjens authored
Specifically, the poller detection code does not set macros in platform.hpp. The configure script passed them as -D on the command line. Solution: rewrite the poller detection code.
-
Pieter Hintjens authored
This happens if you first configure with autotools, and then run cmake. The problem is that the compiler finds the old src/platform.hpp before looking for the one generated by CMake. Further, there are a set of macros that configure passes via the command line, yet CMake passes via platform.hpp. (HAVE_xxx for pollers, at least.) This means you can't do a CMake build using the autotools platform.hpp. Solution: remove any src/platform.hpp when running cmake. This is a workaround. I'll fix the inconsistent macros separately.
-
Pieter Hintjens authored
It's unclear which we need and in the source code, conditional code treats tweetnacl as a subclass of libsodium, which is inaccurate. Solution: redesign the configure/cmake API for this: * tweetnacl is present by default and cannot be enabled * libsodium can be enabled using --with-libsodium, which replaces the built-in tweetnacl * CURVE encryption can be disabled entirely using --enable-curve=no The macros we define in platform.hpp are: ZMQ_HAVE_CURVE 1 // When CURVE is enabled HAVE_LIBSODIUM 1 // When we are using libsodium HAVE_TWEETNACL 1 // When we're using tweetnacl (default) As of this patch, the default build of libzmq always has CURVE security, and always uses tweetnacl.
-
- 09 Feb, 2016 8 commits
-
-
Min RK authored
Cleaning up recent option names
-
Pieter Hintjens authored
And I'm on a reasonably sized laptop. I think allocating INT_MAX memory is dangerous in a test case. Solution: expose this as a context option. I've used ZMQ_MAX_MSGSZ and documented it and implemented the API. However I don't know how to get the parent context for a socket, so the code in zmq.cpp is still unfinished.
-
Pieter Hintjens authored
These options are confusing and redundant. Their names suggest they apply to the tcp:// transport, yet they are used for all stream protocols. The methods zmq::set_tcp_receive_buffer and zmq::set_tcp_send_buffer don't use these values at all, they use ZMQ_SNDBUF and ZMQ_RCVBUF. Solution: merge these new options into ZMQ_SNDBUF and ZMQ_RCVBUF. This means defaulting these two options to 8192, and removing the new options. We now have ZMQ_SNDBUF and ZMQ_RCVBUF being used both for TCP socket control, and for input/output buffering. Note: the default for SNDBUF and RCVBUF are otherwise 4096.
-
Pieter Hintjens authored
The proper name is ZMQ_THREAD_SAFE Solution: fix in the documentation.
-
Pieter Hintjens authored
This option has a few issues. The name is long and clumsy. The functonality is not smooth: one must set both this and ZMQ_XPUB_VERBOSE at the same time, or things will break mysteriously. Solution: rename to ZMQ_XPUB_VERBOSER and make an atomic option. That is, implicitly does ZMQ_XPUB_VERBOSE.
-
Pieter Hintjens authored
Solution: rename to ZMQ_MAXRT This is the option name used on Windows, so easier to use and remember.
-
Pieter Hintjens authored
Problem: ZMQ_USEFD does not follow conventions
-
Luca Boccassi authored
Solution: rename socket option (and variables and files) from usefd to use_fd.
-
- 08 Feb, 2016 10 commits
-
-
Constantin Rack authored
Problem: ZMQ_PRE_ALLOCATED_FD is too long
-
Luca Boccassi authored
Solution: rename socket option (and variables and files) from pre_allocated_fd to usefd.
-
Pieter Hintjens authored
CMake and tweetnacl CI
-
Luca Boccassi authored
Solution: add builds/cmake/ci_build.sh and call it from travis.yml
-
Luca Boccassi authored
Solution: bump CMake required version to 2.8.12 to avoid: CMake Error at tests/CMakeLists.txt:110 (target_include_directories): Unknown CMake command "target_include_directories".
-
Luca Boccassi authored
Solution: add builds/tweetnacl/ci_build.sh and add it in travis.yml
-
Luca Boccassi authored
Solution: disable -pedantic when building with tweetnacl to avoid warning about "long long" not existing in ISO C++ 98
-
Pieter Hintjens authored
fallback on tweetnacl if libsodium is not found and not explicitly requested
-
Min RK authored
-
Min RK authored
allows building with tweetnacl without cmake
-
- 07 Feb, 2016 9 commits
-
-
Luca Boccassi authored
Fixes to Windows builds
-
Pieter Hintjens authored
Solution: fix these.
-
Pieter Hintjens authored
Solution: at least for vs2015, add vs2015/build.bat to work the same was as zproject.
-
Pieter Hintjens authored
Fix a typo in "Add ZMTP heartbeats" changes
-
Pieter Hintjens authored
Change to detect POSIX Thread priority support properly
-
Pieter Hintjens authored
Use memcpy instead of assuming option values are aligned
-
OBATA Akio authored
-
OBATA Akio authored
-
Brian Silverman authored
Otherwise, it's undefined behavior. ubsan catches alignment issues in the libzmq test suite without this.
-
- 06 Feb, 2016 2 commits
-
-
Constantin Rack authored
Refinement of #f4fe375b
-
Pieter Hintjens authored
Solution: be more explicit in the code, and in the zmq_recv man page (which is the most unobvious case). Assert if length is not zero and buffer is nonetheless null.
-