Repository navigation
📦 Ship relocatable QDMI bundles and native tools - #2724
Closed
burgholzer wants to merge 4 commits into
Closed
burgholzer wants to merge 4 commits into
burgholzer wants to merge 4 commits into
Conversation
Use Clang/LLD on Linux, Apple Clang on macOS, and speed optimization in nanobind modules. Define wheel deployment and IPO settings once and extend them with cibuildwheel overrides. Explicitly deploy the separate Slurm wheel build while keeping native source-build defaults. Enable Windows automatic exports only for shared libraries without explicit exports. Preserve IPO for explicitly exported DLLs; disable it for MSVC objects that CMake must scan. Keep QIR C entry points noexcept, report recoverable allocation errors through their existing outputs, and stop failed workers without unwinding generated frames. Preserve macOS install RPATH for code signing and use build-tree paths on Linux. Remove private SHA and installed-consumer test fixtures; retain public hash coverage and validate runtime failure isolation. Assisted-by: GPT-6 via Codex
Use static DD, common, and SC configuration libraries in native bundles. Keep a private shared DD for Python modules, with only the two DD-facing MLIR adapters compiled against it, so exchanged DD objects share constants. Keep build policy private and publish only the device C interfaces. Assisted-by: GPT-6 via Codex
Expose the QDMI C runtime and both native tools through wheel CMake packages. Keep C++ development targets and static archives in source installations, and require the Development component for SDK consumers. Add the compiler command, reuse the benchmark launcher, and update the installation guide and executable examples for the distribution contract. Assisted-by: GPT-6 via Codex
Copy device libraries and their declared worker, manifests, and assets. Remove recursive dependency discovery and the synthetic Windows target. Test loading relocated devices without private wheel libraries. Preserve bundled Windows DLL names and locations for native consumers. Assisted-by: GPT-6 via Codex
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
burgholzer
force-pushed
the
codex/release-wheel-lto
branch
from
October 9, 2026 17:58
23fcc22 to
83be162
Compare
8 of 10 tasks
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 🤖
Consolidated into #2715. Continue review and optimization there; the runtime packaging changes, simplifications, and measured size reductions are now part of one PR.
Description
Follow-up to #2715. QDMI device bundles can be copied with their worker, manifests, and declared assets without Core's private shared libraries. Wheels preserve the Python APIs and expose the QDMI C runtime and both native tools through
find_package(mqt-core).Three commits separate the work:
mqt-ccandMQT::mqt-ccalongsideMQT::mqt-core-bench; keep C++ SDK targets source-only, with staticMQT::CoreDD. An explicitDevelopmentrequest rejects a wheel installation.Windows import libraries remain included for public shared targets. Private Python support libraries stay unexported. macOS signing-aware installation is preserved.
delvewheel --ignore-existingremains necessary to preserve bundled DLL names and locations used by CMake imports and standalone native tools; normal repair and filename controls do not provide an equivalent native installation layout.Validation
auditwheel repairand strictabi3auditpassed. No LLVM/MLIR static archives or development export set in the wheel.The repaired ARM64 wheel grows from 49.17 MiB to 66.21 MiB (+17.04 MiB);
mqt-cccontributes 16.59 MiB compressed. The baseline ten-wheel set totals 370.75 MiB; the corresponding new total and other platform sizes await hosted artifacts.AI assistance: implementation and validation by Codex; human review is required before merging.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).