<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/std/src/sys/pal/unix, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-29T01:32:14+00:00</updated>
<entry>
<title>Auto merge of #147090 - Noratrieb:immediate-abort-stack-overflow, r=joboet</title>
<updated>2025-09-29T01:32:14+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-29T01:32:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=772f380092b30680313b70a622cafc17f03e6bff'/>
<id>urn:sha1:772f380092b30680313b70a622cafc17f03e6bff</id>
<content type='text'>
Skip stack overflow handler for panic=immediate-abort

std installs guard pages and a signal handler to ensure that stackoverflows 1) terminate abruptly and 2) print an nice message. Even for panic=immediate-abort, 1) is desirable, we don't want silent data corruption there. But 2) is completely unnecessary, as users deliberately *don't* want nice messages, they want minimum binary size.

Therefore, skip the entire guard signal handler setup, which saves a lot of bytes.

I tested this with a hello world binary using fat LTO, build-std, panic=immediate-abort, opt-level=s, strip=debuginfo.

`size` reports significant savings:

```
   text	   data	    bss	    dec	    hex	filename
  15252	   1032	    104	  16388	   4004	tiny-before
   6881	    964	     48	   7893	   1ed5	tiny-after2
```

`nm -U` goes from 71 to 56, getting rid of a bunch of stack overflow related symbols. The disk size goes from `31k` to `24k`.

The impact on the error message is minimal, as the message was already
missing.

before:
```
fish: Job 1, './tiny-so-before' terminated by signal SIGABRT (Abort)
```

after:
```
fish: Job 1, './tiny-so-after' terminated by signal SIGSEGV (Address boundary error)
```

I didn't test the Windows part, but it likely also has savings.
</content>
</entry>
<entry>
<title>redox: switch to colon as path separator</title>
<updated>2025-09-27T14:25:47+00:00</updated>
<author>
<name>Jeremy Soller</name>
<email>jackpot51@gmail.com</email>
</author>
<published>2025-09-27T14:25:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=760ed37769c4902c97c874d324978472ce02f9ba'/>
<id>urn:sha1:760ed37769c4902c97c874d324978472ce02f9ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Skip stack overflow handler for panic=immediate-abort</title>
<updated>2025-09-27T12:16:06+00:00</updated>
<author>
<name>Noratrieb</name>
<email>48135649+Noratrieb@users.noreply.github.com</email>
</author>
<published>2025-09-27T11:37:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=660a3486fc6da2c3599a167d73d849178f98bc17'/>
<id>urn:sha1:660a3486fc6da2c3599a167d73d849178f98bc17</id>
<content type='text'>
std installs guard pages and a signal handler to ensure that stackoverflows 1) terminate abruptly and 2) print an nice message. Even for panic=immediate-abort, 1) is desirable, we don't want silent data corruption there. But 2) is completely unnecessary, as users deliberately *don't* want nice messages, they want minimum binary size.

Therefore, skip the entire guard signal handler setup, which saves a lot of bytes.

I tested this with a hello world binary using fat LTO, build-std, panic=immediate-abort, opt-level=s, strip=debuginfo.

`size` reports significant savings:

```
   text	   data	    bss	    dec	    hex	filename
  15252	   1032	    104	  16388	   4004	tiny-before
   6881	    964	     48	   7893	   1ed5	tiny-after2
```

`nm -U` goes from 71 to 56, getting rid of a bunch of stack overflow related symbols. The disk size goes from `31k` to `24k`.

The impact on the error message is minimal, as the message was already
missing.

before:
```
fish: Job 1, './tiny-so-before' terminated by signal SIGABRT (Abort)
```

after:
```
fish: Job 1, './tiny-so-after' terminated by signal SIGSEGV (Address boundary error)
```
</content>
</entry>
<entry>
<title>resolve: Do not finalize shadowed bindings</title>
<updated>2025-09-25T17:36:14+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2025-08-01T18:55:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f89660e4aa018401ca993f0df190e5f4c4a6799b'/>
<id>urn:sha1:f89660e4aa018401ca993f0df190e5f4c4a6799b</id>
<content type='text'>
I.e. do not mark them as used, or non-speculative loaded, or similar.
Previously they were sometimes finalized during early resolution, causing issues like https://github.com/rust-lang/rust/pull/144793#issuecomment-3168108005.
</content>
</entry>
<entry>
<title>Repro duration_since regression from issue 146228</title>
<updated>2025-09-24T20:07:26+00:00</updated>
<author>
<name>Stepan Koltsov</name>
<email>stepan.koltsov@gmail.com</email>
</author>
<published>2025-09-24T19:32:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=92859e98ee1a2101df8322a8581e4d638eb15078'/>
<id>urn:sha1:92859e98ee1a2101df8322a8581e4d638eb15078</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert "Constify SystemTime methods"</title>
<updated>2025-09-12T15:16:38+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2025-09-12T15:16:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5d8e41b656fa2802c8ab52d4c72ad67e8ff345c2'/>
<id>urn:sha1:5d8e41b656fa2802c8ab52d4c72ad67e8ff345c2</id>
<content type='text'>
This reverts commit 7ce620dd7c6fc3371290b40a1ea28146f0d37031.
The const-hacks introduces bugs, and they make the code harder to maintain.
Let's wait until we can constify these functions without changing their implementation.
</content>
</entry>
<entry>
<title>Auto merge of #146019 - joboet:better-dlsym, r=tgross35</title>
<updated>2025-09-12T08:18:41+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-12T08:18:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ac4495a10db552483c0c0a0049962850ca4123c2'/>
<id>urn:sha1:ac4495a10db552483c0c0a0049962850ca4123c2</id>
<content type='text'>
std: optimize `dlsym!` macro and add a test for it

The `dlsym!` macro always ensures that the name string is nul-terminated, so there is no need to perform the check at runtime. Also, acquire loads are generally faster than a load and a barrier, so use them. This is only false in the case where the symbol is missing, but that shouldn't matter too much.
</content>
</entry>
<entry>
<title>std: only test `dlsym!` on platforms where it is actually used</title>
<updated>2025-09-10T13:34:38+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-09-09T11:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4c992199598b4fddc25d52f40fa3642c9e065e60'/>
<id>urn:sha1:4c992199598b4fddc25d52f40fa3642c9e065e60</id>
<content type='text'>
`dlsym` doesn't work for finding libc symbols on platforms like linux-musl, so the test will fail.
</content>
</entry>
<entry>
<title>std: move `thread` into `sys`</title>
<updated>2025-09-10T13:26:17+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-08-09T17:07:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ad08577a503dfd03e308bd272e76d95e31c6d0ef'/>
<id>urn:sha1:ad08577a503dfd03e308bd272e76d95e31c6d0ef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: move `thread` into `sys` (rename only)</title>
<updated>2025-09-08T15:02:25+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-08-29T16:01:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4b15dd5a84742f9e7641b62e490765e0c1cb415c'/>
<id>urn:sha1:4b15dd5a84742f9e7641b62e490765e0c1cb415c</id>
<content type='text'>
</content>
</entry>
</feed>
