Boost logo

Boost :

Subject: Re: [boost] [modularization] What is a module? What is a sub-module?
From: Rob Stewart (robertstewart_at_[hidden])
Date: 2014-09-24 05:07:48


On September 23, 2014 12:54:28 PM EDT, "Bjørn Roald" <bjorn_at_[hidden]> wrote:
>On 09/23/2014 11:01 AM, Rob Stewart wrote:
>> On September 22, 2014 5:20:10 PM EDT, "Bjørn Roald"
><bjorn_at_[hidden]> wrote:
>>> On 09/22/2014 11:37 AM, Rob Stewart wrote:
>>>> On September 21, 2014 11:12:51 AM EDT, "Bjørn Roald"
>>> <bjorn_at_[hidden]> wrote:
>>>
>>>> What is a "main module"?
>>>
>>> For library A, the main module live in
>>> libs/A/include
>>> libs/A/src
>>> etc.
>>>
>>> Each sub-library contain a module as well, sub.library A/x live in:
>>> libs/A/x/include
>>> libs/A/y/src
>>> etc.
>>>
>>> all these modules are modules of library A, but the main module is a
>>> sort of focus point. It is the boost library's primary features.
>Sub
>>> libraries are there to provide optional utilities that depend on or
>or
>>> create a bridge to other modules, boost or external modules.
>>> Sub-libraries could be used for other purposes than modularization,
>>> e.g.
>>> logical partitioning of a libraries facilities. But if that is
>useful,
>>>
>>> it is off-topic, so I leave that.
>>
>> Did you notice how you switched from using "module" to using
>> "library" in your discussion?
>
>Why do you say that, I can not say I switched, at lieat not in that
>direction. Further down I discuss if sublibraries should simply be
>called modules.

My impression, when reading your explanation, the first time, is that you began using "library" rather than "module". As I read it now, I see was mistaken.

>> I fail to see the distinction you're trying to make between the two.
>
>OK, first and most important. Library is an established boost term, I
>do not want to suggesting anything fundamentally about that term. A
>library contains one or more modules. If more than one module, then
>the
>terms sub-module, sub-library have been used about these extra modules
>in the modularization discussions. I suggested to call them
>sub-library, and avoid calling them submodules due to probable
>confusion
>with git submodule, but I think maybe it is better to simply call them
>modules, and a Boost library may bave more than one of them to
>facilitate modularization.

I see nothing that makes "module" distinct from "library" in the foregoing.

>>>>> Module:
>>>>> A organized set of boost library code that can be handled in a
>>> uniform
>>>>> manner by boost tools. A module shall contain the include, test,
>>>>> build,
>>>>> and doc directory, Modules that are not header-only shall also
>>> contain
>>>>> the src directory that is used to build one or more corresponding
>>>>> library files.
>>>>
>>>> How is a module distinct from a library?
>>>
>>> A library can have more than one module. If it has one it is more
>>> or less the same.

You also discuss "sublibraries" in the same way.

>>>> Both are defined in terms of the directories they contain. Each is
>>>> defined in terms of the other.

Do you follow my point now?

>>> Module take 2:
>>> A organized set of boost code that can be handled in a uniform
>>> manner by boost tools. A module shall contain the include, test,
>>> build, and doc directory, Modules that are not header-only shall
>also
>>> contain the src directory that contain sources used to build static
>and
>>> dynamic library files that the user will link with.
>>
>> I don't understand how that is distinct from "library".
>
>A library may contain more than one module, if not modularization will
>create new boost libraries needing maintainers, reviews, etc.

A library can contain more than one sublibrary. Why do you need "module" and "submodule" when "library" and "sublibrary" would do as well? If you only use "library" and "sublibrary" in every case, the substance of what you've written doesn't change as I see it.

If you still think there's something to a library that isn't part of a module, please explain. So far, they appear to be synonyms to me.

___
Rob

(Sent from my portable computation engine)


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