<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/std/src/sys/pal/wasm/mod.rs, branch stable</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=stable</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=stable'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-04-19T02:17:08+00:00</updated>
<entry>
<title>Combine env consts into std::sys::env_consts</title>
<updated>2025-04-19T02:17:08+00:00</updated>
<author>
<name>Thalia Archibald</name>
<email>thalia@archibald.dev</email>
</author>
<published>2025-04-15T12:48:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=37712cc01604633fec6aac9bc720210207fa4b54'/>
<id>urn:sha1:37712cc01604633fec6aac9bc720210207fa4b54</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move args into std::sys</title>
<updated>2025-04-12T10:10:21+00:00</updated>
<author>
<name>Thalia Archibald</name>
<email>thalia@archibald.dev</email>
</author>
<published>2025-04-12T09:26:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6ffebb65d6daf4fcc82cfc7fd14397bff98df1f2'/>
<id>urn:sha1:6ffebb65d6daf4fcc82cfc7fd14397bff98df1f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: move process implementations to `sys`</title>
<updated>2025-03-22T11:42:34+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-02-12T15:26:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=89f85cbfa7e508e55f2f05c00356b6d430c55c4e'/>
<id>urn:sha1:89f85cbfa7e508e55f2f05c00356b6d430c55c4e</id>
<content type='text'>
As per #117276, this moves the implementations of `Process` and friends out of the `pal` module and into the `sys` module, removing quite a lot of error-prone `#[path]` imports in the process (hah, get it ;-)). I've also made the `zircon` module a dedicated submodule of `pal::unix`, hopefully we can move some other definitions there as well (they are currently quite a lot of duplications in `sys`). Also, the `ensure_no_nuls` function on Windows now lives in `sys::pal::windows` – it's not specific to processes and shared by the argument implementation.
</content>
</entry>
<entry>
<title>std: move stdio to `sys`</title>
<updated>2025-03-09T22:42:13+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-02-09T17:42:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c52e0596c5ef1d68bf0f283342fdb05db63248f9'/>
<id>urn:sha1:c52e0596c5ef1d68bf0f283342fdb05db63248f9</id>
<content type='text'>
As per #117276, this moves the platform definitions of `Stdout` and friends into `sys`. This PR also unifies the UNIX and Hermit implementations and moves the `__rust_print_err` function needed by libunwind on SGX into the dedicated module for such helper functions.
</content>
</entry>
<entry>
<title>Move fs into sys</title>
<updated>2025-03-09T00:22:37+00:00</updated>
<author>
<name>Thalia Archibald</name>
<email>thalia@archibald.dev</email>
</author>
<published>2025-02-26T01:45:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=685619e4c93e3b30da36b013ab62c4cf8931b432'/>
<id>urn:sha1:685619e4c93e3b30da36b013ab62c4cf8931b432</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: move `io` module out of `pal`</title>
<updated>2025-02-07T15:54:07+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-01-18T18:10:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a9df224ac7d935b83b8e5707fdeb92907b172f19'/>
<id>urn:sha1:a9df224ac7d935b83b8e5707fdeb92907b172f19</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: move network code into `sys`</title>
<updated>2025-02-02T18:12:06+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2025-02-02T17:53:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4f834264ab8d0cb95ac7972532661c84a154667e'/>
<id>urn:sha1:4f834264ab8d0cb95ac7972532661c84a154667e</id>
<content type='text'>
As per #117276, this PR moves `sys_common::net` and the `sys::pal::net` into the newly created `sys::net` module. In order to support #135141, I've moved all the current network code into a separate `connection` module, future functions like `hostname` can live in separate modules.

I'll probably do a follow-up PR and clean up some of the actual code, this is mostly just a reorganization.
</content>
</entry>
<entry>
<title>Update a bunch of comments from before wasi support was added</title>
<updated>2025-01-24T09:25:34+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-01-23T19:07:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a20996c180107a676306c3623add30811f9b40a7'/>
<id>urn:sha1:a20996c180107a676306c3623add30811f9b40a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: move allocators to `sys`</title>
<updated>2024-08-27T09:58:19+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2024-07-23T14:10:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d456814842e65a153a1de67960b892897a02ed14'/>
<id>urn:sha1:d456814842e65a153a1de67960b892897a02ed14</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: refactor the TLS implementation</title>
<updated>2024-06-15T15:47:35+00:00</updated>
<author>
<name>joboet</name>
<email>jonasboettiger@icloud.com</email>
</author>
<published>2024-06-15T15:47:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f3facf11758af878bcfaf47fc773962dbb565024'/>
<id>urn:sha1:f3facf11758af878bcfaf47fc773962dbb565024</id>
<content type='text'>
As discovered by Mara in #110897, our TLS implementation is a total mess. In the past months, I have simplified the actual macros and their expansions, but the majority of the complexity comes from the platform-specific support code needed to create keys and register destructors. In keeping with #117276, I have therefore moved all of the `thread_local_key`/`thread_local_dtor` modules to the `thread_local` module in `sys` and merged them into a new structure, so that future porters of `std` can simply mix-and-match the existing code instead of having to copy the same (bad) implementation everywhere. The new structure should become obvious when looking at `sys/thread_local/mod.rs`.

Unfortunately, the documentation changes associated with the refactoring have made this PR rather large. That said, this contains no functional changes except for two small ones:
* the key-based destructor fallback now, by virtue of sharing the implementation used by macOS and others, stores its list in a `#[thread_local]` static instead of in the key, eliminating one indirection layer and drastically simplifying its code.
* I've switched over ZKVM (tier 3) to use the same implementation as WebAssembly, as the implementation was just a way worse version of that

Please let me know if I can make this easier to review! I know these large PRs aren't optimal, but I couldn't think of any good intermediate steps.

@rustbot label +A-thread-locals
</content>
</entry>
</feed>
