Repository navigation
Pyrite only: drop the Renode/C# backend; the sim binary is the simulator - #55
Draft
ShahriarAhnaf wants to merge 1 commit into
Draft
ShahriarAhnaf wants to merge 1 commit into
ShahriarAhnaf wants to merge 1 commit into
Conversation
The C# engine is halted and its release product retired, yet Sim, run_firmware and the pytest plugin still defaulted to backend="renode" (pythonnet + Simantic.Core), which can no longer be fetched. The Rust batch path was a second runner beside the binary that rejected `parts:` and multi-machine scenarios. - Remove the renode backend, the pythonnet/.NET loader, the Simantic.Core install, the pythonnet dependency, --sim-backend and backend=. - run_firmware runs `sim <MCU> run --elf ...`; run_scenario and test.yaml items run `sim run --scenario ... --record DIR` and read the bundle, so peers, several machines and media work because the binary does them. `args=` passes any other sim flag; ScenarioRun keeps stdout (traces) and stderr (peer output). - No wall-clock kill around sim: --timeout ends a run in virtual time; the plugin still judges a manifest's own `wall:` budget. - Sim stays on the in-process pyrite engine (single machine, stepping). - README/docs: the binary is the simulator; Python orchestrates. 0.5.0. Checked: `SIMANTIC_SIM=<sim 0.8.5> uv run pytest -q` 175 passed, 12 skipped. run_scenario on a customer two-peer STM32H753 scenario (2 Python peers + CAN peer, 10 s, args=["--trace-symbol","SysTick_Handler"]): 306 UART records, 9836 SysTick hits (same as the binary), 20 [gw] RX lines. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Open
4 tasks
This branch has not been deployed
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.
Closes #56
The model: the
simbinary is the simulator and the source of truth. pippy installs it, runs it, and turns its output into Python objects and pytest results. Anything the binary does (several machines, Python scripted peers viaparts:, media, bridges,--record, traces) works from Python because Python just calls the binary.Removed (breaking, 0.5.0)
_RenodeBackend, the pythonnet/coreclr loader, the Simantic.Core install, thepythonnetdependency.backend=onSim/run_firmware,--sim-backend, thesim_backendfixture,BACKENDS,engine_dir,ServerNotConfigured,Sim(show_logs=).run_firmware(server=, use_cached=): retired C# CLI flags with no pyrite equivalent.run_scenario(trace_symbols=, trace_memory=, trace_interrupts=, engine_dir=)andScenarioRun.symbol_trace/memory_trace: replaced byargs=.Changed
run_firmwarerunssim <MCU> run --elf … --timeout ….run_scenariowrites the scenario, runssim run --scenario … --record DIR --frames F [args…]and buildsScenarioRunfromuart.jsonl/isr.jsonl/log.jsonl. New:args=(anysim runflag),ScenarioRun.frames,.stdout(trace lines),.stderr(peer output); a non-zero exit raisesSimError. No moreNotSupportedforparts:, multi-machine or network services.test.yamlitems go throughrun_scenario.sim. It wastimeout*4+30, which killed a legitimate 10 s run on a loaded host.--timeoutends runs in virtual time; the plugin still judges a manifest'swall:budget.Simstays on the in-process pyrite engine: single machine, stepping/debugging. ItsNotSupportedmessages point atrun_scenario.docs/session-api.md,docs/writing-tests.mdrewritten binary-first.Checked
SIMANTIC_SIM=<sim 0.8.5> uv run pytest -q: 175 passed, 12 skipped.run_scenarioon an STM32H753 scenario with two Python UART peers and a CAN peer, 10 s,args=["--trace-symbol","SysTick_Handler"]: 306 UART records, 9836 SysTick hits (identical to running the binary directly), peers' output instderr.sim run --scenario(fixture/engine, not pippy).Known
ScenarioRun.uart_records[*]["bytes"]is rebuilt from recorded text (latin-1), not byte-exact for non-UTF-8 output.test_run_scenario_with_a_scripted_peer_goes_through_the_binaryruns only withSIMANTIC_PARTS_MANIFESTset (noparts:manifest on sim-fixtures main).docs/writing-tests.mdstill describes the examples-repo sample asSim-based in places; that sample needs porting in simantic-dev/examples.🤖 Generated with Claude Code