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

deBOOST: Removing BOOST dependency #150

Open
yanyh15 opened this issue Jan 9, 2023 · 1 comment
Open

deBOOST: Removing BOOST dependency #150

yanyh15 opened this issue Jan 9, 2023 · 1 comment
Assignees

Comments

@yanyh15
Copy link
Member

yanyh15 commented Jan 9, 2023

This is a long term goal. This ticket is used to keep note as we find out how to do that when we go through the refactoring process

  1. Replaced BOOST_FOREACH with C++11 range-based "for", see a29d5fc and we will need to do the same in other places where BOOST_FOREACH is used.
  2. Some of the BOOST features have become recent C++ standard, e.g. the boost.filesystem library now becomes C++17, we might want to update to use standard C++17, but this will bump the requirement of C++ compiler for compiling. We will need to look into details if we consider doing this.
@yanyh15 yanyh15 changed the title Removing BOOST dependency deBOOST: Removing BOOST dependency Jan 18, 2023
@yanyh15 yanyh15 self-assigned this Jan 18, 2023
@yanyh15
Copy link
Member Author

yanyh15 commented Sep 2, 2023

The plan to deBoost can be in two ways:

  1. Directly replace with standard C/C++ function if they are available, such as BOOST_FOREACH and boost::filesystem. But since some of the C/C++ features that can directly replace boost are relative new in the C++ standard, e.g. c++17 or c++20, this would bump the compiler requirement for the building. Then if this is not possible now, we will use the second way. We decided to bump the requirement for C++ support to C++17.
    • boost::filesystem
    • BOOST_FOREACH
  2. Create wrapper function in src/util for those boost usage in the source tree, such as Rose::FileSystem, and replace those boost usage in other places with Rose::xxx. Then after all the source tree are de-boosted, only dependency on Boost will be in src/util. We will then see whether we need to implemet those boost functions in C++ or not.
    • boost::replace_all_copy ==> Rose::StringUtility::replaceAllCopy

The branch https://github.com/passlab/rexompiler/tree/deBoost is used for this issue. @pflynn157 please update this notes to record what boost features we removed.

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