Skip to content

Commit 64549e4

Browse files
committed
---
yaml --- r: 234920 b: refs/heads/stable c: 1ec520a h: refs/heads/master v: v3
1 parent 84c718f commit 64549e4

File tree

31 files changed

+220
-280
lines changed

31 files changed

+220
-280
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ refs/heads/tmp: afae2ff723393b3ab4ccffef6ac7c6d1809e2da0
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: f859507de8c410b648d934d8f5ec1c52daac971d
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828
32-
refs/heads/stable: 773052a608736b873906f9bf1c3fd222d0b54764
32+
refs/heads/stable: 1ec520a531b544079690f8178a7660421e8a713a
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b
3535
refs/tags/1.2.0: f557861f822c34f07270347b94b5280de20a597e

branches/stable/RELEASES.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,29 @@ Version 1.1.0 (June 2015)
66
Highlights
77
----------
88

9-
* The [`std::fs` module has been expanded][fs] to expand the set of
9+
* The [`std::fs` module has been expanded][fs-expand] to expand the set of
1010
functionality exposed:
1111
* `DirEntry` now supports optimizations like `file_type` and `metadata` which
1212
don't incur a syscall on some platforms.
1313
* A `symlink_metadata` function has been added.
1414
* The `fs::Metadata` structure now lowers to its OS counterpart, providing
1515
access to all underlying information.
16-
* The compiler now contains extended explanations of many errors. When an error
17-
with an explanation occurs the compiler suggests using the `--explain` flag
18-
to read the explanation. Error explanations are also [available online][err-index].
16+
* The compiler contains extended explanations of many errors. When it
17+
emits such an error it also suggests using the `--explain` flag to
18+
read the extended explanations, which are also [cataloged on the web
19+
site][err].
1920
* Thanks to multiple [improvements][sk] to [type checking][pre], as
2021
well as other work, the time to bootstrap the compiler decreased by
2122
32%.
2223

2324
Libraries
2425
---------
2526

26-
* The [`str::split_whitespace`] method splits a string on unicode
27+
* The `str::split_whitespace` method splits a string on unicode
2728
whitespace boundaries.
2829
* On both Windows and Unix, new extension traits provide conversion of
2930
I/O types to and from the underlying system handles. On Unix, these
30-
traits are [`FromRawFd`] and [`AsRawFd`], on Windows `FromRawHandle`
31+
traits are [`FrowRawFd`] and [`AsRawFd`], on Windows `FromRawHandle`
3132
and `AsRawHandle`. These are implemented for `File`, `TcpStream`,
3233
`TcpListener`, and `UpdSocket`. Further implementations for
3334
`std::process` will be stabilized later.
@@ -79,14 +80,15 @@ Misc
7980
* [The `drop_with_repr_extern` lint warns about mixing `repr(C)`
8081
with `Drop`][drop].
8182

82-
[`str::split_whitespace`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
83+
[`split_whitespace`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split_whitespace
84+
[`Iterator::cloned`]: http://doc.rust-lang.org/nightly/core/iter/trait.Iterator.html#method.cloned
8385
[`FromRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.FromRawFd.html
8486
[`AsRawFd`]: http://doc.rust-lang.org/nightly/std/os/unix/io/trait.AsRawFd.html
8587
[`std::os::unix::symlink`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/fn.symlink.html
8688
[`IntoIterator`]: http://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html
8789
[`From`]: http://doc.rust-lang.org/nightly/std/convert/trait.From.html
8890
[rf]: https://github.com/rust-lang/rust/pull/24491
89-
[err-index]: http://doc.rust-lang.org/error-index.html
91+
[err]: http://doc.rust-lang.org/error-index.html
9092
[sk]: https://github.com/rust-lang/rust/pull/24615
9193
[pre]: https://github.com/rust-lang/rust/pull/25323
9294
[file]: https://github.com/rust-lang/rust/pull/24598
@@ -249,6 +251,7 @@ Misc
249251
[sw]: https://github.com/rust-lang/rfcs/blob/master/text/1054-str-words.md
250252
[th]: https://github.com/rust-lang/rfcs/blob/master/text/0909-move-thread-local-to-std-thread.md
251253
[send-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0458-send-improvements.md
254+
[scoped]: http://static.rust-lang.org/doc/master/std/thread/fn.scoped.html
252255
[moar-ufcs]: https://github.com/rust-lang/rust/pull/22172
253256
[prim-inherent]: https://github.com/rust-lang/rust/pull/23104
254257
[overflow]: https://github.com/rust-lang/rfcs/blob/master/text/0560-integer-overflow.md
@@ -258,10 +261,12 @@ Misc
258261
[string-pattern]: https://github.com/rust-lang/rust/pull/22466
259262
[oibit-final]: https://github.com/rust-lang/rust/pull/21689
260263
[reflect]: https://github.com/rust-lang/rust/pull/23712
264+
[debug-builder]: https://github.com/rust-lang/rfcs/blob/master/text/0640-debug-improvements.md
261265
[conversion]: https://github.com/rust-lang/rfcs/pull/529
262266
[num-traits]: https://github.com/rust-lang/rust/pull/23549
263267
[index-value]: https://github.com/rust-lang/rust/pull/23601
264268
[dropck]: https://github.com/rust-lang/rfcs/pull/769
269+
[fundamental]: https://github.com/rust-lang/rfcs/pull/1023
265270
[ci-compare]: https://gist.github.com/brson/a30a77836fbec057cbee
266271
[fn-inherit]: https://github.com/rust-lang/rust/pull/23282
267272
[fn-blanket]: https://github.com/rust-lang/rust/pull/23895
@@ -364,6 +369,7 @@ Version 1.0.0-alpha.2 (February 2015)
364369
[osstr]: https://github.com/rust-lang/rust/pull/21488
365370
[osstr-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0517-io-os-reform.md
366371
[Self]: https://github.com/rust-lang/rust/pull/22158
372+
[ufcs]: https://github.com/rust-lang/rust/pull/21077
367373
[ufcs-rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0132-ufcs.md
368374
[un]: https://github.com/rust-lang/rust/pull/22256
369375

branches/stable/mk/cfg/x86_64-pc-windows-msvc.mk

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -23,64 +23,6 @@ CFG_RUN_x86_64-pc-windows-msvc=$(2)
2323
CFG_RUN_TARG_x86_64-pc-windows-msvc=$(call CFG_RUN_x86_64-pc-windows-msvc,,$(2))
2424
CFG_GNU_TRIPLE_x86_64-pc-windows-msvc := x86_64-pc-win32
2525

26-
# These two environment variables are scraped by the `./configure` script and
27-
# are necessary for `cl.exe` to find standard headers (the INCLUDE variable) and
28-
# for `link.exe` to find standard libraries (the LIB variable).
29-
ifdef CFG_MSVC_INCLUDE_PATH
30-
export INCLUDE := $(CFG_MSVC_INCLUDE_PATH)
31-
endif
32-
ifdef CFG_MSVC_LIB_PATH
33-
export LIB := $(CFG_MSVC_LIB_PATH)
34-
endif
35-
36-
# Unfortunately `link.exe` is also a program in `/usr/bin` on MinGW installs,
37-
# but it's not the one that we want. As a result we make sure that our detected
38-
# `link.exe` shows up in PATH first.
39-
ifdef CFG_MSVC_LINK
40-
export PATH := $(CFG_MSVC_ROOT)/VC/bin/amd64:$(PATH)
41-
endif
42-
43-
# There are more comments about this available in the target specification for
44-
# Windows MSVC in the compiler, but the gist of it is that we use `llvm-ar.exe`
45-
# instead of `lib.exe` for assembling archives, so we need to inject this custom
46-
# dependency here.
47-
NATIVE_TOOL_DEPS_core_T_x86_64-pc-windows-msvc += llvm-ar.exe
48-
INSTALLED_BINS_x86_64-pc-windows-msvc += llvm-ar.exe
49-
50-
# When working with MSVC on windows, each DLL needs to explicitly declare its
51-
# interface to the outside world through some means. The options for doing so
52-
# include:
53-
#
54-
# 1. A custom attribute on each function itself
55-
# 2. A linker argument saying what to export
56-
# 3. A file which lists all symbols that need to be exported
57-
#
58-
# The Rust compiler takes care (1) for us for all Rust code by annotating all
59-
# public-facing functions with dllexport, but we have a few native dependencies
60-
# which need to cross the DLL boundary. The most important of these dependencies
61-
# is LLVM which is linked into `rustc_llvm.dll` but primarily used from
62-
# `rustc_trans.dll`. This means that many of LLVM's C API functions need to be
63-
# exposed from `rustc_llvm.dll` to be forwarded over the boundary.
64-
#
65-
# Unfortunately, at this time, LLVM does not handle this sort of exportation on
66-
# Windows for us, so we're forced to do it ourselves if we want it (which seems
67-
# like the path of least resistance right now). To do this we generate a `.DEF`
68-
# file [1] which we then custom-pass to the linker when building the rustc_llvm
69-
# crate. This DEF file list all symbols that are exported from
70-
# `src/librustc_llvm/lib.rs` and is generated by a small python script.
71-
#
72-
# Fun times!
73-
#
74-
# [1]: https://msdn.microsoft.com/en-us/library/28d6s79h.aspx
75-
RUSTFLAGS_rustc_llvm_T_x86_64-pc-windows-msvc += \
76-
-C link-args="-DEF:x86_64-pc-windows-msvc/rt/rustc_llvm.def"
77-
CUSTOM_DEPS_rustc_llvm_T_x86_64-pc-windows-msvc += \
78-
x86_64-pc-windows-msvc/rt/rustc_llvm.def
79-
80-
x86_64-pc-windows-msvc/rt/rustc_llvm.def: $(S)src/etc/mklldef.py \
81-
$(S)src/librustc_llvm/lib.rs
82-
$(CFG_PYTHON) $^ $@ rustc_llvm-$(CFG_FILENAME_EXTRA)
83-
8426
# All windows nightiles are currently a GNU triple, so this MSVC triple is not
8527
# bootstrapping from itself. This is relevant during stage0, and other parts of
8628
# the build system take this into account.

branches/stable/mk/platform.mk

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,72 @@ endef
238238

239239
$(foreach target,$(CFG_TARGET), \
240240
$(eval $(call CFG_MAKE_TOOLCHAIN,$(target))))
241+
242+
# These two environment variables are scraped by the `./configure` script and
243+
# are necessary for `cl.exe` to find standard headers (the INCLUDE variable) and
244+
# for `link.exe` to find standard libraries (the LIB variable).
245+
ifdef CFG_MSVC_INCLUDE_PATH
246+
export INCLUDE := $(CFG_MSVC_INCLUDE_PATH)
247+
endif
248+
ifdef CFG_MSVC_LIB_PATH
249+
export LIB := $(CFG_MSVC_LIB_PATH)
250+
endif
251+
252+
# Unfortunately `link.exe` is also a program in `/usr/bin` on MinGW installs,
253+
# but it's not the one that we want. As a result we make sure that our detected
254+
# `link.exe` shows up in PATH first.
255+
ifdef CFG_MSVC_LINK
256+
export PATH := $(CFG_MSVC_ROOT)/VC/bin/amd64:$(PATH)
257+
endif
258+
259+
# There are more comments about this available in the target specification for
260+
# Windows MSVC in the compiler, but the gist of it is that we use `llvm-ar.exe`
261+
# instead of `lib.exe` for assembling archives, so we need to inject this custom
262+
# dependency here.
263+
define ADD_LLVM_AR_TO_MSVC_DEPS
264+
ifeq ($$(findstring msvc,$(1)),msvc)
265+
NATIVE_TOOL_DEPS_core_T_$(1) += llvm-ar.exe
266+
INSTALLED_BINS_$(1) += llvm-ar.exe
267+
endif
268+
endef
269+
270+
$(foreach target,$(CFG_TARGET), \
271+
$(eval $(call ADD_LLVM_AR_TO_MSVC_DEPS,$(target))))
272+
273+
# When working with MSVC on windows, each DLL needs to explicitly declare its
274+
# interface to the outside world through some means. The options for doing so
275+
# include:
276+
#
277+
# 1. A custom attribute on each function itself
278+
# 2. A linker argument saying what to export
279+
# 3. A file which lists all symbols that need to be exported
280+
#
281+
# The Rust compiler takes care (1) for us for all Rust code by annotating all
282+
# public-facing functions with dllexport, but we have a few native dependencies
283+
# which need to cross the DLL boundary. The most important of these dependencies
284+
# is LLVM which is linked into `rustc_llvm.dll` but primarily used from
285+
# `rustc_trans.dll`. This means that many of LLVM's C API functions need to be
286+
# exposed from `rustc_llvm.dll` to be forwarded over the boundary.
287+
#
288+
# Unfortunately, at this time, LLVM does not handle this sort of exportation on
289+
# Windows for us, so we're forced to do it ourselves if we want it (which seems
290+
# like the path of least resistance right now). To do this we generate a `.DEF`
291+
# file [1] which we then custom-pass to the linker when building the rustc_llvm
292+
# crate. This DEF file list all symbols that are exported from
293+
# `src/librustc_llvm/lib.rs` and is generated by a small python script.
294+
#
295+
# Fun times!
296+
#
297+
# [1]: https://msdn.microsoft.com/en-us/library/28d6s79h.aspx
298+
define ADD_RUSTC_LLVM_DEF_TO_MSVC
299+
ifeq ($$(findstring msvc,$(1)),msvc)
300+
RUSTFLAGS_rustc_llvm_T_$(1) += -C link-args="-DEF:$(1)/rt/rustc_llvm.def"
301+
CUSTOM_DEPS_rustc_llvm_T_$(1) += $(1)/rt/rustc_llvm.def
302+
303+
$(1)/rt/rustc_llvm.def: $$(S)src/etc/mklldef.py $$(S)src/librustc_llvm/lib.rs
304+
$$(CFG_PYTHON) $$^ $$@ rustc_llvm-$$(CFG_FILENAME_EXTRA)
305+
endif
306+
endef
307+
308+
$(foreach target,$(CFG_TARGET), \
309+
$(eval $(call ADD_RUSTC_LLVM_DEF_TO_MSVC,$(target))))

branches/stable/src/doc/trpl/ffi.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,8 @@ and invokes callbacks from there.
309309
In these cases access to Rust data structures inside the callbacks is
310310
especially unsafe and proper synchronization mechanisms must be used.
311311
Besides classical synchronization mechanisms like mutexes, one possibility in
312-
Rust is to use channels (in `std::sync::mpsc`) to forward data from the C
313-
thread that invoked the callback into a Rust thread.
312+
Rust is to use channels (in `std::comm`) to forward data from the C thread
313+
that invoked the callback into a Rust thread.
314314
315315
If an asynchronous callback targets a special object in the Rust address space
316316
it is also absolutely necessary that no more callbacks are performed by the

branches/stable/src/liballoc/arc.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ use core::atomic;
7777
use core::atomic::Ordering::{Relaxed, Release, Acquire, SeqCst};
7878
use core::fmt;
7979
use core::cmp::Ordering;
80-
use core::mem::{align_of_val, size_of_val};
80+
use core::mem::{min_align_of_val, size_of_val};
8181
use core::intrinsics::drop_in_place;
8282
use core::mem;
8383
use core::nonzero::NonZero;
@@ -241,7 +241,7 @@ impl<T: ?Sized> Arc<T> {
241241

242242
if self.inner().weak.fetch_sub(1, Release) == 1 {
243243
atomic::fence(Acquire);
244-
deallocate(ptr as *mut u8, size_of_val(&*ptr), align_of_val(&*ptr))
244+
deallocate(ptr as *mut u8, size_of_val(&*ptr), min_align_of_val(&*ptr))
245245
}
246246
}
247247
}
@@ -565,7 +565,7 @@ impl<T: ?Sized> Drop for Weak<T> {
565565
atomic::fence(Acquire);
566566
unsafe { deallocate(ptr as *mut u8,
567567
size_of_val(&*ptr),
568-
align_of_val(&*ptr)) }
568+
min_align_of_val(&*ptr)) }
569569
}
570570
}
571571
}

branches/stable/src/liballoc/boxed.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ impl<T : ?Sized> Box<T> {
116116
/// of `T` and releases memory. Since the way `Box` allocates and
117117
/// releases memory is unspecified, the only valid pointer to pass
118118
/// to this function is the one taken from another `Box` with
119-
/// `Box::into_raw` function.
119+
/// `boxed::into_raw` function.
120120
///
121121
/// Function is unsafe, because improper use of this function may
122122
/// lead to memory problems like double-free, for example if the
@@ -140,8 +140,10 @@ impl<T : ?Sized> Box<T> {
140140
/// # Examples
141141
/// ```
142142
/// # #![feature(box_raw)]
143+
/// use std::boxed;
144+
///
143145
/// let seventeen = Box::new(17u32);
144-
/// let raw = Box::into_raw(seventeen);
146+
/// let raw = boxed::into_raw(seventeen);
145147
/// let boxed_again = unsafe { Box::from_raw(raw) };
146148
/// ```
147149
#[unstable(feature = "box_raw", reason = "may be renamed")]

branches/stable/src/liballoc/boxed_test.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ fn deref() {
7676

7777
#[test]
7878
fn raw_sized() {
79-
let x = Box::new(17);
80-
let p = Box::into_raw(x);
8179
unsafe {
80+
let x = Box::new(17);
81+
let p = boxed::into_raw(x);
8282
assert_eq!(17, *p);
8383
*p = 19;
8484
let y = Box::from_raw(p);
@@ -105,9 +105,9 @@ fn raw_trait() {
105105
}
106106
}
107107

108-
let x: Box<Foo> = Box::new(Bar(17));
109-
let p = Box::into_raw(x);
110108
unsafe {
109+
let x: Box<Foo> = Box::new(Bar(17));
110+
let p = boxed::into_raw(x);
111111
assert_eq!(17, (*p).get());
112112
(*p).set(19);
113113
let y: Box<Foo> = Box::from_raw(p);

branches/stable/src/liballoc/rc.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ use core::fmt;
162162
use core::hash::{Hasher, Hash};
163163
use core::intrinsics::{assume, drop_in_place};
164164
use core::marker::{self, Unsize};
165-
use core::mem::{self, align_of, size_of, align_of_val, size_of_val, forget};
165+
use core::mem::{self, min_align_of, size_of, min_align_of_val, size_of_val, forget};
166166
use core::nonzero::NonZero;
167167
use core::ops::{CoerceUnsized, Deref};
168168
use core::ptr;
@@ -246,7 +246,7 @@ impl<T> Rc<T> {
246246
// destruct the box and skip our Drop
247247
// we can ignore the refcounts because we know we're unique
248248
deallocate(*rc._ptr as *mut u8, size_of::<RcBox<T>>(),
249-
align_of::<RcBox<T>>());
249+
min_align_of::<RcBox<T>>());
250250
forget(rc);
251251
Ok(val)
252252
}
@@ -496,7 +496,7 @@ impl<T: ?Sized> Drop for Rc<T> {
496496
if self.weak() == 0 {
497497
deallocate(ptr as *mut u8,
498498
size_of_val(&*ptr),
499-
align_of_val(&*ptr))
499+
min_align_of_val(&*ptr))
500500
}
501501
}
502502
}
@@ -805,7 +805,7 @@ impl<T: ?Sized> Drop for Weak<T> {
805805
// the strong pointers have disappeared.
806806
if self.weak() == 0 {
807807
deallocate(ptr as *mut u8, size_of_val(&*ptr),
808-
align_of_val(&*ptr))
808+
min_align_of_val(&*ptr))
809809
}
810810
}
811811
}

0 commit comments

Comments
 (0)