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

source-academy / py-slang / 31434140875
86%

Build:
DEFAULT BRANCH: main
Ran 10 Aug 2026 09:45PM UTC
Jobs 1
Files 139
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

10 Aug 2026 09:30PM UTC coverage: 85.483% (-1.0%) from 86.47%
31434140875

push

github

web-flow
Pyodide: fix a captured callback being destroyed before its returned closure calls it (#433)

* Pyodide: fix a callback captured by a returned closure being destroyed early

A Python callback crossing into a module call arrives as a borrowed
PyProxy, which pyodide auto-destroys once the specific async JS call
it was passed into (the run_sync-driven call) resolves. That's fine
when the callback is invoked during that same call, but breaks the
SICP `repeated` shape: `f = repeat(square, 4); f(3)` — the closure
`repeat` returns captures `square` for a call that happens later, in
a separate statement, after repeat(...)'s own call (and its borrow)
has already ended. Symptom: pyodide.ffi.JsException: "This borrowed
proxy was automatically destroyed at the end of an asynchronous
function call."

Fix: proxy.copy() before capturing the callback in the closure that
outlives the original call, making an independent proxy unaffected by
the borrowed one being destroyed.

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

* Fix prettier formatting

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

4822 of 6071 branches covered (79.43%)

Branch coverage included in aggregate %.

0 of 1 new or added line in 1 file covered. (0.0%)

66 existing lines in 1 file now uncovered.

10794 of 12197 relevant lines covered (88.5%)

161933.55 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
8.99
src/engines/pyodide/moduleInterop.ts

Coverage Regressions

Lines Coverage ∆ File
66
36.31
-12.8% src/conductor/PyodideEvaluator.ts
Jobs
ID Job ID Ran Files Coverage
1 31434140875.1 10 Aug 2026 09:45PM UTC 139
85.48
GitHub Action Run
Source Files on build 31434140875
  • Tree
  • List 139
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31434140875
  • 694b8651 on github
  • Prev Build on main (#31368887399)
  • Next Build on main (#31726053645)
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