✨ Add multi-program jobs - #509
Open
burgholzer wants to merge 7 commits into
Open
Conversation
Contributor
|
burgholzer
force-pushed
the
codex/multi-program-jobs
branch
from
August 23, 2026 19:58
12be7d7 to
50ed628
Compare
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## codex/program-format-capabilities #509 +/- ##
===================================================================
- Coverage 91.1% 90.9% -0.2%
===================================================================
Files 7 7
Lines 800 861 +61
Branches 164 181 +17
===================================================================
+ Hits 729 783 +54
- Misses 71 78 +7
🚀 New features to boost your workflow:
|
Assisted-by: GPT-5.6 Sol via Codex
burgholzer
force-pushed
the
codex/multi-program-jobs
branch
from
August 23, 2026 20:04
50ed628 to
99ad870
Compare
Add atomic ordered program lists, indexed result retrieval, aggregate lifecycle semantics, and exact legacy-setter behavior. Assisted-by: GPT-5.6 Sol via Codex
Assisted-by: GPT-5.6 Sol via Codex
Bring the complete QDMI #508 custom enum range into the multi-program job stack. Assisted-by: GPT-5.6 Sol via Codex
Give clang-tidy the standalone device test compilation command and use NUL-terminated storage for text-program fixtures. Assisted-by: GPT-5.6 Sol via Codex
Carry the focused Clang analyzer suppressions from the program-format PR into the multi-program stack. Assisted-by: GPT-5.6 Sol via Codex # Conflicts: # test/test_qdmi.cpp
burgholzer
changed the base branch from
develop
to
codex/program-format-capabilities
August 24, 2026 10:39
burgholzer
force-pushed
the
codex/multi-program-jobs
branch
from
August 24, 2026 10:59
f469df0 to
8ced3f4
Compare
11 tasks
burgholzer
commented
Aug 24, 2026
burgholzer
left a comment
Contributor
Author
There was a problem hiding this comment.
This one is looking fine as well with the exception of one point that may need further addressing.
burgholzer
marked this pull request as ready for review
August 24, 2026 11:49
12 tasks
Remove the legacy client and device program parameters so count-one and multi-program jobs use the same atomic setter. Update the examples, tests, migration guide, and Yannick Stade attribution. Assisted-by: GPT-5.6 Sol via Codex
12 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 🤖
Description
This PR brings ordered multi-program jobs to QDMI v1. It is based directly on
#508 and uses the exact
QDMI_Program_Formatdescriptor introduced there. Itreplaces the removed batch pseudo-format with a job-level program list.
The contract is deliberately small:
QDMI_job_set_programsand its device-side counterpart atomically copy anordered program list in one exact format.
the complete list.
icorresponds to input programi; execution order is notspecified.
QDMI_JOB_PROPERTY_PROGRAMSNUMexposes the result count, including for jobsretrieved by ID.
QDMI_job_get_resultsandQDMI_device_job_get_resultstake a zero-basedprogram index. Index zero is the single-program path.
PROGRAMparameter remains the single-program setter andreplaces a list with one program. Failed setters leave the prior state
unchanged.
The implementation does not add per-program formats, shots, options, status,
cancellation, partial results, or a maximum-program-count property. Those need a
concrete provider requirement before they become part of QDMI.
Local validation passes:
qdmi-docs(with the existing obsolete Doxygen-tag warning)uvx prek run -aChecklist
If PR contains AI-assisted content:
Assisted-by: [Model Name] via [Tool Name]footer.