Repository navigation
0.1.6
Immutable
release. Only release title and notes can be modified.
Release Notes
Released on 2026-10-19.
Serc 0.1.6 adds standalone release binaries, improves CPython compatibility, and
reduces compilation overhead.
Enhancements
- Download standalone Serc binaries for uv’s 18 release targets from checksummed
archives or shell and PowerShell installers, with provenance attestations and
a release mirror (#1352;
#1352)
Bug fixes
- Preserve CPython-compatible control-flow joins and exception ownership when
optimization removes assertions in conditionals, nested handlers, and context
managers (#1304; #1304)
Performance
- Improve release-wheel and archive performance with profile-guided optimization
on macOS ARM64, Windows x64, and GNU/Linux x64 and ARM64 (#1352;
#1352) - Speed up
-Oand-OOcompilation by reusing function scope analysis when
assertion removal cannot change bindings or local ordering
(#1305; #1305)
(#1321; #1321) - Reduce optimized-compilation scope analysis by retaining original scope state
and skipping collection when no comprehension locals need reconciliation
(#1309; #1309)
(#1333; #1333) - Speed up folding large string frozensets and reusing repeated frozenset
constants (#1287; #1287)
(#1290; #1290) - Speed up integer-set folding by avoiding temporary numeric representations,
including for large integers (#1292;
#1292) (#1297;
#1297) - Speed up tuple-heavy compilation by indexing tuple-folding witnesses during
constant remapping and operand resolution (#1332;
#1332) (#1334;
#1334) - Reduce Python 3.12 cleanup overhead by skipping unused setup indexes and
walking legacyNOPinstructions directly (#1293;
#1293) (#1294;
#1294) - Reduce legacy cleanup overhead by indexing instructions by block and avoiding
copies when a pass makes no changes (#1301;
#1301) (#1339;
#1339) - Speed up source validation on Python 3.12 and 3.13 by bounding prefixed-string
scans and reusing parser tokens (#1299;
#1299) (#1306;
#1306) - Reduce optimized-compilation time and memory use by rewriting the parsed
syntax tree in place (#1310;
#1310) - Avoid extra depth and cleanup passes for optimized expression trees
(#1314; #1314)
(#1320; #1320) - Skip repeated constant-folding work for binary expressions and chains that
require runtime evaluation (#1341;
#1341) (#1343;
#1343) - Skip inapplicable sequence and tuple-folding passes on Python 3.13 and 3.15
(#1307; #1307)
(#1340; #1340) - Speed up Python 3.15 assembly by reusing compact-layout and borrowing fast
paths and caching opcode encodings (#1311;
#1311) (#1336;
#1336) - Reduce assembler ownership and local-simulation overhead by avoiding
unnecessary scans and reusing dense borrowing boundaries (#1312;
#1312) (#1319;
#1319) - Skip redundant assembler certificate checks during
NOPremoval and unchanged
source-location propagation (#1323;
#1323) (#1324;
#1324) - Speed up exception-owner analysis by indexing range labels, rejecting
irrelevant markers before provenance scans, and decoding tail operands once
(#1330; #1330)
(#1331; #1331)
(#1337; #1337) - Reduce jump-layout overhead by borrowing inline fixups and reusing
already-resolved operands (#1313;
#1313) (#1327;
#1327) - Reduce forward-jump cleanup overhead by skipping first-pass lookups and
deferring instruction copies (#1335;
#1335) (#1342;
#1342) - Reduce symbol and scope-name analysis allocations by reusing parsed
identifiers, streamlining collection, and inlining common mangling checks
(#1317; #1317)
(#1326; #1326)
(#1329; #1329) - Reduce source-location lookup overhead for calls, simple assignments, and
definitions (#1318; #1318)
(#1322; #1322) - Speed up source validation with a fast prefilter for oversized decimal
literals (#1325; #1325) - Skip compiler setup for empty unreachable tails after terminating statements
(#1328; #1328) - Reduce assembler memory use with compact storage for preserved jump targets
(#1316; #1316) - Reduce multi-version assembly overhead by translating operands only when their
encoding depends on the target Python version (#1295;
#1295)
Other changes
Install serc 0.1.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/serc/releases/download/0.1.6/serc-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/serc/releases/download/0.1.6/serc-installer.ps1 | iex"Download serc 0.1.6
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo astral-sh/sercYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>