Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); fix compilation on uefi targets by usamoi · Pull Request #1665 · rust-random/rand · GitHub
Skip to content

fix compilation on uefi targets - #1665

Merged
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi
Oct 22, 2025
Merged

fix compilation on uefi targets#1665
dhardy merged 3 commits into
rust-random:masterfrom
usamoi:uefi

Conversation

@usamoi

Copy link
Copy Markdown
Contributor
  • Added a CHANGELOG.md entry

Summary

On uefi targets, the return type of std::io::Error::raw_os_error is Option<usize>, instead of Option<i32>. In rand_core, it is assumed as Option<i32>. This PR uses Option<usize> as the return type on the uefi targets.

getrandom has already handled this: https://github.com/rust-random/getrandom/blob/18d89843981b93032b2a2c6f1e33897075a8d727/src/error.rs#L6-L19

Signed-off-by: usamoi <usamoi@outlook.com>

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This doesn't feel like the right way to do this: clearly #1537 failed to isolate rand from getrandom changes.

Do you need a patch release for rand_core?

@newpavlov

newpavlov commented Oct 7, 2025

Copy link
Copy Markdown
Member

Note that technically it's a breaking change. I think we can cfg the implementation for UEFI and replace it with panic and fix it properly in the next breaking release.

UPD: On the second thought, since the current code does not compile on the UEFI targets, then this change can be considered non-breaking since it only affects "broken" targets.

@usamoi

Copy link
Copy Markdown
ContributorAuthor

Do you need a patch release for rand_core?

No. I can use the patch locally, so this is not necessary for me.

Note that technically it's a breaking change.

I'm fine with waiting to merge it into 0.10.

@dhardy

Copy link
Copy Markdown
Member

@usamoi could you add a note to rand_core/CHANGELOG.md please?

@newpavlov I think RawOsError should be a pub type in getrandom and re-exported in rand_core to avoid this: it's a foot-gun that the docs just say raw_os_error returns Option<i32>. This is what e.g. libc does for platform-dependent types.

@newpavlov

Copy link
Copy Markdown
Member

@dhardy
I don't think it makes sense to both re-export RawOsError and wrap getrandom::Error. I think we should either expose getrandom::Error in rand_core (in the next breaking release) or duplicate RawOsError.

@dhardy

Copy link
Copy Markdown
Member

@newpavlov the argument not to export getrandom::Error was to minimise the chance that a breaking release of getrandom would be breaking in rand_core. So far that hasn't actually helped us though.

getrandom should make the RawOsError type explicit anyway IMO.

@dhardy

dhardy commented Oct 15, 2025

Copy link
Copy Markdown
Member

So there is a fundamental difference between a pub-export of getrandom::Error and getrandom::RawOsError: the former is a type, the latter an alias. In other words, getrandom_v0_3::Error and getrandom_v0_3::Error will be distinct types; getrandom_v0_3::RawOsError and getrandom_v0_3::RawOsError will not be.

Implication: depending on getrandom::Error automatically makes a bump to the getrandom (non-patch) version breaking; depending on getrandom::RawOsError does not (so long as the aliases are compatible).

Once getrandom v1.0 is out I'm fine with depending on getrandom::Error. See also #1537.

@dhardydhardy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Marking as 👍 but if the next getrandom release is made soon this may be replaced.

newpavlov pushed a commit to rust-random/getrandom that referenced this pull request Oct 15, 2025
@dhardydhardy mentioned this pull request Oct 16, 2025
6 tasks
@dhardy

Copy link
Copy Markdown
Member

Merging so that this doesn't get lost behind #1674.

@dhardy
dhardy merged commit a8208d4 into rust-random:masterOct 22, 2025
15 checks passed
takumi-earth pushed a commit to earthlings-dev/getrandom that referenced this pull request Jan 27, 2026
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
Changes
The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#1642).
Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#1632)
Use Edition 2024 and MSRV 1.85 (#1653)
Let Fill be implemented for element types, not sliceable types (#1652)
Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#1665)
Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#1669)
Remove fns SeedableRng::from_os_rng, try_from_os_rng (#1674)
Remove Clone support for StdRng, ReseedingRng (#1677)
Use postcard instead of bincode to test the serde feature (#1693)
Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#1695)
Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#1697)
Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#1717)
Additions
Add fns IndexedRandom::choose_iter, choose_weighted_iter (#1632)
Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#1649)
Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#1659)
Fn rand::make_rng() -> R where R: SeedableRng (#1734)
Removals
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@usamoi@newpavlov@dhardy