Boost logo

Boost :

Subject: Re: [boost] [modularization] Modularizing Boost (modularization)
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-10-18 13:45:01


Le 18/10/13 09:58, Stephen Kelly a écrit :
> On 10/18/2013 07:39 AM, Vicente J. Botet Escriba wrote:
>> Le 18/10/13 00:24, Stephen Kelly a écrit :
>>> Hi there,
>>>
>>> my plan for modularizing and modernizing Boost was roughly this:
>>>
>>>
>>>
>>> There are now 18 edges and 11 nodes.
>>>
>>> Looking at the entire graph again, we get this:
>>>
>>> http://steveire.com/boost/graph_final.dot
>>> http://steveire.com/boost/graph_final_small.png
>>>
>>> Obviously, this is not perfect, but it is a beginning, and it is mostly
>>> now a directed graph.
>>>
>>>
>> Thanks for working on this.
> Thanks for the appreciation.
>
>> The dependency between thread and interprocess can be broken if we
>> extract unique_ptr from interprocess and move it to smart_ptr.
> unique_ptr.hpp includes several other interprocess lib headers. Those
> would have to be either moved or resolved too.
Right. The file must follow a cleanup before.
>
>> The dependency of thread to chrono/date_time could be broken after the
>> work started by Andrey in the sync directory. But I suspect that this
>> will not be ready for the next release.
>>
>> The new parts will be
>> * sync: contains basic synchronization tools, as mutexes,
>> condition_variables, locks,
>> * system_chrono : contains something similar to Boost::Chrono but
>> restricted to nanoseconds (less meta-programming needed)
> Would these be two new git repos/packages?
Currently we have a folder sync. We have not yet extracted from it
system_chrono or system_time.
>
>> The new dependencies will be
>>
>> * chrono -> system_chrono
>> * date_time -> system_chrono
>> * sync -> system_chrono
>> * thread -> system_chrono
> And what will system_chrono depend on?
The two files of this mini repository will be

boost/sync/detail/time_traits.hpp
boost/sync/detail/time_units.hpp

Them depend on config, mpl or type_traits and enable_if.
>
>> and later on
>> * thread -> sync ?
>>
>> Note system_chrono doesn't exists yet (it is included in sync) and
>> could also be moved to detail.
>> Do someone know which parts of Boost.Thread are used by Boost.Spirit
>> and Boost.Pool? Knowing this would help us to see if these libraries
>> could depend on the new sync repository.
> Why don't you check things like this yourself, instead of asking on a
> mailing list and introducing a human round trip? This isn't the first
> time you've asked things like this.

If you don't want to replay to my questions just ignore them. No need to
add more not useful text to this thread.
I guess that the authors would have a good understanding of their
libraries and could answer this question easily. And on the other side,
the answer is not urgent as the sync folder is not public yet.
>
> I'm really curious why you try to introduce a human round trip rather
> than run a simple 'git grep' or whatever equivalent tools that you
> presumably have at your disposal.
I will add it to the bottom of my TODO list.
>> BTW, I don't see Boost.Atomic in the picture.
> What picture? Boost.Atomic appears in the graph_all.dot.

I was loocking to the final picturehttp://steveire.com/boost/graph_after_remaining.png

Looking at graph_all.dot I see

   atomic -> mpl
   atomic -> detail
   atomic -> type_traits
   atomic -> smart_ptr
   atomic -> integer
   atomic -> config

I don't see the dependency to Boost.thread, but Boost.Atomic depends on
Boost.Thread in some specific platforms.

Best,
Vicente


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