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

Boost 1.71 is outdated... #3

Open
anaegel opened this issue Dec 6, 2024 · 5 comments
Open

Boost 1.71 is outdated... #3

anaegel opened this issue Dec 6, 2024 · 5 comments

Comments

@anaegel
Copy link
Member

anaegel commented Dec 6, 2024

A general reduction of boost dependencies (cf. UG4/ugcore#86) is desirable on the long run.

For the time being, the current boost version is outdated and (in particular) causes some problems when compiling with CXX17. I would consider moving to a new version.

@LogashenkoDL, @parnet, @Nordegraf, Everybody: Any thoughts on this?

@parnet
Copy link

parnet commented Dec 6, 2024

as a quick fix a compile definition parameter can be provided so that the compilation can still be completed on newer c++ standards.
for example:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
add_compile_definitions(BOOST_NO_CXX98_FUNCTION_BASE)

the specific deprecated types depend on the compiler that is used. g++ compiles successfully without modification while aocl does not.

to move to a newer version would be great as there are many new features in newer boost version that build on newer cxx standards and could improve compilation time and run time or simplify parts of the code

@anaegel
Copy link
Member Author

anaegel commented Dec 6, 2024

@parnet: Any suggestions for the new version?

@anaegel
Copy link
Member Author

anaegel commented Dec 6, 2024

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
add_compile_definitions(BOOST_NO_CXX98_FUNCTION_BASE)


the specific deprecated types depend on the compiler that is used. g++ compiles successfully without modification while aocl does not.

Confirming (unhappily) that may be true for all clang derivatives ;-(

@parnet
Copy link

parnet commented Dec 6, 2024

@parnet: Any suggestions for the new version?

currently no suggestions

first: determine the extent to which older cxx standards need or should to be supported

as it seems boost needs to be configured for the specific version / extends. when using parts of the library as it is currently done with the old boost version then all compile definition needs to be provided so that the corresponding versions are used.

@parnet
Copy link

parnet commented Dec 6, 2024

@parnet: Any suggestions for the new version?

boost version 1.86 was released in august, 1.87 is currently in beta

i have created a first draft with the current version but need manual actions
unzip https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz into BoostForUG4/boost maybe add can be added as a git submodule to enable updates? or should all (needed) files added to the repository?

when including the boost CMakeLists.txt the target (ug4) is not yet defined. ExportDefinitions seems only be used for plugin compile definitions when building one library => should be changed to support all build options ( embedded, internal, external, ... )

needs further adaptions, but it compiles successfully at least with g++13.2.0 and cxx11

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

No branches or pull requests

2 participants