Skip to content

Commit fa0480e

Browse files
committed
---
yaml --- r: 187423 b: refs/heads/try c: 2d0e6ca h: refs/heads/master i: 187421: 021f2ea 187419: 0f4b2f2 187415: 71f04b8 187407: e2e58d2 187391: 56b3b57 v: v3
1 parent cea65d4 commit fa0480e

File tree

41 files changed

+112
-815
lines changed

Some content is hidden

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

41 files changed

+112
-815
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: b4c965ee803a4521d8b4575f634e036f93e408f3
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 3a96d6a9818fe2affc98a187fb1065120458cee9
5-
refs/heads/try: 5d4e01766bd0b3b171149d41effe5564caf0a38b
5+
refs/heads/try: 2d0e6caeeca9dbf60018b6308e20d3c907e24d78
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
88
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try/src/etc/htmldocck.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,6 @@
9696
highlights for example. If you want to simply check the presence of
9797
given node or attribute, use an empty string (`""`) as a `PATTERN`.
9898
99-
* `@count PATH XPATH COUNT' checks for the occurrence of given XPath
100-
in the given file. The number of occurrences must match the given count.
101-
10299
All conditions can be negated with `!`. `@!has foo/type.NoSuch.html`
103100
checks if the given file does not exist, for example.
104101
@@ -336,11 +333,6 @@ def check_tree_text(tree, path, pat, regexp):
336333
return ret
337334

338335

339-
def check_tree_count(tree, path, count):
340-
path = normalize_xpath(path)
341-
return len(tree.findall(path)) == count
342-
343-
344336
def check(target, commands):
345337
cache = CachedFiles(target)
346338
for c in commands:
@@ -368,13 +360,6 @@ def check(target, commands):
368360
raise RuntimeError('Invalid number of @{} arguments \
369361
at line {}'.format(c.cmd, c.lineno))
370362

371-
elif c.cmd == 'count': # count test
372-
if len(c.args) == 3: # @count <path> <pat> <count> = count test
373-
ret = check_tree_count(cache.get_tree(c.args[0]), c.args[1], int(c.args[2]))
374-
else:
375-
raise RuntimeError('Invalid number of @{} arguments \
376-
at line {}'.format(c.cmd, c.lineno))
377-
378363
elif c.cmd == 'valid-html':
379364
raise RuntimeError('Unimplemented @valid-html at line {}'.format(c.lineno))
380365

branches/try/src/liballoc/arc.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,6 @@ pub struct Weak<T> {
139139
unsafe impl<T: Sync + Send> Send for Weak<T> { }
140140
unsafe impl<T: Sync + Send> Sync for Weak<T> { }
141141

142-
#[stable(feature = "rust1", since = "1.0.0")]
143-
impl<T: fmt::Debug> fmt::Debug for Weak<T> {
144-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
145-
write!(f, "(Weak)")
146-
}
147-
}
148-
149142
struct ArcInner<T> {
150143
strong: atomic::AtomicUsize,
151144
weak: atomic::AtomicUsize,

branches/try/src/libcollections/btree/node.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,7 +1085,7 @@ impl<K, V> Node<K, V> {
10851085
vals: RawItems::from_slice(self.vals()),
10861086
edges: RawItems::from_slice(self.edges()),
10871087

1088-
ptr: Unique::new(*self.keys as *mut u8),
1088+
ptr: *self.keys as *mut u8,
10891089
capacity: self.capacity(),
10901090
is_leaf: self.is_leaf()
10911091
},
@@ -1354,14 +1354,11 @@ struct MoveTraversalImpl<K, V> {
13541354
edges: RawItems<Node<K, V>>,
13551355

13561356
// For deallocation when we are done iterating.
1357-
ptr: Unique<u8>,
1357+
ptr: *mut u8,
13581358
capacity: usize,
13591359
is_leaf: bool
13601360
}
13611361

1362-
unsafe impl<K: Sync, V: Sync> Sync for MoveTraversalImpl<K, V> {}
1363-
unsafe impl<K: Send, V: Send> Send for MoveTraversalImpl<K, V> {}
1364-
13651362
impl<K, V> TraversalImpl for MoveTraversalImpl<K, V> {
13661363
type Item = (K, V);
13671364
type Edge = Node<K, V>;
@@ -1404,7 +1401,7 @@ impl<K, V> Drop for MoveTraversalImpl<K, V> {
14041401

14051402
let (alignment, size) =
14061403
calculate_allocation_generic::<K, V>(self.capacity, self.is_leaf);
1407-
unsafe { heap::deallocate(*self.ptr, size, alignment) };
1404+
unsafe { heap::deallocate(self.ptr, size, alignment) };
14081405
}
14091406
}
14101407

@@ -1428,12 +1425,12 @@ pub enum TraversalItem<K, V, E> {
14281425
/// A traversal over a node's entries and edges
14291426
pub type Traversal<'a, K, V> = AbsTraversal<ElemsAndEdges<Zip<slice::Iter<'a, K>,
14301427
slice::Iter<'a, V>>,
1431-
slice::Iter<'a, Node<K, V>>>>;
1428+
slice::Iter<'a, Node<K, V>>>>;
14321429

14331430
/// A mutable traversal over a node's entries and edges
14341431
pub type MutTraversal<'a, K, V> = AbsTraversal<ElemsAndEdges<Zip<slice::Iter<'a, K>,
14351432
slice::IterMut<'a, V>>,
1436-
slice::IterMut<'a, Node<K, V>>>>;
1433+
slice::IterMut<'a, Node<K, V>>>>;
14371434

14381435
/// An owning traversal over a node's entries and edges
14391436
pub type MoveTraversal<K, V> = AbsTraversal<MoveTraversalImpl<K, V>>;

branches/try/src/libcollections/linked_list.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ struct Rawlink<T> {
5151
}
5252

5353
impl<T> Copy for Rawlink<T> {}
54-
unsafe impl<T:Send> Send for Rawlink<T> {}
55-
unsafe impl<T:Sync> Sync for Rawlink<T> {}
54+
unsafe impl<T:'static+Send> Send for Rawlink<T> {}
55+
unsafe impl<T:Send+Sync> Sync for Rawlink<T> {}
5656

5757
struct Node<T> {
5858
next: Link<T>,

branches/try/src/libcollections/vec.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,9 +1755,6 @@ pub struct Drain<'a, T:'a> {
17551755
marker: PhantomData<&'a T>,
17561756
}
17571757

1758-
unsafe impl<'a, T: Sync> Sync for Drain<'a, T> {}
1759-
unsafe impl<'a, T: Send> Send for Drain<'a, T> {}
1760-
17611758
#[stable(feature = "rust1", since = "1.0.0")]
17621759
impl<'a, T> Iterator for Drain<'a, T> {
17631760
type Item = T;

branches/try/src/libcollections/vec_deque.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use core::cmp::Ordering;
2424
use core::default::Default;
2525
use core::fmt;
2626
use core::iter::{self, repeat, FromIterator, IntoIterator, RandomAccessIterator};
27+
use core::marker;
2728
use core::mem;
2829
use core::num::{Int, UnsignedInt};
2930
use core::ops::{Index, IndexMut};
@@ -58,6 +59,12 @@ pub struct VecDeque<T> {
5859
ptr: Unique<T>,
5960
}
6061

62+
#[stable(feature = "rust1", since = "1.0.0")]
63+
unsafe impl<T: Send> Send for VecDeque<T> {}
64+
65+
#[stable(feature = "rust1", since = "1.0.0")]
66+
unsafe impl<T: Sync> Sync for VecDeque<T> {}
67+
6168
#[stable(feature = "rust1", since = "1.0.0")]
6269
impl<T: Clone> Clone for VecDeque<T> {
6370
fn clone(&self) -> VecDeque<T> {
@@ -538,7 +545,9 @@ impl<T> VecDeque<T> {
538545
IterMut {
539546
tail: self.tail,
540547
head: self.head,
541-
ring: unsafe { self.buffer_as_mut_slice() },
548+
cap: self.cap,
549+
ptr: *self.ptr,
550+
marker: marker::PhantomData,
542551
}
543552
}
544553

@@ -1506,12 +1515,17 @@ impl<'a, T> RandomAccessIterator for Iter<'a, T> {
15061515
}
15071516
}
15081517

1518+
// FIXME This was implemented differently from Iter because of a problem
1519+
// with returning the mutable reference. I couldn't find a way to
1520+
// make the lifetime checker happy so, but there should be a way.
15091521
/// `VecDeque` mutable iterator.
15101522
#[stable(feature = "rust1", since = "1.0.0")]
15111523
pub struct IterMut<'a, T:'a> {
1512-
ring: &'a mut [T],
1524+
ptr: *mut T,
15131525
tail: usize,
15141526
head: usize,
1527+
cap: usize,
1528+
marker: marker::PhantomData<&'a mut T>,
15151529
}
15161530

15171531
#[stable(feature = "rust1", since = "1.0.0")]
@@ -1524,17 +1538,16 @@ impl<'a, T> Iterator for IterMut<'a, T> {
15241538
return None;
15251539
}
15261540
let tail = self.tail;
1527-
self.tail = wrap_index(self.tail + 1, self.ring.len());
1541+
self.tail = wrap_index(self.tail + 1, self.cap);
15281542

15291543
unsafe {
1530-
let elem = self.ring.get_unchecked_mut(tail);
1531-
Some(&mut *(elem as *mut _))
1544+
Some(&mut *self.ptr.offset(tail as isize))
15321545
}
15331546
}
15341547

15351548
#[inline]
15361549
fn size_hint(&self) -> (usize, Option<usize>) {
1537-
let len = count(self.tail, self.head, self.ring.len());
1550+
let len = count(self.tail, self.head, self.cap);
15381551
(len, Some(len))
15391552
}
15401553
}
@@ -1546,11 +1559,10 @@ impl<'a, T> DoubleEndedIterator for IterMut<'a, T> {
15461559
if self.tail == self.head {
15471560
return None;
15481561
}
1549-
self.head = wrap_index(self.head - 1, self.ring.len());
1562+
self.head = wrap_index(self.head - 1, self.cap);
15501563

15511564
unsafe {
1552-
let elem = self.ring.get_unchecked_mut(self.head);
1553-
Some(&mut *(elem as *mut _))
1565+
Some(&mut *self.ptr.offset(self.head as isize))
15541566
}
15551567
}
15561568
}

branches/try/src/libcore/fmt/mod.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ pub trait Write {
110110
/// traits.
111111
#[stable(feature = "rust1", since = "1.0.0")]
112112
pub struct Formatter<'a> {
113+
#[cfg(not(stage0))]
113114
flags: u32,
115+
#[cfg(stage0)]
116+
flags: usize,
114117
fill: char,
115118
align: rt::v1::Alignment,
116119
width: Option<usize>,
@@ -156,6 +159,13 @@ impl<'a> ArgumentV1<'a> {
156159
}
157160
}
158161

162+
#[cfg(stage0)]
163+
#[doc(hidden)]
164+
#[stable(feature = "rust1", since = "1.0.0")]
165+
pub fn from_uint(x: &uint) -> ArgumentV1 {
166+
ArgumentV1::new(x, ArgumentV1::show_usize)
167+
}
168+
#[cfg(not(stage0))]
159169
#[doc(hidden)]
160170
#[stable(feature = "rust1", since = "1.0.0")]
161171
pub fn from_usize(x: &usize) -> ArgumentV1 {
@@ -595,9 +605,14 @@ impl<'a> Formatter<'a> {
595605
write(self.buf, fmt)
596606
}
597607

608+
#[cfg(not(stage0))]
598609
/// Flags for formatting (packed version of rt::Flag)
599610
#[stable(feature = "rust1", since = "1.0.0")]
600611
pub fn flags(&self) -> u32 { self.flags }
612+
#[cfg(stage0)]
613+
/// Flags for formatting (packed version of rt::Flag)
614+
#[stable(feature = "rust1", since = "1.0.0")]
615+
pub fn flags(&self) -> usize { self.flags }
601616

602617
/// Character used as 'fill' whenever there is alignment
603618
#[unstable(feature = "core", reason = "method was just created")]

branches/try/src/libcore/fmt/rt/v1.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ pub struct FormatSpec {
3232
pub fill: char,
3333
#[stable(feature = "rust1", since = "1.0.0")]
3434
pub align: Alignment,
35+
#[cfg(stage0)]
36+
#[stable(feature = "rust1", since = "1.0.0")]
37+
pub flags: usize,
38+
#[cfg(not(stage0))]
3539
#[stable(feature = "rust1", since = "1.0.0")]
3640
pub flags: u32,
3741
#[stable(feature = "rust1", since = "1.0.0")]

branches/try/src/libcore/iter.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ use num::{ToPrimitive, Int};
6868
use ops::{Add, Deref, FnMut};
6969
use option::Option;
7070
use option::Option::{Some, None};
71-
use marker::{Send, Sized, Sync};
71+
use marker::Sized;
7272
use usize;
7373

7474
/// An interface for dealing with "external iterators". These types of iterators
@@ -1786,10 +1786,6 @@ pub struct Peekable<I: Iterator> {
17861786
peeked: Option<I::Item>,
17871787
}
17881788

1789-
// FIXME: after #22828 being fixed, the following unsafe impl should be removed
1790-
unsafe impl<I: Iterator> Sync for Peekable<I> where I: Sync, I::Item: Sync {}
1791-
unsafe impl<I: Iterator> Send for Peekable<I> where I: Send, I::Item: Send {}
1792-
17931789
impl<I: Iterator + Clone> Clone for Peekable<I> where I::Item: Clone {
17941790
fn clone(&self) -> Peekable<I> {
17951791
Peekable {

branches/try/src/libcore/macros.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ macro_rules! panic {
1515
panic!("explicit panic")
1616
);
1717
($msg:expr) => ({
18+
#[cfg(stage0)]
19+
static _MSG_FILE_LINE: (&'static str, &'static str, usize) = ($msg, file!(), line!());
20+
#[cfg(not(stage0))]
1821
static _MSG_FILE_LINE: (&'static str, &'static str, u32) = ($msg, file!(), line!());
1922
::core::panicking::panic(&_MSG_FILE_LINE)
2023
});
@@ -23,6 +26,9 @@ macro_rules! panic {
2326
// used inside a dead function. Just `#[allow(dead_code)]` is
2427
// insufficient, since the user may have
2528
// `#[forbid(dead_code)]` and which cannot be overridden.
29+
#[cfg(stage0)]
30+
static _FILE_LINE: (&'static str, usize) = (file!(), line!());
31+
#[cfg(not(stage0))]
2632
static _FILE_LINE: (&'static str, u32) = (file!(), line!());
2733
::core::panicking::panic_fmt(format_args!($fmt, $($arg)*), &_FILE_LINE)
2834
});

branches/try/src/libcore/panicking.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,49 @@ use fmt;
3434

3535
#[cold] #[inline(never)] // this is the slow path, always
3636
#[lang="panic"]
37+
#[cfg(stage0)]
38+
pub fn panic(expr_file_line: &(&'static str, &'static str, usize)) -> ! {
39+
let (expr, file, line) = *expr_file_line;
40+
panic_fmt(format_args!("{}", expr), &(file, line))
41+
}
42+
#[cold] #[inline(never)] // this is the slow path, always
43+
#[lang="panic"]
44+
#[cfg(not(stage0))]
3745
pub fn panic(expr_file_line: &(&'static str, &'static str, u32)) -> ! {
3846
let (expr, file, line) = *expr_file_line;
3947
panic_fmt(format_args!("{}", expr), &(file, line))
4048
}
4149

4250
#[cold] #[inline(never)]
4351
#[lang="panic_bounds_check"]
52+
#[cfg(stage0)]
53+
fn panic_bounds_check(file_line: &(&'static str, usize),
54+
index: usize, len: usize) -> ! {
55+
panic_fmt(format_args!("index out of bounds: the len is {} but the index is {}",
56+
len, index), file_line)
57+
}
58+
#[cold] #[inline(never)]
59+
#[lang="panic_bounds_check"]
60+
#[cfg(not(stage0))]
4461
fn panic_bounds_check(file_line: &(&'static str, u32),
4562
index: usize, len: usize) -> ! {
4663
panic_fmt(format_args!("index out of bounds: the len is {} but the index is {}",
4764
len, index), file_line)
4865
}
4966

5067
#[cold] #[inline(never)]
68+
#[cfg(stage0)]
69+
pub fn panic_fmt(fmt: fmt::Arguments, file_line: &(&'static str, usize)) -> ! {
70+
#[allow(improper_ctypes)]
71+
extern {
72+
#[lang = "panic_fmt"]
73+
fn panic_impl(fmt: fmt::Arguments, file: &'static str, line: uint) -> !;
74+
}
75+
let (file, line) = *file_line;
76+
unsafe { panic_impl(fmt, file, line as uint) }
77+
}
78+
#[cold] #[inline(never)]
79+
#[cfg(not(stage0))]
5180
pub fn panic_fmt(fmt: fmt::Arguments, file_line: &(&'static str, u32)) -> ! {
5281
#[allow(improper_ctypes)]
5382
extern {

branches/try/src/libcore/slice.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ use ptr;
5151
use ptr::PtrExt;
5252
use mem;
5353
use mem::size_of;
54-
use marker::{Send, Sized, Sync, self};
54+
use marker::{Sized, self};
5555
use raw::Repr;
5656
// Avoid conflicts with *both* the Slice trait (buggy) and the `slice::raw` module.
5757
use raw::Slice as RawSlice;
@@ -740,9 +740,6 @@ pub struct Iter<'a, T: 'a> {
740740
_marker: marker::PhantomData<&'a T>,
741741
}
742742

743-
unsafe impl<'a, T: Sync> Sync for Iter<'a, T> {}
744-
unsafe impl<'a, T: Sync> Send for Iter<'a, T> {}
745-
746743
#[unstable(feature = "core")]
747744
impl<'a, T> ops::Index<ops::Range<usize>> for Iter<'a, T> {
748745
type Output = [T];
@@ -833,8 +830,6 @@ pub struct IterMut<'a, T: 'a> {
833830
_marker: marker::PhantomData<&'a mut T>,
834831
}
835832

836-
unsafe impl<'a, T: Sync> Sync for IterMut<'a, T> {}
837-
unsafe impl<'a, T: Send> Send for IterMut<'a, T> {}
838833

839834
#[unstable(feature = "core")]
840835
impl<'a, T> ops::Index<ops::Range<usize>> for IterMut<'a, T> {

branches/try/src/libcore/str/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,6 @@ impl<'a, P: Pattern<'a>> Iterator for SplitStr<'a, P> {
939939
type Item = &'a str;
940940

941941
#[inline]
942-
#[allow(deprecated)]
943942
fn next(&mut self) -> Option<&'a str> {
944943
Iterator::next(&mut self.0)
945944
}

0 commit comments

Comments
 (0)