<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/std/src/sys/path/mod.rs, 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-08-16T12:28:31+00:00</updated>
<entry>
<title>library: Migrate from `cfg_if` to `cfg_select`</title>
<updated>2025-08-16T12:28:31+00:00</updated>
<author>
<name>Josh Triplett</name>
<email>josh@joshtriplett.org</email>
</author>
<published>2025-08-10T21:25:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1ae4a0cc3487f28b29f36afe8056535afad21e7b'/>
<id>urn:sha1:1ae4a0cc3487f28b29f36afe8056535afad21e7b</id>
<content type='text'>
Migrate the standard library from using the external `cfg_if` crate to
using the now-built-in `cfg_select` macro.

This does not yet eliminate the dependency from
`library/std/Cargo.toml`, because while the standard library itself no
longer uses `cfg_if`, it also incorporates the `backtrace` crate, which
does.

Migration assisted by the following vim command (after selecting the
full `cfg_if!` invocation):

```
'&lt;,'&gt;s/\(cfg_if::\)\?cfg_if/cfg_select/ | '&lt;,'&gt;s/^\( *\)} else {/\1}\r\1_ =&gt; {/c | '&lt;,'&gt;s/^\( *\)} else if #\[cfg(\(.*\))\] /\1}\r\1\2 =&gt; /e | '&lt;,'&gt;s/if #\[cfg(\(.*\))\] {/\1 =&gt; {/e
```

This is imperfect, but substantially accelerated the process. This
prompts for confirmation on the `} else {` since that can also appear
inside one of the arms. This also requires manual intervention to handle
any multi-line conditions.
</content>
</entry>
<entry>
<title>Handle win32 separator &amp; prefixes for cygwin paths</title>
<updated>2025-06-16T01:24:07+00:00</updated>
<author>
<name>王宇逸</name>
<email>Strawberry_Str@hotmail.com</email>
</author>
<published>2025-06-01T15:12:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3cb0cba054d9d1871f3a10345d5c30cfc7ac214c'/>
<id>urn:sha1:3cb0cba054d9d1871f3a10345d5c30cfc7ac214c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>uefi: Implement path</title>
<updated>2025-01-16T04:49:22+00:00</updated>
<author>
<name>Ayush Singh</name>
<email>ayush@beagleboard.org</email>
</author>
<published>2025-01-14T06:10:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c1790b14bcd62df7bccdfa7d7fbe4533dfdcdc8c'/>
<id>urn:sha1:c1790b14bcd62df7bccdfa7d7fbe4533dfdcdc8c</id>
<content type='text'>
UEFI paths can be of 4 types:
1. Absolute Shell Path: Uses shell mappings
2. Absolute Device Path: this is what we want
3: Relative root: path relative to the current root.
4: Relative

Absolute shell path can be identified with `:` and Absolute Device path
can be identified with `/`. Relative root path will start with `\`.

The algorithm is mostly taken from edk2 UEFI shell implementation and is
somewhat simple. Check for the path type in order.

For Absolute Shell path, use `EFI_SHELL-&gt;GetDevicePathFromMap` to
get a BorrowedDevicePath for the volume.

For Relative paths, we use the current working directory to construct
the new path.

BorrowedDevicePath abstraction is needed to interact with
`EFI_SHELL-&gt;GetDevicePathFromMap` which returns a Device Path Protocol
with the lifetime of UEFI shell.

Absolute Shell paths cannot exist if UEFI shell is missing.

Signed-off-by: Ayush Singh &lt;ayush@beagleboard.org&gt;
</content>
</entry>
<entry>
<title>std: move path into `sys`</title>
<updated>2024-02-08T11:51:35+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2024-02-08T11:41:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c0d9776562359268ccc385b55fe55db640578fe1'/>
<id>urn:sha1:c0d9776562359268ccc385b55fe55db640578fe1</id>
<content type='text'>
</content>
</entry>
</feed>
