Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

130 lines (100 sloc) 4.43 KB

Version 0.5


  • New logging facility
    • must be enabled using --with-cppa-log-level=LEVEL (TRACE-ERROR)
    • --enable-debug also enables ERROR log level implicitly
    • output files are named libcppa_PID_TIMESTAMP.log
    • log format is Log4j-like
  • New middleman (MM) architecture
    • MM multiplexes sockets but no longer knows communication internas
    • new protocol interface encapsulates any communication
    • users can add new communication protocols to MM
    • previously used binary protocol is not called 'DEFAULT'
    • MM provides run_later function to hook code into MM event-loop
  • New class: weak_intrusive_ptr
    • ref_counted has protected destructor to enforce use of request_deletion
    • default request_deletion calls delete
    • enable_weak_ptr_mixin overrides request_deletion to invalidate weak ptrs
  • Fixed issue #75: peers hold weak pointers to proxies (breaks cyclic refs)
  • actor_companion_mixin allows non-actor classes to communicate as/to actors
  • actor_proxy became an abstract class; must be implemented for each protocol
  • Removed global proxy cache singleton
  • actor_addressing manages proxies; must be implemented for each protocol
  • New factory function: make_counted (similar to std::make_shared)
  • Bugfix: reply matches correct message on nested receives

Version 0.4.2


  • Refactored announce
    • accept recursive containers, e.g., vector<vector<double>>
    • allow user-defined types as members of announced types
    • all-new, policy-based implementation
  • Use poll rather than select in middleman (based on the patch by ArtemGr)

Version 0.4.1


  • Bugfix: shutdown caused segfault if no scheduler or middleman was started

Version 0.4


  • New network layer implementation
  • Added acceptor and input/output stream interfaces
  • Added overload for publish and remote_actor using the new interfaces
  • Changed group::add_module to take unique_ptr rather than a raw pointer
  • Refactored serialization process for group_ptr
  • Changed anyonymous groups to use the implementation of the "local" module
  • Added scheduled_and_hidden policy for system-internal, event-based actors
  • Enabled serialization of floating point values
  • Added shutdown function
  • Implemented broker-based forwarding of local groups for 'pseudo multicast'
  • Added then and await member functions to message_future
  • Do not send more than one response message with reply

Version 0.3.3


  • Bugfix: serialize message id for synchronous messaging
  • Added macro to unit_testing/CMakeLists.txt for less verbose CMake setup
  • Added function "forward_to" to enable transparent forwarding of sync requests
  • Removed obsolete files (gen_server/* and queue_performances/*)
  • Bugfix: avoid possible stack overflow in debug mode for test__spawn
  • Added functions "send_tuple", "sync_send_tuple" and "reply_tuple"
  • Let "make" fail on first error in dual-build mode
  • Added rvalue overload for receive_loop
  • Added "delayed_send_tuple" and "delayed_reply_tuple"

Version 0.3.2


  • Bugfix: added 'bool' to the list of announced types

Version 0.3.1


  • Bugfix: always return from a synchronous handler if a timeout occurs
  • Bugfix: request next timeout after timeout handler invocation if needed

Version 0.3


  • Implemented synchronous messages
  • The function become() no longer accepts pointers
  • Provide --disable-context-switching option to bypass Boost.Context if needed
  • Configure script to hide CMake details behind a nice interface
  • Include "tuple_cast.hpp" in "cppa.hpp"
  • Added forwarding header "cppa_fwd.hpp"
  • Allow raw read & write operations in synchronization interface
  • Group subscriptions are no longer attachables

Version 0.2.1


  • More efficient behavior implementation
  • Relaxed definition of become to accept const lvalue references as well

Version 0.2


  • Removed become_void [use quit instead]
  • Renamed future_send to delayed_send
  • Removed stacked_actor; moved functionality to event_based_actor
  • Renamed fsm_actor to sb_actor
  • Refactored spawn: spawn(new T(...)) => spawn<T>(...)
  • Implemented become & unbecome for context-switching & thread-mapped actors
  • Moved become & unbecome to local_actor
  • Ported libcppa from <ucontext.h> to Boost.Context library
Jump to Line
Something went wrong with that request. Please try again.