Repository navigation
fix(build): declare capstone>=5.0.2 - #405
Conversation
StringExtractor imports CS_GRP_BRANCH_RELATIVE since #382, which capstone 4.x lacks, but only capstone<6 was declared. Beside dumpulator (capstone~=4.0.2) pip resolved 4.0.2, pip check passed, and import smda.Disassembler failed. 5.0.0.post1 and 5.0.1 import distutils and fail on Python 3.12+, so the floor is 5.0.2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
📊 SMDA Performance Evaluation Benchmark ResultsGenerated on: 2026-10-16 13:31:30 Summary
Per-side Timing Context (best of 3/3 runs per file)
Paired per-file timing (positive speedup = PR faster):
Determinism (self-check across repeated runs)
Pairwise run matrix (individual run medians, diagnostic)Diagnostic only: each row compares one raw PR run against one raw base run. The headline verdict above uses paired per-file best-of-runs timings.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What this changes
Raises smda's declared capstone requirement from
capstone<6tocapstone>=5.0.2,<6, with the rationale beside the existing comment inpyproject.toml, plus aCHANGELOG.mdentry under### Fixed.StringExtractorimportsCS_GRP_BRANCH_RELATIVEsince #382, and capstone 4.x does not have that constant. With no lower bound declared, pip resolves capstone 4.0.2 whenever another package pins it. dumpulator 0.2.6 does (capstone~=4.0.2).pip checkthen reports nothing, andimport smda.DisassemblerraisesImportError. This came up in a fresh Ubuntu 26.04 course-host install that put smda 4.11.0, mcrit and dumpulator into one venv.Why the floor is 5.0.2 and not 5.0.0: capstone 5.0.0.post1 and 5.0.1 import
distutils, which Python 3.12 removed, so on the interpreters smda supports they fail at import.Cost: smda no longer installs into the same environment as dumpulator 0.2.6. That conflict existed before as a runtime ImportError. pip now reports it at install time as
ResolutionImpossible.How it was verified
Python 3.14.4, branched from
bff1bfd(v4.11.0):ImportError: cannot import name 'CS_GRP_BRANCH_RELATIVE'import capstonefails:No module named 'distutils'Installed metadata reads
capstone<6,>=5.0.2.pip install --dry-run . dumpulator==0.2.6now fails withResolutionImpossible, where it used to install.make lintandmake format(ruff check: all passed; ruff format: 304 files already formatted)make test-all(full suite on 5.0.2 and 5.0.9, see the table)CHANGELOG.mdentry under## [Unreleased]Golden fixtures unchanged (metadata-only change, no source touched)
🤖 Generated with Claude Code