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

Do not rely on implementation details of boost::interprocess #332

Open
liss-h opened this issue Oct 2, 2024 · 4 comments
Open

Do not rely on implementation details of boost::interprocess #332

liss-h opened this issue Oct 2, 2024 · 4 comments

Comments

@liss-h
Copy link
Contributor

liss-h commented Oct 2, 2024

In this header for instance https://github.com/LLNL/metall/blob/master/include/metall/detail/array_construct.hpp there is a using declaration for array_construct out of the ipcdetail namespace of boost::interprocess. (There might be other places like this)

This namespace is an implementation detail namespace in boost which you are not supposed to access. This causes issues because in recent boost releases (>=1.85) they removed that function, which means that metall does no longer compile with those releases.

@KIwabuchi
Copy link
Member

Thanks for the report, Liss!
Yeah, I know it's not a public API, and it is better to avoid using it generally. But, unfortunately, the object construction logic is complicated and requires deep C++ knowledge. That's why I rely on some code in the details namespace. Boost changes its public API frequently anyway, so I believe using a little non-public API is reasonable as long as we keep testing the new boost versions (I should update our CI script more frequently to keep up with boost...).

@KIwabuchi
Copy link
Member

I was able to fix the bug you found:
#333

I'll merge the PR once I update some documentation.

@KIwabuchi
Copy link
Member

I have merged #333 to the develop branch.

@KIwabuchi KIwabuchi reopened this Oct 4, 2024
@KIwabuchi
Copy link
Member

(I reopened this issue as I accidentally closed it..)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants