Skip to content

Optimize ToString implementation for integers #136264

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 15, 2025

Conversation

GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Jan 29, 2025

Part of #135543.

Follow-up of #133247 and #128204.

The benchmark results are:

name 1.87.0-nightly (3ea711f 2025-03-09) With this PR diff
bench_i16 32.06 ns/iter (+/- 0.12) 17.62 ns/iter (+/- 0.03) -45%
bench_i32 31.61 ns/iter (+/- 0.04) 15.10 ns/iter (+/- 0.06) -52%
bench_i64 31.71 ns/iter (+/- 0.07) 15.02 ns/iter (+/- 0.20) -52%
bench_i8 13.21 ns/iter (+/- 0.14) 14.93 ns/iter (+/- 0.16) +13%
bench_u16 31.20 ns/iter (+/- 0.06) 16.14 ns/iter (+/- 0.11) -48%
bench_u32 33.27 ns/iter (+/- 0.05) 16.18 ns/iter (+/- 0.10) -51%
bench_u64 31.44 ns/iter (+/- 0.06) 16.62 ns/iter (+/- 0.21) -47%
bench_u8 10.57 ns/iter (+/- 0.30) 13.00 ns/iter (+/- 0.43) +22%

More information about it in the original comment.

r? @workingjubilee

@rustbot
Copy link
Collaborator

rustbot commented Jan 29, 2025

Could not assign reviewer from: workingjubilee.
User(s) workingjubilee are either the PR author, already assigned, or on vacation. Please use r? to specify someone else to assign.

@rustbot
Copy link
Collaborator

rustbot commented Jan 29, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 29, 2025
@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez
Copy link
Member Author

I'm very confused by the CI errors. Did I unfold a very weird bug somehow? Like 0 != 0. 😮

@workingjubilee
Copy link
Member

specialization strikes again, perhaps

@theemathas
Copy link
Contributor

It seems to me that the tests are testing for a known miscompilation: #107975

@theemathas
Copy link
Contributor

theemathas commented Jan 30, 2025

I'm guessing that this PR caused the compiler to be able to figure out that calling to_string on a number doesn't cause that number to change, allowing more optimizations to happen, causing the miscompilation to behave differently.

@workingjubilee
Copy link
Member

lovely.

@GuillaumeGomez
Copy link
Member Author

Fixed CI. So now about benching the change: any suggestion @workingjubilee ?

In the meantime:

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 30, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 30, 2025
…string, r=<try>

Optimize `ToString` implementation for integers

Part of rust-lang#135543.

Follow-up of rust-lang#133247 and rust-lang#128204.

Rather than writing pretty bad benchers like I did last time, `@workingjubilee:` do you have a suggestion on how to check the impact on performance for this PR? Thanks in advance!

r? `@workingjubilee`
@bors
Copy link
Collaborator

bors commented Jan 30, 2025

⌛ Trying commit 83dc76e with merge 97c5b4b...

@bors
Copy link
Collaborator

bors commented Jan 30, 2025

☀️ Try build successful - checks-actions
Build commit: 97c5b4b (97c5b4b9bc9a34c7dde8738389ba12cb733cd54e)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (97c5b4b): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.4% [-0.6%, -0.1%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.4% [-0.6%, -0.1%] 2

Max RSS (memory usage)

Results (primary 0.3%, secondary 2.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
3.2% [3.2%, 3.2%] 1
Regressions ❌
(secondary)
2.1% [2.1%, 2.1%] 1
Improvements ✅
(primary)
-2.6% [-2.6%, -2.6%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [-2.6%, 3.2%] 2

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

Results (primary 0.1%, secondary 0.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 1.0%] 22
Regressions ❌
(secondary)
0.5% [0.5%, 0.5%] 3
Improvements ✅
(primary)
-0.1% [-0.2%, -0.0%] 6
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 3
All ❌✅ (primary) 0.1% [-0.2%, 1.0%] 28

Bootstrap: 776.287s -> 777.396s (0.14%)
Artifact size: 328.44 MiB -> 328.53 MiB (0.03%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 30, 2025
@workingjubilee
Copy link
Member

I don't believe the tests should be changed in this way.

@GuillaumeGomez
Copy link
Member Author

I'm not sure if we should keep the code and modify it (like I did) or just comment out the parts that are failing. Or maybe you see a third way?

@workingjubilee
Copy link
Member

The point of these tests is the series of asserts, changing just one line or two that fails undermines the point.

@GuillaumeGomez
Copy link
Member Author

The point was testing that calling to_string on them somehow changed the value. The new checks ensure that it doesn't and I commented as such. Not too sure what else to do on them.

@workingjubilee
Copy link
Member

These are known-bug tests.

They are testing for the existence of a bug.

We did not fix the bug, because there are other ways to reach the compilation quirks in question. They have little to nothing to do with to_string in particular. We changed the code it was testing from under its feet, so the test has to be different code in order to still be a useful test, as what we want is to verify when LLVM stops miscompiling a sequence of LLVMIR.

@GuillaumeGomez
Copy link
Member Author

Oh I see. So in short, calling any method on the type should still trigger the original bug iiuc. Let me give it a try. In the meantime, any idea on how to bench this PR?

@GuillaumeGomez GuillaumeGomez force-pushed the optimize-integers-to-string branch from 83dc76e to 1713773 Compare January 30, 2025 17:27
@GuillaumeGomez
Copy link
Member Author

You were right, just calling another method did the trick. Tests are now back to what they were.

@workingjubilee
Copy link
Member

Thank you. I will think about that a bit.

@bors
Copy link
Collaborator

bors commented Feb 4, 2025

☔ The latest upstream changes (presumably #135265) made this pull request unmergeable. Please resolve the merge conflicts.

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label May 14, 2025
@marcoieni
Copy link
Member

marcoieni commented May 14, 2025

Successful. Well, retry time I guess?

Since I didn't specify the job list, it tested the wrong job. Sorry about that.

image

Anyway, this try was not relevant. As I said, the failure is not related to the content of the PR 👍

@bors
Copy link
Collaborator

bors commented May 14, 2025

⌛ Testing commit 1ef7585 with merge f301ff8...

bors added a commit to rust-lang-ci/rust that referenced this pull request May 14, 2025
…string, r=Amanieu

Optimize `ToString` implementation for integers

Part of rust-lang#135543.

Follow-up of rust-lang#133247 and rust-lang#128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](rust-lang#136264 (comment)).

r? `@workingjubilee`
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-msvc-1 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] globset test:false 14.140
   Compiling arc-swap v1.7.1
[RUSTC-TIMING] arc_swap test:false 0.955
   Compiling gix-odb v0.68.0
rustc-LLVM ERROR: IO failure on output stream: no space on device
[RUSTC-TIMING] encoding_rs test:false 17.177
error: could not compile `encoding_rs` (lib)

Caused by:
  process didn't exit successfully: `C:\a\rust\rust\build\bootstrap\debug\rustc 'C:\a\rust\rust\build\bootstrap\debug\rustc' --crate-name encoding_rs --edition=2018 'C:\Users\runneradmin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\encoding_rs-0.8.35\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debug-assertions=on --cfg 'feature="alloc"' --cfg 'feature="default"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("alloc", "any_all_workaround", "default", "fast-big5-hanzi-encode", "fast-gb-hanzi-encode", "fast-hangul-encode", "fast-hanja-encode", "fast-kanji-encode", "fast-legacy-encode", "less-slow-big5-hanzi-encode", "less-slow-gb-hanzi-encode", "less-slow-kanji-encode", "serde", "simd-accel"))' -C metadata=b8f8c115c6e469e8 -C extra-filename=-087acd4bf694a9b6 --out-dir 'C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\deps' --target x86_64-pc-windows-msvc -L 'dependency=C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\deps' -L 'dependency=C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\release\deps' --extern 'cfg_if=C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\deps\libcfg_if-1385047cee4bd1e8.rmeta' --cap-lints allow --cfg=windows_raw_dylib -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=cfg(bootstrap)' '--check-cfg=cfg(llvm_enzyme)' '--check-cfg=cfg(rust_analyzer)' -Zmacro-backtrace -Csplit-debuginfo=packed -Ctarget-feature=+crt-static '-Clink-arg=-LIBPATH:C:\a\rust\rust\build\x86_64-pc-windows-msvc\llvm\lib' -Alinker-messages -Zunstable-options -Z binary-dep-depinfo` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: failed to write to `C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\deps\rmetaNTUitG\full.rmeta`: There is not enough space on the disk. (os error 112)

[RUSTC-TIMING] fiat_crypto test:false 17.574
error: could not compile `fiat-crypto` (lib) due to 1 previous error
[RUSTC-TIMING] gix_odb test:false 16.723
warning: libgit2-sys@0.18.0+1.9.0:   158 |         ctx->has_identity = 1;
warning: libgit2-sys@0.18.0+1.9.0:       |                           ^ ~
warning: libgit2-sys@0.18.0+1.9.0: libgit2/src/libgit2/transports\auth_sspi.c(196,24): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
warning: libgit2-sys@0.18.0+1.9.0:   196 |                 ctx->has_credentials = 1;
warning: libgit2-sys@0.18.0+1.9.0:       |                                      ^ ~
warning: libgit2-sys@0.18.0+1.9.0: libgit2/src/libgit2/transports\auth_sspi.c(227,17): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
warning: libgit2-sys@0.18.0+1.9.0:   227 |                 ctx->complete = 1;
warning: libgit2-sys@0.18.0+1.9.0:       |                               ^ ~
warning: libgit2-sys@0.18.0+1.9.0: libgit2/src/libgit2/transports\auth_sspi.c(233,19): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
warning: libgit2-sys@0.18.0+1.9.0:   233 |         ctx->has_context = 1;
warning: libgit2-sys@0.18.0+1.9.0:       |                          ^ ~
warning: libgit2-sys@0.18.0+1.9.0: 4 warnings generated.
warning: libgit2-sys@0.18.0+1.9.0: libgit2/src/libgit2/transports\auth_sspi.c(158,20): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
warning: libgit2-sys@0.18.0+1.9.0: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
warning: libgit2-sys@0.18.0+1.9.0: Stack dump:
warning: libgit2-sys@0.18.0+1.9.0: 0. Program arguments: C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe -nologo -MT -O2 -Brepro -m64 -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\include -I libgit2/src/libgit2 -I libgit2/src/util -I libgit2/deps/llhttp -I libgit2/deps/xdiff -I libgit2/deps/pcre -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libssh2-sys-b6cfde3c9a5fa885\\out\\include -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libz-sys-f9c2a3d6a084c9fe\\out/include -DGIT_REGEX_BUILTIN=1 -DHAVE_STDINT_H=1 -DHAVE_MEMMOVE=1 -DNO_RECURSE=1 -DNEWLINE=10 -DPOSIX_MALLOC_THRESHOLD=10 -DLINK_SIZE=2 -DPARENS_NEST_LIMIT=250 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=MATCH_LIMIT -DMAX_NAME_SIZE=32 -DMAX_NAME_COUNT=10000 -DSTRSAFE_NO_DEPRECATE -DWIN32 -D_WIN32_WINNT=0x0600 -DSHA1DC_NO_STANDARD_INCLUDES=1 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\" -FoC:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\build\\ce06de217e8a4ca5-ssh_libssh2.o -c -- libgit2/src/libgit2/transports\\ssh_libssh2.c
warning: libgit2-sys@0.18.0+1.9.0: 1. <eof> parser at end of file
warning: libgit2-sys@0.18.0+1.9.0: Exception Code: 0xE0000001
warning: libgit2-sys@0.18.0+1.9.0:  #0 0x00007ffb1fd0933a (C:\Windows\System32\KERNELBASE.dll+0xc933a)
warning: libgit2-sys@0.18.0+1.9.0:  #1 0x00007ff7c60f766a (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c766a)
warning: libgit2-sys@0.18.0+1.9.0:  #2 0x00007ff7c60f77c9 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c77c9)
warning: libgit2-sys@0.18.0+1.9.0:  #3 0x00007ff7c6002bc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x25d2bc3)
warning: libgit2-sys@0.18.0+1.9.0:  #4 0x00007ff7c6108979 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26d8979)
warning: libgit2-sys@0.18.0+1.9.0:  #5 0x00007ff7c4159713 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729713)
warning: libgit2-sys@0.18.0+1.9.0:  #6 0x00007ff7c4159610 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729610)
warning: libgit2-sys@0.18.0+1.9.0:  #7 0x00007ff7c3d6ba5f (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x33ba5f)
warning: libgit2-sys@0.18.0+1.9.0:  #8 0x00007ff7c5aeeb55 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x20beb55)
warning: libgit2-sys@0.18.0+1.9.0:  #9 0x00007ff7c5eb0458 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2480458)
warning: libgit2-sys@0.18.0+1.9.0: #10 0x00007ff7c3fdd8e1 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad8e1)
warning: libgit2-sys@0.18.0+1.9.0: #11 0x00007ff7c3fdd382 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad382)
warning: libgit2-sys@0.18.0+1.9.0: #12 0x00007ff7c3fda0b4 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5aa0b4)
warning: libgit2-sys@0.18.0+1.9.0: #13 0x00007ff7c3fd7c30 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a7c30)
warning: libgit2-sys@0.18.0+1.9.0: #14 0x00007ff7c3fd65fe (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a65fe)
warning: libgit2-sys@0.18.0+1.9.0: #15 0x00007ff7c4dea3cd (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x13ba3cd)
warning: libgit2-sys@0.18.0+1.9.0: #16 0x00007ff7c4167d25 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737d25)
warning: libgit2-sys@0.18.0+1.9.0: #17 0x00007ff7c4167b28 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737b28)
warning: libgit2-sys@0.18.0+1.9.0: #18 0x00007ff7c3e1b2e8 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eb2e8)
warning: libgit2-sys@0.18.0+1.9.0: #19 0x00007ff7c3e1ac9e (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eac9e)
warning: libgit2-sys@0.18.0+1.9.0: #20 0x00007ff7c3e1a7b7 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3ea7b7)
warning: libgit2-sys@0.18.0+1.9.0: #21 0x00007ff7c3e14647 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e4647)
warning: libgit2-sys@0.18.0+1.9.0: #22 0x00007ff7c3e11cc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e1cc3)
warning: libgit2-sys@0.18.0+1.9.0: #23 0x00007ff7c5f34050 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2504050)
warning: libgit2-sys@0.18.0+1.9.0: #24 0x00007ffb2178e8d7 (C:\Windows\System32\KERNEL32.DLL+0x2e8d7)
warning: libgit2-sys@0.18.0+1.9.0: #25 0x00007ffb228514fc (C:\Windows\SYSTEM32\ntdll.dll+0xb14fc)
warning: libgit2-sys@0.18.0+1.9.0:  #0 0x00007ffb1fd0933a (C:\Windows\System32\KERNELBASE.dll+0xc933a)
warning: libgit2-sys@0.18.0+1.9.0: ToolExecError: command did not execute successfully (status code exit code: 1): "C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe" "-nologo" "-MT" "-O2" "-Brepro" "-m64" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/llhttp" "-I" "libgit2/deps/xdiff" "-I" "libgit2/deps/pcre" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libssh2-sys-b6cfde3c9a5fa885\\out\\include" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libz-sys-f9c2a3d6a084c9fe\\out/include" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSTRSAFE_NO_DEPRECATE" "-DWIN32" "-D_WIN32_WINNT=0x0600" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-FoC:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\build\\ce06de217e8a4ca5-ssh_libssh2.o" "-c" "--" "libgit2/src/libgit2/transports\\ssh_libssh2.c"
warning: libgit2-sys@0.18.0+1.9.0:   219 |     strncpy(errbuf, message, errbuf_size - 1);
warning: libgit2-sys@0.18.0+1.9.0:       |     ^
warning: libgit2-sys@0.18.0+1.9.0: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\string.h(334,1): note: 'strncpy' has been explicitly marked deprecated here
warning: libgit2-sys@0.18.0+1.9.0:   334 | __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
warning: libgit2-sys@0.18.0+1.9.0:       | ^
warning: libgit2-sys@0.18.0+1.9.0: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt.h(1935,17): note: expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX'
warning: libgit2-sys@0.18.0+1.9.0:  1935 |                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
warning: libgit2-sys@0.18.0+1.9.0:       |                 ^
warning: libgit2-sys@0.18.0+1.9.0: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\include\vcruntime.h(368,55): note: expanded from macro '_CRT_INSECURE_DEPRECATE'
warning: libgit2-sys@0.18.0+1.9.0:   368 |         #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
warning: libgit2-sys@0.18.0+1.9.0:       |                                                       ^
warning: libgit2-sys@0.18.0+1.9.0: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\include\vcruntime.h(358,47): note: expanded from macro '_CRT_DEPRECATE_TEXT'
warning: libgit2-sys@0.18.0+1.9.0:   358 | #define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
warning: libgit2-sys@0.18.0+1.9.0:       |                                               ^
warning: libgit2-sys@0.18.0+1.9.0: 1 warning generated.
warning: libgit2-sys@0.18.0+1.9.0: libgit2/deps/pcre\pcreposix.c(219,5): warning: 'strncpy' is deprecated: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations]
error: failed to run custom build command for `libgit2-sys v0.18.0+1.9.0`

Caused by:
  process didn't exit successfully: `C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\release\build\libgit2-sys-ac88f5024921dece\build-script-build` (exit code: 1)
  --- stdout
  cargo:rustc-check-cfg=cfg(libgit2_vendored,)
  cargo:rerun-if-env-changed=LIBGIT2_NO_VENDOR
  cargo:rustc-cfg=libgit2_vendored
  libgit2/include\git2\annotated_commit.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\annotated_commit.h
  libgit2/include\git2\apply.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\apply.h
  libgit2/include\git2\attr.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\attr.h
  libgit2/include\git2\blame.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\blame.h
  libgit2/include\git2\blob.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\blob.h
  libgit2/include\git2\branch.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\branch.h
  libgit2/include\git2\buffer.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\buffer.h
  libgit2/include\git2\cert.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\cert.h
  libgit2/include\git2\checkout.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\checkout.h
  libgit2/include\git2\cherrypick.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\cherrypick.h
  libgit2/include\git2\clone.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\clone.h
  libgit2/include\git2\commit.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\commit.h
  libgit2/include\git2\common.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\common.h
  libgit2/include\git2\config.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\config.h
  libgit2/include\git2\credential.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\credential.h
  libgit2/include\git2\credential_helpers.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\credential_helpers.h
  libgit2/include\git2\cred_helpers.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\cred_helpers.h
  libgit2/include\git2\deprecated.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\deprecated.h
  libgit2/include\git2\describe.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\describe.h
  libgit2/include\git2\diff.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\diff.h
  libgit2/include\git2\email.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\email.h
  libgit2/include\git2\errors.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\errors.h
  libgit2/include\git2\experimental.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\experimental.h
  libgit2/include\git2\filter.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\filter.h
  libgit2/include\git2\global.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\global.h
  libgit2/include\git2\graph.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\graph.h
  libgit2/include\git2\ignore.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\ignore.h
  libgit2/include\git2\index.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\index.h
  libgit2/include\git2\indexer.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\indexer.h
  libgit2/include\git2\mailmap.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\mailmap.h
  libgit2/include\git2\merge.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\merge.h
  libgit2/include\git2\message.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\message.h
  libgit2/include\git2\net.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\net.h
  libgit2/include\git2\notes.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\notes.h
  libgit2/include\git2\object.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\object.h
  libgit2/include\git2\odb.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\odb.h
  libgit2/include\git2\odb_backend.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\odb_backend.h
  libgit2/include\git2\oid.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\oid.h
  libgit2/include\git2\oidarray.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\oidarray.h
  libgit2/include\git2\pack.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\pack.h
  libgit2/include\git2\patch.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\patch.h
  libgit2/include\git2\pathspec.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\pathspec.h
  libgit2/include\git2\proxy.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\proxy.h
  libgit2/include\git2\rebase.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\rebase.h
  libgit2/include\git2\refdb.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\refdb.h
  libgit2/include\git2\reflog.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\reflog.h
  libgit2/include\git2\refs.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\refs.h
  libgit2/include\git2\refspec.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\refspec.h
  libgit2/include\git2\remote.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\remote.h
  libgit2/include\git2\repository.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\repository.h
  libgit2/include\git2\reset.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\reset.h
  libgit2/include\git2\revert.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\revert.h
  libgit2/include\git2\revparse.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\revparse.h
  libgit2/include\git2\revwalk.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\revwalk.h
  libgit2/include\git2\signature.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\signature.h
  libgit2/include\git2\stash.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\stash.h
  libgit2/include\git2\status.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\status.h
  libgit2/include\git2\stdint.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\stdint.h
  libgit2/include\git2\strarray.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\strarray.h
  libgit2/include\git2\submodule.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\submodule.h
  libgit2/include\git2\sys\alloc.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\alloc.h
  libgit2/include\git2\sys\commit.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\commit.h
  libgit2/include\git2\sys\commit_graph.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\commit_graph.h
  libgit2/include\git2\sys\config.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\config.h
  libgit2/include\git2\sys\cred.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\cred.h
  libgit2/include\git2\sys\credential.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\credential.h
  libgit2/include\git2\sys\diff.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\diff.h
  libgit2/include\git2\sys\email.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\email.h
  libgit2/include\git2\sys\errors.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\errors.h
  libgit2/include\git2\sys\filter.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\filter.h
  libgit2/include\git2\sys\hashsig.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\hashsig.h
  libgit2/include\git2\sys\index.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\index.h
  libgit2/include\git2\sys\mempack.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\mempack.h
  libgit2/include\git2\sys\merge.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\merge.h
  libgit2/include\git2\sys\midx.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\midx.h
  libgit2/include\git2\sys\odb_backend.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\odb_backend.h
  libgit2/include\git2\sys\openssl.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\openssl.h
  libgit2/include\git2\sys\path.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\path.h
  libgit2/include\git2\sys\refdb_backend.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\refdb_backend.h
  libgit2/include\git2\sys\refs.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\refs.h
  libgit2/include\git2\sys\remote.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\remote.h
  libgit2/include\git2\sys\repository.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\repository.h
  libgit2/include\git2\sys\stream.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\stream.h
  libgit2/include\git2\sys\transport.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\sys\transport.h
  libgit2/include\git2\tag.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\tag.h
  libgit2/include\git2\trace.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\trace.h
  libgit2/include\git2\transaction.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\transaction.h
  libgit2/include\git2\transport.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\transport.h
  libgit2/include\git2\tree.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\tree.h
  libgit2/include\git2\types.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\types.h
  libgit2/include\git2\version.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\version.h
  libgit2/include\git2\worktree.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2\worktree.h
  libgit2/include\git2.h => C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\x86_64-pc-windows-msvc\release\build\libgit2-sys-789490130d1cd38d\out\include\git2.h
  OPT_LEVEL = Some(3)
  TARGET = Some(x86_64-pc-windows-msvc)
  cargo:rerun-if-env-changed=VCINSTALLDIR
  VCINSTALLDIR = None
  cargo:rerun-if-env-changed=VSTEL_MSBuildProjectFullPath
  VSTEL_MSBuildProjectFullPath = None
  cargo:rerun-if-env-changed=VSCMD_ARG_VCVARS_SPECTRE
  VSCMD_ARG_VCVARS_SPECTRE = None
  cargo:rerun-if-env-changed=WindowsSdkDir
  WindowsSdkDir = None
  cargo:rerun-if-env-changed=WindowsSDKVersion
  WindowsSDKVersion = None
  cargo:rerun-if-env-changed=LIB
  LIB = None
  PATH = Some(C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\release\deps;C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1-tools\release;C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage1\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\runneradmin\bin;C:\a\rust\rust\ninja;C:\a\rust\rust\sccache;C:\Program Files\MongoDB\Server\7.0\bin;C:\vcpkg;C:\tools\zstd;C:\hostedtoolcache\windows\stack\3.5.1\x64;C:\cabal\bin;C:\ghcup\bin;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\R\R-4.4.2\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\usr\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.23.8\x64\bin;C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.13\x64;C:\hostedtoolcache\windows\Ruby\3.3.8\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\17.0.15-6\x64\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\dotnet;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\Program Files\Microsoft SQL Server\130\DTS\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Microsoft SQL Server\160\DTS\Binn;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.9\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI;C:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files\Amazon\SessionManagerPlugin\bin;C:\Program Files\Amazon\AWSSAMCLI\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\mongosh;C:\Program Files\LLVM\bin;C:\Program Files (x86)\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps)
  cargo:rerun-if-env-changed=INCLUDE
  INCLUDE = None
  HOST = Some(x86_64-pc-windows-msvc)
  cargo:rerun-if-env-changed=CC_x86_64-pc-windows-msvc
  CC_x86_64-pc-windows-msvc = None
  cargo:rerun-if-env-changed=CC_x86_64_pc_windows_msvc
  CC_x86_64_pc_windows_msvc = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = Some(C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe)
  RUSTC_WRAPPER = Some(C:\a\rust\rust\build\bootstrap\debug\rustc)
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  CARGO_CFG_TARGET_FEATURE = Some(cmpxchg16b,crt-static,fxsr,lahfsahf,sse,sse2,sse3,x87)
  DEBUG = Some(false)
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_pc_windows_msvc
  CFLAGS_x86_64_pc_windows_msvc = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64-pc-windows-msvc
  CFLAGS_x86_64-pc-windows-msvc = None
  CARGO_ENCODED_RUSTFLAGS = Some(--cfg=windows_raw_dylib-Csymbol-mangling-version=v0-Zunstable-options--check-cfg=cfg(bootstrap)--check-cfg=cfg(llvm_enzyme)--check-cfg=cfg(rust_analyzer)-Zmacro-backtrace-Csplit-debuginfo=packed-Ctarget-feature=+crt-static-Clink-arg=-LIBPATH:C:\a\rust\rust\build\x86_64-pc-windows-msvc\llvm\lib-Alinker-messages-Zunstable-options)
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
---
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: cargo:warning=libgit2/src/libgit2/transports\auth_sspi.c(158,20): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
  cargo:warning=  158 |         ctx->has_identity = 1;
  cargo:warning=      |                           ^ ~
  cargo:warning=libgit2/src/libgit2/transports\auth_sspi.c(196,24): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
  cargo:warning=  196 |                 ctx->has_credentials = 1;
  cargo:warning=      |                                      ^ ~
  cargo:warning=libgit2/src/libgit2/transports\auth_sspi.c(227,17): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
  cargo:warning=  227 |                 ctx->complete = 1;
  cargo:warning=      |                               ^ ~
  cargo:warning=libgit2/src/libgit2/transports\auth_sspi.c(233,19): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
  cargo:warning=  233 |         ctx->has_context = 1;
  cargo:warning=      |                          ^ ~
  cargo:warning=4 warnings generated.
  cargo:warning=libgit2/src/libgit2/transports\auth_sspi.c(158,20): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
    158 |         ctx->has_identity = 1;
        |                           ^ ~
  libgit2/src/libgit2/transports\auth_sspi.c(196,24): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
    196 |                 ctx->has_credentials = 1;
        |                                      ^ ~
  libgit2/src/libgit2/transports\auth_sspi.c(227,17): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
    227 |                 ctx->complete = 1;
        |                               ^ ~
  libgit2/src/libgit2/transports\auth_sspi.c(233,19): warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
    233 |         ctx->has_context = 1;
        |                          ^ ~
  4 warnings generated.

  0
  exit code: 0
---
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: cargo:warning=fatal error: error in backend: IO failure on output stream: no space on device
  cargo:warning=PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
  cargo:warning=Stack dump:
  cargo:warning=0. Program arguments: C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe -nologo -MT -O2 -Brepro -m64 -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\include -I libgit2/src/libgit2 -I libgit2/src/util -I libgit2/deps/llhttp -I libgit2/deps/xdiff -I libgit2/deps/pcre -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libssh2-sys-b6cfde3c9a5fa885\\out\\include -I C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libz-sys-f9c2a3d6a084c9fe\\out/include -DGIT_REGEX_BUILTIN=1 -DHAVE_STDINT_H=1 -DHAVE_MEMMOVE=1 -DNO_RECURSE=1 -DNEWLINE=10 -DPOSIX_MALLOC_THRESHOLD=10 -DLINK_SIZE=2 -DPARENS_NEST_LIMIT=250 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=MATCH_LIMIT -DMAX_NAME_SIZE=32 -DMAX_NAME_COUNT=10000 -DSTRSAFE_NO_DEPRECATE -DWIN32 -D_WIN32_WINNT=0x0600 -DSHA1DC_NO_STANDARD_INCLUDES=1 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\" -FoC:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\build\\ce06de217e8a4ca5-ssh_libssh2.o -c -- libgit2/src/libgit2/transports\\ssh_libssh2.c
  cargo:warning=1. <eof> parser at end of file
  cargo:warning=Exception Code: 0xE0000001
  cargo:warning= #0 0x00007ffb1fd0933a (C:\Windows\System32\KERNELBASE.dll+0xc933a)
  cargo:warning= #1 0x00007ff7c60f766a (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c766a)
  cargo:warning= #2 0x00007ff7c60f77c9 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c77c9)
  cargo:warning= #3 0x00007ff7c6002bc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x25d2bc3)
  cargo:warning= #4 0x00007ff7c6108979 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26d8979)
  cargo:warning= #5 0x00007ff7c4159713 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729713)
  cargo:warning= #6 0x00007ff7c4159610 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729610)
  cargo:warning= #7 0x00007ff7c3d6ba5f (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x33ba5f)
  cargo:warning= #8 0x00007ff7c5aeeb55 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x20beb55)
  cargo:warning= #9 0x00007ff7c5eb0458 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2480458)
  cargo:warning=#10 0x00007ff7c3fdd8e1 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad8e1)
  cargo:warning=#11 0x00007ff7c3fdd382 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad382)
  cargo:warning=#12 0x00007ff7c3fda0b4 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5aa0b4)
  cargo:warning=#13 0x00007ff7c3fd7c30 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a7c30)
  cargo:warning=#14 0x00007ff7c3fd65fe (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a65fe)
  cargo:warning=#15 0x00007ff7c4dea3cd (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x13ba3cd)
  cargo:warning=#16 0x00007ff7c4167d25 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737d25)
  cargo:warning=#17 0x00007ff7c4167b28 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737b28)
  cargo:warning=#18 0x00007ff7c3e1b2e8 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eb2e8)
  cargo:warning=#19 0x00007ff7c3e1ac9e (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eac9e)
  cargo:warning=#20 0x00007ff7c3e1a7b7 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3ea7b7)
  cargo:warning=#21 0x00007ff7c3e14647 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e4647)
  cargo:warning=#22 0x00007ff7c3e11cc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e1cc3)
  cargo:warning=#23 0x00007ff7c5f34050 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2504050)
  cargo:warning=#24 0x00007ffb2178e8d7 (C:\Windows\System32\KERNEL32.DLL+0x2e8d7)
  cargo:warning=#25 0x00007ffb228514fc (C:\Windows\SYSTEM32\ntdll.dll+0xb14fc)
  cargo:warning= #0 0x00007ffb1fd0933a (C:\Windows\System32\KERNELBASE.dll+0xc933a)
   #1 0x00007ff7c60f766a (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c766a)
   #2 0x00007ff7c60f77c9 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26c77c9)
   #3 0x00007ff7c6002bc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x25d2bc3)
   #4 0x00007ff7c6108979 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x26d8979)
   #5 0x00007ff7c4159713 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729713)
   #6 0x00007ff7c4159610 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x729610)
   #7 0x00007ff7c3d6ba5f (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x33ba5f)
   #8 0x00007ff7c5aeeb55 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x20beb55)
   #9 0x00007ff7c5eb0458 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2480458)
  #10 0x00007ff7c3fdd8e1 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad8e1)
  #11 0x00007ff7c3fdd382 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5ad382)
  #12 0x00007ff7c3fda0b4 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5aa0b4)
  #13 0x00007ff7c3fd7c30 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a7c30)
  #14 0x00007ff7c3fd65fe (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x5a65fe)
  #15 0x00007ff7c4dea3cd (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x13ba3cd)
  #16 0x00007ff7c4167d25 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737d25)
  #17 0x00007ff7c4167b28 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x737b28)
  #18 0x00007ff7c3e1b2e8 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eb2e8)
  #19 0x00007ff7c3e1ac9e (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3eac9e)
  #20 0x00007ff7c3e1a7b7 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3ea7b7)
  #21 0x00007ff7c3e14647 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e4647)
  #22 0x00007ff7c3e11cc3 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x3e1cc3)
  #23 0x00007ff7c5f34050 (C:\a\rust\rust\citools\clang-rust\bin\clang-cl.exe+0x2504050)
  #24 0x00007ffb2178e8d7 (C:\Windows\System32\KERNEL32.DLL+0x2e8d7)
  #25 0x00007ffb228514fc (C:\Windows\SYSTEM32\ntdll.dll+0xb14fc)

  0
  exit code: 0
  exit code: 0
  exit code: 1
  cargo:warning=ToolExecError: command did not execute successfully (status code exit code: 1): "C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe" "-nologo" "-MT" "-O2" "-Brepro" "-m64" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/llhttp" "-I" "libgit2/deps/xdiff" "-I" "libgit2/deps/pcre" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libssh2-sys-b6cfde3c9a5fa885\\out\\include" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libz-sys-f9c2a3d6a084c9fe\\out/include" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSTRSAFE_NO_DEPRECATE" "-DWIN32" "-D_WIN32_WINNT=0x0600" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-FoC:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\build\\ce06de217e8a4ca5-ssh_libssh2.o" "-c" "--" "libgit2/src/libgit2/transports\\ssh_libssh2.c"
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
---
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: 0
  exit code: cargo:warning=libgit2/deps/pcre\pcreposix.c(219,5): warning: 'strncpy' is deprecated: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations]
  cargo:warning=  219 |     strncpy(errbuf, message, errbuf_size - 1);
  cargo:warning=      |     ^
  cargo:warning=C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\string.h(334,1): note: 'strncpy' has been explicitly marked deprecated here
  cargo:warning=  334 | __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
  cargo:warning=      | ^
  cargo:warning=C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt.h(1935,17): note: expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX'
  cargo:warning= 1935 |                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
  cargo:warning=      |                 ^
  cargo:warning=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\include\vcruntime.h(368,55): note: expanded from macro '_CRT_INSECURE_DEPRECATE'
  cargo:warning=  368 |         #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
  cargo:warning=      |                                                       ^
  cargo:warning=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.43.34808\include\vcruntime.h(358,47): note: expanded from macro '_CRT_DEPRECATE_TEXT'
  cargo:warning=  358 | #define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
  cargo:warning=      |                                               ^
  cargo:warning=1 warning generated.
  cargo:warning=libgit2/deps/pcre\pcreposix.c(219,5): warning: 'strncpy' is deprecated: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations]
    219 |     strncpy(errbuf, message, errbuf_size - 1);
        |     ^
  C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\string.h(334,1): note: 'strncpy' has been explicitly marked deprecated here
    334 | __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(
        | ^
  C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt.h(1935,17): note: expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX'
---

  --- stderr


  error occurred in cc-rs: command did not execute successfully (status code exit code: 1): "C:/a/rust/rust/citools/clang-rust/bin/clang-cl.exe" "-nologo" "-MT" "-O2" "-Brepro" "-m64" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/llhttp" "-I" "libgit2/deps/xdiff" "-I" "libgit2/deps/pcre" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libssh2-sys-b6cfde3c9a5fa885\\out\\include" "-I" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libz-sys-f9c2a3d6a084c9fe\\out/include" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSTRSAFE_NO_DEPRECATE" "-DWIN32" "-D_WIN32_WINNT=0x0600" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-FoC:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\stage1-tools\\x86_64-pc-windows-msvc\\release\\build\\libgit2-sys-789490130d1cd38d\\out\\build\\ce06de217e8a4ca5-ssh_libssh2.o" "-c" "--" "libgit2/src/libgit2/transports\\ssh_libssh2.c"


Build completed unsuccessfully in 2:19:24
make: *** [Makefile:113: ci-msvc-py] Error 1
  local time: Wed May 14 18:39:54 CUT 2025
  network time: Wed, 14 May 2025 18:39:54 GMT
##[error]Process completed with exit code 2.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version

@bors
Copy link
Collaborator

bors commented May 14, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 14, 2025
@GuillaumeGomez
Copy link
Member Author

Error is:

error in backend: IO failure on output stream: no space on device

So I guess problem is still device space? cc @marcoieni 😉

@marcoieni
Copy link
Member

marcoieni commented May 15, 2025

Yes, looks like the same issue.
We are trying to fix it in #141023
For updates, you can follow the zulip discussion #t-infra > Mysterious full merge failures @ 💬

@marcoieni
Copy link
Member

The CI works again 👍

@GuillaumeGomez
Copy link
Member Author

That was fast, let's try again. =D

@bors retry

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 15, 2025
@bors
Copy link
Collaborator

bors commented May 15, 2025

⌛ Testing commit 1ef7585 with merge d97326e...

@bors
Copy link
Collaborator

bors commented May 15, 2025

☀️ Test successful - checks-actions
Approved by: Amanieu
Pushing d97326e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 15, 2025
@bors bors merged commit d97326e into rust-lang:master May 15, 2025
7 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 15, 2025
Copy link

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing c4e05e5 (parent) -> d97326e (this PR)

Test differences

Show 48 test diffs

48 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard d97326eabfc3b2c33abcb08d6bc117aefa697cb7 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-x86_64-apple: 8656.9s -> 10727.5s (23.9%)
  2. x86_64-apple-1: 7412.5s -> 9100.9s (22.8%)
  3. x86_64-apple-2: 5629.2s -> 4495.9s (-20.1%)
  4. dist-apple-various: 7424.1s -> 8726.9s (17.5%)
  5. dist-arm-linux: 4573.6s -> 5212.5s (14.0%)
  6. dist-x86_64-musl: 7962.1s -> 7228.9s (-9.2%)
  7. dist-aarch64-apple: 5404.2s -> 5829.9s (7.9%)
  8. dist-i686-linux: 6318.1s -> 5898.9s (-6.6%)
  9. aarch64-gnu-debug: 4294.8s -> 4019.9s (-6.4%)
  10. x86_64-gnu-llvm-20-2: 5944.4s -> 6277.3s (5.6%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d97326e): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
0.7% [0.3%, 1.1%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [-0.2%, 1.1%] 4

Max RSS (memory usage)

Results (primary -1.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
2.9% [2.1%, 3.7%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-4.9% [-6.9%, -3.0%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.0% [-6.9%, 3.7%] 4

Cycles

Results (primary 1.1%, secondary 3.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.1% [1.1%, 1.1%] 1
Regressions ❌
(secondary)
3.1% [3.1%, 3.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [1.1%, 1.1%] 1

Binary size

Results (primary 0.0%, secondary 0.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.2%] 17
Regressions ❌
(secondary)
0.4% [0.0%, 0.5%] 4
Improvements ✅
(primary)
-0.2% [-0.6%, -0.0%] 5
Improvements ✅
(secondary)
-0.0% [-0.1%, -0.0%] 34
All ❌✅ (primary) 0.0% [-0.6%, 0.2%] 22

Bootstrap: 773.554s -> 773.215s (-0.04%)
Artifact size: 365.48 MiB -> 365.48 MiB (-0.00%)

@rustbot rustbot added the perf-regression Performance regression. label May 16, 2025
@GuillaumeGomez GuillaumeGomez deleted the optimize-integers-to-string branch May 16, 2025 08:05
github-merge-queue bot pushed a commit to rust-lang/miri that referenced this pull request May 17, 2025
…=Amanieu

Optimize `ToString` implementation for integers

Part of rust-lang/rust#135543.

Follow-up of rust-lang/rust#133247 and rust-lang/rust#128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f17 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](rust-lang/rust#136264 (comment)).

r? `@workingjubilee`
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request May 19, 2025
…=Amanieu

Optimize `ToString` implementation for integers

Part of rust-lang/rust#135543.

Follow-up of rust-lang/rust#133247 and rust-lang/rust#128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f17 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](rust-lang/rust#136264 (comment)).

r? `@workingjubilee`
@Kobzol
Copy link
Contributor

Kobzol commented May 20, 2025

Regression on a single benchmark that is new and doesn't have proper noise bounds yet. Also a nice win on the fmt-write-str runtime benchmark, which should be expected here!

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label May 20, 2025
lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request May 20, 2025
…=Amanieu

Optimize `ToString` implementation for integers

Part of rust-lang/rust#135543.

Follow-up of rust-lang/rust#133247 and rust-lang/rust#128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f17 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](rust-lang/rust#136264 (comment)).

r? `@workingjubilee`
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request May 21, 2025
…string, r=Amanieu

Optimize `ToString` implementation for integers

Part of rust-lang#135543.

Follow-up of rust-lang#133247 and rust-lang#128204.

The benchmark results are:

| name| 1.87.0-nightly (3ea711f 2025-03-09) | With this PR | diff |
|-|-|-|-|
| bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% |
| bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% |
| bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% |
| bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% |
| bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% |
| bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% |
| bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% |
| bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% |

More information about it in [the original comment](rust-lang#136264 (comment)).

r? `@workingjubilee`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.