Skip to content

Replaced boost::spirit grammar with boost::parser #39694

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

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

SilkeSchomann
Copy link
Contributor

@SilkeSchomann SilkeSchomann commented Jul 18, 2025

Description of work

Summary of work

Replaced boost::spirit with boost::parser so that boost::optional can be removed. MatrixVectorPairParser.h was one of the last places in the Mantid code base that used boost::optional. Unfortunately, this was required by the boost::spirit parser. From boost version 1.87 on there is a new parser library in boost, boost::parser. This does not rely on boost::optional.

Fixes #39617.

To test:

Check that the unit tests are running, especially the ones for MatrixVectorPairParser.

MatrixVectorPairParser is mainly used by SymmetryOperationSymbolParser and GroupTransformation. Running code like the examples in https://docs.mantidproject.org/nightly/concepts/SymmetryGroups.html will also use the MatrixVectorPairParser and can be used for testing.

This does not require release notes because this is a change that is invisible to the user.


Reviewer

Please comment on the points listed below (full description).
Your comments will be used as part of the gatekeeper process, so please comment clearly on what you have checked during your review. If changes are made to the PR during the review process then your final comment will be the most important for gatekeepers. In this comment you should make it clear why any earlier review is still valid, or confirm that all requested changes have been addressed.

Code Review

  • Is the code of an acceptable quality?
  • Does the code conform to the coding standards?
  • Are the unit tests small and test the class in isolation?
  • If there is GUI work does it follow the GUI standards?
  • If there are changes in the release notes then do they describe the changes appropriately?
  • Do the release notes conform to the release notes guide?

Functional Tests

  • Do changes function as described? Add comments below that describe the tests performed?
  • Do the changes handle unexpected situations, e.g. bad input?
  • Has the relevant (user and developer) documentation been added/updated?

Does everything look good? Mark the review as Approve. A member of @mantidproject/gatekeepers will take care of it.

Gatekeeper

If you need to request changes to a PR then please add a comment and set the review status to "Request changes". This will stop the PR from showing up in the list for other gatekeepers.

@SilkeSchomann
Copy link
Contributor Author

I have currently copied all the changes from #39698 to run the unit tests. However, it would be better to merge #39698 first, even if this PR then needs rebasing on main.

@SilkeSchomann SilkeSchomann added this to the Release 6.14 milestone Jul 22, 2025
@SilkeSchomann SilkeSchomann added ISIS: Core Issue and pull requests at ISIS that relate to Core features and functions Maintenance Unassigned issues to be addressed in the next maintenance period. labels Jul 22, 2025
@SilkeSchomann SilkeSchomann force-pushed the 39617_remove_boost_optional_matrixvectorpairparser branch from ce867e3 to f32cbb9 Compare July 22, 2025 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ISIS: Core Issue and pull requests at ISIS that relate to Core features and functions Maintenance Unassigned issues to be addressed in the next maintenance period.
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

Remove boost::optional in MatrixVectorPairParser.h
1 participant