Skip to content

Commit 5525fb6

Browse files
committed
---
yaml --- r: 141278 b: refs/heads/try2 c: 6d7d759 h: refs/heads/master v: v3
1 parent c86210c commit 5525fb6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1440
-809
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: dea667725137368dd9c928bae3c091b9ccf42e67
8+
refs/heads/try2: 6d7d759129cbd8cb8014fa33f75a9445f1947405
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/configure

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,11 +555,11 @@ then
555555
CFG_CLANG_VERSION=$("$CFG_CLANG" \
556556
--version \
557557
| grep version \
558-
| sed 's/.*\(version .*\)/\1/' \
558+
| sed 's/.*\(version .*\)/\1/; s/.*based on \(LLVM .*\))/\1/' \
559559
| cut -d ' ' -f 2)
560560

561561
case $CFG_CLANG_VERSION in
562-
(3.0svn | 3.0 | 3.1* | 3.2* | 3.3* | 4.0* | 4.1* | 4.2*)
562+
(3.0svn | 3.0 | 3.1* | 3.2* | 3.3*)
563563
step_msg "found ok version of CLANG: $CFG_CLANG_VERSION"
564564
CFG_C_COMPILER="clang"
565565
;;

branches/try2/src/compiletest/procsrv.rs

Lines changed: 16 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
use core::prelude::*;
1212

13-
use core::libc::c_int;
14-
use core::run::spawn_process;
1513
use core::run;
1614

1715
#[cfg(target_os = "win32")]
@@ -38,86 +36,35 @@ fn target_env(lib_path: &str, prog: &str) -> ~[(~str,~str)] {
3836
#[cfg(target_os = "macos")]
3937
#[cfg(target_os = "freebsd")]
4038
fn target_env(_lib_path: &str, _prog: &str) -> ~[(~str,~str)] {
41-
~[]
39+
os::env()
4240
}
4341

4442
pub struct Result {status: int, out: ~str, err: ~str}
4543

46-
// FIXME (#2659): This code is duplicated in core::run::program_output
4744
pub fn run(lib_path: &str,
4845
prog: &str,
4946
args: &[~str],
5047
env: ~[(~str, ~str)],
5148
input: Option<~str>) -> Result {
52-
let pipe_in = os::pipe();
53-
let pipe_out = os::pipe();
54-
let pipe_err = os::pipe();
55-
let pid = spawn_process(prog, args,
56-
&Some(env + target_env(lib_path, prog)),
57-
&None, pipe_in.in, pipe_out.out, pipe_err.out);
58-
59-
os::close(pipe_in.in);
60-
os::close(pipe_out.out);
61-
os::close(pipe_err.out);
62-
if pid == -1i32 {
63-
os::close(pipe_in.out);
64-
os::close(pipe_out.in);
65-
os::close(pipe_err.in);
66-
fail!();
67-
}
6849

50+
let env = env + target_env(lib_path, prog);
51+
let mut proc = run::Process::new(prog, args, run::ProcessOptions {
52+
env: Some(env.slice(0, env.len())),
53+
dir: None,
54+
in_fd: None,
55+
out_fd: None,
56+
err_fd: None
57+
});
6958

70-
writeclose(pipe_in.out, input);
71-
let p = comm::PortSet::new();
72-
let ch = p.chan();
73-
do task::spawn_sched(task::SingleThreaded) || {
74-
let errput = readclose(pipe_err.in);
75-
ch.send((2, errput));
59+
for input.each |input| {
60+
proc.input().write_str(*input);
7661
}
77-
let ch = p.chan();
78-
do task::spawn_sched(task::SingleThreaded) || {
79-
let output = readclose(pipe_out.in);
80-
ch.send((1, output));
81-
}
82-
let status = run::waitpid(pid);
83-
let mut errs = ~"";
84-
let mut outs = ~"";
85-
let mut count = 2;
86-
while count > 0 {
87-
match p.recv() {
88-
(1, s) => {
89-
outs = s;
90-
}
91-
(2, s) => {
92-
errs = s;
93-
}
94-
_ => { fail!() }
95-
};
96-
count -= 1;
97-
};
98-
return Result {status: status, out: outs, err: errs};
99-
}
62+
let output = proc.finish_with_output();
10063

101-
fn writeclose(fd: c_int, s: Option<~str>) {
102-
if s.is_some() {
103-
let writer = io::fd_writer(fd, false);
104-
writer.write_str(s.get());
64+
Result {
65+
status: output.status,
66+
out: str::from_bytes(output.output),
67+
err: str::from_bytes(output.error)
10568
}
106-
107-
os::close(fd);
10869
}
10970

110-
fn readclose(fd: c_int) -> ~str {
111-
unsafe {
112-
// Copied from run::program_output
113-
let file = os::fdopen(fd);
114-
let reader = io::FILE_reader(file, false);
115-
let mut buf = ~"";
116-
while !reader.eof() {
117-
let bytes = reader.read_bytes(4096u);
118-
str::push_str(&mut buf, str::from_bytes(bytes));
119-
}
120-
os::fclose(file);
121-
return buf;
122-
}
123-
}

branches/try2/src/etc/ctags.rust

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
--regex-rust=/[ \t]*type[ \t]+([a-zA-Z0-9_]+)/\1/T,types/
55
--regex-rust=/[ \t]*enum[ \t]+([a-zA-Z0-9_]+)/\1/T,types/
66
--regex-rust=/[ \t]*struct[ \t]+([a-zA-Z0-9_]+)/\1/m,types/
7-
--regex-rust=/[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\1/m,types/
87
--regex-rust=/[ \t]*mod[ \t]+([a-zA-Z0-9_]+)/\1/m,modules/
9-
--regex-rust=/[ \t]*const[ \t]+([a-zA-Z0-9_]+)/\1/m,consts/
8+
--regex-rust=/[ \t]*static[ \t]+([a-zA-Z0-9_]+)/\1/m,consts/
109
--regex-rust=/[ \t]*trait[ \t]+([a-zA-Z0-9_]+)/\1/m,traits/
1110
--regex-rust=/[ \t]*impl[ \t]+([a-zA-Z0-9_]+)/\1/m,impls/
12-
--regex-rust=/[ \t]*impl[ \t]+of[ \t]([a-zA-Z0-9_]+)/\1/m,impls/

branches/try2/src/libextra/bitv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ pub impl Bitv {
462462
*/
463463
fn to_str(&self) -> ~str {
464464
let mut rs = ~"";
465-
for self.each() |i| { if i { rs += ~"1"; } else { rs += ~"0"; } };
465+
for self.each() |i| { if i { rs += "1"; } else { rs += "0"; } };
466466
rs
467467
}
468468

branches/try2/src/libextra/getopts.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -193,19 +193,19 @@ pub enum Fail_ {
193193
pub fn fail_str(f: Fail_) -> ~str {
194194
return match f {
195195
ArgumentMissing(ref nm) => {
196-
~"Argument to option '" + *nm + ~"' missing."
196+
~"Argument to option '" + *nm + "' missing."
197197
}
198198
UnrecognizedOption(ref nm) => {
199-
~"Unrecognized option: '" + *nm + ~"'."
199+
~"Unrecognized option: '" + *nm + "'."
200200
}
201201
OptionMissing(ref nm) => {
202-
~"Required option '" + *nm + ~"' missing."
202+
~"Required option '" + *nm + "' missing."
203203
}
204204
OptionDuplicated(ref nm) => {
205-
~"Option '" + *nm + ~"' given more than once."
205+
~"Option '" + *nm + "' given more than once."
206206
}
207207
UnexpectedArgument(ref nm) => {
208-
~"Option " + *nm + ~" does not take an argument."
208+
~"Option " + *nm + " does not take an argument."
209209
}
210210
};
211211
}
@@ -618,7 +618,7 @@ pub mod groups {
618618
row += match hasarg {
619619
No => ~"",
620620
Yes => hint,
621-
Maybe => ~"[" + hint + ~"]",
621+
Maybe => ~"[" + hint + "]",
622622
};
623623

624624
// FIXME: #5516
@@ -650,10 +650,10 @@ pub mod groups {
650650
row
651651
});
652652

653-
return str::to_owned(brief) +
654-
~"\n\nOptions:\n" +
653+
return str::to_owned(brief) +
654+
"\n\nOptions:\n" +
655655
str::connect(rows, "\n") +
656-
~"\n\n";
656+
"\n\n";
657657
}
658658
} // end groups module
659659

branches/try2/src/libextra/json.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,18 @@ fn escape_str(s: &str) -> ~str {
4747
let mut escaped = ~"\"";
4848
for str::each_char(s) |c| {
4949
match c {
50-
'"' => escaped += ~"\\\"",
51-
'\\' => escaped += ~"\\\\",
52-
'\x08' => escaped += ~"\\b",
53-
'\x0c' => escaped += ~"\\f",
54-
'\n' => escaped += ~"\\n",
55-
'\r' => escaped += ~"\\r",
56-
'\t' => escaped += ~"\\t",
50+
'"' => escaped += "\\\"",
51+
'\\' => escaped += "\\\\",
52+
'\x08' => escaped += "\\b",
53+
'\x0c' => escaped += "\\f",
54+
'\n' => escaped += "\\n",
55+
'\r' => escaped += "\\r",
56+
'\t' => escaped += "\\t",
5757
_ => escaped += str::from_char(c)
5858
}
5959
};
6060

61-
escaped += ~"\"";
61+
escaped += "\"";
6262

6363
escaped
6464
}

branches/try2/src/libextra/md4.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ pub fn md4_str(msg: &[u8]) -> ~str {
115115
let mut i = 0u32;
116116
while i < 4u32 {
117117
let byte = (u >> (i * 8u32)) as u8;
118-
if byte <= 16u8 { result += ~"0"; }
118+
if byte <= 16u8 { result += "0"; }
119119
result += uint::to_str_radix(byte as uint, 16u);
120120
i += 1u32;
121121
}

branches/try2/src/libextra/std.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ pub mod serialize;
123123
// A curious inner-module that's not exported that contains the binding
124124
// 'extra' so that macro-expanded references to std::serialize and such
125125
// can be resolved within libextra.
126-
#[doc(hidden)] // FIXME #3538
126+
#[doc(hidden)]
127127
pub mod std {
128128
pub use serialize;
129129
pub use test;
@@ -134,7 +134,7 @@ pub mod std {
134134
pub use core::cmp;
135135
pub use core::sys;
136136
}
137-
#[doc(hidden)] // FIXME #3538
137+
#[doc(hidden)]
138138
pub mod extra {
139139
pub use serialize;
140140
pub use test;

branches/try2/src/libextra/workcache.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ fn test() {
415415
prep.declare_input("file", pth.to_str(), digest_file(&pth));
416416
do prep.exec |_exe| {
417417
let out = Path("foo.o");
418-
run::run_program("gcc", [~"foo.c", ~"-o", out.to_str()]);
418+
run::process_status("gcc", [~"foo.c", ~"-o", out.to_str()]);
419419
out.to_str()
420420
}
421421
};

branches/try2/src/libfuzzer/fuzzer.rc

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -412,20 +412,20 @@ pub fn check_whole_compiler(code: &str,
412412
pub fn removeIfExists(filename: &Path) {
413413
// So sketchy!
414414
assert!(!contains(filename.to_str(), " "));
415-
run::program_output("bash", [~"-c", ~"rm " + filename.to_str()]);
415+
run::process_status("bash", [~"-c", ~"rm " + filename.to_str()]);
416416
}
417417

418418
pub fn removeDirIfExists(filename: &Path) {
419419
// So sketchy!
420420
assert!(!contains(filename.to_str(), " "));
421-
run::program_output("bash", [~"-c", ~"rm -r " + filename.to_str()]);
421+
run::process_status("bash", [~"-c", ~"rm -r " + filename.to_str()]);
422422
}
423423

424424
pub fn check_running(exe_filename: &Path) -> happiness {
425-
let p = run::program_output(
425+
let p = run::process_output(
426426
"/Users/jruderman/scripts/timed_run_rust_program.py",
427427
[exe_filename.to_str()]);
428-
let comb = p.out + ~"\n" + p.err;
428+
let comb = str::from_bytes(p.output) + ~"\n" + str::from_bytes(p.error);
429429
if str::len(comb) > 1u {
430430
error!("comb comb comb: %?", comb);
431431
}
@@ -461,33 +461,35 @@ pub fn check_running(exe_filename: &Path) -> happiness {
461461
}
462462

463463
pub fn check_compiling(filename: &Path) -> happiness {
464-
let p = run::program_output(
465-
"/Users/jruderman/code/rust/build/x86_64-apple-darwin/\
466-
stage1/bin/rustc",
464+
let p = run::process_output(
465+
"/Users/jruderman/code/rust/build/x86_64-apple-darwin/stage1/bin/rustc",
467466
[filename.to_str()]);
468467

468+
let out = str::from_bytes(p.output);
469+
let err = str::from_bytes(p.error);
470+
469471
//error!("Status: %d", p.status);
470472
if p.status == 0 {
471473
passed
472-
} else if p.err != ~"" {
473-
if contains(p.err, "error:") {
474+
} else if !err.is_empty() {
475+
if err.contains("error:") {
474476
cleanly_rejected(~"rejected with span_error")
475477
} else {
476-
error!("Stderr: %?", p.err);
478+
error!("Stderr: %?", err);
477479
failed(~"Unfamiliar error message")
478480
}
479-
} else if contains(p.out, "Assertion") && contains(p.out, "failed") {
480-
error!("Stdout: %?", p.out);
481+
} else if out.contains("Assertion") && out.contains("failed") {
482+
error!("Stdout: %?", out);
481483
failed(~"Looks like an llvm assertion failure")
482-
} else if contains(p.out, "internal compiler error unimplemented") {
484+
} else if out.contains("internal compiler error unimplemented") {
483485
known_bug(~"Something unimplemented")
484-
} else if contains(p.out, "internal compiler error") {
485-
error!("Stdout: %?", p.out);
486+
} else if out.contains("internal compiler error") {
487+
error!("Stdout: %?", out);
486488
failed(~"internal compiler error")
487489

488490
} else {
489491
error!("%?", p.status);
490-
error!("!Stdout: %?", p.out);
492+
error!("!Stdout: %?", out);
491493
failed(~"What happened?")
492494
}
493495
}
@@ -608,9 +610,7 @@ pub fn check_roundtrip_convergence(code: @~str, maxIters: uint) {
608610
error!("Did not converge after %u iterations!", i);
609611
write_file(&Path("round-trip-a.rs"), *oldv);
610612
write_file(&Path("round-trip-b.rs"), *newv);
611-
run::run_program("diff",
612-
[~"-w", ~"-u", ~"round-trip-a.rs",
613-
~"round-trip-b.rs"]);
613+
run::process_status("diff", [~"-w", ~"-u", ~"round-trip-a.rs", ~"round-trip-b.rs"]);
614614
fail!("Mismatch");
615615
}
616616
}

branches/try2/src/librust/rust.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ fn cmd_test(args: &[~str]) -> ValidUsage {
163163
let test_exec = Path(filename).filestem().unwrap() + "test~";
164164
invoke("rustc", &[~"--test", filename.to_owned(),
165165
~"-o", test_exec.to_owned()], rustc::main);
166-
let exit_code = run::run_program(~"./" + test_exec, []);
166+
let exit_code = run::process_status(~"./" + test_exec, []);
167167
Valid(exit_code)
168168
}
169169
_ => Invalid
@@ -176,7 +176,7 @@ fn cmd_run(args: &[~str]) -> ValidUsage {
176176
let exec = Path(filename).filestem().unwrap() + "~";
177177
invoke("rustc", &[filename.to_owned(), ~"-o", exec.to_owned()],
178178
rustc::main);
179-
let exit_code = run::run_program(~"./"+exec, prog_args);
179+
let exit_code = run::process_status(~"./"+exec, prog_args);
180180
Valid(exit_code)
181181
}
182182
_ => Invalid

0 commit comments

Comments
 (0)