Boost logo

Boost :

Subject: Re: [boost] [Root Pointer] New Documentation
From: Artyom Beilis (artyom.beilis_at_[hidden])
Date: 2016-04-10 13:01:44


>> - I beefed up the tutorial in the following documentation and now it
>> covers everything I know about it:
>> http://philippeb8.github.io/root_ptr/
>>
> This is one of the most important subject in computer science and I would be
> surprised to see no manager interested to supervise the submission of Root
> Pointer.
>

I looked over documentation...

Questions:

1. From what I understand it is basically reference-counting pointer
with a "pool" that deletes pointers with dangling references. Am I
right?
2. What I thread safety assumptions on this library? i.e. does it use
atomic operations to handle reference counters?
3. What happens when root_ptr is deleted and node_ptr exists? Does use
of node_ptr lead to undefined behavior? If so it should be marked as
big warning.

I want to add a small thing.

>From my point of view the biggest issue of shared_ptr/reference
counting isn't cyclic references (that are easily broken with weak
references and some smart programming) but rather the overhead of the
atomic operations that cost hundreds of cycles and cache invalidation.
This is BTW one of the major reasons GC is more efficient in certain
scenarios.

Run benchmarks of copying pointers as well in single core case and
multiple core cases.

IMHO it is interesting concept a sort of merge between object/memory
pool and shared_ptr.

I think that due to the simple fact that it is so basic library,
before you even try to get to a formal review you need:

(a) Rewrite documentation making it very clear what every thing does
including something that look trivial to you as copy constructor:
restrictions, relationships, behavior what it does etc.
(b) If it is your own design/research of concept say it explicitly,
otherwise provide references to books, research papers that discuss
root pointer algorithms
(c) Describe the algorithm in much wider manner including better
examples, values of reference counters etc.
(d) Provide much wider beginner tutorial with samples

It looks interesting but for something that basic documentation isn't
even 1/2 ready.

My $0.02

Artyom Beilis


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk