Skip to content

Commit 98ecb51

Browse files
committed
---
yaml --- r: 159294 b: refs/heads/master c: e4ead7b h: refs/heads/master v: v3
1 parent 73cbb57 commit 98ecb51

File tree

163 files changed

+5857
-4904
lines changed

Some content is hidden

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

163 files changed

+5857
-4904
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: 5f09a50e8f5fe8cbf4ce8fed5bfd49b9e12b9aa1
2+
refs/heads/master: e4ead7b034c96b705ec34b8325f5f9f778f1cbb9
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 9c96a79a74f10bed18b031ce0ac4126c56d6cfb3
55
refs/heads/try: f58aad6dce273570fb130b4df008ef9acd5a5be2

trunk/mk/cfg/i686-pc-windows-gnu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# i686-pc-windows-gnu configuration
2-
CROSS_PREFIX_i686-pc-windows-gnu=i686-pc-windows-gnu-
2+
CROSS_PREFIX_i686-pc-windows-gnu=i686-w64-mingw32-
33
CC_i686-pc-windows-gnu=gcc
44
CXX_i686-pc-windows-gnu=g++
55
CPP_i686-pc-windows-gnu=gcc -E

trunk/mk/cfg/x86_64-pc-windows-gnu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# x86_64-pc-windows-gnu configuration
2-
CROSS_PREFIX_x86_64-pc-windows-gnu=x86_64-pc-windows-gnu-
2+
CROSS_PREFIX_x86_64-pc-windows-gnu=x86_64-w64-mingw32-
33
CC_x86_64-pc-windows-gnu=gcc
44
CXX_x86_64-pc-windows-gnu=g++
55
CPP_x86_64-pc-windows-gnu=gcc -E

trunk/mk/dist.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ $(PKG_EXE): rust.iss modpath.iss upgrade.iss LICENSE.txt rust-logo.ico \
125125
dist-prepare-win
126126
$(CFG_PYTHON) $(S)src/etc/make-win-dist.py tmp/dist/win $(CFG_BUILD)
127127
@$(call E, ISCC: $@)
128-
$(Q)"$(CFG_ISCC)" $<
128+
$(Q)$(CFG_ISCC) $<
129129

130130
$(eval $(call DEF_PREPARE,win))
131131

trunk/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ CFG_GIT_DIR := $(CFG_SRC_DIR).git
5252
# so we use a hack: define $(SPACE) which contains space character.
5353
SPACE :=
5454
SPACE +=
55-
ifneq ($(wildcard $(subst $(SPACE),\$(SPACE),$(CFG_GIT))),)
55+
ifneq ($(CFG_GIT),)
5656
ifneq ($(wildcard $(subst $(SPACE),\$(SPACE),$(CFG_GIT_DIR))),)
5757
CFG_VER_DATE = $(shell git --git-dir='$(CFG_GIT_DIR)' log -1 --pretty=format:'%ci')
5858
CFG_VER_HASH = $(shell git --git-dir='$(CFG_GIT_DIR)' rev-parse HEAD)

trunk/src/doc/guide.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,7 +1481,7 @@ s.push_str(", world.");
14811481
println!("{}", s);
14821482
```
14831483

1484-
You can coerce a `String` into a `&str` with the `as_slice()` method:
1484+
You can get a `&str` view into a `String` with the `as_slice()` method:
14851485

14861486
```{rust}
14871487
fn takes_slice(slice: &str) {
@@ -1514,7 +1514,7 @@ fn compare(string: String) {
15141514
}
15151515
```
15161516

1517-
Converting a `String` to a `&str` is cheap, but converting the `&str` to a
1517+
Viewing a `String` as a `&str` is cheap, but converting the `&str` to a
15181518
`String` involves allocating memory. No reason to do that unless you have to!
15191519

15201520
That's the basics of strings in Rust! They're probably a bit more complicated
@@ -5274,7 +5274,7 @@ let result = task::try(proc() {
52745274

52755275
This task will randomly panic or succeed. `task::try` returns a `Result`
52765276
type, so we can handle the response like any other computation that may
5277-
panic.
5277+
fail.
52785278

52795279
# Macros
52805280

trunk/src/doc/intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ including the right thing!) Even though we compiled with flags to give us as
217217
many warnings as possible, and to treat those warnings as errors, we got no
218218
errors. When we ran the program, it crashed.
219219

220-
Why does this happen? When we prepend to an array, its length changes. Since
220+
Why does this happen? When we append to an array, its length changes. Since
221221
its length changes, we may need to allocate more memory. In Ruby, this happens
222222
as well, we just don't think about it very often. So why does the C++ version
223223
segfault when we allocate more memory?

trunk/src/etc/emacs/rust-mode.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
"false" "fn" "for"
177177
"if" "impl" "in"
178178
"let" "loop"
179-
"match" "mod" "mut"
179+
"match" "mod" "move" "mut"
180180
"priv" "proc" "pub"
181181
"ref" "return"
182182
"self" "static" "struct" "super"

trunk/src/etc/kate/rust.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<item> loop </item>
3535
<item> match </item>
3636
<item> mod </item>
37+
<item> move </item>
3738
<item> mut </item>
3839
<item> priv </item>
3940
<item> pub </item>

trunk/src/etc/make-win-dist.py

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def find_files(files, path):
2323
return found
2424

2525
def make_win_dist(dist_root, target_triple):
26-
# Ask gcc where it keeps its' stuff
26+
# Ask gcc where it keeps its stuff
2727
gcc_out = subprocess.check_output(["gcc.exe", "-print-search-dirs"])
2828
bin_path = os.environ["PATH"].split(os.pathsep)
2929
lib_path = []
@@ -42,11 +42,48 @@ def make_win_dist(dist_root, target_triple):
4242
else:
4343
rustc_dlls.append("libgcc_s_seh-1.dll")
4444

45-
target_libs = ["crtbegin.o", "crtend.o", "crt2.o", "dllcrt2.o",
46-
"libadvapi32.a", "libcrypt32.a", "libgcc.a", "libgcc_eh.a", "libgcc_s.a",
47-
"libimagehlp.a", "libiphlpapi.a", "libkernel32.a", "libm.a", "libmingw32.a",
48-
"libmingwex.a", "libmsvcrt.a", "libpsapi.a", "libshell32.a", "libstdc++.a",
49-
"libuser32.a", "libws2_32.a", "libiconv.a", "libmoldname.a"]
45+
target_libs = [ # MinGW libs
46+
"crtbegin.o",
47+
"crtend.o",
48+
"crt2.o",
49+
"dllcrt2.o",
50+
"libgcc.a",
51+
"libgcc_eh.a",
52+
"libgcc_s.a",
53+
"libm.a",
54+
"libmingw32.a",
55+
"libmingwex.a",
56+
"libstdc++.a",
57+
"libiconv.a",
58+
"libmoldname.a",
59+
# Windows import libs
60+
"libadvapi32.a",
61+
"libbcrypt.a",
62+
"libcomctl32.a",
63+
"libcomdlg32.a",
64+
"libcrypt32.a",
65+
"libctl3d32.a",
66+
"libgdi32.a",
67+
"libimagehlp.a",
68+
"libiphlpapi.a",
69+
"libkernel32.a",
70+
"libmsvcrt.a",
71+
"libodbc32.a",
72+
"libole32.a",
73+
"liboleaut32.a",
74+
"libopengl32.a",
75+
"libpsapi.a",
76+
"librpcrt4.a",
77+
"libsetupapi.a",
78+
"libshell32.a",
79+
"libuser32.a",
80+
"libuuid.a",
81+
"libwinhttp.a",
82+
"libwinmm.a",
83+
"libwinspool.a",
84+
"libws2_32.a",
85+
"libwsock32.a",
86+
]
5087

5188
# Find mingw artifacts we want to bundle
5289
target_tools = find_files(target_tools, bin_path)
@@ -59,14 +96,14 @@ def make_win_dist(dist_root, target_triple):
5996
shutil.copy(src, dist_bin_dir)
6097

6198
# Copy platform tools to platform-specific bin directory
62-
target_bin_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "gcc", "bin")
99+
target_bin_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "bin")
63100
if not os.path.exists(target_bin_dir):
64101
os.makedirs(target_bin_dir)
65102
for src in target_tools:
66103
shutil.copy(src, target_bin_dir)
67104

68105
# Copy platform libs to platform-spcific lib directory
69-
target_lib_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "gcc", "lib")
106+
target_lib_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "lib")
70107
if not os.path.exists(target_lib_dir):
71108
os.makedirs(target_lib_dir)
72109
for src in target_libs:

trunk/src/etc/vim/syntax/rust.vim

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ syn keyword rustConditional match if else
1717
syn keyword rustOperator as
1818

1919
syn match rustAssert "\<assert\(\w\)*!" contained
20-
syn match rustFail "\<fail\(\w\)*!" contained
20+
syn match rustPanic "\<panic\(\w\)*!" contained
2121
syn keyword rustKeyword break
2222
syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty
2323
syn keyword rustKeyword continue
@@ -30,7 +30,7 @@ syn keyword rustKeyword unsafe virtual where while
3030
syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
3131
" FIXME: Scoped impl's name is also fallen in this category
3232
syn keyword rustKeyword mod trait struct enum type nextgroup=rustIdentifier skipwhite skipempty
33-
syn keyword rustStorage mut ref static const
33+
syn keyword rustStorage move mut ref static const
3434

3535
syn keyword rustInvalidBareKeyword crate
3636

@@ -151,8 +151,8 @@ syn match rustSigil display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1
151151
" Last, because the & in && isn't a sigil
152152
syn match rustOperator display "&&\|||"
153153

154-
syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustFail
155-
syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustFail
154+
syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic
155+
syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic
156156

157157
syn match rustEscapeError display contained /\\./
158158
syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/
@@ -263,7 +263,7 @@ hi def link rustCommentLineDoc SpecialComment
263263
hi def link rustCommentBlock rustCommentLine
264264
hi def link rustCommentBlockDoc rustCommentLineDoc
265265
hi def link rustAssert PreCondit
266-
hi def link rustFail PreCondit
266+
hi def link rustPanic PreCondit
267267
hi def link rustMacro Macro
268268
hi def link rustType Type
269269
hi def link rustTodo Todo
@@ -282,7 +282,7 @@ hi def link rustBoxPlacementExpr rustKeyword
282282
" hi rustAttribute ctermfg=cyan
283283
" hi rustDeriving ctermfg=cyan
284284
" hi rustAssert ctermfg=yellow
285-
" hi rustFail ctermfg=red
285+
" hi rustPanic ctermfg=red
286286
" hi rustMacro ctermfg=magenta
287287

288288
syn sync minlines=200

trunk/src/libcollections/enum_set.rs

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
use core::prelude::*;
1717
use core::fmt;
1818

19-
// FIXME(conventions): implement BitXor
2019
// FIXME(contentions): implement union family of methods? (general design may be wrong here)
2120

2221
#[deriving(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
@@ -201,6 +200,12 @@ impl<E:CLike> BitAnd<EnumSet<E>, EnumSet<E>> for EnumSet<E> {
201200
}
202201
}
203202

203+
impl<E:CLike> BitXor<EnumSet<E>, EnumSet<E>> for EnumSet<E> {
204+
fn bitxor(&self, e: &EnumSet<E>) -> EnumSet<E> {
205+
EnumSet {bits: self.bits ^ e.bits}
206+
}
207+
}
208+
204209
/// An iterator over an EnumSet
205210
pub struct Items<E> {
206211
index: uint,
@@ -433,9 +438,29 @@ mod test {
433438
let elems = e_intersection.iter().collect();
434439
assert_eq!(vec![C], elems)
435440

441+
// Another way to express intersection
442+
let e_intersection = e1 - (e1 - e2);
443+
let elems = e_intersection.iter().collect();
444+
assert_eq!(vec![C], elems)
445+
436446
let e_subtract = e1 - e2;
437447
let elems = e_subtract.iter().collect();
438448
assert_eq!(vec![A], elems)
449+
450+
// Bitwise XOR of two sets, aka symmetric difference
451+
let e_symmetric_diff = e1 ^ e2;
452+
let elems = e_symmetric_diff.iter().collect();
453+
assert_eq!(vec![A,B], elems)
454+
455+
// Another way to express symmetric difference
456+
let e_symmetric_diff = (e1 - e2) | (e2 - e1);
457+
let elems = e_symmetric_diff.iter().collect();
458+
assert_eq!(vec![A,B], elems)
459+
460+
// Yet another way to express symmetric difference
461+
let e_symmetric_diff = (e1 | e2) - (e1 & e2);
462+
let elems = e_symmetric_diff.iter().collect();
463+
assert_eq!(vec![A,B], elems)
439464
}
440465

441466
#[test]
@@ -461,7 +486,7 @@ mod test {
461486
unsafe { mem::transmute(v) }
462487
}
463488
}
464-
let mut set = EnumSet::empty();
465-
set.add(V64);
489+
let mut set = EnumSet::new();
490+
set.insert(V64);
466491
}
467492
}

0 commit comments

Comments
 (0)