Version 0.14 of CAF has just been released. This release improves several CAF internals, fixes bugs (primarily of type-safe actors), adds an optional ASIO backend, and makes three changes to the API:
timed_sync_send
has been removed (it offered an alternative way of
defining message handlers, which is inconsistent with the rest of the API)broadcast
, random
, and round_robin
in actor_pool
were removed and replaced by factory functions using the same nameWe have also refined our policy regarding supporting compilers and improved our testing setup:
CAF always required a recent compiler and we are eager to adopt new language features and to catch up with C++14 (and C++17). On the other hand, we are aware that changing the compiler every few months is not acceptable for most users. As a compromise between progressivity and stability, we support versions of GCC and Clang that are up to two years old. Consequently, support for GCC 4.7 has been dropped with 0.14.
We are continuously working on increasing the number of distribution channels for CAF. At the moment, we provide a FreeBSD port, a Homebrew package, Biicode integration, and Linux packages via the OpenSuSE build service. You can find a full list with links etc. in the Get CAF Section of the README.
We have integrated several tools to constantly improve the code quality of
CAF. Each pushed commit to develop
is automatically tested via Jenkins on
several operating systems and compilers. Our current setup includes:
Further, we test our code on GCC 4.8, GCC 4.9, GCC 5.1, Clang 3.5, and Clang 3.6. For static code analysis, we use Coverity and cppcheck. These tools are complemented with ASAN and LeakSanitizer.
In case you are waiting for MSVC support: we are currently testing on the
latest RC from Microsoft. It appears that MSVC is not able to compile
advanced match cases and libcaf_io
does compile but its unit tests
fail. Any feedback or help to get the IO parts working (or all parts
of CAF compiling) is welcome. To check on the current progress please
visit Issue #302 on GitHub.