2013_05_21
- Fixed type name lookup
- Workaround for GCC 4.8 SFINAE
- Do not call grep/ifconfig for host information on Linux
- Fixed printer example in manual (Section 6.1)
2013_05_12
- Default actor impl. is now event-based
- Unified spawn options
- Blocking API still available, but opt-in
- Priority-based messaging (opt-in feature)
- Support for OpenCL-based actors (enable with --with-opencl)
- Changed license to LGPL 2.1
- Added
gvalfor guard expression - Implemented thread-mapped, event-based actors
2013_02_22
- Added
quit_actorfunction to terminate actors - Added continuation feature to non-blocking API
- Allow functor-only usage of
thenandawait - Support for Boost 1.53
- Fixed timing bug in synchronous response handling
- Better diagnostics in unit tests
- Use -O3 for release build, because -O4 is broken in Clang
- Auto-reply
EXITEDto orphaned sync requests - Added
partial_function::or_elseto concatenate partial functions - New
timed_sync_sendAPI with different timeout handling - Added
on_sync_failureandon_sync_timeouthandlers for sync messaging - Added
skip_messagehelper to allow users to skip messages manually
2013_01_07
- Cover
aoutin manual - Solved bug in chaining implementation
- Added support for Boost.Context 1.51
- Use
memory::createrather thannewfor all actors - Simplified invoke process of
match_expr
2012-11-19
- Update libcppa to work with Boost.Context 1.52
- Fix possible memory corruption in
behavior_stack - Fix
fiberimplementaiton if compiling without Boost.Context
2012-11-13
- Improved memory management
- Use a per-thread memory cache for
recursive_queue_nodeandactorobjects - Allocate ~1kb worth ob objects rather than allocating each object with
new - Destroyed objects are returned to the cache and re-used later
- Use a per-thread memory cache for
- Add
intrusive_fwd_ptrto support counted pointers for forward declared types - Qt example for group chat, highlighting
actor_widget_mixin
2012-11-05
- Fixed Bug in CMake when compiling w/o Boost.Context
- Added
--bulid-staticand--build-static-onlyflags to configure script - Moved
benchmarksfolder to own repository
2012-11-03
- Added
make_response_handlewhich allows an actor to reply to message later - Replace
continuable_writerwithcontinuable_io : continuable_reader - No more multiple inheritance in
default_peer(derivescontinuable_io) - MM reports IO failures to corresponding objects
- New behavior in default protocol regarding outgoing messages:
default_peeruses FIFO queue for outgoing messages- queue stores messages even if no active connection is available
- new connections then check for previously enqueued messages first
2012-10-26
- 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_ptrref_countedhas protected destructor to enforce use ofrequest_deletion- default
request_deletioncallsdelete enable_weak_ptr_mixinoverridesrequest_deletionto invalidate weak ptrs
- Fixed issue #75: peers hold weak pointers to proxies (breaks cyclic refs)
actor_companion_mixinallows non-actor classes to communicate as/to actorsactor_proxybecame an abstract class; must be implemented for each protocol- Removed global proxy cache singleton
actor_addressingmanages proxies; must be implemented for each protocol- New factory function:
make_counted(similar to std::make_shared) - Bugfix:
replymatches correct message on nested receives
2012-10-1
- Refactored announce
- accept recursive containers, e.g.,
vector<vector<double>> - allow user-defined types as members of announced types
- all-new, policy-based implementation
- accept recursive containers, e.g.,
- Use
pollrather thanselectin middleman (based on the patch by ArtemGr)
2012-08-22
- Bugfix:
shutdowncaused segfault if no scheduler or middleman was started
2012-08-20
- New network layer implementation
- Added acceptor and input/output stream interfaces
- Added overload for
publishandremote_actorusing 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
shutdownfunction - Implemented broker-based forwarding of local groups for 'pseudo multicast'
- Added
thenandawaitmember functions to message_future - Do not send more than one response message with
reply
2012-08-09
- 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"
2012-07-30
- Bugfix: added 'bool' to the list of announced types
2012-07-27
- Bugfix: always return from a synchronous handler if a timeout occurs
- Bugfix: request next timeout after timeout handler invocation if needed
2012-07-25
- 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
2012-07-02
- More efficient behavior implementation
- Relaxed definition of
becometo accept const lvalue references as well
2012-06-29
- Removed
become_void[usequitinstead] - Renamed
future_sendtodelayed_send - Removed
stacked_actor; moved functionality toevent_based_actor - Renamed
fsm_actortosb_actor - Refactored
spawn:spawn(new T(...))=>spawn<T>(...) - Implemented
become&unbecomefor context-switching & thread-mapped actors - Moved
become&unbecometo local_actor - Ported libcppa from
<ucontext.h>toBoost.Contextlibrary