Skip to content

Update CI container image to support Numba and libffi#657

Merged
knoepfel merged 4 commits into
Framework-R-D:mainfrom
knoepfel:update-ci-numpy
Jun 24, 2026
Merged

Update CI container image to support Numba and libffi#657
knoepfel merged 4 commits into
Framework-R-D:mainfrom
knoepfel:update-ci-numpy

Conversation

@knoepfel

@knoepfel knoepfel commented Jun 22, 2026

Copy link
Copy Markdown
Member

Build System

  • Dockerfile optimization and updates:
    • Modified GCC variant flags: Removed +bootstrap and +profiled variants while retaining ~nvptx and +strip
    • Added cleanup steps: Explicitly remove Spack environment view directories ($PHLEX_SPACK_ENV/.spack-env/view and view.old.*) before subsequent installs to prevent cross-layer environment view rename issues
    • These changes support addition of Numpy and libffi to the CI environment

Package Configuration

  • packages.yaml: Converted global Spack package constraint from target list format (target: - x86_64_v3) to require directive format (require: - target=x86_64_v3)
    • Ensures consistent CPU target specification across the build environment
    • Use LLVM 20 (instead of LLVM 22) due to constraint py-numpy constraint

Code changes to accommodate LLVM 20 limitations

  • phlex/code/node_catalog.hpp: Replaced boost::pfr::get usage with wordier implementation when creating registrars
  • phlex/test/class_registration.cpp: Replaced std::tuple-based check with checks of each tuple element
  • *phlex/test/function_registration.cpp: Replaced std::tuple-based check with checks of each tuple element

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4ea78d63-dab1-4b9f-b215-355730fa5ed1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The phlex-ci Docker image is rebuilt with updated Spack configuration: padded_length config is dropped, GCC variants +bootstrap and +profiled are removed, and all spack install layers now delete stale view directories and use full -j $(nproc) parallelism. The packages.yaml target syntax moves from target: list to require:. All five CI workflow jobs are pinned from :latest to :2026-06-22.

Changes

CI Image Rebuild and Workflow Pin

Layer / File(s) Summary
Dockerfile: Spack config, GCC variants, view cleanup, and parallelism
ci/Dockerfile
Removes padded_length:255 from Spack defaults; drops +bootstrap and +profiled from GCC variants; adds rm -rf view view.old.* before each spack install layer (common tooling, LLVM, remaining packages, phlex-deps) and replaces -p 1 with -j $(nproc) throughout.
packages.yaml: target constraint syntax
ci/packages.yaml
Switches packages: all: architecture targeting from a target: list to a require: directive using target=x86_64_v3.
Workflow jobs: pin container image to 2026-06-22
.github/workflows/clang-tidy-check.yaml, .github/workflows/clang-tidy-fix.yaml, .github/workflows/cmake-build.yaml, .github/workflows/codeql-analysis.yaml, .github/workflows/coverage.yaml
Replaces the rolling phlex-ci:latest container tag with the pinned phlex-ci:2026-06-22 tag in all five CI job definitions.
Temporary CI trigger
phlex/app/run.cpp
Inserts a non-functional comment to force a CI build run; no logic is changed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • marcpaterno
  • sabasehrish
  • aolivier23
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately describes the primary objective: updating the CI container image, with the concrete motivation (Numba and libffi support) clearly stated.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@greenc-FNAL

greenc-FNAL commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

31 fixed, 0 new since branch point (a98ac3d)
31 fixed, 0 new since previous report on PR (5d27bfe)

✅ 31 CodeQL alerts resolved since the previous PR commit

  • Warning # 196 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:109:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 197 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:137:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 198 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:157:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 199 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:201:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 200 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:166:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 201 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:188:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 202 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:207:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 203 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:226:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 204 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:251:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 205 actions/untrusted-checkout-toctou/critical at .github/workflows/header-guards-fix.yaml:107:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 206 actions/untrusted-checkout-toctou/critical at .github/workflows/markdown-fix.yaml:107:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 207 actions/untrusted-checkout-toctou/critical at .github/workflows/yaml-fix.yaml:108:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 208 actions/untrusted-checkout-toctou/critical at .github/workflows/yaml-fix.yaml:111:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 209 actions/untrusted-checkout-toctou/high at .github/workflows/clang-format-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 210 actions/untrusted-checkout-toctou/high at .github/workflows/cmake-format-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 211 actions/untrusted-checkout-toctou/high at .github/workflows/jsonnet-format-fix.yaml:95:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 212 actions/untrusted-checkout-toctou/high at .github/workflows/python-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 213 actions/untrusted-checkout/high at .github/workflows/clang-format-fix.yaml:94:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • Warning # 214 actions/untrusted-checkout/high at .github/workflows/cmake-format-fix.yaml:94:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • Warning # 215 actions/untrusted-checkout/high at .github/workflows/jsonnet-format-fix.yaml:95:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • ✅ …and 11 more alerts (see Code Scanning for the full list).

✅ 31 CodeQL alerts resolved since the branch point

  • Warning # 196 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:109:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 197 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:137:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 198 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:157:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 199 actions/untrusted-checkout-toctou/critical at .github/workflows/clang-tidy-fix.yaml:201:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 200 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:166:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 201 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:188:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 202 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:207:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 203 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:226:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 204 actions/untrusted-checkout-toctou/critical at .github/workflows/coverage.yaml:251:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 205 actions/untrusted-checkout-toctou/critical at .github/workflows/header-guards-fix.yaml:107:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 206 actions/untrusted-checkout-toctou/critical at .github/workflows/markdown-fix.yaml:107:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 207 actions/untrusted-checkout-toctou/critical at .github/workflows/yaml-fix.yaml:108:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 208 actions/untrusted-checkout-toctou/critical at .github/workflows/yaml-fix.yaml:111:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 209 actions/untrusted-checkout-toctou/high at .github/workflows/clang-format-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 210 actions/untrusted-checkout-toctou/high at .github/workflows/cmake-format-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 211 actions/untrusted-checkout-toctou/high at .github/workflows/jsonnet-format-fix.yaml:95:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 212 actions/untrusted-checkout-toctou/high at .github/workflows/python-fix.yaml:94:9 — Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
    Insufficient protection against execution of untrusted code on a privileged workflow (issue_comment).
  • Warning # 213 actions/untrusted-checkout/high at .github/workflows/clang-format-fix.yaml:94:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • Warning # 214 actions/untrusted-checkout/high at .github/workflows/cmake-format-fix.yaml:94:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • Warning # 215 actions/untrusted-checkout/high at .github/workflows/jsonnet-format-fix.yaml:95:9 — Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
    Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: issue_comment).
  • ✅ …and 11 more alerts (see Code Scanning for the full list).

Review the full CodeQL report for details.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/clang-tidy-check.yaml:
- Line 56: Replace the mutable image tag with a specific digest hash across all
five workflow files. For the ghcr.io/framework-r-d/phlex-ci image reference,
replace the `:2026-06-22` tag with the full image digest in the format
`@sha256:HASH` to ensure reproducibility and prevent silent image changes. Apply
this change in clang-tidy-check.yaml line 56, clang-tidy-fix.yaml,
cmake-build.yaml, coverage.yaml, and codeql-analysis.yaml wherever the same
image is referenced.

In `@phlex/app/run.cpp`:
- Around line 8-9: Remove the temporary comment "// Temporary comment to trigger
CI build" from lines 8-9 in the run.cpp file. This hardcoded comment was used to
force a CI rebuild and should not be shipped in the final code. Simply delete
these two lines before merging the pull request.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: d4e399e5-fbef-47be-b01c-56e738b3b180

📥 Commits

Reviewing files that changed from the base of the PR and between a98ac3d and 6df9362.

📒 Files selected for processing (8)
  • .github/workflows/clang-tidy-check.yaml
  • .github/workflows/clang-tidy-fix.yaml
  • .github/workflows/cmake-build.yaml
  • .github/workflows/codeql-analysis.yaml
  • .github/workflows/coverage.yaml
  • ci/Dockerfile
  • ci/packages.yaml
  • phlex/app/run.cpp
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Framework-R-D/action-configure-cmake (auto-detected)
  • Framework-R-D/action-workflow-setup (auto-detected)
  • Framework-R-D/action-complete-pr-comment (auto-detected)
  • Framework-R-D/action-handle-fix-commit (auto-detected)
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: Analyze cpp with CodeQL
  • GitHub Check: Analyze actions with CodeQL
  • GitHub Check: build (gcc, none)
  • GitHub Check: coverage
  • GitHub Check: clang-tidy-check
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{cpp,cc,cxx,h,hpp}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.{cpp,cc,cxx,h,hpp}: Use clang-format tool for all C++ code formatting (VS Code auto-formats on save); configuration defined in .clang-format with 100-character line limit and 2-space indentation
Follow clang-tidy recommendations defined in .clang-tidy

Files:

  • phlex/app/run.cpp
**/*.{hpp,cpp}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{hpp,cpp}: Use .hpp for header files, .cpp for implementation, and *_test.cpp for test files in C++
Enforce 100-character line limit and 2-space indentation in C++ code via .clang-format
Use QualifierAlignment: Right (east-const) style: int const x not const int x in C++
Use PointerAlignment: Left in C++ (pointer * attached to type, not variable name)
All C++ identifiers must use lower_case naming: namespaces, classes, structs, enums, functions, variables, parameters, members, and constants
Exception to C++ naming: template parameters use CamelCase
Exception to C++ naming: macros use UPPER_CASE
Private, protected, and constant members in C++ must have a trailing underscore (_), no trailing underscore on anything else
Use enum class preferred over plain enum in C++
Use std::shared_ptr for shared ownership, std::unique_ptr for exclusive ownership, raw pointers for non-owning references only in C++
Use functors with agent-noun pattern: ModelEvaluator evaluate_model(...) in C++
Apply .clang-tidy checks for bugprone, cert, clang-analyzer, concurrency, cppcoreguidelines, misc, modernize, performance, portability, and readability as defined in the .clang-tidy configuration file
Use phlex:: namespace for core code, phlex::experimental:: for experimental features in C++

Files:

  • phlex/app/run.cpp
🪛 zizmor (1.26.1)
.github/workflows/cmake-build.yaml

[error] 155-155: unpinned image references (unpinned-images): container image is not pinned to a SHA256 hash

(unpinned-images)

.github/workflows/clang-tidy-fix.yaml

[error] 76-76: unpinned image references (unpinned-images): container image is not pinned to a SHA256 hash

(unpinned-images)

.github/workflows/clang-tidy-check.yaml

[error] 56-56: unpinned image references (unpinned-images): container image is not pinned to a SHA256 hash

(unpinned-images)

.github/workflows/coverage.yaml

[error] 78-78: unpinned image references (unpinned-images): container image is not pinned to a SHA256 hash

(unpinned-images)

.github/workflows/codeql-analysis.yaml

[error] 215-215: unpinned image references (unpinned-images): container image is not pinned to a SHA256 hash

(unpinned-images)

🔇 Additional comments (6)
.github/workflows/clang-tidy-fix.yaml (1)

76-76: Same mutable-tag container issue as noted in .github/workflows/clang-tidy-check.yaml (pin this reference to the same @sha256: digest).

.github/workflows/cmake-build.yaml (1)

155-155: Same mutable-tag container issue as noted in .github/workflows/clang-tidy-check.yaml (pin this reference to the same @sha256: digest).

.github/workflows/codeql-analysis.yaml (1)

215-215: Same mutable-tag container issue as noted in .github/workflows/clang-tidy-check.yaml (pin this reference to the same @sha256: digest).

.github/workflows/coverage.yaml (1)

78-78: Same mutable-tag container issue as noted in .github/workflows/clang-tidy-check.yaml (pin this reference to the same @sha256: digest).

ci/Dockerfile (1)

216-219: LGTM!

Also applies to: 274-279, 328-333, 360-365, 393-398

ci/packages.yaml (1)

19-20: LGTM!

Comment thread .github/workflows/clang-tidy-check.yaml Outdated
Comment thread phlex/app/run.cpp Outdated
@knoepfel knoepfel closed this Jun 22, 2026
@knoepfel knoepfel reopened this Jun 22, 2026
@knoepfel knoepfel changed the title Update CI container image to support Numpy and libffi Update CI container image to support Numba and libffi Jun 23, 2026
@codecov

codecov Bot commented Jun 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@            Coverage Diff             @@
##             main     #657      +/-   ##
==========================================
+ Coverage   83.27%   83.53%   +0.26%     
==========================================
  Files         162      170       +8     
  Lines        5912     6613     +701     
  Branches      670      798     +128     
==========================================
+ Hits         4923     5524     +601     
- Misses        796      820      +24     
- Partials      193      269      +76     
Flag Coverage Δ
scripts 78.86% <ø> (+2.49%) ⬆️
unittests 85.72% <100.00%> (-1.14%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
phlex/core/node_catalog.hpp 100.00% <100.00%> (ø)

... and 23 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update db22b8a...563cf8f. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 23, 2026
@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 23, 2026
@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 23, 2026
@greenc-FNAL

Copy link
Copy Markdown
Contributor

A couple of questions:

  • Modified GCC variant flags: Removed +bootstrap and +profiled variants while retaining ~nvptx and +strip

Is there a reason for these? +profiled will save time, of course, but I tend to prefer +bootstrap for robustness.

  • Removed Spack default config entry config:install_tree:padded_length:255

@knoepfel Is there a reason you removed this line? It means that binary packages built for the CI are no good for a general-purpose cache.

@knoepfel

Copy link
Copy Markdown
Member Author

A couple of questions:

  • Modified GCC variant flags: Removed +bootstrap and +profiled variants while retaining ~nvptx and +strip

Is there a reason for these? +profiled will save time, of course, but I tend to prefer +bootstrap for robustness.

Both variants, when specified, resulted in a concretization failure for gcc@15.2.

  • Removed Spack default config entry config:install_tree:padded_length:255

@knoepfel Is there a reason you removed this line? It means that binary packages built for the CI are no good for a general-purpose cache.

That line triggered an error that essentially said "change the padding length" (my paraphrase). I no longer have the exact message available.

Since time is of the essence, I have not debugged the reason behind these failures. I chose the path of least resistance so that we can test Wim's Numba PR in time for 0.3.

@knoepfel

Copy link
Copy Markdown
Member Author

More specific explanation:

A couple of questions:

  • Modified GCC variant flags: Removed +bootstrap and +profiled variants while retaining ~nvptx and +strip

Is there a reason for these? +profiled will save time, of course, but I tend to prefer +bootstrap for robustness.

The current gcc recipe has the following conflicts statements:

 # Graphite loop optimizations cause bootstrap comparison failures
 conflicts("+graphite +bootstrap") 

and +profiled is only available when +bootstrap is specified:

 variant(                                                                                                                                                                                                                                   
     "profiled", default=False, description="Use Profile Guided Optimization", when="+bootstrap"                                                                                                                                            
 )  

So, we have a few options:

  1. Keep +graphite but remove +bootstrap+profiled (my approach)
  2. Keep +bootstrap+profiled but remove +graphite (another option)

But the current specification of +bootstrap+graphite+profiled will yield a concretization failure.

@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 24, 2026
@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 24, 2026
@Framework-R-D Framework-R-D deleted a comment from github-actions Bot Jun 24, 2026
knoepfel added 2 commits June 24, 2026 09:15
This works around an issue with using std::tuple types in CHECK statements

@greenc-FNAL greenc-FNAL left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm assuming the C++ changes were necessary/enabled by the LLVM change?

@knoepfel

Copy link
Copy Markdown
Member Author

I'm assuming the C++ changes were necessary/enabled by the LLVM change?

Yes

@knoepfel knoepfel merged commit cb81c8b into Framework-R-D:main Jun 24, 2026
39 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Clang-Tidy Check Results

Found 5469 issue(s); none are newly introduced by this patch.

All issues by check:

  • readability-identifier-naming: 2127
  • readability-redundant-member-init: 1258
  • portability-template-virtual-member-function: 563
  • performance-unnecessary-value-param: 457
  • readability-avoid-const-params-in-decls: 269
  • modernize-pass-by-value: 206
  • readability-braces-around-statements: 93
  • modernize-use-designated-initializers: 86
  • readability-convert-member-functions-to-static: 80
  • readability-const-return-type: 50
  • modernize-use-auto: 36
  • readability-qualified-auto: 26
  • readability-redundant-control-flow: 24
  • modernize-concat-nested-namespaces: 17
  • readability-math-missing-parentheses: 16
  • modernize-use-equals-default: 15
  • modernize-avoid-c-arrays: 15
  • modernize-use-using: 13
  • bugprone-branch-clone: 12
  • readability-function-size: 12
  • readability-static-definition-in-anonymous-namespace: 12
  • modernize-return-braced-init-list: 11
  • cppcoreguidelines-special-member-functions: 8
  • readability-isolate-declaration: 8
  • readability-container-size-empty: 7
  • modernize-use-starts-ends-with: 7
  • modernize-use-ranges: 6
  • readability-inconsistent-declaration-parameter-name: 5
  • readability-redundant-access-specifiers: 5
  • readability-container-contains: 5
  • modernize-use-std-numbers: 3
  • readability-redundant-casting: 3
  • modernize-use-emplace: 3
  • modernize-use-integer-sign-comparison: 2
  • performance-avoid-endl: 2
  • readability-redundant-string-init: 1
  • performance-move-const-arg: 1
  • modernize-redundant-void-arg: 1
  • modernize-make-shared: 1
  • readability-else-after-return: 1
  • readability-simplify-boolean-expr: 1
  • readability-use-anyofallof: 1

See inline comments for details. Comment @phlexbot tidy-fix to auto-fix.

@github-actions

Copy link
Copy Markdown
Contributor

Clang-Tidy Check Results

Found 5469 issue(s); none are newly introduced by this patch.

All issues by check:

  • readability-identifier-naming: 2127
  • readability-redundant-member-init: 1258
  • portability-template-virtual-member-function: 563
  • performance-unnecessary-value-param: 457
  • readability-avoid-const-params-in-decls: 269
  • modernize-pass-by-value: 206
  • readability-braces-around-statements: 93
  • modernize-use-designated-initializers: 86
  • readability-convert-member-functions-to-static: 80
  • readability-const-return-type: 50
  • modernize-use-auto: 36
  • readability-qualified-auto: 26
  • readability-redundant-control-flow: 24
  • modernize-concat-nested-namespaces: 17
  • readability-math-missing-parentheses: 16
  • modernize-use-equals-default: 15
  • modernize-avoid-c-arrays: 15
  • modernize-use-using: 13
  • bugprone-branch-clone: 12
  • readability-function-size: 12
  • readability-static-definition-in-anonymous-namespace: 12
  • modernize-return-braced-init-list: 11
  • cppcoreguidelines-special-member-functions: 8
  • readability-isolate-declaration: 8
  • modernize-use-starts-ends-with: 7
  • readability-container-size-empty: 7
  • modernize-use-ranges: 6
  • readability-inconsistent-declaration-parameter-name: 5
  • readability-redundant-access-specifiers: 5
  • readability-container-contains: 5
  • readability-redundant-casting: 3
  • modernize-use-emplace: 3
  • modernize-use-std-numbers: 3
  • modernize-use-integer-sign-comparison: 2
  • performance-avoid-endl: 2
  • readability-redundant-string-init: 1
  • readability-simplify-boolean-expr: 1
  • readability-use-anyofallof: 1
  • modernize-make-shared: 1
  • readability-else-after-return: 1
  • modernize-redundant-void-arg: 1
  • performance-move-const-arg: 1

See inline comments for details. Comment @phlexbot tidy-fix to auto-fix.

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