• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / py-slang / 36678021125
88%

Build:
DEFAULT BRANCH: main
Ran 30 Sep 2026 06:39AM UTC
Jobs 1
Files 142
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Sep 2026 06:23AM UTC coverage: 85.6% (-0.1%) from 85.734%
36678021125

push

github

web-flow
EV3 hardware support: port Python->PVML compilation and stdlib (#461)

* feat(ev3): port EV3 hardware-support scaffolding onto current main

Ports the real, substantial EV3 work from Miguel Tarcena's closed,
unmerged PRs (#156, #238-241 — all closed by martin-henz with no review
comments, most likely stale-branch cleanup rather than a rejection on
merit: #241's own base branch, pvml-browser-revival, no longer exists)
onto today's main, reconciling against the compiler API drift #241's
own description flags.

- stdlib/ev3.ts: full ev3_* builtin group (motors, color/ultrasonic/
  gyro/touch sensors, LEDs, speak/playSequence) as stub no-ops, ported
  to the current @Validate-decorated static-class idiom (see misc.ts)
  with real per-function arities instead of the old draft's
  placeholder 0/0s.
- engines/ev3/{EV3Engine,types,index}.ts: compiles Python to PVML
  bytecode for on-device transmission. Fixed two real API mismatches
  the old PR didn't have: PVMLCompiler.fromProgram no longer takes an
  internalFunctions map (that mechanism doesn't exist in the compiler
  today - see below), and targetsPynter must be explicitly true or
  int literals compile to LGCBI, which can't be serialised to PVML's
  fixed-width binary format at all.
- conductor/plugins/Ev3ExecutionPlugin.ts: the conduit-level plugin
  that owns EV3Engine, matching plugins#54's description of where
  this logic should live post-split.
- conductor/Ev3Evaluator.ts: local/dev evaluator running compiled
  programs against a native pynter binary. RemoteExecutionPlugin
  (@sourceacademy/runner-remote-execution, from plugins#54, itself
  still unmerged) isn't published yet, so this uses a clearly-marked
  local stub in its place - see the TODO in the file.
- tests/ev3-engine.test.ts: compilation smoke tests, plus two tests
  that pin down a real, honest gap rather than hiding it.

Known gap, deliberately not worked around: PVMLCompiler has no
device-call annotation/CALLV emission. CALLV/CALLTV ... (continued)

4918 of 6169 branches covered (79.72%)

Branch coverage included in aggregate %.

96 of 140 new or added lines in 5 files covered. (68.57%)

11055 of 12491 relevant lines covered (88.5%)

164605.31 hits per line

Uncovered Changes

Lines Coverage ∆ File
42
57.58
src/stdlib/ev3.ts
2
91.74
-0.36% src/engines/pvml/pvml-compiler.ts
Jobs
ID Job ID Ran Files Coverage
1 36678021125.1 30 Sep 2026 06:39AM UTC 142
85.6
GitHub Action Run
Source Files on build 36678021125
  • Tree
  • List 142
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36678021125
  • ada759a2 on github
  • Prev Build on main (#36323013500)
  • Next Build on main (#37014747095)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc