All Versions
22
Latest Version
Avg Release Cycle
64 days
Latest Release
1376 days ago

Changelog History
Page 2

  • v0.17.4 Changes

    February 08, 2019
    • Accept numbers as keys in the config syntax (#1014)
    • Fix behavior of inline_all_enqueues in the testing DSL (#1016)
    • 👉 Make sure actors that receive stream input shut down properly (#1019)
    • Fix undesired function hiding in fused_downstream_manager (#1020)
    • 👌 Improve to_string output for caf::error (#1021)
    • 🛠 Fix path recognition in the URI parser, e.g., file:/// is now valid (#1013)
    • Properly report errors to users while connecting two CAF nodes (#1023)
    • 🏗 Simplify crosscompilation: remove build dependency on code generators (#1026)
    • 🏗 Leave CXX settings to the (CMake) parent when building as subdirectory (#1032)
    • 📚 Build without documentation in subdirectory mode (#1037)
    • Allow parents to set OPENSSL_INCLUDE_DIR in subdirectory mode (#1037)
    • ➕ Add -pthread flag on UNIX when looking for libc++ support (#1038)
    • ➕ Add missing operator== for exit_msg (#1039)
    • 🌲 Avoid producing unexpected log files (#1024)
  • v0.17.3 Changes

    November 11, 2019
    • ➕ Add support for OpenBSD (#955)
    • Provide uniform access to actor properties (#958)
    • 🛠 Fix bug in stream managers that caused finalizers to get called twice (#937)
    • 🛠 Fix verbosity level with disabled console output (#953)
    • 🛠 Fix excessive buffering in stream stages (#952)
    • ➕ Add missing to_string(pec) (#940)
  • v0.17.2 Changes

    October 20, 2019
    • ➕ Add scheduled_send for delayed sends with absolute timeout (#901)
    • 👍 Allow actors based on composable behaviors to use the streaming API (#902)
    • 🛠 Fix memory leak when deserializing node_id (#905)
    • 🛠 Fix composition of statically typed actors using streams (#908)
    • ⬇️ Reduce stack usage of serializers (#912)
    • 🛠 Fix several warnings on GCC and Clang (#915)
    • 🐧 Use default installation directories on GNU/Linux (#917)
    • Fix holds_alternative and get_if for settings (#920)
    • 👌 Support arbitrary list and map types in config_value (#925)
    • 👍 Allow users to extend config_value API (#929, #938)
    • 🛠 Fix silent dropping of errors in response handlers (#935)
    • 🛠 Fix stall in remote_group on error (#933)
  • v0.17.1 Changes

    August 31, 2019
    • 🛠 Fix endless loop in config parser (#894)
    • 🛠 Fix debug build with Clang 7 on Linux (#861)
    • 🛠 Fix type-specific parsing of config options (#814)
    • 👌 Improve CMake setup when building CAF as subfolder (#866)
    • 🛠 Fix potential deadlock in proxy registry (#880)
    • 🛠 Fix output of --dump-config (#876)
    • 🛠 Fix potential segfault when using streams with trace logging enabled (#878)
    • Properly set CLI remainder (#871)
    • 👌 Support nesting of group names in .ini files (#870)
    • 👌 Support all alphanumeric characters in config group names (#869)
    • 🛠 Fix handling of containers with user-defined types (#867)
    • Fix defaulted_function_deleted warning on Clang (#859)
  • v0.17.0 Changes

    July 27, 2019
    • Parallelize deserialization of messages received over the network (#821).
      Moving the deserialization out of the I/O loop significantly increases
      🐎 performance. In our benchmark, CAF now handles twice as many messages per
      second.
    • ➕ Add marker to make categories optional on the CLI: Categories are great at
      organizing program options. However, on the CLI they get in the way quickly.
      This change allows developers to prefix category names with ? to make it
      optional on the CLI.
    • 🛠 Fix performance of thread-safe actor clock (#849). This clock type is used
      whenever sending requests, delayed messages, receive timeouts etc. CAF can
      🖐 handle about 10x more timeouts per second after the patch.
    • 😌 Relax ini syntax for maps by making = for defining maps and , for
      separating key-value pairs optional. For example, this change allows to
      rewrite an entry like this:

      logger = { console-verbosity='trace', console='colored'}

    to a slightly less noisy version such as this:

    logger { console-verbosity='trace'console='colored'}
    
    • 👍 Allow apps to always use the caf::logger, whether or not CAF was compiled
      🌲 with logging enabled.
    • 🛠 Fix over- and underflow checks in number parser (#852).
    • 🛠 Fix multicast address detection in caf::ipv4_address.cpp (#853).
    • 🛠 Fix disconnect issue / WSAGetLastError usage on Windows (#846).
    • 🛠 Fix --config-file option (#841).
    • 🛠 Fix parsing of CLI arguments for strings and atom values.
    • ➕ Add conversion from nullptr to intrusive and COW pointer types.
    • 👍 Streamline direct node-to-node communication and support multiple app
      identifiers.
    • Reimplement binary_serializer and binary_deserializer without STL-style
      🐎 stream buffers for better performance.
    • 👌 Support move-only behavior functions.
    • 👍 Allow users to omit global in config files.
    • 👍 Allow IPO on GCC/Clang (#824).
  • v0.16.5 Changes

    November 11, 2019

    ➕ Added

    • 👌 Support for OpenBSD.
  • v0.16.4 Changes

    November 11, 2019

    🛠 Fixed

    • 📜 Backport parser fixes from the CAF 0.17 series.
    • ⚠ Silence several compiler warnings on GCC and Clang.
  • v0.16.3 Changes

    December 27, 2018

    ➕ Added

    • The new class cow_tuple provides an std::tuple-like interface for a heap-allocated, copy-on-write tuple.
    • Missing overloads for dictionary.
    • The new to_lowercase function for atoms allows convenient conversion without having to convert between strings and atoms.

    🔄 Changed

    • 🖨 Printing timestamps now consistently uses ISO 8601 format.
    • The logger now uses a bounded queue. This change in behavior will cause the application to slow down when logging faster than the logger can do I/O, but the queue can no longer grow indefinitely.
    • Actors now always try to dequeue from the high-priority queue first.

    🛠 Fixed

    • 🏗 Solved linker errors related to socket_guard in some builds.
    • 🛠 Fix the logger output for class names.
    • Deserializing into non-empty containers appended to the content instead of overriding it. The new implementation properly clears the container before filling it.
    • The split function from the string algorithms header now works as the documentation states.
    • ⚠ Silence several compiler warnings on GCC and Clang.
  • v0.16.2 Changes

    November 03, 2018

    🛠 Fixed

    • 🚀 The copy-on-write pointer used by message failed to release memory in some cases. The resulting memory leak is now fixed.
  • v0.16.1 Changes

    October 31, 2018

    ➕ Added

    • ➕ Adding additional flags for the compiler when using the configure script is now easier thanks to the --extra-flags= option.
    • 👍 The actor clock now supports non-overriding timeouts.
    • The new intrusive_cow_ptr is a smart pointer for copy-on-write access.

    🔄 Changed

    • 👌 Improve noexcept-correctness of variant.
    • CAF threads now have recognizable names in a debugger.
    • The middleman now passes CLOEXEC on socket/accept/pipe calls.
    • 🌲 Users can now set the log verbosity for file and console output separately.

    🛠 Fixed

    • A dictionary now properly treats C-strings as strings when using emplace.
    • Eliminate a potential deadlock in the thread-safe actor clock.
    • ➕ Added various missing includes and forward declarations.