|
Boost : |
Subject: [boost] Boost.Chain over at Github
From: Dean Michael Berris (mikhailberis_at_[hidden])
Date: 2011-03-17 12:13:16
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk