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

source-academy / py-slang / 29025813865
78%

Build:
DEFAULT BRANCH: main
Ran 09 Jul 2026 02:36PM UTC
Jobs 1
Files 87
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

09 Jul 2026 02:32PM UTC coverage: 77.597% (+0.06%) from 77.536%
29025813865

push

github

web-flow
Add print_llist to the stepper and PVML, matching the CSE machine (#250)

* revamping equality and identity

* wording improved

* taking care of the PVML aspects of this spec change

* Restrict the native Pynter pathway to Python §3, and free up EQP/NEQP for it

Pynter's target is Python (SICPy) §3 specifically (see pynter/README.md,
updated separately in the pynter repo) -- it has no runtime notion of
"chapter" to gate narrower/wider rules for §1/§2/§4, so it implements
§3's semantics unconditionally. Enforce that pathway boundary instead
of silently running other chapters with the wrong rules:

- runCodePvmlDetailed (pvml-runner.ts) and generateNativePynterTestCases
  (tests/utils.ts) now throw a clear error for variant !== 3.
- PyPvmlPynterEvaluator's hardcoded chapter (previously 4, inconsistent
  with Pynter's actual scope) is now 3.
- Every native-Pynter test call site across the suite now declares §3.
  Most are still-valid §3 programs nominally written for another
  chapter (linked-list/stream/pairmutator/list/parser-stdlib), so only
  the declared variant changes. One exception: stdlib.test.ts's
  "Chapter 1 Builtins" miscTests asserts §1-specific restrictions (bool/
  function excluded from ==/!=/ordering, list literals rejected) that
  are genuinely false at §3, not just untested there -- that sweep is
  removed rather than mislabeled.
- operator-conformance-pynter.test.ts's chapter loop is now just [3],
  matching its now-single-chapter scope.

Renumbered EQP/NEQP (added for is/is not's pointer-identity semantics,
distinct from ==/!=' structural equality) from 89/90 down to 85/86, so
PYNTER_OPCODE_MAX can become a single contiguous threshold (0x56) now
that Pynter implements them -- the prior gap (85-88 unimplemented,
89-90 implemented) couldn't be expressed as one cutoff without also
wrongly admitting the still-unimplemented FLOORDIVG/NEWITER/FOR_ITER.

Verified via yarn pynter:report against a Pynter build with the
matching VM-side chan... (continued)

2668 of 3725 branches covered (71.62%)

Branch coverage included in aggregate %.

48 of 54 new or added lines in 3 files covered. (88.89%)

6199 of 7702 relevant lines covered (80.49%)

12646.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
86.55
-10.74% src/conductor/stepper/lists.ts
1
40.0
12.86% src/engines/pvml/builtins.ts
Jobs
ID Job ID Ran Files Coverage
1 29025813865.1 09 Jul 2026 02:36PM UTC 87
77.6
GitHub Action Run
Source Files on build 29025813865
  • Tree
  • List 87
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29025813865
  • fdf61d5e on github
  • Prev Build on main (#29024235996)
  • Next Build on main (#29027177528)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc