Skip to content

Fix CallPE binding for MultiOpndStmt refactor, migrate to PyPI#47

Merged
bjjwwang merged 6 commits intoSVF-tools:mainfrom
bjjwwang:0411
Apr 11, 2026
Merged

Fix CallPE binding for MultiOpndStmt refactor, migrate to PyPI#47
bjjwwang merged 6 commits intoSVF-tools:mainfrom
bjjwwang:0411

Conversation

@bjjwwang
Copy link
Copy Markdown
Collaborator

Summary

  • Fix CallPE binding: CallPE was refactored in SVF from AssignStmt to MultiOpndStmt (phi-like semantics). Updated the pybind11 binding and type stubs accordingly:
    • Changed CallPE parent class from AssignStmt to MultiOpndStmt
    • Replaced getCallSite() with getOpCallICFGNode(idx) and getOpCallICFGNodes()
    • getFunEntryICFGNode() unchanged
  • Migrate to official PyPI: Removed TestPyPI publishing, now publish only to PyPI (starting from version 1.0.0.0). Requires adding PYPI_API_TOKEN secret to the repository.
  • Update docs & demos:
    • README: updated install command to pip install pysvf, credited mgree for #46
    • demo/icfg.ipynb: fixed code cell and API tables that used removed CallPE.getCallSite()/getLHSVar()/getRHSVar()
    • demo/pag.ipynb: removed TestPyPI --index-url from install command

bjjwwang and others added 6 commits April 11, 2026 23:06
CallPE was refactored in SVF from AssignStmt to MultiOpndStmt to support
phi-like semantics where a formal parameter merges actual parameters from
multiple call sites. Update the pybind11 binding and type stubs accordingly:
- Change CallPE parent class from AssignStmt to MultiOpndStmt
- Replace getCallSite() with getOpCallICFGNode(idx) and getOpCallICFGNodes()
- Keep getFunEntryICFGNode() unchanged

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Publish wheels to official PyPI in addition to TestPyPI.
Version calculation now queries both PyPI and TestPyPI to
avoid version conflicts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update README: add news about PyPI migration and credit mgree for SVF-tools#46
- Update pip install command to use official PyPI
- Update Python version support to 3.8-3.12
- Remove TestPyPI references from pag.ipynb demo notebook

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace CallPE.getCallSite()/getLHSVar()/getRHSVar() with
  getFunEntryICFGNode()/getRes()/getOpVarNum() in code cell
- Update CallPE API documentation tables in markdown cells
- Clear stale output from affected code cell

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pybind11 requires base classes to be registered before derived classes.
CallPE (now inheriting MultiOpndStmt) was registered before MultiOpndStmt,
causing "referenced unknown base type" ImportError at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bjjwwang bjjwwang merged commit 9d8cc79 into SVF-tools:main Apr 11, 2026
1 check passed
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.

1 participant