From 2660f65e7982c1e52f66f66fc9cffb6b8b518bfe Mon Sep 17 00:00:00 2001 From: Charlie Meyer Date: Wed, 20 May 2026 08:48:07 -0400 Subject: [PATCH 1/2] Upgrade to Pyodide 0.29.4, add test harness --- README.md | 8 + package.json | 1 + src/lib/utils/utils.js | 2 +- src/routes/+layout.svelte | 2 +- src/routes/+page.svelte | 5 +- test/index.html | 335 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 test/index.html diff --git a/README.md b/README.md index 7593abe..d8ae513 100644 --- a/README.md +++ b/README.md @@ -25,3 +25,11 @@ You'll need to set a value for PUBLIC_TRUSTED_HOST in the .env file, e.g.: PUBLIC_TRUSTED_HOST="http://localhost:8080" There is a `sample.env` for your reference. you can: `cp sample.env .env` and then edit that .env file. + +## Test harness + +A local test page is in `test/index.html`. It embeds the runner in an iframe and lets you send programs via `postMessage`. With `PUBLIC_TRUSTED_HOST="http://localhost:8080"` in your `.env` and `npm run dev` running, open a second terminal and run: + + npm run test-ui + +Then visit `http://localhost:8080` and click **▶ Run**. diff --git a/package.json b/package.json index f56d4b6..521adaf 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "lint": "prettier --plugin-search-dir . --check . && eslint .", + "test-ui": "npx serve test -p 8080", "zip": "zip -r ./static/vpython.zip vpython", "format": "prettier --plugin-search-dir . --write ." }, diff --git a/src/lib/utils/utils.js b/src/lib/utils/utils.js index d4bd691..7156e03 100644 --- a/src/lib/utils/utils.js +++ b/src/lib/utils/utils.js @@ -4,7 +4,7 @@ await micropip.install('/cyvector-0.1-cp311-cp311-emscripten_3_1_39_wasm32.whl') export const getPyodide = async (stdOutRedir, stdErrRedir, url) => { const t0 = performance.now() - console.log(`=== utils.js v2.0.2 - Pyodide v0.23.3 ===`) + console.log(`=== utils.js v2.0.2 - Pyodide v0.29.4 ===`) console.log(`[${t0.toFixed(2)}ms] Starting getPyodide`) const pkgResponse = fetch('vpython.zip').then((x) => x.arrayBuffer()) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 64a9896..d38fddd 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,5 +1,5 @@ - + { - console.log('=== wmWVPRunner v2.0.2 - Using Pyodide v0.23.3 (last known working) ===') - console.log('Newer Pyodide versions cause Chrome stack overflow with vpython.vector') + console.log('=== wmWVPRunner v2.0.2 - Using Pyodide v0.29.4 ===') console.log('Public host =', PUBLIC_TRUSTED_HOST) mounted = true window.addEventListener('message', (e) => { diff --git a/test/index.html b/test/index.html new file mode 100644 index 0000000..401aafd --- /dev/null +++ b/test/index.html @@ -0,0 +1,335 @@ + + + + + wmWVPRunner Test + + + +
+ + + + + + idle +
+ +
+
+ +
+
stdout / stderr
+ +
+
+
+ +
+
+ + + + From c3b2c4493e05d00188b69bc6b2b02bda7c0b7511 Mon Sep 17 00:00:00 2001 From: Charlie Meyer Date: Tue, 2 Jun 2026 11:06:49 -0400 Subject: [PATCH 2/2] netlify build stuff --- .gitignore | 1 + netlify.toml | 6 ++++++ static/vpython.zip | Bin 41137 -> 0 bytes 3 files changed, 7 insertions(+) create mode 100644 netlify.toml delete mode 100644 static/vpython.zip diff --git a/.gitignore b/.gitignore index aeac205..bcfd164 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ vite.config.js.timestamp-* vite.config.ts.timestamp-* *~ /venv +/static/vpython.zip diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..1990a56 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,6 @@ +[build] + command = "npm run zip && npm run build" + publish = "build" + +[build.environment] + NODE_VERSION = "18" diff --git a/static/vpython.zip b/static/vpython.zip deleted file mode 100644 index ad13063e88fbc397d5f04644284a0cc7ace47cca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41137 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 z 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%0A|u*$&3L(eViPY5WPB~fD$14-;| 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