Skip to content

Commit a1d675f

Browse files
---
yaml --- r: 147187 b: refs/heads/try2 c: fa36de3 h: refs/heads/master i: 147185: 91cdaab 147183: 5bd00c2 v: v3
1 parent 105b612 commit a1d675f

File tree

374 files changed

+3422
-4846
lines changed

Some content is hidden

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

374 files changed

+3422
-4846
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: 6e0b82e07c78c42a735461ba65fc1a15768a0b8c
8+
refs/heads/try2: fa36de339a75c6c8756262a905049f395e881c39
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/doc/rust.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1239,9 +1239,9 @@ static BIT2: uint = 1 << 1;
12391239
static BITS: [uint, ..2] = [BIT1, BIT2];
12401240
static STRING: &'static str = "bitstring";
12411241
1242-
struct BitsNStrings<'a> {
1242+
struct BitsNStrings<'self> {
12431243
mybits: [uint, ..2],
1244-
mystring: &'a str
1244+
mystring: &'self str
12451245
}
12461246
12471247
static bits_n_strings: BitsNStrings<'static> = BitsNStrings {
@@ -2281,7 +2281,7 @@ The following are examples of structure expressions:
22812281
~~~~
22822282
# struct Point { x: f64, y: f64 }
22832283
# struct TuplePoint(f64, f64);
2284-
# mod game { pub struct User<'a> { name: &'a str, age: uint, score: uint } }
2284+
# mod game { pub struct User<'self> { name: &'self str, age: uint, score: uint } }
22852285
# struct Cookie; fn some_fn<T>(t: T) {}
22862286
Point {x: 10.0, y: 20.0};
22872287
TuplePoint(10.0, 20.0);
@@ -3055,7 +3055,7 @@ order specified by the tuple type.
30553055
An example of a tuple type and its use:
30563056

30573057
~~~~
3058-
type Pair<'a> = (int,&'a str);
3058+
type Pair<'self> = (int,&'self str);
30593059
let p: Pair<'static> = (10,"hello");
30603060
let (a, b) = p;
30613061
assert!(b != "world");
@@ -3220,7 +3220,7 @@ fn add(x: int, y: int) -> int {
32203220
32213221
let mut x = add(5,7);
32223222
3223-
type Binop<'a> = 'a |int,int| -> int;
3223+
type Binop<'self> = 'self |int,int| -> int;
32243224
let bo: Binop = add;
32253225
x = bo(5,7);
32263226
~~~~

branches/try2/mk/platform.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ CFG_GCCISH_DEF_FLAG_arm-unknown-linux-gnueabi := -Wl,--export-dynamic,--dynamic-
350350
CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-linux-gnueabi := -Wl,-whole-archive
351351
CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-linux-gnueabi := -Wl,-no-whole-archive
352352
CFG_DEF_SUFFIX_arm-unknown-linux-gnueabi := .linux.def
353-
CFG_INSTALL_NAME_ar,-unknown-linux-gnueabi =
353+
CFG_INSTALL_NAME_arm-unknown-linux-gnueabi =
354354
CFG_LIBUV_LINK_FLAGS_arm-unknown-linux-gnueabi =
355355
CFG_EXE_SUFFIX_arm-unknown-linux-gnueabi :=
356356
CFG_WINDOWSY_arm-unknown-linux-gnueabi :=

branches/try2/mk/tests.mk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,8 +394,7 @@ $(3)/stage$(1)/test/rustdoctest-$(2)$$(X_$(2)): \
394394
$$(RUSTDOC_LIB) $$(RUSTDOC_INPUTS) \
395395
$$(SREQ$(1)_T_$(2)_H_$(3)) \
396396
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBSYNTAX_$(2)) \
397-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2)) \
398-
$$(SUNDOWN_LIB_$(2))
397+
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2))
399398
@$$(call E, compile_and_link: $$@)
400399
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test \
401400
-L $$(SUNDOWN_DIR_$(2))

branches/try2/src/compiletest/compiletest.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -325,17 +325,19 @@ pub fn make_test_name(config: &config, testfile: &Path) -> test::TestName {
325325
}
326326

327327
pub fn make_test_closure(config: &config, testfile: &Path) -> test::TestFn {
328-
let config = (*config).clone();
328+
use std::cell::Cell;
329+
let config = Cell::new((*config).clone());
329330
// FIXME (#9639): This needs to handle non-utf8 paths
330-
let testfile = testfile.as_str().unwrap().to_owned();
331-
test::DynTestFn(proc() { runtest::run(config, testfile) })
331+
let testfile = Cell::new(testfile.as_str().unwrap().to_owned());
332+
test::DynTestFn(proc() { runtest::run(config.take(), testfile.take()) })
332333
}
333334

334335
pub fn make_metrics_test_closure(config: &config, testfile: &Path) -> test::TestFn {
335-
let config = (*config).clone();
336+
use std::cell::Cell;
337+
let config = Cell::new((*config).clone());
336338
// FIXME (#9639): This needs to handle non-utf8 paths
337-
let testfile = testfile.as_str().unwrap().to_owned();
339+
let testfile = Cell::new(testfile.as_str().unwrap().to_owned());
338340
test::DynMetricFn(proc(mm) {
339-
runtest::run_metrics(config, testfile, mm)
341+
runtest::run_metrics(config.take(), testfile.take(), mm)
340342
})
341343
}

branches/try2/src/compiletest/errors.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ pub fn load_errors(testfile: &Path) -> ~[ExpectedError] {
1919
let mut error_patterns = ~[];
2020
let mut rdr = BufferedReader::new(File::open(testfile).unwrap());
2121
let mut line_num = 1u;
22-
for ln in rdr.lines() {
22+
loop {
23+
let ln = match rdr.read_line() {
24+
Some(ln) => ln, None => break,
25+
};
2326
error_patterns.push_all_move(parse_expected(line_num, ln));
2427
line_num += 1u;
2528
}

branches/try2/src/compiletest/header.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,11 @@ fn iter_header(testfile: &Path, it: |&str| -> bool) -> bool {
107107
use std::io::File;
108108

109109
let mut rdr = BufferedReader::new(File::open(testfile).unwrap());
110-
for ln in rdr.lines() {
110+
loop {
111+
let ln = match rdr.read_line() {
112+
Some(ln) => ln, None => break
113+
};
114+
111115
// Assume that any directives will be found before the first
112116
// module or function. This doesn't seem to be an optimization
113117
// with a warm page cache. Maybe with a cold one.

branches/try2/src/driver/driver.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
// except according to those terms.
1010

1111
#[cfg(rustpkg)]
12-
extern mod this = "rustpkg";
12+
extern mod this(name = "rustpkg");
1313

1414
#[cfg(rustdoc)]
15-
extern mod this = "rustdoc";
15+
extern mod this(name = "rustdoc");
1616

1717
#[cfg(rustc)]
18-
extern mod this = "rustc";
18+
extern mod this(name = "rustc");
1919

2020
#[cfg(rustdoc_ng)]
21-
extern mod this = "rustdoc_ng";
21+
extern mod this(name = "rustdoc_ng");
2222

2323
fn main() { this::main() }

branches/try2/src/etc/combine-tests.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ def scrub(b):
4242
c = open("tmp/run_pass_stage2.rc", "w")
4343
i = 0
4444
c.write("// AUTO-GENERATED FILE: DO NOT EDIT\n")
45-
c.write("#[pkgid=\"run_pass_stage2#0.1\"];\n")
4645
c.write("#[link(name=\"run_pass_stage2\", vers=\"0.1\")];\n")
4746
c.write("#[feature(globs, macro_rules, struct_variant, managed_boxes)];\n")
4847
c.write("#[allow(attribute_usage)];\n")

branches/try2/src/etc/vim/syntax/rust.vim

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
" Maintainer: Patrick Walton <[email protected]>
44
" Maintainer: Ben Blum <[email protected]>
55
" Maintainer: Chris Morgan <[email protected]>
6-
" Last Change: 2013 Dec 10
6+
" Last Change: 2013 Dec 04
77

88
if version < 600
99
syntax clear
@@ -19,23 +19,23 @@ syn keyword rustOperator as
1919
syn match rustAssert "\<assert\(\w\)*!" contained
2020
syn match rustFail "\<fail\(\w\)*!" contained
2121
syn keyword rustKeyword break continue do extern
22-
syn keyword rustKeyword for in if impl let
23-
syn keyword rustKeyword loop once priv pub
22+
syn keyword rustKeyword in if impl let log
23+
syn keyword rustKeyword for impl let log
24+
syn keyword rustKeyword loop mod once priv pub
2425
syn keyword rustKeyword return
2526
syn keyword rustKeyword unsafe while
2627
syn keyword rustKeyword use nextgroup=rustModPath skipwhite
2728
" FIXME: Scoped impl's name is also fallen in this category
2829
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite
2930
syn keyword rustKeyword fn nextgroup=rustFuncName skipwhite
3031
syn keyword rustKeyword proc
31-
syn keyword rustStorage mut ref static
32-
syn keyword rustObsoleteStorage const
32+
syn keyword rustStorage const mut ref static
3333

3434
syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
3535
syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
3636

3737
" Reserved (but not yet used) keywords {{{2
38-
syn keyword rustReservedKeyword alignof be offsetof pure sizeof typeof yield
38+
syn keyword rustKeyword alignof be offsetof pure sizeof typeof yield
3939

4040
" Built-in types {{{2
4141
syn keyword rustType int uint float char bool u8 u16 u32 u64 f32
@@ -160,15 +160,14 @@ syn match rustHexNumber display "\<0x[a-fA-F0-9_]\+\%([iu]\%(8\|16\|32\|64
160160
syn match rustOctNumber display "\<0o[0-7_]\+\%([iu]\%(8\|16\|32\|64\)\=\)\="
161161
syn match rustBinNumber display "\<0b[01_]\+\%([iu]\%(8\|16\|32\|64\)\=\)\="
162162

163-
" Special case for numbers of the form "1." which are float literals, unless followed by
164-
" an identifier, which makes them integer literals with a method call or field access.
165-
" (This must go first so the others take precedence.)
166-
syn match rustFloat display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\@!"
167-
" To mark a number as a normal float, it must have at least one of the three things integral values don't have:
163+
" To mark it as a float, it must have at least one of the three things integral values don't have:
168164
" a decimal point and more numbers; an exponent; and a type suffix.
169165
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)\="
170166
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\(f32\|f64\)\="
171167
syn match rustFloat display "\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\=\%([eE][+-]\=[0-9_]\+\)\=\(f32\|f64\)"
168+
" Special case for numbers of the form "1." which are float literals, unless followed by
169+
" an identifier, which makes them integer literals with a method call or field access.
170+
syn match rustFloat display "\<[0-9][0-9_]*\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\@!"
172171

173172
" For the benefit of delimitMate
174173
syn region rustLifetimeCandidate display start=/&'\%(\([^'\\]\|\\\(['nrt0\\\"]\|x\x\{2}\|u\x\{4}\|U\x\{8}\)\)'\)\@!/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime
@@ -228,7 +227,6 @@ hi def link rustSelf Constant
228227
hi def link rustFloat Float
229228
hi def link rustOperator Operator
230229
hi def link rustKeyword Keyword
231-
hi def link rustReservedKeyword Error
232230
hi def link rustConditional Conditional
233231
hi def link rustIdentifier Identifier
234232
hi def link rustCapsIdent rustIdentifier
@@ -249,7 +247,6 @@ hi def link rustTodo Todo
249247
hi def link rustAttribute PreProc
250248
hi def link rustDeriving PreProc
251249
hi def link rustStorage StorageClass
252-
hi def link rustObsoleteStorage Error
253250
hi def link rustLifetime Special
254251

255252
" Other Suggestions:

branches/try2/src/libextra/arc.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ use std::task;
4949
use std::borrow;
5050

5151
/// As sync::condvar, a mechanism for unlock-and-descheduling and signaling.
52-
pub struct Condvar<'a> {
52+
pub struct Condvar<'self> {
5353
priv is_mutex: bool,
54-
priv failed: &'a mut bool,
55-
priv cond: &'a sync::Condvar<'a>
54+
priv failed: &'self mut bool,
55+
priv cond: &'self sync::Condvar<'self>
5656
}
5757

58-
impl<'a> Condvar<'a> {
58+
impl<'self> Condvar<'self> {
5959
/// Atomically exit the associated Arc and block until a signal is sent.
6060
#[inline]
6161
pub fn wait(&self) { self.wait_on(0) }
@@ -523,19 +523,19 @@ fn borrow_rwlock<T:Freeze + Send>(state: *mut RWArcInner<T>) -> *RWLock {
523523
}
524524

525525
/// The "write permission" token used for RWArc.write_downgrade().
526-
pub struct RWWriteMode<'a, T> {
527-
priv data: &'a mut T,
528-
priv token: sync::RWLockWriteMode<'a>,
526+
pub struct RWWriteMode<'self, T> {
527+
priv data: &'self mut T,
528+
priv token: sync::RWLockWriteMode<'self>,
529529
priv poison: PoisonOnFail,
530530
}
531531

532532
/// The "read permission" token used for RWArc.write_downgrade().
533-
pub struct RWReadMode<'a, T> {
534-
priv data: &'a T,
535-
priv token: sync::RWLockReadMode<'a>,
533+
pub struct RWReadMode<'self, T> {
534+
priv data: &'self T,
535+
priv token: sync::RWLockReadMode<'self>,
536536
}
537537

538-
impl<'a, T:Freeze + Send> RWWriteMode<'a, T> {
538+
impl<'self, T:Freeze + Send> RWWriteMode<'self, T> {
539539
/// Access the pre-downgrade RWArc in write mode.
540540
pub fn write<U>(&mut self, blk: |x: &mut T| -> U) -> U {
541541
match *self {
@@ -574,7 +574,7 @@ impl<'a, T:Freeze + Send> RWWriteMode<'a, T> {
574574
}
575575
}
576576

577-
impl<'a, T:Freeze + Send> RWReadMode<'a, T> {
577+
impl<'self, T:Freeze + Send> RWReadMode<'self, T> {
578578
/// Access the post-downgrade rwlock in read mode.
579579
pub fn read<U>(&self, blk: |x: &T| -> U) -> U {
580580
match *self {
@@ -597,6 +597,7 @@ mod tests {
597597

598598
use arc::*;
599599

600+
use std::cell::Cell;
600601
use std::comm;
601602
use std::task;
602603

@@ -627,18 +628,18 @@ mod tests {
627628
let arc = ~MutexArc::new(false);
628629
let arc2 = ~arc.clone();
629630
let (p,c) = comm::oneshot();
630-
do task::spawn {
631+
let (c,p) = (Cell::new(c), Cell::new(p));
632+
do task::spawn || {
631633
// wait until parent gets in
632-
p.recv();
634+
p.take().recv();
633635
arc2.access_cond(|state, cond| {
634636
*state = true;
635637
cond.signal();
636638
})
637639
}
638640

639-
let mut c = Some(c);
640641
arc.access_cond(|state, cond| {
641-
c.take_unwrap().send(());
642+
c.take().send(());
642643
assert!(!*state);
643644
while !*state {
644645
cond.wait();

branches/try2/src/libextra/base64.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ pub trait ToBase64 {
5656
fn to_base64(&self, config: Config) -> ~str;
5757
}
5858

59-
impl<'a> ToBase64 for &'a [u8] {
59+
impl<'self> ToBase64 for &'self [u8] {
6060
/**
6161
* Turn a vector of `u8` bytes into a base64 string.
6262
*
@@ -157,7 +157,7 @@ pub trait FromBase64 {
157157
fn from_base64(&self) -> Result<~[u8], ~str>;
158158
}
159159

160-
impl<'a> FromBase64 for &'a str {
160+
impl<'self> FromBase64 for &'self str {
161161
/**
162162
* Convert any base64 encoded string (literal, `@`, `&`, or `~`)
163163
* to the byte values it encodes.

branches/try2/src/libextra/bitv.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -578,13 +578,13 @@ fn iterate_bits(base: uint, bits: uint, f: |uint| -> bool) -> bool {
578578
}
579579

580580
/// An iterator for `Bitv`.
581-
pub struct BitvIterator<'a> {
582-
priv bitv: &'a Bitv,
581+
pub struct BitvIterator<'self> {
582+
priv bitv: &'self Bitv,
583583
priv next_idx: uint,
584584
priv end_idx: uint,
585585
}
586586

587-
impl<'a> Iterator<bool> for BitvIterator<'a> {
587+
impl<'self> Iterator<bool> for BitvIterator<'self> {
588588
#[inline]
589589
fn next(&mut self) -> Option<bool> {
590590
if self.next_idx != self.end_idx {
@@ -602,7 +602,7 @@ impl<'a> Iterator<bool> for BitvIterator<'a> {
602602
}
603603
}
604604

605-
impl<'a> DoubleEndedIterator<bool> for BitvIterator<'a> {
605+
impl<'self> DoubleEndedIterator<bool> for BitvIterator<'self> {
606606
#[inline]
607607
fn next_back(&mut self) -> Option<bool> {
608608
if self.next_idx != self.end_idx {
@@ -614,9 +614,9 @@ impl<'a> DoubleEndedIterator<bool> for BitvIterator<'a> {
614614
}
615615
}
616616

617-
impl<'a> ExactSize<bool> for BitvIterator<'a> {}
617+
impl<'self> ExactSize<bool> for BitvIterator<'self> {}
618618

619-
impl<'a> RandomAccessIterator<bool> for BitvIterator<'a> {
619+
impl<'self> RandomAccessIterator<bool> for BitvIterator<'self> {
620620
#[inline]
621621
fn indexable(&self) -> uint {
622622
self.end_idx - self.next_idx
@@ -903,12 +903,12 @@ impl BitvSet {
903903
}
904904
}
905905

906-
pub struct BitvSetIterator<'a> {
907-
priv set: &'a BitvSet,
906+
pub struct BitvSetIterator<'self> {
907+
priv set: &'self BitvSet,
908908
priv next_idx: uint
909909
}
910910

911-
impl<'a> Iterator<uint> for BitvSetIterator<'a> {
911+
impl<'self> Iterator<uint> for BitvSetIterator<'self> {
912912
#[inline]
913913
fn next(&mut self) -> Option<uint> {
914914
while self.next_idx < self.set.capacity() {

0 commit comments

Comments
 (0)