Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modular HPX branch and an alternative project layout #3623

Closed
teonnik opened this issue Jan 18, 2019 · 2 comments
Closed

Modular HPX branch and an alternative project layout #3623

teonnik opened this issue Jan 18, 2019 · 2 comments
Labels
tag: pinned Never close as stale
Milestone

Comments

@teonnik
Copy link

teonnik commented Jan 18, 2019

Hi! I am following the development of the library closely and I noticed the following commit : 52a9eda discussing a possible layout for a modularized HPX library. The layout follows a rather common structure among open source C++ projects, which is great! Recently, there has been some effort to formally write-up a conventional layout for C++ project. In particular, vector_of_bool's Pitchfork Layout (PFL) and Boris Kolpackov's canonical project layout.

PFL suggests a structure very similar to what is already proposed. However, PFL also mentions an alternative layout called the Merged Header Placement where headers, sources and unit tests are placed within the same directory. The merged header placement appears to accommodate future C++ modules better. There are a number of other advantages discussed by both proposals. There are very similar, I've pointed minor differences in this issue.

I just wanted to bring this to your attention! Cheers!

@sithhell
Copy link
Member

Thanks for the comments. The commit you mentioned is part of #3582. I think the actual layout/naming/structure of the different modules/components/sublibraries is something that can be easily changed once we disentangled our code.

I am not a big fan of the Merged Header Placement. I actually do prefer to have a tidy, hierarchical set of directories. Why do you think is it more beneficial for C++ modules? I'm not sure I follow there completely. Isn't it just a matter of where your module maps point to in the end?

@teonnik
Copy link
Author

teonnik commented Jan 21, 2019

I was a bit vague in that section. I meant to say that with modules, the incentive to split the interface and implementation in separate files (i.e. hpp and cpp) is not there. Most people will prefer to put everything in a single file (the module). Hence, the include / src split is, likely, not a good fit for modules and everything will be just under a single directory. I think that was mentioned in Boris's canonical project layout.

@sithhell sithhell added this to TODO in HPX modularization Jan 28, 2019
@hkaiser hkaiser added the tag: pinned Never close as stale label Jul 13, 2019
@teonnik teonnik closed this as completed May 3, 2020
HPX modularization automation moved this from TODO to Done May 3, 2020
@hkaiser hkaiser added this to the 1.5.0 milestone May 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tag: pinned Never close as stale
Projects
Development

No branches or pull requests

3 participants