Skip to content

Conversation

@msimberg
Copy link
Contributor

@msimberg msimberg commented Feb 14, 2025

This vendors Boost.Preprocessor from Boost 1.87.0 (https://github.com/boostorg/preprocessor/tree/boost-1.87.0, same as 1.85.0).

This requires #1816 (and is based on top of it).

I used a little helper script in tools/vendor_boost_preprocessor/vendor_boost_preprocessor.py (let me know what the best location for that would be) to help. This vendors only the headers from Boost.Preprocessor that gridtools actually uses (including transitive includes of course). Macros are renamed to GT_PP_* (from BOOST_PP_*). The vendored headers are now in include/gridtools/preprocessor. I'm not sure if you want to have them in some slightly less conspicuous place? Do you consider any GT_* macros to be part of the public API, or is that unspecified (should they be called GT_IMPL_PP_* instead)?

There are 226 vendored headers, compared to 400 in the upstream Boost version.

@havogt
Copy link
Contributor

havogt commented Feb 19, 2025

It looks great! Let's just delete the cpp_bindgen stuff from here. I guess we should let cpp_bindgen rest in peace...

@msimberg
Copy link
Contributor Author

It looks great! Let's just delete the cpp_bindgen stuff from here. I guess we should let cpp_bindgen rest in peace...

Great, thanks for having a look. I'll attempt to remove all traces of cpp_bindgen in that case, unless you think it may be more complicated than it looks...

@msimberg
Copy link
Contributor Author

cscs-ci run

@msimberg
Copy link
Contributor Author

cscs-ci run

@msimberg
Copy link
Contributor Author

I haven't touched the jenkins folder at all which still has references to loading boost modules etc. but I'm guessing that will be removed separately/doesn't matter for these changes...

@msimberg msimberg marked this pull request as ready for review February 27, 2025 08:55
@msimberg msimberg requested a review from havogt February 27, 2025 08:55
Copy link
Contributor

@havogt havogt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I propose to fix a typo to prove that I read your README. ;)
This is great. Thanks a lot.

Co-authored-by: Hannes Vogt <hannes@havogt.de>
@havogt
Copy link
Contributor

havogt commented Feb 28, 2025

cscs-ci run

@havogt havogt merged commit efdf325 into GridTools:master Feb 28, 2025
69 checks passed
havogt pushed a commit that referenced this pull request Apr 11, 2025
This vendors Boost.Preprocessor from Boost 1.87.0
(https://github.com/boostorg/preprocessor/tree/boost-1.87.0, same as
1.85.0).

I used a little helper script in
`tools/vendor_boost_preprocessor/vendor_boost_preprocessor.py` (let me
know what the best location for that would be) to help. This vendors
only the headers from Boost.Preprocessor that gridtools actually uses
(including transitive includes of course). Macros are renamed to
`GT_PP_*` (from `BOOST_PP_*`). The vendored headers are now in
`include/gridtools/preprocessor`. I'm not sure if you want to have them
in some slightly less conspicuous place? Do you consider any `GT_*`
macros to be part of the public API, or is that unspecified (should they
be called `GT_IMPL_PP_*` instead)?

There are 226 vendored headers, compared to 400 in the upstream Boost
version.
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

Successfully merging this pull request may close these issues.

2 participants