[WIP] Fix failing CI for PR #223#224
Closed
Copilot wants to merge 1 commit intocopilot/cleanup-draft-pr-186from
Closed
[WIP] Fix failing CI for PR #223#224Copilot wants to merge 1 commit intocopilot/cleanup-draft-pr-186from
Copilot wants to merge 1 commit intocopilot/cleanup-draft-pr-186from
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
src/ThirdParty/exprtk.hppfor clang template keyword error and document vendored rationale inline.github/workflows/test.ymlOriginal prompt
Create a PR against base branch
copilot/cleanup-draft-pr-186in repositorySimVascular/svZeroDSolverto fix failing CI for PR #223.Primary failure (job 71120187682): macOS clang compile error in vendored header
src/ThirdParty/exprtk.hpp:expression_node<T>::ndb_t::template collect(branch_, node_delete_list);.templatekeyword (or otherwise making it valid C++ across supported compilers).Additionally, address any other failing CI jobs and codechecks on PR #223 (run all relevant linters/formatters/tests as configured in workflows) so that the PR passes.
Constraints:
.github/workflows/test.yml.Reference failure logs come from GitHub Actions job ID 71120187682 (Build and test workflow).
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Please find a solution for failing job 71120187682. Use the logs, job definition, and any referenced files where the failure occurred. Keep your response focused on the solution and include code suggestions when appropriate.
Assistant: The failure in job 71120187682 is a compile error on macOS (clang) coming from the vendored header
src/ThirdParty/exprtk.hpp:This is emitted at multiple locations (e.g. around lines 17379, 17435, 17507, 17579, 18172 in
exprtk.hpp, per the log), and it stops the build of the Python extension (pysvzerod) duringpip install -e ".[dev]"on macOS.Fix: remove the incorrect
templatekeyword (or add the missing template args)In C++, the
templatedisambiguator is only valid when the following name is a dependent template. In your case,collectis being called like a non-template function:Clang correctly rejects this because there is no
<...>aftercollect.Recommended patch (most common for exprtk)
Edit
src/ThirdParty/exprtk.hppand change each occurrence of:to:
expression_node<T>::ndb_t::collect(branch_, node_delete_list);That matches the intent (a normal static/member function call) and resolves
-Wmissing-template-arg-list-after-template-kwpromoted to an error by your build settings.If
collectis actually a function template in your exprtk version, then the alternative fix is to supply template arguments, e.g.:—but given the call sites in the log, this looks like the classic “stray
templatekeyword” issue, so removingtemplateis the correct correction.Why this fixes the job
The workflow (
.github/workflows/test.ymlat refb8deb174d3c9b5cf320e21b40a6df7b5b796c33a) installs with:python -m pip install -e ".[dev]"which builds the C++ code. Clang fails immediately in
exprtk.hpp, so many translation units fail after including it. Fixing the header allows the editable build to complete, unblocking the rest of the compile and tests.Practical follow-up (to keep it stable)
exprtk.hppto a known-good upstream revision that is clang-clean, rather than carrying a local patch long-term.Code location reference (use this ref in links):
b8deb174d3c9b5cf320e21b40a6df7b5b796c33a.User: can you make this patch in a new agent session?
Assistant: Yes — I can make that patch, but I need one clarification first: which branch should the PR target (the base branch), e.g.
main?Once you confirm, I’ll start a new coding-agent PR session for SimVascular/svZeroDSolver that:
src/ThirdParty/exprtk.hpptemplatekeyword in the failing...::template collect(...)calls (the ones around the line numbers shown in job71120187682)Reply with the base branch name (likely
main).User: it should be in copilot/cleanup-draft-pr-186. while you are at it, address the other failed CI jobs and codechecks
Assistant: I’ve started a new agent session to prepare a PR targeting
copilot/cleanup-draft-pr-186that (1) fixes the ma...This pull request was created from Copilot chat.