Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade::combineconsumes both inputs but clones the higher-precedence constraint map before merging it. Move the owned map instead, retaining the upgrade-strategy precedence and constraint ordering established by astral-sh#18226 and astral-sh#19955.Hyperfine 2.0.0 measurements of c4be69153 → 18379c72b used release builds of the complete CLI with
rustc 1.99.0 (b940084d7 2026-09-28)on an AMD EPYC-Genoa Linux VM, pinned to four CPUs. Output went to/dev/null. The supplied interpreter was CPython 3.12.13.uv pip compilereads--config-file,--upgrade-packageand local--find-linkswheels, with the selected--resolutionmode. Completeuv pip compilecommands combine synthetic command-line upgrade constraints with constraints in an explicituv.toml, then resolve local wheels. Cases vary 0 to 2,048 keys per source, one or 128 resolved packages, and highest or lowest resolution. Most paired maps use matching keys; the mostly disjoint case shares one key and has 2,047 unique keys on each side. Two controls leave one map empty.Local wheels provide versions 1.0.0, 2.0.0 and 3.0.0; matching
>=2and<3constraints select 2.0.0. The complete commands include parsing, settings combination, resolution and formatting, so they do not isolate the map merge. Per-revisionuvcaches persist and local wheel metadata and OS pages are warm. The commands use local wheels without network access, source builds or installation.Values are means, parent → head. Changes are
(head / parent - 1)with 95% confidence intervals; negative values indicate a reduction.Each workload used ten comparison blocks with alternating revision order, one warmup followed by three measured runs per revision in each block (30 measurements per revision). The pointwise 95% percentile-bootstrap intervals use 20,000 resamples of paired block means and retain all samples. They estimate within-run uncertainty, not variation across machines, independent builds, or separate benchmark campaigns.
Three cases were slower: 512 matching keys and one package (+1.04%), the mostly disjoint 2,048-key maps (+4.49%), and the 128-package highest-resolution case (+4.02%). The other seven runtime intervals include zero. Peak RSS rose by 3.36 MiB and 0.99 MiB in the latter two cases and fell in four others by 0.13–1.60 MiB; the remaining four intervals include zero. These complete-command results do not isolate the map merge. RSS is Hyperfine's Linux
wait4peak, not an allocation count or summed simultaneous process-tree memory.