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

update pinned build to clang 18.1.8 #400

Merged
merged 2 commits into from
Jul 25, 2024
Merged

update pinned build to clang 18.1.8 #400

merged 2 commits into from
Jul 25, 2024

Conversation

spoonincode
Copy link
Member

Update the pinned build to clang 18.1.8. Normally I wouldn't have advocated for moving from 17->18 but I stumbled on a c++20 feature that while it's in libstdc++10, is still missing from libc++17 but just added to libc++18: jthread. There seems to be an appetite to take on environment upgrades (e.g. #336) so nice to fill out c++20 support more before 1.0 release.

I measured something around a 0.5% speed improvement for a replay over blocks 381452700 through 381632370 (sadly I didn't think to include #344 as part of that; though at least we know #344 wouldn't have been resolved just by updating to clang18).

The upgrade may also unlock another useful feature: _LIBCPP_HARDENING_MODE was added in 18 and is similar to _GLIBCXX_ASSERTIONS in enabling stdlib hardening checks intended to be operational in production. To be explored still.

This PR also tweaks the Dockerfile to remove intermediary build files at each step instead of at the end. This reduces the size of Docker's build cache from ~20GB to ~14GB

@spoonincode spoonincode merged commit cc84a09 into main Jul 25, 2024
71 checks passed
@spoonincode spoonincode deleted the clang18 branch July 25, 2024 01:45
@ericpassmore
Copy link
Contributor

Note:start
group: STABILITY
category: CHORE
summary: Upgrade to clang v18 in Docker repeatable build. Improvements to reduce Docker build cache.
Note:end

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.

4 participants