
Hi everyone, I just wanted to give a heads up to say that I'm actually now trying to get the Boost.Chain idea a little more weight by defining the interface of the type -- as you might remember, "chain" was pretty much the immutable string. I wanted to point those interested over to the Git repository and project page over on Github (https://github.com/mikhailberis/chain) and either watch the repository or submit pull requests if you fancy filling in some of the blanks there. At this time I'm pretty much stubbing out the implementation while trying to define a suitable interface from the start. The idea is that I would like to build this incrementally from the chains::builder type which will mostly do the linked data structure for doing a segmented string data type, and then a chains::chain which would act as a proxy. The chains::view (to be defined) will pretty much encapsulate an encoding tag (to determine the encoding/decoding policy/implementation statically) that will enable the encoded viewing of the data in the chain. The plumbing (which could very well be the more interesting part of the implementation) is still up in the air, but I'm thinking about doing an intrusive list of blocks, each block having metadata fields that indicate the size of the block (runtime defined, depending on the page size to ensure page-aligned addresses), a pointer to the block, and a reference count. I'm still thinking about making the reference count for the blocks be hosted in a block manager that maps the block's address to a reference count that's atomically incremented/decremented instead of making the reference count field be part of the actual block. Reason for this is so that touching the reference counts will not mark the page on which the actual data block is stored to be marked as "dirty", avoiding cache coherency issues on shared pages/cache-lines across multiple processors. Of course I may be getting ahead of myself here but if you're interested in helping define the interface at this time, please let me know and join the mailing list over at https://groups.google.com/group/boost-chain. Have a good one guys and I look forward to collaborating with those interested in building an immutable string data structure! -- Dean Michael Berris http://about.me/deanberris