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

[O2-2018] Changes to allow usage of either v2 or v3 of Microsoft GSL. #5424

Merged
merged 1 commit into from Feb 11, 2021

Conversation

aphecetche
Copy link
Collaborator

Version 3.0.0 of Microsoft's implementation of the C++ Core Guidelines
Support Library (GSL) (https://github.com/microsoft/GSL/releases/tag/v3.0.0)
introduces a few breaking changes that affect our code.

At the same time it's more future proof than v2 by being closer to
the C++20 version of span, and has the very immediate
benefit of compiling fine on Apple Silicon (while v2 does not).

So, in order to prepare for the migration to v3, we introduce a compile
definition and use to switch between syntaxes in the few places where the
breaking changes impact us.

Next step will be to update the alidist recipe to build v3(v3.1 really)
instead of v2(.1).

As a side note, v3(.1) also adds proper CMake config file that should
eventually replace our custom Findms_gsl.cmake module (once we switch
to v3 only).

Version 3.0.0 of Microsoft's implementation of the C++ Core Guidelines
Support Library (GSL) (https://github.com/microsoft/GSL/releases/tag/v3.0.0)
 introduces a few breaking changes that affect our code.

At the same time it's more future proof than v2 by being closer to
the C++20 version of span, and has the very immediate
benefit of compiling fine on Apple Silicon (while v2 does not).

So, in order to prepare for the migration to v3, we introduce a compile
definition and use to switch between syntaxes in the few places where the
breaking changes impact us.

Next step will be to update the alidist recipe to build v3(v3.1 really)
instead of v2(.1).

As a side note, v3(.1) also adds proper CMake config file that should
 eventually replace our custom Findms_gsl.cmake module (once we switch
 to v3 only).
@aphecetche aphecetche changed the title 👽 O2-2018: Changes to allow usage of either v2 or v3 of Microsoft GSL. [O2-2018] Changes to allow usage of either v2 or v3 of Microsoft GSL. Feb 9, 2021
Copy link
Collaborator

@davidrohr davidrohr left a comment

Choose a reason for hiding this comment

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

Thx for taking care, I was annoyed myself that 3.x is not yet supported.
I'd merge this once the CI is through, and then go on as you propose, and remove the fallback to 2.x as soon as we have bumped alidist.

@aphecetche
Copy link
Collaborator Author

@davidrohr yes, I've actually updated the jira ticket to outline the "plan" (note that QC also needs a few changes, but lighter than in O2, i.e. w/o the MS_GSL_V3 guard)

@davidrohr
Copy link
Collaborator

Error unrelated, merging

@davidrohr davidrohr merged commit cbc98e4 into AliceO2Group:dev Feb 11, 2021
@davidrohr davidrohr mentioned this pull request Feb 25, 2021
@aphecetche aphecetche deleted the o2-2018-migrate-to-ms-gsl-v3 branch March 1, 2021 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants