Menu

Channel / News: Recent posts

initial release of Go-router

router is a package for name-space based message passing for google's Go language

Posted by yigong 2010-02-02

channel_r0.1_20090806

fix some compiling warnings and update build instructions

Posted by yigong 2009-08-16

channel - r0.1 updated for compilers, boost distribution

updated to build with boost distribution 1_39 and the following compilers:
ubuntu8.04/g++4.2.4; ubuntu9.04/g++4.3.3
Windows(VC++2005, VC++2008), also build under federa11 based on other developer's report.

Posted by yigong 2009-08-07

Join r6 - new release

Join library is a C++ asynchronous message coordination and concurrency library based on JoCaml and Cw. It provides a high level api of asynchronous ports, synchronous ports, chords and joints which support multithreaded applications and orchestration of asynchronous messages. This new release contains some major changes: support using boost lambda and phoenix to define chord function, support JoCaml functional style Join programming.

Posted by yigong 2009-04-15

join r4

code cleanup and doc update. explore flow based programming

Posted by yigong 2008-03-31

The Join library release 3

Design changes for simplicity and better performance. Keep consistent with Cw design (remove guards and multi synch methods). More optimizations to avoid copying and buffering

Posted by yigong 2007-07-19

Boost.Join release 2

Framework is complete and document cleaned up. The major changes from last release are code related to chord_override and chord_remove. Also two tutorials are added: 1> implementing thread safe event dispatching using Join and 2> implementing data parallel algorithms (parallel loop and map-reduce) using Join.

Posted by yigong 2007-06-11

Boost.Join release 1

The first release of Boost.Join - a C++ asynchronous concurrency library based on Cw and Join calculus

Posted by yigong 2007-05-19

snapshot boost_channel_0_07_1 to add Jamfile.v2

add Jamfile.v2 for building channel library and examples (current boost cvs build system is changed so Jamfile.v2 is required). However there is issues with building samples using Jamfile.v2 at WindowsXP/VC++. Windows users please use existing Jamfile (v1). This may involve replacing boost/tools/build/v1 directory with the content from an older boost release or cvs checkout (such as 12/10/2006)

Posted by yigong 2007-01-22

release of boost_channel_0_07

1> complete filter and translator related code.
When we build distributed applications around distributed name spaces, we may want to "relocate"/"mount" the names imported (from a connection to a remote name space) to a specific sub-region in local name space. For example, if we have a name space in desktop computer and connect to a PDA and a laptop, we can set translators at connections so that names imported from PDA will appear under "/pda/" and names from laptop will appear under "/laptop/". Or if our application use integer as ids/names, we may want to relocate ids from the 1st connection to [1000-1999] and ids from next connection to [2000-2999] and so on. That is similar to the way how we mount remote file-systems to local file-system. filters are used to restrict the valid range of names allowed to pass in/out specific channel connections.
A sample is added to demo the usage of filter and translator.... read more

Posted by yigong 2007-01-15

release of boost_channel_0_06

This release introduced associative lookup based name-matching and message passing. 2 kinds are implemented:
. regex based name-matching is implemented using Boost.Regex. applications can use regex patterns to subscribe to messages, e.g. use regex(".*ball.*") to subscribe to messages sent for "basketball", "baseball",etc.
. Linda style tuple associative lookup, implemented using Boost.Tuple. For example, we can use tuple ("Adam","Smith","Male","Math Dept") to identify a person; application can use (wildcard, wildcard, wildcard, "Math Dept") to subscribe to messages for all persons in math department.
Examples are added to demo these 2 methods.... read more

Posted by yigong 2006-12-21

5th snapshot of boost_channel

5th snapshot of boost_channel. changes are :
1. connecting push channel to pull channel
2. changes to make channel compatible with the latest Boost.Asio changes
3. changes to asio streams
4. other fixes

Posted by yigong 2006-11-29

4th snapshot of boost_channel

another snapshot of boost channel. the following changes:
1. initial Windows build on WindowsXP with Visual C++ 2005 Express. Most library code and samples build, tested and worked correctly, with the only exception of the sample using shared-memory message queue.
2. write a wrapper executor to use Philipp Henkel's threadpool library as executors. tested and worked smoothly.
3. reworked choice/join arbiters and implement them in both synchronous and asynchronous forms
4. add simple queues classes, add more documentation and fixed some bugs.

Posted by yigong 2006-10-23

3rd snapshot of boost_channel

Changes:
1. restructuring of source code layout; moving code into the following sub directories: name_spaces, dispatchers, executors, streams; so that the design intention is clear that where the plug & playable components should be and what are their interfaces
2. add a "stream" class on top of shared memory message queue to connect 2 remote channels in 2 processes in the same box
3. add sample code for a demo distributed chat server and demo sample for shared memory channel connection

Posted by yigong 2006-10-03

2nd snapshot of boost channel

Source code clean up and add buffered asynchronous dispatcher with choice and join pattern code.
Initial design doc

Posted by yigong 2006-09-25

1st snapshot of boost channel

This is the first snapshot of redesign and rewriting of Channel. There are major design changes. The current target platform is boost; implementation only use existing boost facilities.
Main design doc and more code (various dispatchers, samples...) will be checked in shortly

Posted by yigong 2006-09-18

3-16-2006 Windows platform release

# Complete port and build on WindowsXP with VC8
# Add dispatching policy as Channel template parameter to support various dispatching algorithms; add Broadcast and simple RoundRobin dispatching policies for testing
# Change Callback to functor style; so normal functions and functors can be directly used as callbacks.

Posted by yigong 2006-03-16

2-26-2006 hiearchical router release

1. code of hierarchical router based on trie and simple test code
2. clean up of message handling code
3. new user manual

Posted by yigong 2006-02-26

2-14-2006

1. add SynchPolicy as a parameter of Channel template class
2. convert channel design doc to html format
3. add html design doc for CVM

Posted by yigong 2006-02-14