feat: expose generic UF2/raw/linker pack and QEMU argv helper - #336
Merged
Merged
Conversation
Product repos such as Subspace should consume `in pack` and `native_emit::qemu_harness` instead of owning duplicate emit helpers. Board names, UART assertions, and SCI-E stay product-owned. Amp-Thread-ID: https://ampcode.com/threads/T-01a0a633-0016-766e-a51d-0df6039429ba Co-authored-by: Max Carter <undivisible@vk.com>
|
Capy couldn't review this pull request because Max's workspace is out of credits, add credits or enable auto-reload to resume automatic reviews. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_b183541b-490a-4556-98d5-8d1a6e417f98) |
|
Tick the box to add this pull request to the merge queue (same as
|
Amp-Thread-ID: https://ampcode.com/threads/T-01a0a633-0016-766e-a51d-0df6039429ba Co-authored-by: Max Carter <undivisible@vk.com>
Product system graphs mix component decls with system/task/grant/port blocks. Treat those as skipped surface syntax so `in graph` works without a second product CLI. Amp-Thread-ID: https://ampcode.com/threads/T-01a0a633-0016-766e-a51d-0df6039429ba Co-authored-by: Max Carter <undivisible@vk.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_abb22e99-4544-476c-9590-1084cf11053c) |
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.
Summary
in pack uf2|raw|linkerover existingnative_emithelpers so product OS repos do not reimplement packing.native_emit::qemu_harness::QemuRunSpecfor deterministic QEMU argv construction (machine/cpu/kernel only).docs/freestanding-thumbv8m.md.Product-owned: board capsules, vector tables, SCI-E, UART assertions.
Test plan
cargo test --lib qemu_harnesscargo test --lib linker_layoutcargo test --bin in parse_pack_uf2cargo test --bin in parse_build_swiftpmNote
Low Risk
Mostly new CLI and library helpers plus parse-time skipping of unrecognized topology syntax; no auth or runtime behavior changes, though skipped blocks are not lowered into core IR.
Overview
Adds
in pack uf2|raw|linker, wiring existingnative_emithelpers (UF2 packing, raw flash copy, Cortex-M GNU ld script generation) through a newpackcommand with hex/decimal address parsing and configurable memory layout flags.Introduces
native_emit::qemu_harness::QemuRunSpecto build stable QEMU command lines (machine, optional CPU, kernel, extras) without product-specific UART or timeout logic..inparsing now ignores closed-world topology blocks (system,domain,task,grant,port, non-interrupt fninterrupts, etc.) during surface scan and full module decl parsing soin graph/in compilecan read files that mix components with Subspace-style system graphs.Linker script output formats MEMORY region
LENGTHin hex; docs and tests cover pack CLI parsing, topology skip, QEMU argv, and linker layout.Reviewed by Cursor Bugbot for commit 7efaa98. Configure here.