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

source-academy / py-slang / 29818259816
86%

Build:
DEFAULT BRANCH: main
Ran 21 Jul 2026 09:40AM UTC
Jobs 1
Files 114
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

21 Jul 2026 09:26AM UTC coverage: 86.256% (+0.2%) from 86.068%
29818259816

push

github

web-flow
List indexing/assignment and list multiplication across all four engines (#303)

* Spec list indexing/assignment and list multiplication across all four engines (#299, #294)

Adds the Python §3/§4 rules from #299 (index range -len..len-1 with negative
wraparound, bool rejected as an index, no auto-extend on assignment, and
`list * int`/`int * list` as a shallow-copying generic list constructor) to
docs/specs, and brings CSE, PVML, py2js, and WASM into conformance:

- CSE: fixed a broken negative-index read and a sign bug in negative-index
  assignment (JS `%` doesn't wrap like Python's), added bounds checking,
  distinct access/assignment IndexError wording, a dedicated
  "list indices must be integers" TypeError, and list multiplication.
- PVML: fixed #294 (silent auto-grow on out-of-range assignment), added
  negative wraparound, bool/type rejection, and list multiplication. List
  literal construction now pre-sizes the array with real bigint indices in
  browser-pathway compilation, while native-Pynter-targeted bytecode (which
  collapses int/float into one JS representation) keeps its original
  lenient semantics via a new legacyArraySemantics interpreter option.
- py2js: fixed the negative-index bugs that were deliberately kept
  bug-compatible with CSE, and added list multiplication.
- WASM: added negative-index wraparound, assignment-specific error wording,
  and list multiplication via a new LIST_REPEAT_FX runtime function.

Extends the shared operator-spec.ts conformance table (drives the CSE/PVML/
WASM/py2js sweeps) and adds directed test cases, including the shallow-copy
identity check (x = [[1,2]]*4; x[0] is x[1]) across all four engines.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYRzwE7NXi2Tkf5wcSQgM4

* Fix list-repeat spread-argument RangeError risk and WASM count sign bug

Per gemini-code-assist review on #303:
- CSE/PVML/py2js: replace repeated.push(...list) with a nested... (continued)

4366 of 5438 branches covered (80.29%)

Branch coverage included in aggregate %.

144 of 154 new or added lines in 11 files covered. (93.51%)

9397 of 10518 relevant lines covered (89.34%)

178627.21 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
79.17
0.34% src/engines/pvml/pvml-interpreter.ts
4
84.88
1.54% src/engines/py2js/runtime.ts
Jobs
ID Job ID Ran Files Coverage
1 29818259816.1 21 Jul 2026 09:40AM UTC 114
86.26
GitHub Action Run
Source Files on build 29818259816
  • Tree
  • List 114
  • Changed 14
  • Source Changed 14
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29818259816
  • 97c2bc22 on github
  • Prev Build on main (#29808264994)
  • Next Build on main (#29887602191)
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