Skip to content

Commit f758d10

Browse files
committed
---
yaml --- r: 107402 b: refs/heads/dist-snap c: 6141662 h: refs/heads/master v: v3
1 parent fd87cf8 commit f758d10

File tree

14 files changed

+113
-141
lines changed

14 files changed

+113
-141
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: f64fdf524a434f0e5cd0bc91d09c144723f3c90d
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 0e94ae4d8a4d6aa103bca4e48885538f478c56b5
9+
refs/heads/dist-snap: 61416626acb53143f1b6856cbc0fcbfd9f9b59a8
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/Makefile.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,9 @@ DRIVER_CRATE := $(S)src/driver/driver.rs
371371
LLVM_COMPONENTS=x86 arm mips ipo bitreader bitwriter linker asmparser jit mcjit \
372372
interpreter instrumentation
373373

374+
# Only build these LLVM tools
375+
LLVM_TOOLS=bugpoint llc llvm-ar llvm-as llvm-dis llvm-mc opt
376+
374377
define DEF_LLVM_VARS
375378
# The configure script defines these variables with the target triples
376379
# separated by Z. This defines new ones with the expected format.

branches/dist-snap/doc/index.md

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,54 @@
44
<style type="text/css">
55
#TOC { display: none; }
66
.header-section-number { display: none; }
7+
li {list-style-type: none; }
78
</style>
89

9-
[The Rust tutorial](tutorial.html) ([PDF](tutorial.pdf))
10-
[The Rust reference manual](rust.html) ([PDF](rust.pdf))
10+
* [The Rust tutorial](tutorial.html) (* [PDF](tutorial.pdf))
11+
* [The Rust reference manual](rust.html) (* [PDF](rust.pdf))
1112

1213
# Guides
1314

14-
[Pointers](guide-pointers.html)
15-
[References and Lifetimes](guide-lifetimes.html)
16-
[Containers and Iterators](guide-container.html)
17-
[Tasks and Communication](guide-tasks.html)
18-
[Foreign Function Interface](guide-ffi.html)
19-
[Macros](guide-macros.html)
20-
[Packaging](guide-rustpkg.html)
21-
[Testing](guide-testing.html)
22-
[Conditions](guide-conditions.html)
23-
[Rust's Runtime](guide-runtime.html)
15+
* [Pointers](guide-pointers.html)
16+
* [References and Lifetimes](guide-lifetimes.html)
17+
* [Containers and Iterators](guide-container.html)
18+
* [Tasks and Communication](guide-tasks.html)
19+
* [Foreign Function Interface](guide-ffi.html)
20+
* [Macros](guide-macros.html)
21+
* [Packaging](guide-rustpkg.html)
22+
* [Testing](guide-testing.html)
23+
* [Conditions](guide-conditions.html)
24+
* [Rust's Runtime](guide-runtime.html)
2425

2526
# Libraries
2627

27-
[The standard library, `libstd`](std/index.html)
28-
[The extra library, `libextra`](extra/index.html)
28+
* [The standard library, `libstd`](std/index.html)
29+
* [The extra library, `libextra`](extra/index.html)
2930

30-
[The M:N runtime library, `libgreen`](green/index.html)
31-
[The 1:1 runtime library, `libnative`](native/index.html)
31+
* [The M:N runtime library, `libgreen`](green/index.html)
32+
* [The 1:1 runtime library, `libnative`](native/index.html)
3233

33-
[The Rust libuv library, `librustuv`](rustuv/index.html)
34-
[The Rust packaging library, `librustpkg`](rustpkg/index.html)
34+
* [The Rust libuv library, `librustuv`](rustuv/index.html)
35+
* [The Rust packaging library, `librustpkg`](rustpkg/index.html)
3536

36-
[The Rust parser, `libsyntax`](syntax/index.html)
37-
[The Rust compiler, `librustc`](rustc/index.html)
37+
* [The Rust parser, `libsyntax`](syntax/index.html)
38+
* [The Rust compiler, `librustc`](rustc/index.html)
3839

3940
# Tooling
4041

41-
[The `rustpkg` manual](rustpkg.html)
42+
* [The `rustdoc` manual](rustdoc.html)
43+
* [The `rustpkg` manual](rustpkg.html)
4244

4345
# FAQs
4446

45-
[Language FAQ](complement-lang-faq.html)
46-
[Project FAQ](complement-project-faq.html)
47-
[Usage FAQ](complement-usage-faq.html)
48-
[Code cheatsheet](complement-cheatsheet.html) - "How do I do X?"
49-
[How to submit a bug report](complement-bugreport.html)
47+
* [Language FAQ](complement-lang-faq.html)
48+
* [Project FAQ](complement-project-faq.html)
49+
* [Usage FAQ](complement-usage-faq.html)
50+
* [Code cheatsheet](complement-cheatsheet.html) - "How do I do X?"
51+
* [How to submit a bug report](complement-bugreport.html)
5052

5153
# External resources
5254

53-
The Rust [IRC channel](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust) - `#rust` on irc.mozilla.org
54-
The Rust community on [Reddit](http://reddit.com/r/rust)
55-
The Rust [wiki](http://github.com/mozilla/rust/wiki)
55+
* The Rust [IRC channel](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust) - `#rust` on irc.mozilla.org
56+
* The Rust community on [Reddit](http://reddit.com/r/rust)
57+
* The Rust [wiki](http://github.com/mozilla/rust/wiki)

branches/dist-snap/mk/llvm.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ LLVM_STAMP_$(1) = $$(CFG_LLVM_BUILD_DIR_$(1))/llvm-auto-clean-stamp
2828

2929
$$(LLVM_CONFIG_$(1)): $$(LLVM_DEPS) $$(LLVM_STAMP_$(1))
3030
@$$(call E, make: llvm)
31-
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV_$(1))
31+
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV_$(1)) ONLY_TOOLS="$$(LLVM_TOOLS)"
3232
$$(Q)touch $$(LLVM_CONFIG_$(1))
3333
endif
3434

branches/dist-snap/src/libextra/base64.rs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,25 @@ impl<'a> ToBase64 for &'a [u8] {
154154
pub trait FromBase64 {
155155
/// Converts the value of `self`, interpreted as base64 encoded data, into
156156
/// an owned vector of bytes, returning the vector.
157-
fn from_base64(&self) -> Result<~[u8], ~str>;
157+
fn from_base64(&self) -> Result<~[u8], FromBase64Error>;
158+
}
159+
160+
/// Errors that can occur when decoding a base64 encoded string
161+
pub enum FromBase64Error {
162+
/// The input contained a character not part of the base64 format
163+
InvalidBase64Character(char, uint),
164+
/// The input had an invalid length
165+
InvalidBase64Length,
166+
}
167+
168+
impl ToStr for FromBase64Error {
169+
fn to_str(&self) -> ~str {
170+
match *self {
171+
InvalidBase64Character(ch, idx) =>
172+
format!("Invalid character '{}' at position {}", ch, idx),
173+
InvalidBase64Length => ~"Invalid length",
174+
}
175+
}
158176
}
159177

160178
impl<'a> FromBase64 for &'a str {
@@ -188,7 +206,7 @@ impl<'a> FromBase64 for &'a str {
188206
* }
189207
* ```
190208
*/
191-
fn from_base64(&self) -> Result<~[u8], ~str> {
209+
fn from_base64(&self) -> Result<~[u8], FromBase64Error> {
192210
let mut r = ~[];
193211
let mut buf: u32 = 0;
194212
let mut modulus = 0;
@@ -205,8 +223,7 @@ impl<'a> FromBase64 for &'a str {
205223
'/'|'_' => buf |= 0x3F,
206224
'\r'|'\n' => continue,
207225
'=' => break,
208-
_ => return Err(format!("Invalid character '{}' at position {}",
209-
self.char_at(idx), idx))
226+
_ => return Err(InvalidBase64Character(self.char_at(idx), idx)),
210227
}
211228

212229
buf <<= 6;
@@ -221,8 +238,7 @@ impl<'a> FromBase64 for &'a str {
221238

222239
for (idx, byte) in it {
223240
if (byte as char) != '=' {
224-
return Err(format!("Invalid character '{}' at position {}",
225-
self.char_at(idx), idx));
241+
return Err(InvalidBase64Character(self.char_at(idx), idx));
226242
}
227243
}
228244

@@ -235,7 +251,7 @@ impl<'a> FromBase64 for &'a str {
235251
r.push((buf >> 8 ) as u8);
236252
}
237253
0 => (),
238-
_ => return Err(~"Invalid Base64 length")
254+
_ => return Err(InvalidBase64Length),
239255
}
240256

241257
Ok(r)

branches/dist-snap/src/libextra/comm.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ mod test {
127127
// Rendezvous streams should be able to handle any number of messages being sent
128128
let (port, chan) = rendezvous();
129129
do spawn {
130-
1000000.times(|| { chan.send(()) })
130+
10000.times(|| { chan.send(()) })
131131
}
132-
1000000.times(|| { port.recv() })
132+
10000.times(|| { port.recv() })
133133
}
134134

135135
#[test]

branches/dist-snap/src/libextra/hex.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,25 @@ impl<'a> ToHex for &'a [u8] {
5353
pub trait FromHex {
5454
/// Converts the value of `self`, interpreted as hexadecimal encoded data,
5555
/// into an owned vector of bytes, returning the vector.
56-
fn from_hex(&self) -> Result<~[u8], ~str>;
56+
fn from_hex(&self) -> Result<~[u8], FromHexError>;
57+
}
58+
59+
/// Errors that can occur when decoding a hex encoded string
60+
pub enum FromHexError {
61+
/// The input contained a character not part of the hex format
62+
InvalidHexCharacter(char, uint),
63+
/// The input had a invalid length
64+
InvalidHexLength,
65+
}
66+
67+
impl ToStr for FromHexError {
68+
fn to_str(&self) -> ~str {
69+
match *self {
70+
InvalidHexCharacter(ch, idx) =>
71+
format!("Invalid character '{}' at position {}", ch, idx),
72+
InvalidHexLength => ~"Invalid input length",
73+
}
74+
}
5775
}
5876

5977
impl<'a> FromHex for &'a str {
@@ -83,7 +101,7 @@ impl<'a> FromHex for &'a str {
83101
* }
84102
* ```
85103
*/
86-
fn from_hex(&self) -> Result<~[u8], ~str> {
104+
fn from_hex(&self) -> Result<~[u8], FromHexError> {
87105
// This may be an overestimate if there is any whitespace
88106
let mut b = vec::with_capacity(self.len() / 2);
89107
let mut modulus = 0;
@@ -100,8 +118,7 @@ impl<'a> FromHex for &'a str {
100118
buf >>= 4;
101119
continue
102120
}
103-
_ => return Err(format!("Invalid character '{}' at position {}",
104-
self.char_at(idx), idx))
121+
_ => return Err(InvalidHexCharacter(self.char_at(idx), idx)),
105122
}
106123

107124
modulus += 1;
@@ -113,7 +130,7 @@ impl<'a> FromHex for &'a str {
113130

114131
match modulus {
115132
0 => Ok(b),
116-
_ => Err(~"Invalid input length")
133+
_ => Err(InvalidHexLength),
117134
}
118135
}
119136
}

branches/dist-snap/src/libnative/bookeeping.rs renamed to branches/dist-snap/src/libnative/bookkeeping.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -8,13 +8,13 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
//! 1:1 Task bookeeping
11+
//! 1:1 Task bookkeeping
1212
//!
1313
//! This module keeps track of the number of running 1:1 tasks so that entry
1414
//! points with libnative know when it's possible to exit the program (once all
1515
//! tasks have exited).
1616
//!
17-
//! The green counterpart for this is bookeeping on sched pools.
17+
//! The green counterpart for this is bookkeeping on sched pools.
1818
1919
use std::sync::atomics;
2020
use std::unstable::mutex::{Mutex, MUTEX_INIT};

branches/dist-snap/src/libnative/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -29,7 +29,7 @@
2929
use std::os;
3030
use std::rt;
3131

32-
mod bookeeping;
32+
mod bookkeeping;
3333
pub mod io;
3434
pub mod task;
3535

@@ -75,6 +75,6 @@ pub fn start(argc: int, argv: **u8, main: proc()) -> int {
7575
/// number of arguments.
7676
pub fn run(main: proc()) -> int {
7777
main();
78-
bookeeping::wait_for_other_tasks();
78+
bookkeeping::wait_for_other_tasks();
7979
os::get_exit_status()
8080
}

branches/dist-snap/src/libnative/task.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -27,7 +27,7 @@ use std::unstable::stack;
2727

2828
use io;
2929
use task;
30-
use bookeeping;
30+
use bookkeeping;
3131

3232
/// Creates a new Task which is ready to execute as a 1:1 task.
3333
pub fn new(stack_bounds: (uint, uint)) -> ~Task {
@@ -82,7 +82,7 @@ pub fn spawn_opts(opts: TaskOpts, f: proc()) {
8282
// Note that this increment must happen *before* the spawn in order to
8383
// guarantee that if this task exits it will always end up waiting for the
8484
// spawned task to exit.
85-
bookeeping::increment();
85+
bookkeeping::increment();
8686

8787
// Spawning a new OS thread guarantees that __morestack will never get
8888
// triggered, but we must manually set up the actual stack bounds once this
@@ -104,7 +104,7 @@ pub fn spawn_opts(opts: TaskOpts, f: proc()) {
104104
let mut task = task;
105105
task.put_runtime(ops as ~rt::Runtime);
106106
task.run(|| { f.take_unwrap()() });
107-
bookeeping::decrement();
107+
bookkeeping::decrement();
108108
})
109109
}
110110

branches/dist-snap/src/libstd/path/windows.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,13 @@ impl GenericPathUnsafe for Path {
261261
let mut s = str::with_capacity(me.repr.len() + 1 + pathlen);
262262
s.push_str(me.repr);
263263
let plen = me.prefix_len();
264-
if !(me.repr.len() > plen && me.repr[me.repr.len()-1] == sep as u8) {
265-
s.push_char(sep);
264+
// if me is "C:" we don't want to add a path separator
265+
match me.prefix {
266+
Some(DiskPrefix) if me.repr.len() == plen => (),
267+
_ if !(me.repr.len() > plen && me.repr[me.repr.len()-1] == sep as u8) => {
268+
s.push_char(sep);
269+
}
270+
_ => ()
266271
}
267272
match path_ {
268273
None => s.push_str(path),
@@ -1549,6 +1554,8 @@ mod tests {
15491554
t!(s: "C:a\\b\\c", "C:d", "C:a\\b\\c\\d");
15501555
t!(s: "C:a\\b", "..\\..\\..\\c", "C:..\\c");
15511556
t!(s: "C:\\a\\b", "..\\..\\..\\c", "C:\\c");
1557+
t!(s: "C:", r"a\b\c", r"C:a\b\c");
1558+
t!(s: "C:", r"..\a", r"C:..\a");
15521559
t!(s: "\\\\server\\share\\foo", "bar", "\\\\server\\share\\foo\\bar");
15531560
t!(s: "\\\\server\\share\\foo", "..\\..\\bar", "\\\\server\\share\\bar");
15541561
t!(s: "\\\\server\\share\\foo", "C:baz", "C:baz");

0 commit comments

Comments
 (0)