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

Add Clang builds with assertions #5243

Merged
merged 3 commits into from Jul 22, 2023

Conversation

Endilll
Copy link
Contributor

@Endilll Endilll commented Jul 7, 2023

Add full range (2.6 - 16) of assertion builds of Clang as a new compiler group.

It is accompanied by a PR to infra which adds new links to cpp.yaml. Detailed information about how those artifacts were produced is available in my gist.

All assertion builds use period-correct GCC toolchain by default, based on major version (i.e. ignoring minor version changes).

This PR addresses #5113

@Endilll
Copy link
Contributor Author

Endilll commented Jul 7, 2023

infra PR: compiler-explorer/infra#1047

Comment on lines 424 to 438
group.clangx86assert.intelAsm=-mllvm --x86-asm-syntax=intel
group.clangx86assert.options=
group.clangx86assert.groupName=Clang x86-64 (assertions)
group.clangx86assert.instructionSet=amd64
group.clangx86assert.baseName=x86-64 clang
group.clangx86assert.isSemVer=true
group.clangx86assert.compilerType=clang
group.clangx86assert.unwiseOptions=-march=native
group.clangx86assert.supportsPVS-Studio=true
group.clangx86assert.supportsSonar=true
group.clangx86assert.licenseName=LLVM Apache 2
group.clangx86assert.licenseLink=https://github.com/llvm/llvm-project/blob/main/LICENSE.TXT
group.clangx86assert.licensePreamble=The LLVM Project is under the Apache License v2.0 with LLVM Exceptions
group.clangx86assert.supportsBinaryObject=true
group.clangx86assert.compilerCategories=clang
Copy link
Member

Choose a reason for hiding this comment

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

Most of this could be shared with &clang. So we could have a clang group that declares common props and include only 2 subgroups: the existing clang compilers (current &clang ) and the new &clangx86assert.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is there an example I can follow?

Copy link
Member

Choose a reason for hiding this comment

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

Something like what we have for cross compilers:

# Cross Compilers (mostly GCC & Clang)

ppcs have even a deeper nesting :
group.cppcs.compilers=&cppc:&cppc64:&cppc64le

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I decided not to touch existing Clang compilers, and also avoid inventing a new name for them (clangx86release?). Is that fine by you?

Copy link
Member

Choose a reason for hiding this comment

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

100% correct. The compiler names must not change as they are the ids used in shared links. Only the groups can be renamed/moved around.
It's already nice that you took the time to reduce a bit your new properties, thanks very much !

@Endilll
Copy link
Contributor Author

Endilll commented Jul 7, 2023

I expect maintainers to re-upload archives in infra to CE-owned S3 instance, and appropriately update infra PR. Am I right about that?

@dkm
Copy link
Member

dkm commented Jul 7, 2023

I expect maintainers to re-upload archives in infra to CE-owned S3 instance, and appropriately update infra PR. Am I right about that?

Yes, you're correct. We must first merge the changes in infra, check all compilers can be installed + are working, then we can merge the config change !

@Endilll
Copy link
Contributor Author

Endilll commented Jul 7, 2023

Yes, you're correct. We must first merge the changes in infra, check all compilers can be installed + are working, then we can merge the config change !

Please do. I've checked that on my side (and fixed a bug regarding 2.6), so I expect it to go smoothly.

@dkm
Copy link
Member

dkm commented Jul 7, 2023 via email

@mattgodbolt
Copy link
Member

Thanks so much for this! However, I have some concerns about where we're getting these important compilers from: I posted on the infra thread. Happy to discuss more there, or on Discord.

@mattgodbolt
Copy link
Member

I'm still slowly working on/struggling to sort out builds earlier than 10.* But this is still on the todo list

@mattgodbolt mattgodbolt merged commit b82f679 into compiler-explorer:main Jul 22, 2023
8 checks passed
@mattgodbolt
Copy link
Member

So -- I meerged this but we will need to revisit to re-add in the others, pre clang 5 (which I think I've admitted defeat on and will use your built versions!)

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

Successfully merging this pull request may close these issues.

None yet

3 participants