Skip to content

Conversation

@christeefy
Copy link
Contributor

@christeefy christeefy commented Jun 21, 2025

Summary

This is a follow-up to #13033 (comment).

The goals of this PR include:

  1. applying a consistent memory ordering for (simple) use cases that doesn't involve synchronization/interaction with other data structures (i.e. atomics in uv-warning and the one introduced in Skip GitHub fast path when rate-limited #13033)
  2. relaxing the memory ordering from the strictest Ordering::SeqCst to Ordering::Relaxed for such use cases.

Test Plan

Unsure of how to test here.

Dependencies

@christeefy christeefy changed the title Use Relaxed memory ordering Consistently use Ordering::Relaxed for standalone atomic use cases Jun 21, 2025
@christeefy christeefy marked this pull request as draft June 21, 2025 15:44
@konstin konstin requested a review from oconnor663 June 22, 2025 13:55
@christeefy christeefy marked this pull request as ready for review June 22, 2025 19:30
Copy link
Contributor

@oconnor663 oconnor663 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, I've thought about doing the same the last time I looked at this code. (Which was also the first time 😄) What do you think about making the same change to uv_configuration::RAYON_PARALLELISM in this PR? (That is, crates/uv/src/lib.rs and crates/uv-configuration/src/threading.rs.)

@konstin konstin added the enhancement New feature or improvement to existing functionality label Jun 23, 2025
@christeefy
Copy link
Contributor Author

christeefy commented Jun 23, 2025

I think RAYON_PARALLELISM can be set to Ordering::Relaxed as well.

Here's my thinking (feel free to correct me):

  1. uv_configuration::RAYON_PARALLELISM.store in lib.rs is an independent storing of user configuration
  2. It is stored at the start of program execution, much earlier than when the rayon thread pool is created.

@christeefy christeefy requested a review from oconnor663 June 23, 2025 20:42
Copy link
Contributor

@oconnor663 oconnor663 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI flake is a known issue, unrelated.

@oconnor663 oconnor663 merged commit 9fba7a4 into astral-sh:main Jun 24, 2025
87 checks passed
@christeefy christeefy deleted the consistent-mem-ordering branch June 24, 2025 19:30
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jun 29, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.7.14` -> `0.7.16` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>astral-sh/uv (astral-sh/uv)</summary>

### [`v0.7.16`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0716)

[Compare Source](astral-sh/uv@0.7.15...0.7.16)

##### Python

- Add Python 3.14.0b3

See the
[`python-build-standalone` release notes](https://github.com/astral-sh/python-build-standalone/releases/tag/20250626)
for more details.

##### Enhancements

- Include path or URL when failing to convert in lockfile ([#&#8203;14292](astral-sh/uv#14292))
- Warn when `~=` is used as a Python version specifier without a patch version ([#&#8203;14008](astral-sh/uv#14008))

##### Preview features

- Ensure preview default Python installs are upgradeable ([#&#8203;14261](astral-sh/uv#14261))

##### Performance

- Share workspace cache between lock and sync operations ([#&#8203;14321](astral-sh/uv#14321))

##### Bug fixes

- Allow local indexes to reference remote files ([#&#8203;14294](astral-sh/uv#14294))
- Avoid rendering desugared prefix matches in error messages ([#&#8203;14195](astral-sh/uv#14195))
- Avoid using path URL for workspace Git dependencies in `requirements.txt` ([#&#8203;14288](astral-sh/uv#14288))
- Normalize index URLs to remove trailing slash ([#&#8203;14245](astral-sh/uv#14245))
- Respect URL-encoded credentials in redirect location ([#&#8203;14315](astral-sh/uv#14315))
- Lock the source tree when running setuptools, to protect concurrent builds ([#&#8203;14174](astral-sh/uv#14174))

##### Documentation

- Note that GCP Artifact Registry download URLs must have `/simple` component ([#&#8203;14251](astral-sh/uv#14251))

### [`v0.7.15`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0715)

[Compare Source](astral-sh/uv@0.7.14...0.7.15)

##### Enhancements

- Consistently use `Ordering::Relaxed` for standalone atomic use cases ([#&#8203;14190](astral-sh/uv#14190))
- Warn on ambiguous relative paths for `--index` ([#&#8203;14152](astral-sh/uv#14152))
- Skip GitHub fast path when rate-limited ([#&#8203;13033](astral-sh/uv#13033))
- Preserve newlines in `schema.json` descriptions ([#&#8203;13693](astral-sh/uv#13693))

##### Bug fixes

- Add check for using minor version link when creating a venv on Windows ([#&#8203;14252](astral-sh/uv#14252))
- Strip query parameters when parsing source URL ([#&#8203;14224](astral-sh/uv#14224))

##### Documentation

- Add a link to PyPI FAQ to clarify what per-project token is ([#&#8203;14242](astral-sh/uv#14242))

##### Preview features

- Allow symlinks in the build backend ([#&#8203;14212](astral-sh/uv#14212))

</details>

---

### Configuration

📅 **Schedule**: 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 MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
sai-rekhawar pushed a commit to sai-rekhawar/cloe-nessy-py that referenced this pull request Jul 1, 2025
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | final | patch | `0.7.13` -> `0.7.15` |

---

### Release Notes

<details>
<summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary>

### [`v0.7.15`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0715)

[Compare Source](astral-sh/uv@0.7.14...0.7.15)

##### Enhancements

-   Consistently use `Ordering::Relaxed` for standalone atomic use cases ([#&#8203;14190](astral-sh/uv#14190))
-   Warn on ambiguous relative paths for `--index` ([#&#8203;14152](astral-sh/uv#14152))
-   Skip GitHub fast path when rate-limited ([#&#8203;13033](astral-sh/uv#13033))
-   Preserve newlines in `schema.json` descriptions ([#&#8203;13693](astral-sh/uv#13693))

##### Bug fixes

-   Add check for using minor version link when creating a venv on Windows ([#&#8203;14252](astral-sh/uv#14252))
-   Strip query parameters when parsing source URL ([#&#8203;14224](astral-sh/uv#14224))

##### Documentation

-   Add a link to PyPI FAQ to clarify what per-project token is ([#&#8203;14242](astral-sh/uv#14242))

##### Preview features

-   Allow symlinks in the build backend ([#&#8203;14212](astral-sh/uv#14212))

### [`v0.7.14`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0714)

[Compare Source](astral-sh/uv@0.7.13...0.7.14)

##### Enhancements

-   Add XPU to `--torch-backend` ([#&#8203;14172](astral-sh/uv#14172))
-   Add ROCm backends to `--torch-backend` ([#&#8203;14120](astral-sh/uv#14120))
-   Remove preview label from `--torch-backend` ([#&#8203;14119](astral-sh/uv#14119))
-   Add `[tool.uv.dependency-groups].mygroup.requires-python` ([#&#8203;13735](astral-sh/uv#13735))
-   Add auto-detection for AMD GPUs ([#&#8203;14176](astral-sh/uv#14176))
-   Show retries for HTTP status code errors ([#&#8203;13897](astral-sh/uv#13897))
-   Support transparent Python patch version upgrades ([#&#8203;13954](astral-sh/uv#13954))
-   Warn on empty index directory ([#&#8203;13940](astral-sh/uv#13940))
-   Publish to DockerHub ([#&#8203;14088](astral-sh/uv#14088))

##### Performance

-   Make cold resolves about 10% faster ([#&#8203;14035](astral-sh/uv#14035))

##### Bug fixes

-   Don't use walrus operator in interpreter query script ([#&#8203;14108](astral-sh/uv#14108))
-   Fix handling of changes to `requires-python` ([#&#8203;14076](astral-sh/uv#14076))
-   Fix implied `platform_machine` marker for `...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or improvement to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants