From 13439dc87054bdcbdbe118f375e5addf5dcd78c8 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 11 Aug 2011 22:31:45 -0700 Subject: [PATCH] Convert std::run to ivecs --- src/comp/driver/rustc.rs | 6 +++--- src/fuzzer/fuzzer.rs | 6 +++--- src/lib/run_program.rs | 20 +++++++++++--------- src/test/compiletest/procsrv.rs | 2 +- src/test/stdtest/run.rs | 8 ++++---- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index 05fda86a0f1a..1dc83ca74cda 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -623,7 +623,7 @@ fn main(args: vec[str]) { } // We run 'gcc' here - let err_code = run::run_program(prog, ivec::to_vec(gcc_args)); + let err_code = run::run_program(prog, gcc_args); if 0 != err_code { sess.err(#fmt("linking with gcc failed with code %d", err_code)); sess.note(#fmt("gcc arguments: %s", @@ -633,13 +633,13 @@ fn main(args: vec[str]) { // Clean up on Darwin if sess.get_targ_cfg().os == session::os_macos { - run::run_program("dsymutil", [saved_out_filename]); + run::run_program("dsymutil", ~[saved_out_filename]); } // Remove the temporary object file if we aren't saving temps if !sopts.save_temps { - run::run_program("rm", [saved_out_filename + ".o"]); + run::run_program("rm", ~[saved_out_filename + ".o"]); } } diff --git a/src/fuzzer/fuzzer.rs b/src/fuzzer/fuzzer.rs index 95a831e8c5f2..bee16f478101 100644 --- a/src/fuzzer/fuzzer.rs +++ b/src/fuzzer/fuzzer.rs @@ -26,7 +26,7 @@ fn write_file(filename: &str, content: &str) { ~[io::create, io::truncate]).write_str(content); // Work around https://github.com/graydon/rust/issues/726 - std::run::run_program("chmod", ["644", filename]); + std::run::run_program("chmod", ~["644", filename]); } fn file_contains(filename: &str, needle: &str) -> bool { @@ -177,7 +177,7 @@ fn check_variants_of_ast(crate: &ast::crate, codemap: &codemap::codemap, filenam fn check_whole_compiler(code: &str) { let filename = "test.rs"; write_file(filename, code); - let p = std::run::program_output("/Users/jruderman/code/rust/build/stage1/rustc", ["-c", filename]); + let p = std::run::program_output("/Users/jruderman/code/rust/build/stage1/rustc", ~["-c", filename]); //log_err #fmt("Status: %d", p.status); //log_err "Output: " + p.out; if p.err != "" { @@ -311,7 +311,7 @@ fn check_roundtrip_convergence(code: &str, maxIters: uint) { log_err #fmt("Did not converge after %u iterations!", i); write_file("round-trip-a.rs", old); write_file("round-trip-b.rs", new); - std::run::run_program("diff", ["-w", "-u", "round-trip-a.rs", "round-trip-b.rs"]); + std::run::run_program("diff", ~["-w", "-u", "round-trip-a.rs", "round-trip-b.rs"]); fail "Mismatch"; } } diff --git a/src/lib/run_program.rs b/src/lib/run_program.rs index 7db81f96d5b7..fa79a6330f53 100644 --- a/src/lib/run_program.rs +++ b/src/lib/run_program.rs @@ -13,23 +13,25 @@ native "rust" mod rustrt { int; } -fn arg_vec(prog: str, args: vec[str]) -> vec[sbuf] { - let argptrs = [str::buf(prog)]; - for arg: str in args { vec::push[sbuf](argptrs, str::buf(arg)); } - vec::push[sbuf](argptrs, 0 as sbuf); +fn arg_vec(prog: str, args: &[str]) -> [sbuf] { + let argptrs = ~[str::buf(prog)]; + for arg: str in args { argptrs += ~[str::buf(arg)]; } + argptrs += ~[0 as sbuf]; ret argptrs; } -fn spawn_process(prog: str, args: vec[str], in_fd: int, out_fd: int, +fn spawn_process(prog: str, args: &[str], in_fd: int, out_fd: int, err_fd: int) -> int { // Note: we have to hold on to this vector reference while we hold a // pointer to its buffer let argv = arg_vec(prog, args); - let pid = rustrt::rust_run_program(vec::buf(argv), in_fd, out_fd, err_fd); + let argvv = ivec::to_vec(argv); + let pid = rustrt::rust_run_program( + vec::buf(argvv), in_fd, out_fd, err_fd); ret pid; } -fn run_program(prog: str, args: vec[str]) -> int { +fn run_program(prog: str, args: &[str]) -> int { ret os::waitpid(spawn_process(prog, args, 0, 0, 0)); } @@ -48,7 +50,7 @@ resource program_res(p: program) { p.destroy(); } -fn start_program(prog: str, args: vec[str]) -> @program_res { +fn start_program(prog: str, args: &[str]) -> @program_res { let pipe_input = os::pipe(); let pipe_output = os::pipe(); let pipe_err = os::pipe(); @@ -112,7 +114,7 @@ fn read_all(rd: &io::reader) -> str { ret buf; } -fn program_output(prog: str, args: vec[str]) +fn program_output(prog: str, args: [str]) -> {status: int, out: str, err: str} { let pr = start_program(prog, args); pr.close_input(); diff --git a/src/test/compiletest/procsrv.rs b/src/test/compiletest/procsrv.rs index 94b771856521..db1aeb6cb326 100644 --- a/src/test/compiletest/procsrv.rs +++ b/src/test/compiletest/procsrv.rs @@ -140,7 +140,7 @@ fn worker(p: port[request]) { let pipe_err = os::pipe(); let spawnproc = bind run::spawn_process(execparms.prog, - ivec::to_vec(execparms.args), + execparms.args, pipe_in.in, pipe_out.out, pipe_err.out); diff --git a/src/test/stdtest/run.rs b/src/test/stdtest/run.rs index 76ab70980434..cdc00438e2d3 100644 --- a/src/test/stdtest/run.rs +++ b/src/test/stdtest/run.rs @@ -11,9 +11,9 @@ import std::ivec; #[cfg(target_os = "macos")] #[test] fn test_leaks() { - run::run_program("echo", []); - run::start_program("echo", []); - run::program_output("echo", []); + run::run_program("echo", ~[]); + run::start_program("echo", ~[]); + run::program_output("echo", ~[]); } // FIXME @@ -28,7 +28,7 @@ fn test_pipes() { let pipe_out = os::pipe(); let pipe_err = os::pipe(); - let pid = run::spawn_process("cat", [], + let pid = run::spawn_process("cat", ~[], pipe_in.in, pipe_out.out, pipe_err.out); os::libc::close(pipe_in.in); os::libc::close(pipe_out.out);