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

source-academy / py-slang / 29024235996
78%

Build:
DEFAULT BRANCH: main
Ran 09 Jul 2026 02:13PM 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:09PM UTC coverage: 77.536% (-0.02%) from 77.559%
29024235996

push

github

web-flow
Remove equal now that == is structurally equal (#247)

* 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 changes (separate PR in... (continued)

2644 of 3690 branches covered (71.65%)

Branch coverage included in aggregate %.

6147 of 7648 relevant lines covered (80.37%)

12450.71 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
77.39
-0.87% src/stdlib/misc.ts
Jobs
ID Job ID Ran Files Coverage
1 29024235996.1 09 Jul 2026 02:13PM UTC 87
77.54
GitHub Action Run
Source Files on build 29024235996
  • Tree
  • List 87
  • Changed 4
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29024235996
  • ca034405 on github
  • Prev Build on main (#29023044747)
  • Next Build on main (#29025813865)
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