about summary refs log tree commit diff
path: root/library/std/src/sys
AgeCommit message (Collapse)AuthorLines
2023-08-23Rollup merge of #114696 - g0djan:godjan/fix_114610, r=Mark-SimulacrumGuillaume Gomez-0/+8
Fix a pthread_t handle leak #114610 https://github.com/rust-lang/rust/issues/114610 Ran the tests as described in https://github.com/rust-lang/rust/blob/master/src/doc/rustc/src/platform-support/wasm32-wasi-preview1-threads.md?plain=1#L125
2023-08-23kmc-solid: Import `std::sync::PoisonError` in `std::sys::solid::os`Tomoaki Kawada-1/+1
2023-08-22std: unix process_unsupported: Provide a wait status emulation (tidy)Ian Jackson-36/+39
Move tests into a module as demanded by tidy.
2023-08-22fixup! std: unix process: Test exit statuses / wait statusesIan Jackson-1/+1
2023-08-22std: unix process_unsupported: Provide a wait status emulation (fmt)Ian Jackson-15/+3
Worsify formatting as required by rustfmt.
2023-08-22fixup! std: unix process_unsupported: Provide a wait status emulationIan Jackson-1/+1
2023-08-22std: unix process: Test exit statuses / wait statusesIan Jackson-0/+33
This is a pretty basic test but should spot any other platforms which are `#[cfg(unix)]` but not Unix and where the wait status representation is wrong. (And any actual Unix platforms where it's not as expected, but I don't think they exist.)
2023-08-22std: unix process_unsupported: Provide a wait status emulationIan Jackson-50/+120
Fixes #114593 Needs FCP due to behavioural changes.
2023-08-22std: xous: add support for locksSean Cross-1/+306
Add support for Condvar, Mutex, and RWLock. These are all backed by the ticktimer server. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: add thread_local_keySean Cross-1/+190
Add an implementation of thread local storage. This uses a container that is pointed to by the otherwise-unsed `$tp` register. This container is allocated on-demand, so threads that use no TLS will not allocate this extra memory. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: add thread supportSean Cross-1/+144
Add initial support for threads on Xous. This includes thread creation and joining. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: add support for timeSean Cross-1/+57
Add support for determining the current time. This connects to the ticktimer server in order to get the system uptime. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: add output support for stdioSean Cross-1/+131
Add support for stdout. This enables basic console printing via `println!()`. Output is written to the log server. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: add alloc supportSean Cross-1/+62
Basic alloc support on Xous is supported by the `dlmalloc` crate. This necessitates bumping the dlmalloc version to 0.2.4. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22std: xous: the basics of `os`Sean Cross-1/+147
Add the basics to get the operating system running, including how to exit the operating system. Since Xous has no libc, there is no default entrypoint. Add a `_start` entrypoint to the system-specific os module. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22libstd: add xous to libstdSean Cross-0/+47
Add the `xous` target to libstd. Currently this defers everything to the `unsupported` target. Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-20Rollup merge of #114968 - ShE3py:unix-getsetenv-ub, r=thomccMatthias Krüger-27/+47
Fix UB in `std::sys::os::getenv()` Fixes #114949. Reduced the loops to 1k iterations (100k was taking way too long), Miri no longer shows any UB. `@rustbot` label +A-process +C-bug +I-unsound +O-unix
2023-08-19Usage zero as language id for FormatMessageW()Charles Lew-6/+2
2023-08-18Fix UB in `std::sys::os::getenv()`ShE3py-27/+47
2023-08-18QNX: pass a truncated thread name to the OSJorge Aparicio-0/+4
The maximum length the thread name can have is `_NTO_THREAD_NAME_MAX`
2023-08-16address commentsGeorgii Rylov-11/+7
2023-08-16Fix a pthread_t handle leak #114610Georgii Rylov-0/+12
2023-08-15Rollup merge of #114619 - g0djan:godjan/fix_#114608, r=m-ou-seMatthias Krüger-3/+3
Fix pthread_attr_union layout on Wasi Fixes https://github.com/rust-lang/rust/issues/114608 Ran the tests as described in https://github.com/rust-lang/rust/blob/master/src/doc/rustc/src/platform-support/wasm32-wasi-preview1-threads.md?plain=1#L125
2023-08-15Rollup merge of #114800 - RalfJung:transparent, r=cuviperGuillaume Gomez-2/+8
std: add some missing repr(transparent) For some types we don't want to stably guarantee this, so hide the `repr` from rustdoc. This nice approach was suggested by `@thomcc.`
2023-08-14add a csky-unknown-linux-gnuabiv2 targetDirreke-0/+4
2023-08-14std: add some missing repr(transparent)Ralf Jung-2/+8
2023-08-12Rollup merge of #114132 - tamird:better-env-debug-impls, r=AmanieuMatthias Krüger-8/+228
Better Debug for Vars and VarsOs Display actual vars instead of two dots. The same was done for Args and ArgsOs in 275f9a04af6191e3aee3852a5a1713.
2023-08-10Rollup merge of #114194 - thomcc:flushinline, r=cuviperMichael Goulet-0/+4
Inline trivial (noop) flush calls At work I noticed that `writer.flush()?` didn't get optimized away in cases where the flush is obviously a no-op, which I had expected (well, desired). I went through and added `#[inline]` to a bunch of cases that were obviously noops, or delegated to ones that were obviously noops. I omitted platforms I don't have access to (some tier3). I didn't do this very scientifically, in cases where it was non-obvious I left `#[inline]` off.
2023-08-09Auto merge of #114646 - matthiaskrgr:rollup-xf7qnmn, r=matthiaskrgrbors-90/+156
Rollup of 6 pull requests Successful merges: - #113939 (open pidfd in child process and send to the parent via SOCK_SEQPACKET+CMSG) - #114548 (Migrate a trait selection error to use diagnostic translation) - #114606 (fix: not insert missing lifetime for `ConstParamTy`) - #114634 (Mention riscv64-linux-android support in Android documentation) - #114638 (Remove old RPITIT tests (revisions were removed)) - #114641 (Rename copying `ascii::Char` methods from `as_` to `to_`) r? `@ghost` `@rustbot` modify labels: rollup
2023-08-09Rollup merge of #113939 - the8472:pidfd-from-child, r=Mark-SimulacrumMatthias Krüger-90/+156
open pidfd in child process and send to the parent via SOCK_SEQPACKET+CMSG This avoids using `clone3` when a pidfd is requested while still getting it in a 100% race-free manner by passing it up from the child process. This should solve most concerns in #82971
2023-08-09Auto merge of #99747 - ankane:float_gamma, r=workingjubileebors-1/+9
Add gamma function to f32 and f64 Adds the [gamma function](https://en.wikipedia.org/wiki/Gamma_function) to `f32` and `f64` (`tgamma` and `tgammaf` from C). Refs: - https://github.com/rust-lang/rfcs/issues/864 - https://github.com/rust-lang/rust/issues/18271
2023-08-08open pidfd in child process and send to the parent via SOCK_SEQPACKET+CMSGThe 8472-90/+156
This is a 100% race-free way to obtain a child's pidfd while avoiding `clone3`.
2023-08-08Rollup merge of #106425 - ijackson:exit-status-default, r=dtolnayMatthias Krüger-23/+24
Make ExitStatus implement Default And, necessarily, make it inhabited even on platforms without processes. I noticed while preparing https://github.com/rust-lang/rfcs/pull/3362 that there was no way for anyone to construct an `ExitStatus`. This would be insta-stable so needs an FCP.
2023-08-08Fix #114608Georgii Rylov-3/+3
2023-08-07Better Debug for Vars and VarsOsTamir Duberstein-8/+228
Display actual vars instead of two dots. The same was done for Args and ArgsOs in 275f9a04af6191e3aee3852a5a1713.
2023-08-07impl Default for ExitStatusIan Jackson-6/+6
2023-08-07std::process (windows): Implement From<io::Stdout> etc. for imp::StdioIan Jackson-0/+14
This involves a new variant `imp;::Stdio::InheritSpecific`. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-08-07std::process (windows): refactor Stdio::to_handle slightlyIan Jackson-10/+11
We're going to want to reuse this bit of code.
2023-08-07std::process (unix): Implement From<io::Stdout> etc. for imp::StdioIan Jackson-1/+29
This involves adding a new variant `imp::Stdio::StaticFd`. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2023-08-05use offset_of! to calculate dirent64 field offsetsThe 8472-25/+2
2023-08-03unix/kernel_copy.rs: copy_file_range_candidate allows empty output filesxstaticxgpx-4/+14
This is for https://github.com/rust-lang/rust/issues/114341 The `meta.len() > 0` condition here is intended for inputs only, ie. when input is in the `/proc` filesystem as documented. That inaccurately included empty output files which are then shunted to the sendfile() routine leading to higher than nescessary IO util in some cases, specifically with CoW filesystems like btrfs. Further, `NoneObtained` is not relevant in this context, so remove it. Simply, determine what is input or output given the passed enum Unit.
2023-08-01Aborting when `before_wait` function panicsRaoul Strackx-6/+10
2023-07-31Add gamma and ln_gamma functions to f32 and f64Andrew Kane-1/+9
2023-07-31Clean up SGX user memory copiesJethro Beekman-122/+85
2023-07-31`waitqueue` clarifications for SGX platformRaoul Strackx-4/+12
2023-07-30rand use getrandom for freebsd (available since 12.x)David Carlier-9/+7
2023-07-29Add wasm32-wasi-threads target + WASI threadsGeorgii Rylov-11/+140
2023-07-28inline trivial (noop) flush callsThom Chiovoloni-0/+4
2023-07-26Rollup merge of #101994 - devnexen:rand_fbsd_update, r=workingjubileeMatthias Krüger-4/+18
rand: freebsd update, using getrandom. supported since the 12th release, while 11.4 is EOL since 2021.
2023-07-25Auto merge of #112646 - vn971:document-thread-names-for-sgx-target, r=m-ou-sebors-1/+9
Document thread names for SGX compilation target `@raoulstrackx` `@Mkaynov` `@jethrogb`