<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/tools/tidy, branch perf-tmp</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-28T08:46:20+00:00</updated>
<entry>
<title>modify ensure_version_or_cargo_install to check existing binary</title>
<updated>2025-09-28T08:46:20+00:00</updated>
<author>
<name>Shunpoco</name>
<email>tkngsnsk313320@gmail.com</email>
</author>
<published>2025-09-28T08:46:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5e9cab39213b892fdb5eb24d2d27f1ab0918ce46'/>
<id>urn:sha1:5e9cab39213b892fdb5eb24d2d27f1ab0918ce46</id>
<content type='text'>
Current implementation uses bin_name to check if it exists,
but it should use tool_root_dir/tool_bin_dir/bin_name instead.
Otherwise the check fails every time, hence the function falls back to
install the binary.
</content>
</entry>
<entry>
<title>Rollup merge of #145973 - vexide:vex-std, r=tgross35</title>
<updated>2025-09-25T10:31:53+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-25T10:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0a34928ad840f9d66d673a8cb6cf293e83efb987'/>
<id>urn:sha1:0a34928ad840f9d66d673a8cb6cf293e83efb987</id>
<content type='text'>
Add `std` support for `armv7a-vex-v5`

This PR adds standard library support for the VEX V5 Brain (`armv7a-vex-v5` target). It is more-or-less an updated version of the library-side work done in rust-lang/rust#131530.

This was a joint effort between me, `@lewisfm,` `@max-niederman,` `@Gavin-Niederman` and several other members of the [`vexide` project](https://github.com/vexide/).

## Background

VEXos is a fairly unconventional operating system, with user code running in a restricted enviornment with regards to I/O capabilities and whatnot. As such, several OS-dependent APIs are unsupported or have partial support (such as `std::net`, `std::process`, and most of `std::thread`). A more comprehensive list of what does or doesn't work is outlined in the [updated target documentation](https://github.com/vexide/rust/blob/vex-std/src/doc/rustc/src/platform-support/armv7a-vex-v5.md). Despite these limitations, we believe that `libstd` support on this target still has value to users, especially given the popular use of this hardware for educational purposes. For some previous discussion on this matter, see [this comment](https://github.com/rust-lang/rust/pull/131530#issuecomment-2432856841).

## SDK Linkage

VEXos doesn't really ship with an official `libc` or POSIX-style platform API (and though it does port newlib, these are stubbed on top of the underlying SDK). Instead, VEX provides their own SDK for calling platform APIs. Their official SDK is kept proprietary (with public headers), though open-source implementations exist. Following the precedent of the `armv6k-nintendo-3ds` team's work in rust-lang/rust#95897, we've opted not to directly link `libstd` to any SDK with the expectation that users will provide their own with one of the following options:
-  [`vex-sdk-download`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-download), which downloads an official proprietary SDK from VEX using a build script.
- [`vex-sdk-jumptable`](https://crates.io/crates/vex-sdk-jumptable), which is a compatible, open-source reimplementation of the SDK using firmware jumps.
- [`vex-sdk-pros`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-pros), which uses the [PROS kernel](https://github.com/purduesigbots/pros) as a provider for SDK functions.
- Linking their own implementation or stubbing the functions required by libstd.

 The `vex-sdk` crate used in the VEXos PAL provides `libc`-style FFI bindings for any compatible system library, so any of these options *should* work fine. A functional demo project using `vex-sdk-download` can be found [here](https://github.com/vexide/armv7a-vex-v5-demo/tree/main).

## Future Work

This PR implements virtually everything we are currently able to implement given the current capabilities of the platform. The exception to this is file directory enumeration, though the implementation of that is sufficiently [gross enough](https://github.com/vexide/vexide/blob/c6c5bad11e035cf4e51d429dca7e427210185ed4/packages/vexide-core/src/fs/mod.rs#L987) to drive us away from supporting this officially.

Additionally, I have a working branch implementing the `panic_unwind` runtime for this target, which is something that would be nice to see in the future, though given the volume of compiler changes i've deemed it out-of-scope for this PR.
</content>
</entry>
<entry>
<title>std: add support for armv7a-vex-v5 target</title>
<updated>2025-09-24T17:10:15+00:00</updated>
<author>
<name>Tropical</name>
<email>42101043+Tropix126@users.noreply.github.com</email>
</author>
<published>2025-09-24T17:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b2634e31c435aeff149c5660f9329a0578ad1e72'/>
<id>urn:sha1:b2634e31c435aeff149c5660f9329a0578ad1e72</id>
<content type='text'>
Co-authored-by: Lewis McClelland &lt;lewis@lewismcclelland.me&gt;
</content>
</entry>
<entry>
<title>Rollup merge of #146784 - dpaoliello:findmsvc, r=wesleywiser</title>
<updated>2025-09-23T16:13:53+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-09-23T16:13:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8f11c4dadb9e240815ca25e613b17656ab665eda'/>
<id>urn:sha1:8f11c4dadb9e240815ca25e613b17656ab665eda</id>
<content type='text'>
[win] Use find-msvc-tools instead of cc to find the linker and rc on Windows

`find-msvc-tools` was factored out from `cc` to allow updating the use in `rustc_codegen_ssa` (finding the linker when running the Rust compiler) and `rustc_windows_rc` (finding the Windows Resource Compiler when running the Rust compiler) to be separate from the use in `rustc_llvm` (building LLVM as part of building the Rust compiler).
</content>
</entry>
<entry>
<title>Fix modification check of `rustdoc-json-types`</title>
<updated>2025-09-22T12:14:48+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2025-09-22T12:14:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=870a98c7b3bec5e0ec3432a4900d2bb6f0e1cc89'/>
<id>urn:sha1:870a98c7b3bec5e0ec3432a4900d2bb6f0e1cc89</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement output of colored messages with optional check context</title>
<updated>2025-09-21T13:15:31+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2025-09-15T13:24:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4c208f5c64c3a86e52f5ebff2792ed1e3d8ca5b8'/>
<id>urn:sha1:4c208f5c64c3a86e52f5ebff2792ed1e3d8ca5b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Migrate the remaining tidy checks to diagnostics</title>
<updated>2025-09-21T13:15:31+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2025-09-15T11:26:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=352fa3960a00046ff81bd2e0528c51371e5c6c1d'/>
<id>urn:sha1:352fa3960a00046ff81bd2e0528c51371e5c6c1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add `CheckId`, migrate the `alphabetical` check to diagnostics</title>
<updated>2025-09-21T13:13:01+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2025-09-15T11:24:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c36faff900bc03c5c4ee5772dcac4f3630fa2dff'/>
<id>urn:sha1:c36faff900bc03c5c4ee5772dcac4f3630fa2dff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add diagnostics context and migrate the `style` check to it</title>
<updated>2025-09-21T13:13:01+00:00</updated>
<author>
<name>Jakub Beránek</name>
<email>berykubik@gmail.com</email>
</author>
<published>2025-09-15T11:16:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b0010dd5aeb3b9837fdf92c121ebfdd1a07bce6f'/>
<id>urn:sha1:b0010dd5aeb3b9837fdf92c121ebfdd1a07bce6f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[win] Use find-msvc-tools instead of cc to find the linker and rc on Windows</title>
<updated>2025-09-19T19:00:30+00:00</updated>
<author>
<name>Daniel Paoliello</name>
<email>danpao@microsoft.com</email>
</author>
<published>2025-09-19T16:16:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4da59355fd88ba7d92b571c8b3a59c270e1aa7da'/>
<id>urn:sha1:4da59355fd88ba7d92b571c8b3a59c270e1aa7da</id>
<content type='text'>
</content>
</entry>
</feed>
