On 03.06.2013, at 15:09, Brandon Kohn
On 5/17/2013 5:26 PM, Charousset, Dominik wrote:
is there any interest in a library for actor programming? I'm quite interested in this.
The library we've developed is a C++11 open source library named "libcppa". It is currently released under LGPL2, but re-releasing the library under the boost license is not an issue. You'll find all important links and ressources either under http://libcppa.org or on the GitHub project page: https://github.com/Neverlord/libcppa, including a user manual as HTML or PDF. We've also submitted a paper to the C++Now conference. I agree that embracing C++11 is great, but would also be curious if a significant amount of functionality could also work with earlier versions/compilers by using the boost equivalents. This is perhaps a bit selfish of me because I work in multi-agent simulation, and our current code base is locked in msvc-9.0.
The project originally started as C++03 project under the name 'acedia' (http://sourceforge.net/projects/acedia/), but you really end up tilting at windmills and the resulting code is neither clean nor readable. We switched to C++11 for that reason when GCC's "C++0x" support included lambdas and variadic templates (we've started development on a GCC 4.5 beta release). Variadic templates and lambda expressions are ubiquitously used in libcppa. I guess you could "back-port" the core functionality, but you would destroy maintainability in the process. By replacing every peace of code in libcppa that uses C++11 features with a C++03 workaround, you'll increase the code size by an order of magnitude, while reducing the readability to zero. Let alone behavior definitions. Without lambdas, you will end up using boost::bind *a lot*. Due to the lack of constexpr, you will have to evaluate each "atom(..)" call at runtime. That combined with the fact that boost::bind relies on heap allocations (while lambdas just use the stack), the back-port would perform very poorly.
Let me know if you'd like any assistance. Your library looks really nice, and I'd be happy to help.
Support is always appreciated. :) Just send me a mail what parts you are interested in (development, testing/debugging, documentation, help in porting it to windows either once MS finally has sufficient C++11 support or using MinGW for example). Best regards, Dominik