velxio/frontend/src/simulation
David Montero Crespo b2f5a4f1f3 perf(idle-spin): answer the common case first
observe() is called once per emulated instruction, and nearly every one of
those is a step forward inside the same code — not a backward branch, not a
long jump. It was doing the loop-close bookkeeping first anyway: two range
updates and a counter on fields of a foreign object, then the test that would
have told it none of that was needed yet.

The forward case now returns after one comparison and at most one field write.
The loop's lowest PC is only updated where it can actually change — a backward
branch IS the loop top — so nothing about what counts as an idle spin moves.

Measured on the RP2350 host (BadgeOS, MicroPython on the M33), together with a
one-read-per-turn change on the caller's side: +11% instructions per CPU
second, four rounds out of four.
2026-08-24 18:51:13 +02:00
..
customChips
…
digital
…
displays fix(epaper): persist the window union across refreshes (fix partial-refresh tears) 2026-08-06 16:53:00 +02:00
parts fix(sensors): illumination sliders are logarithmic, like the quantity they set 2026-08-18 22:42:25 +02:00
spice fix(sim): the other models that own a pad, and a button with no circuit 2026-08-23 08:18:18 +02:00
verify fix(spice): every overlay board was solved as a 5 V Arduino 2026-08-23 03:07:43 +02:00
AVRSimulator.ts spice: seed INPUT_PULLUP pins to their resting level on pull enable 2026-07-31 20:51:42 +02:00
Esp32Bridge.ts refactor(sim): one declaration of the sensors whose model owns the line 2026-08-23 05:25:57 +02:00
Esp32BridgeFactory.ts
…
Esp32C3Simulator.ts
…
Esp32MicroPythonLoader.ts feat(micropython): ship v1.28.0 firmware for the whole ESP32 family 2026-08-19 00:57:43 +02:00
HD44780Decoder.ts
…
I2CBusManager.ts
…
Interconnect.ts
…
LogicFamilies.ts
…
MicroPythonLoader.ts
…
PinManager.ts fix(compile): user_libs_all gets the -Werror relaxations too 2026-08-12 14:38:49 +02:00
PinResolver.ts
…
PinTrace.ts fix(sim): one sensor-record merge, one ownership rule, and a board preference 2026-08-23 01:47:23 +02:00
PioPeripheral.ts feat(pio-peripheral): let a peripheral take the words instead of the PIO 2026-08-23 07:45:05 +02:00
RP2040Simulator.ts perf(idle-spin): answer the common case first 2026-08-24 18:51:13 +02:00
RaspberryPi3Bridge.ts
…
RiscVCore.ts
…
RiscVSimulator.ts
…
SensorUpdateRegistry.ts
…
SignalRouter.ts
…
SpiBus.ts
…
Stm32Bridge.ts
…
UsiI2cBridge.ts fix(sim): drive the slave ACK in the USI I2C bridge (blank SSD1306 on ATtiny85) 2026-08-11 05:19:31 +02:00
esp32-signals.ts
…
micropythonSession.ts fix(micropython): upload a project's libraries in bounded steps (#219) 2026-08-21 20:03:24 +02:00
partPinOwnership.ts fix(sim): a net is a set of pins, and a part's own line belongs to the part 2026-08-23 01:23:41 +02:00
piSlaveScanner.ts
…
rp2040-bootrom.ts
…
sensorControlConfig.ts fix(sensors): illumination sliders are logarithmic, like the quantity they set 2026-08-18 22:42:25 +02:00
sensorModels.ts fix(sim): the other models that own a pad, and a button with no circuit 2026-08-23 08:18:18 +02:00