QuantEcon / QuantEcon/QuantEcon.py

WASM: demo notebook and ecosystem coordination with QuantStack

Open
#934 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation wishlist
Dominant language
Python
Stars
2.4k
Forks
2.3k
Avg merge
3d 3h
Merged PRs (30d)
3

Description

[!NOTE]
Updated 2026-08-21. The second item said quantecon was already on emscripten-forge; it is not (no recipe exists — that is #932) and it reaches the browser from conda-forge noarch. Added prerequisites and the code paths a demo notebook must avoid for now, based on the Phase 0/1 findings recorded in #927 and #944. The original text is preserved in the edit history.

Part of #925 (Phase 4 — ecosystem, ongoing).

The announcement closes with an explicit invitation to "validate more packages from the wider Numba ecosystem", and it already demos EconForge's stack (interpolation.py, Dolo.py). Answering that invitation is cheap and high-signal.

Prerequisites

  • The #928 results table — the smoke suite from #938 is on main and the browser runner is tracked in #933; its results are the evidence base for what a demo can show
  • A release containing the gini_coefficient rewrite in PR #937 (#926), so the demo runs against a published version rather than main
  • For live %mamba install quantecon inside the notebook: the emscripten-forge recipe, #932. Not a hard blocker — quantecon (and requests) already install at build time from conda-forge noarch alongside the emscripten-forge-4x channel, as in #928's environment

Paths the demo must avoid for now

  • gini_coefficient until a release containing PR #937 ships — on main it still uses @njit(parallel=True) (#926), which runs on Emscripten only via the temporary numba patch 0010 (emscripten-forge/recipes#6293)
  • Any jitted generator: support_enumeration and vertex_enumeration hang on Emscripten (#927) — use lemke_howson for the game-theory example
  • simplex_grid, num_compositions_jit and k_array_rank_jitcache=True cache-save failure on warm sessions (#944; upstream emscripten-forge/recipes#6309)

Items

  • A QuantEcon demo notebook on notebook.link (Markov chains, LQ control, a game-theory solve via lemke_howson) alongside the existing @anutosh491/numba-ecosystem demos; coordinate with QuantStack
  • Longer term: QuantEcon lectures that execute without Binder or a kernel server — the rest of the lecture stack (numpy, scipy, matplotlib, pandas, numba) is on emscripten-forge; quantecon (and requests) currently resolve from conda-forge noarch alongside it (see #928) until the emscripten-forge recipe in #932 lands
  • Performance exploration: the emscripten-forge recipe tests show @njit(fastmath=True) autovectorises to WASM SIMD (f32x4 + simd128) — a possible pass over hot kernels, with the usual fastmath reproducibility caveats

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the #928 results table and #933 browser runner, then check the release containing PR #937 and the listed Emscripten limitations. Coordinate with QuantStack on a notebook.link demo covering Markov chains, LQ control, and a game-theory solve via lemke_howson; done means the demo runs in the browser while avoiding the specified paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python, wasm
Domain
developer-experience, documentation, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.