Skip to content

Commit 7eb9a9b

Browse files
author
blake2-ppc
committed
---
yaml --- r: 81756 b: refs/heads/master c: 4cd3c5c h: refs/heads/master v: v3
1 parent 48037ef commit 7eb9a9b

File tree

147 files changed

+2803
-7043
lines changed

Some content is hidden

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

147 files changed

+2803
-7043
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 2ab278f130cb206ce9117145ddefbbb650ba8c68
2+
refs/heads/master: 4cd3c5c72fef53c48accf5e4ee7f193c89570181
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6c08cc2db4f98e9f07ae7d50338396c4123c2f0a
55
refs/heads/try: 70152ff55722878cde684ee6462c14c65f2c4729

trunk/.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[attr]rust text eol=lf whitespace=tab-in-indent,trailing-space,tabwidth=4
22

3-
* text=auto eol=lf
3+
* text eol=lf
44
*.cpp rust
55
*.h rust
66
*.rs rust

trunk/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ endif
102102

103103
ifdef CFG_ENABLE_DEBUG
104104
$(info cfg: enabling more debugging (CFG_ENABLE_DEBUG))
105+
CFG_RUSTC_FLAGS += --cfg debug
105106
CFG_GCCISH_CFLAGS += -DRUST_DEBUG
106107
else
107-
CFG_RUSTC_FLAGS += --cfg ndebug
108108
CFG_GCCISH_CFLAGS += -DRUST_NDEBUG
109109
endif
110110

trunk/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ documentation.
6161

6262
[repo]: https://github.com/mozilla/rust
6363
[tarball]: http://static.rust-lang.org/dist/rust-0.7.tar.gz
64-
[tutorial]: http://static.rust-lang.org/doc/0.7/tutorial.html
64+
[tutorial]: http://static.rust-lang.org/doc/tutorial.html
6565

6666
## Notes
6767

trunk/RELEASES.txt

Lines changed: 0 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,3 @@
1-
Version 0.8 (October 2013)
2-
--------------------------
3-
4-
* ~2100 changes, numerous bugfixes
5-
6-
* Language
7-
* The `for` loop syntax has changed to work with the `Iterator` trait.
8-
* At long last, unwinding works on Windows.
9-
* Default methods are ready for use.
10-
* Many trait inheritance bugs fixed.
11-
* Owned and borrowed trait objects work more reliably.
12-
* `copy` is no longer a keyword. It has been replaced by the `Clone` trait.
13-
* rustc can omit emission of code for the `debug!` macro if it is passed
14-
`--cfg ndebug`
15-
* mod.rs is now "blessed". When loading `mod foo;`, rustc will now look
16-
for foo.rs, then foo/mod.rs, and will generate an error when both are
17-
present.
18-
* Strings no longer contain trailing nulls. The new `std::c_str` module
19-
provides new mechanisms for converting to C strings.
20-
* The type of foreign functions is now `extern "C" fn` instead of `*u8'.
21-
* The FFI has been overhauled such that foreign functions are called directly,
22-
instead of through a stack-switching wrapper.
23-
* Calling a foreign function must be done through a Rust function with the
24-
`#[fixed_stack_segment]` attribute.
25-
* The `externfn!` macro can be used to declare both a foreign function and
26-
a `#[fixed_stack_segment]` wrapper at once.
27-
* `pub` and `priv` modifiers on `extern` blocks are no longer parsed.
28-
* `unsafe` is no longer allowed on extern fns - they are all unsafe.
29-
* `priv` is disallowed everywhere except for struct fields and enum variants.
30-
* `&T` (besides `&'static T`) is no longer allowed in `@T`.
31-
* `ref` bindings in irrefutable patterns work correctly now.
32-
* `char` is now prevented from containing invalid code points.
33-
* Casting to `bool` is no longer allowed.
34-
* `yield` is a reserved keyword.
35-
* `typeof` is a reserved keyword.
36-
* Crates may be imported by URL with `extern mod foo = "url";`.
37-
* Explicit enum discriminants may be given as uints as in `enum E { V = 0u }`
38-
* Static vectors can be initialized with repeating elements,
39-
e.g. `static foo: [u8, .. 100]: [0, .. 100];`.
40-
* Static structs can be initialized with functional record update,
41-
e.g. `static foo: Foo = Foo { a: 5, .. bar };`.
42-
* `cfg!` can be used to conditionally execute code based on the crate
43-
configuration, similarly to `#[cfg(...)]`.
44-
* The `unnecessary_qualification` lint detects unneeded module
45-
prefixes (default: allow).
46-
* Arithmetic operations have been implemented on the SIMD types in
47-
`std::unstable::simd`.
48-
* Exchange allocation headers were removed, reducing memory usage.
49-
* `format!` implements a completely new, extensible, and higher-performance
50-
string formatting system. It will replace `fmt!`.
51-
* `print!` and `println!` write formatted strings (using the `format!`
52-
extension) to stdout.
53-
* `write!` and `writeln!` write formatted strings (using the `format!`
54-
extension) to the new Writers in `std::rt::io`.
55-
* The library section in which a function or static is placed may
56-
be specified with `#[link_section = "..."]`.
57-
* The `proto!` syntax extension for defining bounded message protocols
58-
was removed.
59-
* `macro_rules!` is hygienic for `let` declarations.
60-
* The `#[export_name]` attribute specifies the name of a symbol.
61-
* `unreachable!` can be used to indicate unreachable code, and fails
62-
if executed.
63-
64-
* Libraries
65-
* std: Transitioned to the new runtime, written in Rust.
66-
* std: Added an experimental I/O library, `rt::io`, based on the new
67-
runtime.
68-
* std: A new generic `range` function was added to the prelude, replacing
69-
`uint::range` and friends.
70-
* std: `range_rev` no longer exists. Since range is an iterator it can be
71-
reversed with `range(lo, hi).invert()`.
72-
* std: The `chain` method on option renamed to `and_then`; `unwrap_or_default`
73-
renamed to `unwrap_or`.
74-
* std: The `iterator` module was renamed to `iter`.
75-
* std: Integral types now support the `checked_add`, `checked_sub`, and
76-
`checked_mul` operations for detecting overflow.
77-
* std: Many methods in `str`, `vec`, `option, `result` were renamed for
78-
consistency.
79-
* std: Methods are standardizing on conventions for casting methods:
80-
`to_foo` for copying, `into_foo` for moving, `as_foo` for temporary
81-
and cheap casts.
82-
* std: The `CString` type in `c_str` provides new ways to convert to and
83-
from C strings.
84-
* std: `DoubleEndedIterator` can yield elements in two directions.
85-
* std: The `mut_split` method on vectors partitions an `&mut [T]` into
86-
two splices.
87-
* std: `str::from_bytes` renamed to `str::from_utf8`.
88-
* std: `pop_opt` and `shift_opt` methods added to vectors.
89-
* std: The task-local data interface no longer uses @, and keys are
90-
no longer function pointers.
91-
* std: The `swap_unwrap` method of `Option` renamed to `take_unwrap`.
92-
* std: Added `SharedPort` to `comm`.
93-
* std: `Eq` has a default method for `ne`; only `eq` is required
94-
in implementations.
95-
* std: `Ord` has default methods for `le`, `gt` and `ge`; only `lt`
96-
is required in implementations.
97-
* std: `is_utf8` performance is improved, impacting many string functions.
98-
* std: `os::MemoryMap` provides cross-platform mmap.
99-
* std: `ptr::offset` is now unsafe, but also more optimized. Offsets that
100-
are not 'in-bounds' are considered undefined.
101-
* std: Many freestanding functions in `vec` removed in favor of methods.
102-
* std: Many freestanding functions on scalar types removed in favor of
103-
methods.
104-
* std: Many options to task builders were removed since they don't make
105-
sense in the new scheduler design.
106-
* std: More containers implement `FromIterator` so can be created by the
107-
`collect` method.
108-
* std: More complete atomic types in `unstable::atomics`.
109-
* std: `comm::PortSet` removed.
110-
* std: Mutating methods in the `Set` and `Map` traits have been moved into
111-
the `MutableSet` and `MutableMap` traits. `Container::is_empty`,
112-
`Map::contains_key`, `MutableMap::insert`, and `MutableMap::remove` have
113-
default implementations.
114-
* extra: `dlist`, the doubly-linked list was modernized.
115-
* extra: Added a `hex` module with `ToHex` and `FromHex` traits.
116-
* extra: Added `glob` module, replacing `std::os::glob`.
117-
* extra: `rope` was removed.
118-
* extra: `deque` was renamed to `ringbuf`. `RingBuf` implements `Deque`.
119-
* extra: `net`, and `timer` were removed. The experimental replacements
120-
are `std::rt::io::net` and `std::rt::io::timer`.
121-
* extra: Iterators implemented for `SmallIntMap`.
122-
* extra: Iterators implemented for `Bitv` and `BitvSet`.
123-
* extra: `SmallIntSet` removed. Use `BitvSet`.
124-
* extra: Performance of JSON parsing greatly improved.
125-
* extra: `semver` updated to SemVer 2.0.0.
126-
* extra: `term` handles more terminals correctly.
127-
* extra: `dbg` module removed.
128-
129-
* Other
130-
* rustc's debug info generation (`-Z debug-info`) is greatly improved.
131-
* rustc accepts `--target-cpu` to compile to a specific CPU architecture,
132-
similarly to gcc's `--march` flag.
133-
* rustc's performance compiling small crates is much better.
134-
* rustpkg has received many improvements.
135-
* rustpkg supports git tags as package IDs.
136-
* rustpkg builds into target-specific directories so it can be used for
137-
cross-compiling.
138-
* The number of concurrent test tasks is controlled by the environment
139-
variable RUST_TEST_TASKS.
140-
* The test harness can now report metrics for benchmarks.
141-
* All tools have man pages.
142-
* Programs compiled with `--test` now support the `-h` and `--help` flags.
143-
* The runtime uses jemalloc for allocations.
144-
* Segmented stacks are temporarily disabled as part of the transition to
145-
the new runtime. Stack overflows are possible!
146-
* A new documentation backend, rustdoc_ng, is available for use
147-
1481
Version 0.7 (July 2013)
1492
-----------------------
1503

trunk/configure

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ opt optimize-cxx 1 "build optimized C++ code"
373373
opt optimize-llvm 1 "build optimized LLVM"
374374
opt optimize-tests 1 "build tests with optimizations"
375375
opt llvm-assertions 1 "build LLVM with assertions"
376-
opt debug 1 "build with extra debug fun"
376+
opt debug 0 "build with extra debug fun"
377377
opt ratchet-bench 0 "ratchet benchmarks"
378378
opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
379379
opt manage-submodules 1 "let the build manage the git submodules"
@@ -845,9 +845,6 @@ do
845845

846846
# Disable unused LLVM features
847847
LLVM_OPTS="$LLVM_DBG_OPTS $LLVM_ASSERTION_OPTS --disable-docs --enable-bindings=none"
848-
# Disable term-info, linkage of which comes in multiple forms,
849-
# making our snapshots incompatible (#9334)
850-
LLVM_OPTS="$LLVM_OPTS --disable-terminfo"
851848

852849
case "$CFG_C_COMPILER" in
853850
("ccache clang")

trunk/doc/rust.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3428,8 +3428,8 @@ sign (`=`) followed by the log level, from 1 to 4, inclusive. Level 1
34283428
is the error level, 2 is warning, 3 info, and 4 debug. You can also
34293429
use the symbolic constants `error`, `warn`, `info`, and `debug`. Any
34303430
logs less than or equal to the specified level will be output. If not
3431-
specified then log level 4 is assumed. Debug messages can be omitted
3432-
by passing `--cfg ndebug` to `rustc`.
3431+
specified then log level 4 is assumed. However, debug messages are
3432+
only available if `--cfg=debug` is passed to `rustc`.
34333433

34343434
As an example, to see all the logs generated by the compiler, you would set
34353435
`RUST_LOG` to `rustc`, which is the crate name (as specified in its `link`

trunk/doc/tutorial-container.md

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
The container traits are defined in the `std::container` module.
66

7-
## Unique vectors
7+
## Unique and managed vectors
88

9-
Vectors have `O(1)` indexing, push (to the end) and pop (from the end). Vectors
10-
are the most common container in Rust, and are flexible enough to fit many use
11-
cases.
9+
Vectors have `O(1)` indexing and removal from the end, along with `O(1)`
10+
amortized insertion. Vectors are the most common container in Rust, and are
11+
flexible enough to fit many use cases.
1212

1313
Vectors can also be sorted and used as efficient lookup tables with the
14-
`bsearch()` method, if all the elements are inserted at one time and
14+
`std::vec::bsearch` function, if all the elements are inserted at one time and
1515
deletions are unnecessary.
1616

1717
## Maps and sets
@@ -42,15 +42,10 @@ implementing the `IterBytes` trait.
4242

4343
## Double-ended queues
4444

45-
The `extra::ringbuf` module implements a double-ended queue with `O(1)`
46-
amortized inserts and removals from both ends of the container. It also has
47-
`O(1)` indexing like a vector. The contained elements are not required to be
48-
copyable, and the queue will be sendable if the contained type is sendable.
49-
Its interface `Deque` is defined in `extra::collections`.
50-
51-
The `extra::dlist` module implements a double-ended linked list, also
52-
implementing the `Deque` trait, with `O(1)` removals and inserts at either end,
53-
and `O(1)` concatenation.
45+
The `extra::deque` module implements a double-ended queue with `O(1)` amortized
46+
inserts and removals from both ends of the container. It also has `O(1)`
47+
indexing like a vector. The contained elements are not required to be copyable,
48+
and the queue will be sendable if the contained type is sendable.
5449

5550
## Priority queues
5651

@@ -202,11 +197,11 @@ The function `range` (or `range_inclusive`) allows to simply iterate through a g
202197
203198
~~~
204199
for i in range(0, 5) {
205-
print!("{} ", i) // prints "0 1 2 3 4"
200+
printf!("%d ", i) // prints "0 1 2 3 4"
206201
}
207202

208203
for i in std::iter::range_inclusive(0, 5) { // needs explicit import
209-
print!("{} ", i) // prints "0 1 2 3 4 5"
204+
printf!("%d ", i) // prints "0 1 2 3 4 5"
210205
}
211206
~~~
212207
@@ -238,15 +233,15 @@ let mut it = xs.iter().zip(ys.iter());
238233

239234
// print out the pairs of elements up to (&3, &"baz")
240235
for (x, y) in it {
241-
println!("{} {}", *x, *y);
236+
printfln!("%d %s", *x, *y);
242237

243238
if *x == 3 {
244239
break;
245240
}
246241
}
247242

248243
// yield and print the last pair from the iterator
249-
println!("last: {:?}", it.next());
244+
printfln!("last: %?", it.next());
250245

251246
// the iterator is now fully consumed
252247
assert!(it.next().is_none());
@@ -340,13 +335,13 @@ another `DoubleEndedIterator` with `next` and `next_back` exchanged.
340335
~~~
341336
let xs = [1, 2, 3, 4, 5, 6];
342337
let mut it = xs.iter();
343-
println!("{:?}", it.next()); // prints `Some(&1)`
344-
println!("{:?}", it.next()); // prints `Some(&2)`
345-
println!("{:?}", it.next_back()); // prints `Some(&6)`
338+
printfln!("%?", it.next()); // prints `Some(&1)`
339+
printfln!("%?", it.next()); // prints `Some(&2)`
340+
printfln!("%?", it.next_back()); // prints `Some(&6)`
346341
347342
// prints `5`, `4` and `3`
348343
for &x in it.invert() {
349-
println!("{}", x)
344+
printfln!("%?", x)
350345
}
351346
~~~
352347

@@ -361,11 +356,11 @@ let xs = [1, 2, 3, 4];
361356
let ys = [5, 6, 7, 8];
362357
let mut it = xs.iter().chain(ys.iter()).map(|&x| x * 2);
363358
364-
println!("{:?}", it.next()); // prints `Some(2)`
359+
printfln!("%?", it.next()); // prints `Some(2)`
365360
366361
// prints `16`, `14`, `12`, `10`, `8`, `6`, `4`
367362
for x in it.invert() {
368-
println!("{}", x);
363+
printfln!("%?", x);
369364
}
370365
~~~
371366

@@ -392,17 +387,17 @@ underlying iterators are.
392387
let xs = [1, 2, 3, 4, 5];
393388
let ys = ~[7, 9, 11];
394389
let mut it = xs.iter().chain(ys.iter());
395-
println!("{:?}", it.idx(0)); // prints `Some(&1)`
396-
println!("{:?}", it.idx(5)); // prints `Some(&7)`
397-
println!("{:?}", it.idx(7)); // prints `Some(&11)`
398-
println!("{:?}", it.idx(8)); // prints `None`
390+
printfln!("%?", it.idx(0)); // prints `Some(&1)`
391+
printfln!("%?", it.idx(5)); // prints `Some(&7)`
392+
printfln!("%?", it.idx(7)); // prints `Some(&11)`
393+
printfln!("%?", it.idx(8)); // prints `None`
399394
400395
// yield two elements from the beginning, and one from the end
401396
it.next();
402397
it.next();
403398
it.next_back();
404399
405-
println!("{:?}", it.idx(0)); // prints `Some(&3)`
406-
println!("{:?}", it.idx(4)); // prints `Some(&9)`
407-
println!("{:?}", it.idx(6)); // prints `None`
400+
printfln!("%?", it.idx(0)); // prints `Some(&3)`
401+
printfln!("%?", it.idx(4)); // prints `Some(&9)`
402+
printfln!("%?", it.idx(6)); // prints `None`
408403
~~~

trunk/doc/tutorial-tasks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ fn fib(n: uint) -> uint {
280280
12586269025
281281
}
282282
283-
let mut delayed_fib = extra::future::Future::spawn (|| fib(50) );
283+
let mut delayed_fib = extra::future::spawn (|| fib(50) );
284284
make_a_sandwich();
285285
println(fmt!("fib(50) = %?", delayed_fib.get()))
286286
~~~
@@ -304,7 +304,7 @@ fn partial_sum(start: uint) -> f64 {
304304
}
305305
306306
fn main() {
307-
let mut futures = vec::from_fn(1000, |ind| do extra::future::Future::spawn { partial_sum(ind) });
307+
let mut futures = vec::from_fn(1000, |ind| do extra::future::spawn { partial_sum(ind) });
308308
309309
let mut final_res = 0f64;
310310
for ft in futures.mut_iter() {

trunk/doc/tutorial.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ recommended.
6363

6464
Since the Rust compiler is written in Rust, it must be built by
6565
a precompiled "snapshot" version of itself (made in an earlier state
66-
of development). The source build automatically fetches these snapshots
67-
from the Internet on our supported platforms.
66+
of development). As such, source builds require a connection to
67+
the Internet, to fetch snapshots, and an OS that can execute the
68+
available snapshot binaries.
6869

6970
Snapshot binaries are currently built and tested on several platforms:
7071

@@ -2978,15 +2979,15 @@ tutorials on individual topics.
29782979
* [The foreign function interface][ffi]
29792980
* [Containers and iterators](tutorial-container.html)
29802981
* [Error-handling and Conditions](tutorial-conditions.html)
2981-
* [Packaging up Rust code][rustpkg]
2982+
* [Packaging up Rust code](rustpkg)
29822983

29832984
There is further documentation on the [wiki], however those tend to be even more out of date as this document.
29842985

29852986
[borrow]: tutorial-borrowed-ptr.html
29862987
[tasks]: tutorial-tasks.html
29872988
[macros]: tutorial-macros.html
29882989
[ffi]: tutorial-ffi.html
2989-
[rustpkg]: rustpkg.html
2990+
[rustpkg]: tutorial-rustpkg.html
29902991

29912992
[wiki]: https://github.com/mozilla/rust/wiki/Docs
29922993

0 commit comments

Comments
 (0)