Open and answer this issue on GitHub.
ready · opened 2026-11-02 · updated 2026-11-02 · 0 comments
Found by M11 (comptime move). comptime_run.rs’s waited cannot move into Nikaia: std’s process module has only run and exit, with no way to start a child, poll it with a time limit, or read its output as lossy text.
This is an obvious std extension (a missing form of kind 2, decided by the supervisor under the language principles): the same shape as Rust’s Command::spawn, Child::try_wait, Child::kill and String::from_utf8_lossy.
Probe:
use std::process
fn main() {
let child = process::spawn("sleep", ["1"]) // refused: no spawn
match child.try_wait() { null => println("running"), code => println(f"{code}") }
}
To build:
process::spawn(program, args) -> Child! with stdout/stderr piped; Child.try_wait() -> i32?!, Child.wait() -> Output!, Child.kill() -> ()!.Output.stdout_text() / stderr_text() read lossily.tests/compiler/ with .stdout.waited (comptime_run.rs) into comptime_tree.nika.Part of #125