Repository navigation
💥 Expose concrete DD operations across compilers - #2718
Merged
Merged
Conversation
Keep cache launchers and project defaults in the source build rather than applying them during find_package. Load install directories only when an explicit device helper needs them, and retain the exported helpers and their targets. Check consumer settings and a device-helper build against the installed package. Assisted-by: GPT-6 via Codex
Replace node-constrained edge members with concrete vector and matrix function overloads so supported compilers agree on the exported symbols. Keep edge layouts, numerical behavior, and Python methods unchanged. Move traversal recursion into the implementation and migrate all C++ callers, including bindings, shared MLIR test helpers, and documentation. Assisted-by: GPT-6 via Codex
Document the new edge parameters required by Doxygen and record the completed DD API migration with its validation and remaining scope. Assisted-by: GPT-6 via Codex
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
The DD bindings use complex numbers but no declarations from cmath. Remove the two includes flagged by hosted clang-tidy 23.1.3. Assisted-by: GPT-6 via Codex
This was referenced Oct 8, 2026
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.
🤖 AI text below 🤖
Description
Replace node-constrained DD member functions with concrete vector and matrix overloads. GCC and Clang disagree on the mangling of constrained members, and GCC LTO drops the compatibility aliases used by older compilers. Concrete operations give the shared library one callable interface across these compilers.
The edge layouts, numerical algorithms, and Python methods stay the same. Private recursive traversal helpers are file-local. All C++ callers and examples use the concrete functions; obsolete CachedEdge class instantiations are removed.
C++ migration examples:
edge.getVector()becomesdd::getVector(edge),edge.getMatrix(n)becomesdd::getMatrix(edge, n), andedge.isIdentity()becomesdd::isIdentity(edge). Normalize, indexing, sparse extraction, printing, accumulation, and matrix traversal follow the same pattern. This is a breaking C++ API change for Core v4.Stacked on #2717. The release-build PR #2715 will qualify the installed libraries with LTO and remove its DD exclusion.
Validation: 3,950 native tests passed with one expected capability skip; all 1,920 Python tests passed. Stub regeneration produced no API diff. Repository lint, whole-file C++ lint, Doxygen, and local GCC 13/Clang 23 consumer probes passed. Independent specialist review checked numerical behavior, callback copies, array ownership, and callers.
AI assistance: Codex implemented, tested, and independently reviewed the change.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).