Repository navigation
build: release 5.0.0 - #406
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
📊 SMDA Performance Evaluation Benchmark ResultsGenerated on: 2026-10-16 13:51:58 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.
|
Cuts 5.0.0:
__version__goes from 4.11.0 to 5.0.0.## [Unreleased]becomes## [v5.0.0] - 2026-10-16without its empty subsections (Deprecated,Removed,Security). A fresh## [Unreleased]skeleton goes above it, and the compare links at the foot are updated. No changelog fixes were needed while cutting.Major because the release adds an architecture, as v4.0.0 did. The version is a release counter, not semver. None of the three compatibility constants (
ESCAPER_DOWNWARD_COMPATIBILITY,INTEL_PIC_HASH_ESCAPE_VERSION,CIL_PIC_HASH_ESCAPE_VERSION) moved since v4.11.0.What 5.0.0 carries
Milestone
v5.0.0, 1 closed before this PR:SmdaInstructionandSmdaBasicBlockget__slots__, and per-instruction work is trimmed: callgrind -1.7% to -3.4%, report heap -6% to -9%, reports identical (perf(core): optimize multi-architecture memory layout, CFG recovery, and opcode decode hot paths #404). Instructions and blocks no longer take attributes outside their slots.deepcopy(perf(core): optimize multi-architecture memory layout, CFG recovery, and opcode decode hot paths #404).>=5.0.2, so pip no longer resolves 4.0.2 and fails at import (fix(build): declare capstone>=5.0.2 #405).armreport instead of an error. Big-endian ARM still errors, now namingarmeb(feat: add 32-bit ARM and Thumb disassembly backend #364).Not in this release: #355 (reusable release workflow) and #297 (capstone 6 port).
Checked before opening
ecdfbb0: lld-fill and scan-vs-blxblocker repros fixed on six clang/lld builds; x86/x64/AArch64 reports byte-identical to master; full suite 2559 passed, 2 skipped.8f15a1a: 19 ARM reports and 6 non-ARM reports byte-identical to master; ARM pickle,deepcopyandfromDictround-trips unchanged; full suite 2561 passed, 2 skipped.testPackageMetadata.py,testReleaseGuard.pyandtestCommonModels.pypass on this branch.release_guard.py --tag v5.0.0passes and extracts the 37-line notes section.python -m buildproduced a 435 KB sdist with notests/and a 474 KB wheel withpy.typedand thesmda/arm/package.twine check --strictpassed, and the metadata readsVersion: 5.0.0andRequires-Dist: capstone<6,>=5.0.2.After merge
publish-release.ymlandrelease_guard.pyare unchanged since v4.11.0, so no TestPyPI rehearsal is needed. Once CI and the benchmark are green on the merge commit, tag it and push the tag:git tag -a v5.0.0 -m "SMDA 5.0.0" git push origin v5.0.0🤖 Generated with Claude Code