From: Bennet Bleßmann Date: Sat, 19 Jul 2025 19:44:28 +0000 (+0200) Subject: fix more things X-Git-Tag: v0.10.0~35^2^2~32 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=2b052bf8dd8aa2b00396e9e1244627b3bbfa916d;p=scryer-prolog.git fix more things --- diff --git a/src/lib/process.pl b/src/lib/process.pl index f0a0a819..f20e225a 100644 --- a/src/lib/process.pl +++ b/src/lib/process.pl @@ -6,6 +6,7 @@ process_create(Exe, Args, Options) :- must_be(chars, Exe), + must_be(list(chars), Args), must_be(list, Options), check_option(Sin, find_stdio(Sin, stdin, Options), valid_stdio, [std], Stdin), check_option(Sout, find_stdio(Sout, stdout, Options), valid_stdio, [std], Stdout), @@ -37,9 +38,9 @@ valid_stdio([file, Path]) :- must_be(chars, Path). find_env([env, ME], Options) :- member(env(E), Options), maplist(assign_to_list, E, ME). find_env([environment, ME], Options) :- member(environment(E), Options), maplist(assign_to_list, E, ME). -assign_to_list(N=V, [N,v]). +assign_to_list(N=V, [N,V]). -valid_cwd(Cwd). +valid_cwd(Cwd) :- var(Cwd) -> true ; must_be(chars). valid_env([env, E]) :- valid_env_(E). valid_env([environment, E]) :- valid_env_(E). diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index 63aabd8b..d48ad555 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -8510,7 +8510,7 @@ impl Machine { .map_err(|stub_gen| stub_gen(&mut self.machine_st))?; self.machine_st - .bind(args[2].as_var().unwrap(), stream.into()); + .bind(args[1].as_var().unwrap(), stream.into()); Stdio::from(writer) } @@ -8539,11 +8539,10 @@ impl Machine { self.indices .add_stream(stream, atom!("process_create"), 3) - .map_err(|stub_gen| stub_gen(&mut self.machine_st)) - .unwrap(); + .map_err(|stub_gen| stub_gen(&mut self.machine_st))?; self.machine_st - .bind(args[2].as_var().unwrap(), stream.into()); + .bind(args[1].as_var().unwrap(), stream.into()); Stdio::from(reader) }