Skip to content

Test CLE under Pyodide - #704

Merged
twizmwazin merged 4 commits into
masterfrom
pyodide-ci
Aug 26, 2026
Merged

twizmwazin merged 4 commits into
masterfrom
pyodide-ci

Conversation

@zardus

@zardus zardus commented Jul 22, 2026

Copy link
Copy Markdown
Member

THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS

Summary

  • add a Pyodide CI job for CLE on Ubuntu
  • build and test the PyVEX WebAssembly wheel with cibuildwheel
  • resolve that wheel as part of the managed uv sync environment, then run the full CLE suite under Pyodide
  • skip the small set of host-only tests with unittest decorators

The PyVEX wheel must be built explicitly because it is not published in the Pyodide package index. The sync step uses --find-links together with --no-sources-package pyvex, so uv selects the already-built wheel during dependency resolution instead of attempting a Git-source cross-build.

The VEX and PyVEX prerequisites are merged. This PR is independently mergeable; related browser-runtime work continues in angr #6658, claripy #737, and pypcode #283.

Validation

  • exact final local workflow: PyVEX Pyodide tests — 63 passed, 1 skipped
  • exact final local workflow: CLE Pyodide tests — 231 passed, 17 skipped
  • uv lock provenance records PyVEX 9.3.4.dev0 from the local ../wheels registry
  • PyVEX wheel SHA-256: 990660f538ba15a892501546b8993f2e73a991744abde659d106baa652ada179
  • native focused tests — 18 passed
  • native full suite — 239 passed, 9 skipped
  • workspace gate, changed-file lint/type comparison, and all pre-commit hooks passed

Hosted exact-head CI is pending after the branch update.

@angr-bot

Copy link
Copy Markdown
Member

Corpus decompilation diffs can be found at angr/dec-snapshots@master...angr/cle_704

@ltfish

ltfish commented Jul 24, 2026

Copy link
Copy Markdown
Member

Please rebase your branch on top of master!

@zardus

zardus commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS

Rebased pyodide-ci onto current master in 3da83bc3. The three stacked commits from #703 were dropped because their aggregate patch is already present in merged commit dff2e1ed; the two #704 commits remain patch-identical.

Validation: the exact rebased CLE checkout passes with 200 passed and 9 skipped, all pre-commit hooks pass under Python 3.12, the complete workspace gate passes, and all 20 fresh PR checks are green, including Pyodide.

Comment thread tests/test_optional_backends.py Outdated
Comment thread tests/test_clemory.py Outdated
Comment thread .github/workflows/ci.yml
@zardus

zardus commented Aug 26, 2026

Copy link
Copy Markdown
Member Author

THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS

Rebased the branch onto current CLE master (46a3733) and addressed all three review threads. The Pyodide workflow now uses uv for dependency resolution, environment sync, wheel installation, and test execution; only the irreducible PyVEX cross-build and non-Python test-data checkout remain explicit.

Validation on head 2c89790:

  • exact managed-Pyodide flow: 231 passed, 17 skipped
  • native focused tests: 18 passed
  • native full suite: 239 passed, 9 skipped
  • feature/workspace gates and all pre-commit hooks: passed
  • merge-base lint/type comparison on changed Python files: passed

Fresh hosted checks are now running on the rebased head.

@zardus

zardus commented Aug 26, 2026

Copy link
Copy Markdown
Member Author

THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS

Fixed the Pyodide dependency-sync failure seen on head 2c89790bdd6259033b2d48375d1ac1e62eaa988c.

The previous workflow excluded PyVEX from installation during uv sync, but uv still had to resolve the configured Git source and its build-system dependencies before the later force-install step. On Pyodide, that made the resolver attempt the unsupported source-build path. The updated command provides the cibuildwheel artifact with --find-links ../wheels and uses --no-sources-package pyvex, so the wheel participates in resolution directly; the post-sync force reinstall is no longer necessary.

  • old remote head: 2c89790bdd6259033b2d48375d1ac1e62eaa988c
  • new head: 88a5d30cb01e761ab5f369e800dd56afb58dee9d
  • base/current master: 46a37333f4f59b0facf8774ee743ebc4cc074e9b
  • workflow-fix patch ID: 2fb7d961b6dad8832b58f249e02dfbf3ad0332da

Hosted-faithful local validation on clean exact checkouts completed end to end:

  • cibuildwheel 4.1.0 / Pyodide 314.0.0 built PyVEX; its Pyodide suite passed with 63 passed and 1 skipped
  • wheel SHA-256: 990660f538ba15a892501546b8993f2e73a991744abde659d106baa652ada179
  • uv 0.12.6 resolved 63 packages and recorded PyVEX 9.3.4.dev0 from ../wheels
  • the full CLE Pyodide suite passed with 231 passed and 17 skipped
  • the final YAML change passes all pre-commit hooks and git diff --check

All three review threads remain resolved. Hosted exact-head CI will provide the publication gate.

@twizmwazin
twizmwazin merged commit d2ecea0 into master Aug 26, 2026
20 checks passed
@twizmwazin
twizmwazin deleted the pyodide-ci branch August 26, 2026 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants