Skip to content

deps: bump windows-sys from 0.60.2 to 0.61.2 - #6

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/windows-sys-0.61.2
Open

deps: bump windows-sys from 0.60.2 to 0.61.2#6
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/windows-sys-0.61.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 20, 2026

Copy link
Copy Markdown

Bumps windows-sys from 0.60.2 to 0.61.2.

Release notes

Sourced from windows-sys's releases.

61

Major crate updates:

  • windows 0.59.0
  • windows-core 0.59.0
    • windows-implement 0.59.0
    • windows-interface 0.59.0
  • windows-targets 0.53.0
    • windows_i686_msvc 0.53.0
    • windows_x86_64_msvc 0.53.0
    • windows_aarch64_msvc 0.53.0
    • windows_i686_gnu 0.53.0
    • windows_x86_64_gnu 0.53.0
    • windows_i686_gnullvm 0.53.0
    • windows_x86_64_gnullvm 0.53.0
    • windows_aarch64_gnullvm 0.53.0
  • windows-bindgen 0.59.0
  • windows-registry 0.4.0
  • windows-result 0.3.0
  • windows-strings 0.3.0
  • cppwinrt 0.2.0

Minor crate updates:

  • windows-version 0.1.2

Excluded:

  • windows-sys 0.59.0

Things to keep in mind:

  • The tag/release names no longer map directly to the crate versions, so to find samples for a particular release requires looking at the releases page and finding the release that most recently updated a particular crate.

  • The windows-bindgen crate includes the major code generation overhaul that brings many improvements - be sure to check out the PR description for more information. The resulting code gen depends on the new version of windows-core and its dependencies, unless you include the --sys option. #3359

  • The cppwinrt crate constitutes a major update due to streamlining the error handling. #3415

  • The windows-registry, windows-strings, and windows-result crates are also major version updates since they include small breaking changes.

  • The windows-targets crate finally receives a major version update, the first in over a year. This is due to #3359 and #3342 potentially introducing breaking changes. Although unlikely, these updates introduced sufficient changes that make it hard to ensure that the windows-targets libs don't break existing code. As we're updating windows-targets anyway, I took the liberty to bump the MSRV to 1.60 - to match the latest version of windows-sys - and remove the old but unused doc macro feature. Both remained for compatibility with very old dependents of the windows-targets crate.

  • The windows-version crate receives a minor update to update its dependency on the windows-targets crate.

  • Beyond these specifics, this update is the culmination of around 6 months worth of work on the windows-rs project. The biggest improvements comes from the new code generation engine, but many other improvements are now also available for production. This includes support for many new lints, warnings, and suggestions provided by the Rust toolchain; much smaller code gen thanks to deriving many more traits; more efficient code gen; major improvements to WinRT type system and implementation support; more robust and consistent error handling; stock collection and async support; improved support for class hierarchies; and much more!

In addition to "what's changed" below, check out what's changed for notes for 0.60.0 and 0.59.0 for additional changes that roll up to the crates published as part of this release.

What's Changed

... (truncated)

Commits

@dependabot @github

dependabot Bot commented on behalf of github Aug 20, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, security. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot
dependabot Bot force-pushed the dependabot/cargo/windows-sys-0.61.2 branch from 69ef3a6 to 7ccb8a9 Compare August 20, 2026 02:38
Ttimmahlax pushed a commit that referenced this pull request Aug 20, 2026
…efuted, nothing shipped)

The +0.47 Ir/op batch_lifo/batch_fifo gap — the one op we lose to mimalloc — is
now localized precisely, and it is NOT algorithmic. Per-function callgrind plus a
direct disassembly of both allocators' free:

  - malloc is at PARITY (ra 15.99/op == mi 15.99/op). The whole gap is in free.
  - free fast path, executed: ours 27 insns, mimalloc 24 (excl. its CET
    endbr64). The +3, instruction for instruction:
      * used-- decrement, +3: mimalloc emits "subw $1, [used]; je" — one
        memory-destination RMW feeding the retire branch (2 insns). We emit
        load / dec / store / test / branch (5). LLVM won't select "dec [mem]; jle"
        because the decremented value must be in memory before the branch (the
        retire tail re-reads used) AND drive the branch.
      * thread compare, +1: mimalloc "cmp %rcx, %fs:0" (TLS self-pointer as a cmp
        operand); we "mov %fs:0,%rcx" then cmp, because thread_id() is an
        inline-asm "mov fs:0" that forces a register.
      * idx * sizeof(Page), -1: we use one imul where mimalloc uses lea+shl — a
        place we are already tighter.

Attempted the obvious fix — split the list-push from the used decrement and
inline the decrement next to the branch, the shape most likely to trigger
"dec [mem]". Result: BYTE-IDENTICAL asm, same mov/dec/mov/test/jle at the same
addresses. Reverted. C's "--page->used <= 0" gets "subw; je" from Clang; the
equivalent Rust does not, and neither fold is reachable without inline asm on the
hottest path in the allocator.

So the batch gap is a Rust-vs-C instruction-selection floor. Closing the last
~0.5% on one synthetic op would take inline asm in free — not worth it against a
path we win on every other op and match on real programs. This commit ships no
logic change: only a NOTE at the decrement so the dead end is not re-explored,
and the full trace in docs/opps.md #6. Verified byte-identical (free disasm
unchanged) and tests green.

Co-Authored-By: Claude Fable 5 (1M context) <noreply@anthropic.com>
Bumps [windows-sys](https://github.com/microsoft/windows-rs) from 0.60.2 to 0.61.2.
- [Release notes](https://github.com/microsoft/windows-rs/releases)
- [Commits](https://github.com/microsoft/windows-rs/commits)

---
updated-dependencies:
- dependency-name: windows-sys
  dependency-version: 0.61.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/cargo/windows-sys-0.61.2 branch from 7ccb8a9 to 2613c07 Compare August 20, 2026 22:56
Sign up for free to 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.

0 participants