Skip to content

Commit fd94959

Browse files
committed
---
yaml --- r: 83238 b: refs/heads/try c: d84a22a h: refs/heads/master v: v3
1 parent e2f5730 commit fd94959

Some content is hidden

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

90 files changed

+3756
-2570
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: 0e4d1fc8cae42e15e00f71d9f439b01bb25a86ae
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6c08cc2db4f98e9f07ae7d50338396c4123c2f0a
5-
refs/heads/try: f0630fdc8bd10a40c988e295482882aa5fce207e
5+
refs/heads/try: d84a22addf09f6c7daba070732593c1e3313ed77
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/doc/rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ string_body : non_double_quote
248248
| '\x5c' [ '\x22' | common_escape ] ;
249249
250250
common_escape : '\x5c'
251-
| 'n' | 'r' | 't'
251+
| 'n' | 'r' | 't' | '0'
252252
| 'x' hex_digit 2
253253
| 'u' hex_digit 4
254254
| 'U' hex_digit 8 ;

branches/try/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
~~~

branches/try/doc/tutorial.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2979,15 +2979,15 @@ tutorials on individual topics.
29792979
* [The foreign function interface][ffi]
29802980
* [Containers and iterators](tutorial-container.html)
29812981
* [Error-handling and Conditions](tutorial-conditions.html)
2982-
* [Packaging up Rust code][rustpkg]
2982+
* [Packaging up Rust code](rustpkg)
29832983

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

29862986
[borrow]: tutorial-borrowed-ptr.html
29872987
[tasks]: tutorial-tasks.html
29882988
[macros]: tutorial-macros.html
29892989
[ffi]: tutorial-ffi.html
2990-
[rustpkg]: rustpkg.html
2990+
[rustpkg]: tutorial-rustpkg.html
29912991

29922992
[wiki]: https://github.com/mozilla/rust/wiki/Docs
29932993

branches/try/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)
31+
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) $$(CFG_LLVM_BUILD_ENV_$(1))
3232
$$(Q)touch $$(LLVM_CONFIG_$(1))
3333
endif
3434

branches/try/mk/platform.mk

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ CFG_PATH_MUNGE_mips-unknown-linux-gnu := true
343343
CFG_LDPATH_mips-unknown-linux-gnu :=
344344
CFG_RUN_mips-unknown-linux-gnu=
345345
CFG_RUN_TARG_mips-unknown-linux-gnu=
346+
RUSTC_FLAGS_mips-unknown-linux-gnu := --linker=$(CXX_mips-unknown-linux-gnu) --target-cpu mips32r2 --target-feature +mips32r2,+o32
346347

347348
# i686-pc-mingw32 configuration
348349
CC_i686-pc-mingw32=$(CC)
@@ -352,7 +353,7 @@ AR_i686-pc-mingw32=$(AR)
352353
CFG_LIB_NAME_i686-pc-mingw32=$(1).dll
353354
CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll
354355
CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM
355-
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600
356+
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600 -I$(CFG_SRC_DIR)src/etc/mingw-fix-include
356357
CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti
357358
CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g -m32
358359
CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 :=
@@ -361,6 +362,7 @@ CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
361362
CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def
362363
CFG_INSTALL_NAME_i686-pc-mingw32 =
363364
CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi
365+
CFG_LLVM_BUILD_ENV_i686-pc-mingw32 := CPATH=$(CFG_SRC_DIR)src/etc/mingw-fix-include
364366
CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe
365367
CFG_WINDOWSY_i686-pc-mingw32 := 1
366368
CFG_UNIXY_i686-pc-mingw32 :=
@@ -479,7 +481,7 @@ define CFG_MAKE_TOOLCHAIN
479481
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
480482
$$(call CFG_INSTALL_NAME_$(1),$$(4))
481483

482-
ifneq ($(HOST_$(1)),arm)
484+
ifeq ($$(findstring $(HOST_$(1)),arm mips),)
483485

484486
# We're using llvm-mc as our assembler because it supports
485487
# .cfi pseudo-ops on mac
@@ -491,7 +493,7 @@ define CFG_MAKE_TOOLCHAIN
491493
-o=$$(1)
492494
else
493495

494-
# For the ARM crosses, use the toolchain assembler
496+
# For the ARM and MIPS crosses, use the toolchain assembler
495497
# XXX: We should be able to use the LLVM assembler
496498
CFG_ASSEMBLE_$(1)=$$(CC_$(1)) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
497499

branches/try/mk/rt.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# working under these assumptions).
2525

2626
# Hack for passing flags into LIBUV, see below.
27-
LIBUV_FLAGS_i386 = -m32 -fPIC
27+
LIBUV_FLAGS_i386 = -m32 -fPIC -I$(S)src/etc/mingw-fix-include
2828
LIBUV_FLAGS_x86_64 = -m64 -fPIC
2929
ifeq ($(OSTYPE_$(1)), linux-androideabi)
3030
LIBUV_FLAGS_arm = -fPIC -DANDROID -std=gnu99

branches/try/src/compiletest/compiletest.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ extern mod extra;
1717

1818
use std::os;
1919
use std::rt;
20-
use std::f64;
2120

2221
use extra::getopts;
2322
use extra::getopts::groups::{optopt, optflag, reqopt};
@@ -131,7 +130,7 @@ pub fn parse_config(args: ~[~str]) -> config {
131130
ratchet_noise_percent:
132131
getopts::opt_maybe_str(matches,
133132
"ratchet-noise-percent").map_move(|s|
134-
f64::from_str(s).unwrap()),
133+
from_str::<f64>(s).unwrap()),
135134
runtool: getopts::opt_maybe_str(matches, "runtool"),
136135
rustcflags: getopts::opt_maybe_str(matches, "rustcflags"),
137136
jit: getopts::opt_present(matches, "jit"),
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
The purpose of these headers is to fix issues with mingw v4.0, as described in #9246.
2+
3+
This works by adding this directory to GCC include search path before mingw system headers directories,
4+
so we can intercept their inclusions and add missing definitions without having to modify files in mingw/include.
5+
6+
Once mingw fixes all 3 issues mentioned in #9246, this directory and all references to it from rust/mk/* may be removed.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#ifndef _FIX_CXXCONFIG_H
2+
#define _FIX_CXXCONFIG_H 1
3+
4+
#define _GLIBCXX_HAVE_FENV_H 1
5+
6+
#include_next <bits/c++config.h>
7+
8+
#endif
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#ifndef _FIX_WINBASE_H
2+
#define _FIX_WINBASE_H 1
3+
4+
#define NTDDK_VERSION NTDDI_VERSION
5+
6+
#include_next <winbase.h>
7+
8+
#endif
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifndef _FIX_WINSOCK2_H
2+
#define _FIX_WINSOCK2_H 1
3+
4+
#include_next <winsock2.h>
5+
6+
typedef struct pollfd {
7+
SOCKET fd;
8+
short events;
9+
short revents;
10+
} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD;
11+
12+
#endif

branches/try/src/libextra/glob.rs

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,6 @@ fn list_dir_sorted(path: &Path) -> ~[Path] {
137137
/**
138138
* A compiled Unix shell style pattern.
139139
*/
140-
#[cfg(stage0)]
141-
#[deriving(Clone, Eq, TotalEq, Ord, TotalOrd, IterBytes)]
142-
pub struct Pattern {
143-
priv tokens: ~[PatternToken]
144-
}
145-
146-
/**
147-
* A compiled Unix shell style pattern.
148-
*/
149-
#[cfg(not(stage0))]
150140
#[deriving(Clone, Eq, TotalEq, Ord, TotalOrd, IterBytes, Default)]
151141
pub struct Pattern {
152142
priv tokens: ~[PatternToken]
@@ -465,39 +455,10 @@ fn is_sep(c: char) -> bool {
465455
}
466456
}
467457
468-
/**
469-
* Configuration options to modify the behaviour of `Pattern::matches_with(..)`
470-
*/
471-
#[cfg(stage0)]
472-
#[deriving(Clone, Eq, TotalEq, Ord, TotalOrd, IterBytes)]
473-
pub struct MatchOptions {
474-
475-
/**
476-
* Whether or not patterns should be matched in a case-sensitive manner. This
477-
* currently only considers upper/lower case relationships between ASCII characters,
478-
* but in future this might be extended to work with Unicode.
479-
*/
480-
case_sensitive: bool,
481-
482-
/**
483-
* If this is true then path-component separator characters (e.g. `/` on Posix)
484-
* must be matched by a literal `/`, rather than by `*` or `?` or `[...]`
485-
*/
486-
require_literal_separator: bool,
487-
488-
/**
489-
* If this is true then paths that contain components that start with a `.` will
490-
* not match unless the `.` appears literally in the pattern: `*`, `?` or `[...]`
491-
* will not match. This is useful because such files are conventionally considered
492-
* hidden on Unix systems and it might be desirable to skip them when listing files.
493-
*/
494-
require_literal_leading_dot: bool
495-
}
496458
497459
/**
498460
* Configuration options to modify the behaviour of `Pattern::matches_with(..)`
499461
*/
500-
#[cfg(not(stage0))]
501462
#[deriving(Clone, Eq, TotalEq, Ord, TotalOrd, IterBytes, Default)]
502463
pub struct MatchOptions {
503464

0 commit comments

Comments
 (0)