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

source-academy / py-slang / 37793610157
88%

Build:
DEFAULT BRANCH: main
Ran 08 Oct 2026 02:48PM UTC
Jobs 1
Files 154
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

08 Oct 2026 02:34PM UTC coverage: 86.041% (+0.3%) from 85.78%
37793610157

push

github

web-flow
e-stepper: environment stepper engine for Python §3/§4 (#513)

* e-stepper: environment stepper engine for Python §3/§4 (#508)

The program is rewritten step by step as in the substitution stepper, but
names are looked up in environments, a call to a user function steps to its
body annotated with a new frame (EnvBlock), assignments change frames, and
lists and function objects are heap objects the program refers to (Ref).

The store is the CSE machine's: frames are CSE Environments (created with
createEnvironment), function objects are Closures, values are CSE Values,
and operators, lookups, list access/assignment and the stdlib are the CSE
machine's own functions, so results and errors match the CSE machine.
Library prelude functions are applied atomically on the CSE machine.

Adds PyEStepperEvaluator3/4, the PyEStepperRunnerPlugin (on
@sourceacademy/runner-e-stepper), and yarn repl --engine estepper [--trace].

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* e-stepper: input() asks the host, or fails clearly without one

The e-stepper's stdin was a closed stream, so input() silently read "" and
the program continued. Connect it like the CSE evaluator's input stream:
the evaluator passes the host's requestInput through the runner plugin to
the engine. Without a host (CLI, tests), input() now stops evaluation with
an error instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

5458 of 6808 branches covered (80.17%)

Branch coverage included in aggregate %.

694 of 756 new or added lines in 6 files covered. (91.8%)

12016 of 13501 relevant lines covered (89.0%)

164666.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
35
47.1
src/conductor/estepper/text.ts
17
92.36
src/conductor/estepper/engine.ts
5
95.01
src/conductor/estepper/serialize.ts
3
93.94
src/conductor/estepper/terms.ts
2
91.58
src/conductor/estepper/getSteps.ts
Jobs
ID Job ID Ran Files Coverage
1 37793610157.1 08 Oct 2026 02:48PM UTC 154
86.04
GitHub Action Run
Source Files on build 37793610157
  • Tree
  • List 154
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37793610157
  • e9ac4085 on github
  • Prev Build on main (#37766286200)
  • Next Build on main (#37870163192)
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