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 newer versions of EASTL and update install script. #1403

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

galorojo
Copy link

@galorojo galorojo commented Sep 1, 2024

There's 2 "interesting" things in this change (aside from the boring "just add new versions" part):

  • Adding recursive: false: EASTL suffered from a cyclical submodule dependency fiasco (see Circular submodule dependency causes recursive clones or submodule updates to fail electronicarts/EASTL#301), I actually don't know how this worked before. When I tried to do ce_install install eastl locally I'd hit the infinite recursion issue, this no longer occurs if we opt out of a recursive clone.
  • Adding some steps to run in after_stage_script: starting in version 3.21.23 EASTL moved away from submodule dependencies to potentially fix the circular dependency fiasco (see electronicarts/EASTL@c530255) and replaced them with CMake's FetchContent functionality. This script is an attempt to pull out the only non-test dependency (EABase) and put it in EASTL's include path so the parts of EASTL which do #include <EABase/foo.h> still work.

Tested running ce_install install eastl in a local instance of CE and things work as expected with all versions.

The corresponding change in compiler-explorer is compiler-explorer/compiler-explorer#6816

after_stage_script:
- mkdir build
- cd build
- /opt/compiler-explorer/cmake/bin/cmake ..
Copy link
Author

Choose a reason for hiding this comment

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

It is slightly unfortunate that we now run cmake even on the versions for which it is not necessary (the ones not using FetchContent), hopefully this isn't a big deal but I'm happy to hear about alternatives if anyone thinks of one.

Copy link
Member

Choose a reason for hiding this comment

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

Which versions? We can solve that by making a new section and only applying the after_stage_script to those. I'll try out in a branch and merge if I can get it to work.

Copy link
Author

Choose a reason for hiding this comment

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

Hi @mattgodbolt,

We can solve that by making a new section and only applying the after_stage_script to those.

Thanks for your comment, I've changed the code a bit follow what benchmark is doing and this seems to work properly without doing any unnecessary work. I'm not sure if that's exactly what you were suggesting, or if there's a better way, let me know what you think.

bin/yaml/libraries.yaml Outdated Show resolved Hide resolved
@galorojo galorojo marked this pull request as ready for review September 1, 2024 06:35
@galorojo galorojo marked this pull request as draft September 2, 2024 06:10
@galorojo
Copy link
Author

galorojo commented Sep 2, 2024

Converting this to a draft given that EASTL might have to go back to submodules after all. (see electronicarts/EASTL#539). Apologies for the churn.

@mattgodbolt
Copy link
Member

Let me know when/if you're ready and I can help with the changes (ping me on Discord or here)

@galorojo
Copy link
Author

galorojo commented Oct 7, 2024

I still don't know what will happen with future versions of EASTL wrt going back to submodules, but either way I think this can be merged so we get up to date versions of EASTL working.

@galorojo galorojo marked this pull request as ready for review October 7, 2024 04:38
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