Skip to content

Commit dee2e76

Browse files
committed
---
yaml --- r: 106231 b: refs/heads/auto c: e06348e h: refs/heads/master i: 106229: 285b816 106227: 4a6d318 106223: 403f774 v: v3
1 parent eeb313f commit dee2e76

File tree

219 files changed

+2603
-4786
lines changed

Some content is hidden

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

219 files changed

+2603
-4786
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: 02dab5a3e79a48c77d28c9aa6dcfea173584933b
16+
refs/heads/auto: e06348ea5516eb18f1b33d3ca19e3f0867bdf6df
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/src/compiletest/runtest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
337337
}
338338
}
339339

340-
if tool_path.equals(&~"") {
340+
if tool_path.is_empty() {
341341
fatal(~"cannot found android cross path");
342342
}
343343

@@ -452,7 +452,7 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
452452
let options_to_remove = [~"-O", ~"-g", ~"--debuginfo"];
453453
let new_options = split_maybe_args(options).move_iter()
454454
.filter(|x| !options_to_remove.contains(x))
455-
.to_owned_vec()
455+
.collect::<~[~str]>()
456456
.connect(" ");
457457
Some(new_options)
458458
}

branches/auto/src/doc/guide-tasks.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -493,14 +493,14 @@ Here is the function that implements the child task:
493493
~~~
494494
extern crate sync;
495495
# fn main() {
496-
fn stringifier(channel: &sync::DuplexStream<~str, uint>) {
497-
let mut value: uint;
498-
loop {
499-
value = channel.recv();
500-
channel.send(value.to_str());
501-
if value == 0 { break; }
502-
}
496+
fn stringifier(channel: &sync::DuplexStream<~str, uint>) {
497+
let mut value: uint;
498+
loop {
499+
value = channel.recv();
500+
channel.send(value.to_str());
501+
if value == 0 { break; }
503502
}
503+
}
504504
# }
505505
~~~~
506506

branches/auto/src/doc/rust.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ never invoking this behaviour or exposing an API making it possible for it to oc
10191019

10201020
* Data races
10211021
* Dereferencing a null/dangling raw pointer
1022-
* Mutating an immutable value/reference, if it is not marked as non-`Freeze`
1022+
* Mutating an immutable value/reference
10231023
* Reads of [undef](http://llvm.org/docs/LangRef.html#undefined-values) (uninitialized) memory
10241024
* Breaking the [pointer aliasing rules](http://llvm.org/docs/LangRef.html#pointer-aliasing-rules)
10251025
with raw pointers (a subset of the rules used by C)
@@ -3434,10 +3434,6 @@ call to the method `make_string`.
34343434
Types in Rust are categorized into kinds, based on various properties of the components of the type.
34353435
The kinds are:
34363436

3437-
`Freeze`
3438-
: Types of this kind are deeply immutable;
3439-
they contain no mutable memory locations
3440-
directly or indirectly via pointers.
34413437
`Send`
34423438
: Types of this kind can be safely sent between tasks.
34433439
This kind includes scalars, owning pointers, owned closures, and
@@ -3450,8 +3446,9 @@ The kinds are:
34503446
This kind includes scalars and immutable references,
34513447
as well as structural types containing other `Pod` types.
34523448
`'static`
3453-
: Types of this kind do not contain any references;
3454-
this can be a useful guarantee for code
3449+
: Types of this kind do not contain any references (except for
3450+
references with the `static` lifetime, which are allowed).
3451+
This can be a useful guarantee for code
34553452
that breaks borrowing assumptions
34563453
using [`unsafe` operations](#unsafe-functions).
34573454
`Drop`

branches/auto/src/doc/tutorial.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2099,10 +2099,6 @@ unless they contain managed boxes, managed closures, or references.
20992099
These are types that are safe to be used across several threads with access to
21002100
a `&T` pointer. `MutexArc` is an example of a *sharable* type with internal mutable data.
21012101
2102-
* `Freeze` - Constant (immutable) types.
2103-
These are types that do not contain anything intrinsically mutable.
2104-
Intrinsically mutable values include `Cell` in the standard library.
2105-
21062102
* `'static` - Non-borrowed types.
21072103
These are types that do not contain any data whose lifetime is bound to
21082104
a particular stack frame. These are types that do not contain any
@@ -2152,7 +2148,7 @@ We say that the `Printable` trait _provides_ a `print` method with the
21522148
given signature. This means that we can call `print` on an argument
21532149
of any type that implements the `Printable` trait.
21542150
2155-
Rust's built-in `Send` and `Freeze` types are examples of traits that
2151+
Rust's built-in `Send` and `Share` types are examples of traits that
21562152
don't provide any methods.
21572153
21582154
Traits may be implemented for specific types with [impls]. An impl for
@@ -2444,15 +2440,15 @@ Consequently, the trait objects themselves automatically fulfill their
24442440
respective kind bounds. However, this default behavior can be overridden by
24452441
specifying a list of bounds on the trait type, for example, by writing `~Trait:`
24462442
(which indicates that the contents of the owned trait need not fulfill any
2447-
bounds), or by writing `~Trait:Send+Freeze`, which indicates that in addition
2448-
to fulfilling `Send`, contents must also fulfill `Freeze`, and as a consequence,
2449-
the trait itself fulfills `Freeze`.
2443+
bounds), or by writing `~Trait:Send+Share`, which indicates that in addition
2444+
to fulfilling `Send`, contents must also fulfill `Share`, and as a consequence,
2445+
the trait itself fulfills `Share`.
24502446
24512447
* `~Trait:Send` is equivalent to `~Trait`.
24522448
* `&Trait:` is equivalent to `&Trait`.
24532449
24542450
Builtin kind bounds can also be specified on closure types in the same way (for
2455-
example, by writing `fn:Freeze()`), and the default behaviours are the same as
2451+
example, by writing `fn:Send()`), and the default behaviours are the same as
24562452
for traits of the same storage class.
24572453
24582454
## Trait inheritance

branches/auto/src/driver/driver.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#[no_uv]; // remove this after stage0
12-
#[allow(attribute_usage)]; // remove this after stage0
13-
extern crate native; // remove this after stage0
14-
1511
#[cfg(rustdoc)]
1612
extern crate this = "rustdoc";
1713

branches/auto/src/libarena/lib.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
html_root_url = "http://static.rust-lang.org/doc/master")];
2525
#[allow(missing_doc)];
2626
#[feature(managed_boxes)];
27-
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
2827

2928
extern crate collections;
3029

@@ -37,7 +36,6 @@ use std::mem;
3736
use std::ptr::read;
3837
use std::cmp;
3938
use std::num;
40-
use std::kinds::marker;
4139
use std::rc::Rc;
4240
use std::rt::global_heap;
4341
use std::intrinsics::{TyDesc, get_tydesc};
@@ -54,11 +52,11 @@ struct Chunk {
5452
}
5553
impl Chunk {
5654
fn capacity(&self) -> uint {
57-
self.data.deref().borrow().get().capacity()
55+
self.data.borrow().capacity()
5856
}
5957

6058
unsafe fn as_ptr(&self) -> *u8 {
61-
self.data.deref().borrow().get().as_ptr()
59+
self.data.borrow().as_ptr()
6260
}
6361
}
6462

@@ -90,7 +88,6 @@ pub struct Arena {
9088
priv head: Chunk,
9189
priv pod_head: Chunk,
9290
priv chunks: RefCell<@List<Chunk>>,
93-
priv no_freeze: marker::NoFreeze,
9491
}
9592

9693
impl Arena {
@@ -103,7 +100,6 @@ impl Arena {
103100
head: chunk(initial_size, false),
104101
pod_head: chunk(initial_size, true),
105102
chunks: RefCell::new(@Nil),
106-
no_freeze: marker::NoFreeze,
107103
}
108104
}
109105
}

branches/auto/src/libcollections/btree.rs

Lines changed: 13 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,12 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for BTree<K, V> {
9494

9595
impl<K: TotalOrd, V: TotalEq> Eq for BTree<K, V> {
9696
fn eq(&self, other: &BTree<K, V>) -> bool {
97-
self.equals(other)
98-
}
99-
}
100-
101-
impl<K: TotalOrd, V: TotalEq> TotalEq for BTree<K, V> {
102-
///Testing equality on BTrees by comparing the root.
103-
fn equals(&self, other: &BTree<K, V>) -> bool {
10497
self.root.cmp(&other.root) == Equal
10598
}
10699
}
107100

101+
impl<K: TotalOrd, V: TotalEq> TotalEq for BTree<K, V> {}
102+
108103
impl<K: TotalOrd, V: TotalEq> Ord for BTree<K, V> {
109104
fn lt(&self, other: &BTree<K, V>) -> bool {
110105
self.cmp(other) == Less
@@ -204,14 +199,6 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Node<K, V> {
204199

205200
impl<K: TotalOrd, V: TotalEq> Eq for Node<K, V> {
206201
fn eq(&self, other: &Node<K, V>) -> bool {
207-
self.equals(other)
208-
}
209-
}
210-
211-
impl<K: TotalOrd, V: TotalEq> TotalEq for Node<K, V> {
212-
///Returns whether two nodes are equal based on the keys of each element.
213-
///Two nodes are equal if all of their keys are the same.
214-
fn equals(&self, other: &Node<K, V>) -> bool{
215202
match *self{
216203
BranchNode(ref branch) => {
217204
if other.is_leaf() {
@@ -232,6 +219,8 @@ impl<K: TotalOrd, V: TotalEq> TotalEq for Node<K, V> {
232219
}
233220
}
234221

222+
impl<K: TotalOrd, V: TotalEq> TotalEq for Node<K, V> {}
223+
235224
impl<K: TotalOrd, V: TotalEq> Ord for Node<K, V> {
236225
fn lt(&self, other: &Node<K, V>) -> bool {
237226
self.cmp(other) == Less
@@ -405,16 +394,11 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Leaf<K, V> {
405394

406395
impl<K: TotalOrd, V: TotalEq> Eq for Leaf<K, V> {
407396
fn eq(&self, other: &Leaf<K, V>) -> bool {
408-
self.equals(other)
397+
self.elts == other.elts
409398
}
410399
}
411400

412-
impl<K: TotalOrd, V: TotalEq> TotalEq for Leaf<K, V> {
413-
///Implementation of equals function for leaves that compares LeafElts.
414-
fn equals(&self, other: &Leaf<K, V>) -> bool {
415-
self.elts.equals(&other.elts)
416-
}
417-
}
401+
impl<K: TotalOrd, V: TotalEq> TotalEq for Leaf<K, V> {}
418402

419403
impl<K: TotalOrd, V: TotalEq> Ord for Leaf<K, V> {
420404
fn lt(&self, other: &Leaf<K, V>) -> bool {
@@ -639,16 +623,11 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Branch<K, V> {
639623

640624
impl<K: TotalOrd, V: TotalEq> Eq for Branch<K, V> {
641625
fn eq(&self, other: &Branch<K, V>) -> bool {
642-
self.equals(other)
626+
self.elts == other.elts
643627
}
644628
}
645629

646-
impl<K: TotalOrd, V: TotalEq> TotalEq for Branch<K, V> {
647-
///Equals function for Branches--compares all the elements in each branch
648-
fn equals(&self, other: &Branch<K, V>) -> bool {
649-
self.elts.equals(&other.elts)
650-
}
651-
}
630+
impl<K: TotalOrd, V: TotalEq> TotalEq for Branch<K, V> {}
652631

653632
impl<K: TotalOrd, V: TotalEq> Ord for Branch<K, V> {
654633
fn lt(&self, other: &Branch<K, V>) -> bool {
@@ -712,16 +691,11 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for LeafElt<K, V> {
712691

713692
impl<K: TotalOrd, V: TotalEq> Eq for LeafElt<K, V> {
714693
fn eq(&self, other: &LeafElt<K, V>) -> bool {
715-
self.equals(other)
694+
self.key == other.key && self.value == other.value
716695
}
717696
}
718697

719-
impl<K: TotalOrd, V: TotalEq> TotalEq for LeafElt<K, V> {
720-
///TotalEq for LeafElts
721-
fn equals(&self, other: &LeafElt<K, V>) -> bool {
722-
self.key.equals(&other.key) && self.value.equals(&other.value)
723-
}
724-
}
698+
impl<K: TotalOrd, V: TotalEq> TotalEq for LeafElt<K, V> {}
725699

726700
impl<K: TotalOrd, V: TotalEq> Ord for LeafElt<K, V> {
727701
fn lt(&self, other: &LeafElt<K, V>) -> bool {
@@ -766,16 +740,11 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for BranchElt<K, V> {
766740

767741
impl<K: TotalOrd, V: TotalEq> Eq for BranchElt<K, V>{
768742
fn eq(&self, other: &BranchElt<K, V>) -> bool {
769-
self.equals(other)
743+
self.key == other.key && self.value == other.value
770744
}
771745
}
772746

773-
impl<K: TotalOrd, V: TotalEq> TotalEq for BranchElt<K, V>{
774-
///TotalEq for BranchElts
775-
fn equals(&self, other: &BranchElt<K, V>) -> bool {
776-
self.key.equals(&other.key)&&self.value.equals(&other.value)
777-
}
778-
}
747+
impl<K: TotalOrd, V: TotalEq> TotalEq for BranchElt<K, V>{}
779748

780749
impl<K: TotalOrd, V: TotalEq> Ord for BranchElt<K, V> {
781750
fn lt(&self, other: &BranchElt<K, V>) -> bool {
@@ -900,7 +869,7 @@ mod test_btree {
900869
fn btree_clone_test() {
901870
let b = BTree::new(1, ~"abc", 2);
902871
let b2 = b.clone();
903-
assert!(b.root.equals(&b2.root))
872+
assert!(b.root == b2.root)
904873
}
905874
906875
//Tests the BTree's cmp() method when one node is "less than" another.

branches/auto/src/libcollections/enum_set.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
1616
use std::num::Bitwise;
1717

18-
#[deriving(Clone, Eq, Hash, Show)]
18+
#[deriving(Clone, Eq, TotalEq, Hash, Show)]
1919
/// A specialized Set implementation to use enum types.
2020
pub struct EnumSet<E> {
2121
// We must maintain the invariant that no bits are set

0 commit comments

Comments
 (0)