Conversation
uv test inventory changesThis PR no longer changes the tests when compared with the latest |
|
Hmm, how does that change if we do more aggressive ICF? FWIW I'm not entirely sure this amount of wins is worth the (slight) risk of confusing crash reports/coredumps. OTOH this decision is easy to reverse |
|
I can't tell if this is actually working as intended — I'm going to poke at it more. |
63aa9b2 to
0984566
Compare
Measurement dataMoved out of the PR body to keep the summary short. Observed timingsThese are GitHub Actions elapsed job times, not isolated linker benchmarks. The no-ICF cohort uses retained ordinary release builds (1, 2, 3); the ICF cohort uses this PR's first run and rerun. Treat the deltas as directional CI observations: the aarch64 baseline range in particular contains a noisy outlier.
A same-source no-ICF control run toggled only the ICF flags off. Its single elapsed-time sample is slower than the retained cohort, which reinforces that the job-level timings are too noisy to isolate a small linker change:
Artifact sizesThis compares wheel artifacts from the same-source no-ICF control run with this PR's ICF rerun. The control commit changes only the workflow ICF toggle.
The corresponding embedded executable deltas are |
Merging this PR will degrade performance by 5.85%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression with the CodSpeed MCP and your agent. Comparing |
zsol
left a comment
There was a problem hiding this comment.
Seems a bit counterintuitive that runs with ICF are consistently faster. What should we keep an eye out for in terms of potential negative consequences? Nonsense stack traces in panics?
Released on 2026-06-10. ### Enhancements - Add `--emit-index-url` and `--emit-find-links` to `uv export` ([#18370](#18370)) - Add `--find-links` support for `uv pip list` ([#16103](#16103)) - Group executable install errors during `uv python install` ([#19691](#19691)) - Use ICF in macOS release builds to reduce binary sizes ([#19615](#19615)) ### Preview features - Add initial hidden `uv upgrade` command ([#19678](#19678)) - Reject Git revisions in `uv upgrade` ([#19742](#19742)) ### Configuration - Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`, `UV_NO_INSTALL_LOCAL` ([#19323](#19323)) ### Performance - Speed up discovery of large workspaces ([#18311](#18311)) ### Bug fixes - Allow unknown preview flags with a warning again ([#19669](#19669)) - Apply dependency exclusions to direct requirements ([#19699](#19699)) - Avoid following external symlinks during cache clean ([#19682](#19682)) - Avoid following symlinks during cache prune ([#19543](#19543)) - Fix Git cache keys for worktrees and packed refs ([#19706](#19706)) - Make resolver error handling iterative to avoid stack overflows ([#19695](#19695)) - Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#19703](#19703)) - Rebuild explicit local directory tool installs ([#19591](#19591)) - Validate egg top-level entries as identifiers ([#19679](#19679)) ### Documentation - Document `--find-links` caching behavior ([#19585](#19585)) - Add a small section for malware checks ([#19680](#19680))
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | stage | patch | `0.11.19` → `0.11.20` | --- ### Release Notes <details> <summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary> ### [`v0.11.20`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01120) Released on 2026-06-10. ##### Enhancements - Add `--emit-index-url` and `--emit-find-links` to `uv export` ([#​18370](astral-sh/uv#18370)) - Add `--find-links` support for `uv pip list` ([#​16103](astral-sh/uv#16103)) - Group executable install errors during `uv python install` ([#​19691](astral-sh/uv#19691)) - Use ICF in macOS release builds to reduce binary sizes ([#​19615](astral-sh/uv#19615)) ##### Preview features - Add initial hidden `uv upgrade` command ([#​19678](astral-sh/uv#19678)) - Reject Git revisions in `uv upgrade` ([#​19742](astral-sh/uv#19742)) ##### Configuration - Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`, `UV_NO_INSTALL_LOCAL` ([#​19323](astral-sh/uv#19323)) ##### Performance - Speed up discovery of large workspaces ([#​18311](astral-sh/uv#18311)) ##### Bug fixes - Allow unknown preview flags with a warning again ([#​19669](astral-sh/uv#19669)) - Apply dependency exclusions to direct requirements ([#​19699](astral-sh/uv#19699)) - Avoid following external symlinks during cache clean ([#​19682](astral-sh/uv#19682)) - Avoid following symlinks during cache prune ([#​19543](astral-sh/uv#19543)) - Fix Git cache keys for worktrees and packed refs ([#​19706](astral-sh/uv#19706)) - Make resolver error handling iterative to avoid stack overflows ([#​19695](astral-sh/uv#19695)) - Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#​19703](astral-sh/uv#19703)) - Rebuild explicit local directory tool installs ([#​19591](astral-sh/uv#19591)) - Validate egg top-level entries as identifiers ([#​19679](astral-sh/uv#19679)) ##### Documentation - Document `--find-links` caching behavior ([#​19585](astral-sh/uv#19585)) - Add a small section for malware checks ([#​19680](astral-sh/uv#19680)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMjAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIyMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=--> Co-authored-by: Renovate Bot <renovate@bhamm-lab.com> Reviewed-on: https://codeberg.org/blake-hamm/bhamm-lab/pulls/186

Inspired by denoland/deno#34478
Use
--icf=safefor optimized macOS release artifacts, via Rust's bundled Mach-O LLD.Measurements showed useful size wins on macOS; Linux did not show a meaningful artifact-size improvement and are excluded here. See #19615 (comment)