Skip to content

0.1.6

Choose a tag to compare

@astral-releases-bot astral-releases-bot released this 19 Oct 22:26
Immutable release. Only release title and notes can be modified.
3f09005

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 -O and -OO compilation 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 legacy NOP instructions 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 NOP removal 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

  • Disable explicit transparent huge-page requests in Serc’s bundled allocator
    (#1315; #1315)

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 | sh

Install 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

File Platform Checksum
serc-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
serc-x86_64-apple-darwin.tar.gz Intel macOS checksum
serc-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
serc-i686-pc-windows-msvc.zip x86 Windows checksum
serc-x86_64-pc-windows-msvc.zip x64 Windows checksum
serc-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
serc-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
serc-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
serc-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
serc-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
serc-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
serc-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
serc-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
serc-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
serc-riscv64gc-unknown-linux-musl.tar.gz RISCV MUSL Linux checksum
serc-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
serc-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
serc-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

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/serc

You 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>