Skip to content

Commit 11fcbfc

Browse files
committed
---
yaml --- r: 277692 b: refs/heads/try c: 76d6030 h: refs/heads/master
1 parent 741e25b commit 11fcbfc

File tree

458 files changed

+4757
-2764
lines changed

Some content is hidden

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

458 files changed

+4757
-2764
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: 89aa04299451baf73750c8480d14471dfced44db
4+
refs/heads/try: 76d6030e80910a9de4c2919e141ee3b8c5171c7a
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/mk/ctags.mk

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,21 @@
1515

1616
.PHONY: TAGS.emacs TAGS.vi
1717

18-
CTAGS_LOCATIONS=$(wildcard ${CFG_SRC_DIR}src/lib*)
18+
CTAGS_RUSTC_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
19+
$(wildcard ${CFG_SRC_DIR}src/lib*)) ${CFG_SRC_DIR}src/libtest
1920
CTAGS_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/librust%,, \
2021
$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
2122
$(wildcard ${CFG_SRC_DIR}src/lib*))) ${CFG_SRC_DIR}src/libtest
22-
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse ${CTAGS_LOCATIONS}
23+
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse
24+
25+
TAGS.rustc.emacs:
26+
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
2327

2428
TAGS.emacs:
25-
ctags -e -f $@ ${CTAGS_OPTS}
29+
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}
30+
31+
TAGS.rustc.vi:
32+
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
2633

2734
TAGS.vi:
28-
ctags -f $@ ${CTAGS_OPTS}
35+
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}

branches/try/mk/debuggers.mk

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,13 @@ DEBUGGER_BIN_SCRIPTS_LLDB_ABS=\
4141

4242

4343
## ALL ##
44-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB) \
45-
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB)
46-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS) \
47-
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
44+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=gdb_load_rust_pretty_printers.py \
45+
gdb_rust_pretty_printing.py \
46+
lldb_rust_formatters.py \
47+
debugger_pretty_printers_common.py
48+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=\
49+
$(foreach script,$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL), \
50+
$(CFG_SRC_DIR)src/etc/$(script))
4851
DEBUGGER_BIN_SCRIPTS_ALL=$(DEBUGGER_BIN_SCRIPTS_GDB) \
4952
$(DEBUGGER_BIN_SCRIPTS_LLDB)
5053
DEBUGGER_BIN_SCRIPTS_ALL_ABS=$(DEBUGGER_BIN_SCRIPTS_GDB_ABS) \

branches/try/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ endif
390390
# This 'function' will determine which debugger scripts to copy based on a
391391
# target triple. See debuggers.mk for more information.
392392
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING=\
393-
$(if $(findstring windows,$(1)),none,$(if $(findstring darwin,$(1)),lldb,gdb))
393+
$(if $(findstring windows-msvc,$(1)),none,all)
394394

395395
STAGES = 0 1 2 3
396396

branches/try/mk/platform.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ ifdef CFG_CCACHE_BASEDIR
169169
export CCACHE_BASEDIR
170170
endif
171171

172-
FIND_COMPILER = $(word 1,$(1:ccache=))
172+
FIND_COMPILER = $(strip $(1:ccache=))
173173

174174
define CFG_MAKE_TOOLCHAIN
175175
# Prepend the tools with their prefix if cross compiling
@@ -187,7 +187,7 @@ define CFG_MAKE_TOOLCHAIN
187187
endif
188188
endif
189189

190-
CFG_COMPILE_C_$(1) = '$$(CC_$(1))' \
190+
CFG_COMPILE_C_$(1) = '$$(call FIND_COMPILER,$$(CC_$(1)))' \
191191
$$(CFLAGS) \
192192
$$(CFG_GCCISH_CFLAGS) \
193193
$$(CFG_GCCISH_CFLAGS_$(1)) \
@@ -198,7 +198,7 @@ define CFG_MAKE_TOOLCHAIN
198198
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
199199
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
200200
$$(call CFG_INSTALL_NAME_$(1),$$(4))
201-
CFG_COMPILE_CXX_$(1) = '$$(CXX_$(1))' \
201+
CFG_COMPILE_CXX_$(1) = '$$(call FIND_COMPILER,$$(CXX_$(1)))' \
202202
$$(CXXFLAGS) \
203203
$$(CFG_GCCISH_CFLAGS) \
204204
$$(CFG_GCCISH_CXXFLAGS) \

branches/try/mk/tests.mk

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -616,13 +616,12 @@ ifdef CFG_ENABLE_DEBUGINFO_TESTS
616616
CTEST_RUSTC_FLAGS += -g
617617
endif
618618

619-
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
619+
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) = \
620620
--compile-lib-path $$(HLIB$(1)_H_$(3)) \
621621
--run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \
622622
--rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
623623
--rustdoc-path $$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
624624
--llvm-filecheck $(CFG_LLVM_INST_DIR_$(CFG_BUILD))/bin/FileCheck \
625-
--aux-base $$(S)src/test/auxiliary/ \
626625
--stage-id stage$(1)-$(2) \
627626
--target $(2) \
628627
--host $(3) \
@@ -636,11 +635,11 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
636635
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
637636
--lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
638637
--target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
639-
--cc '$$(CC_$(3))' \
640-
--cxx '$$(CXX_$(3))' \
641-
--cflags "$$(CFG_GCCISH_CFLAGS_$(3))" \
642-
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(3))" \
643-
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(3))" \
638+
--cc '$$(call FIND_COMPILER,$$(CC_$(2)))' \
639+
--cxx '$$(call FIND_COMPILER,$$(CXX_$(2)))' \
640+
--cflags "$$(CFG_GCCISH_CFLAGS_$(2))" \
641+
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(2))" \
642+
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(2))" \
644643
$$(CTEST_TESTARGS)
645644

646645
ifdef CFG_VALGRIND_RPASS
@@ -686,7 +685,7 @@ $(foreach host,$(CFG_HOST), \
686685

687686
define DEF_RUN_COMPILETEST
688687

689-
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
688+
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
690689
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
691690
--src-base $$(S)src/test/$$(CTEST_SRC_BASE_$(4))/ \
692691
--build-base $(3)/test/$$(CTEST_BUILD_BASE_$(4))/ \
@@ -779,7 +778,7 @@ $(foreach host,$(CFG_HOST), \
779778

780779
define DEF_RUN_PRETTY_TEST
781780

782-
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
781+
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
783782
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
784783
--src-base $$(S)src/test/$$(PRETTY_DIRNAME_$(4))/ \
785784
--build-base $(3)/test/$$(PRETTY_DIRNAME_$(4))/ \

branches/try/src/bootstrap/build/check.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ pub fn compiletest(build: &Build,
7070
cmd.arg("--rustc-path").arg(build.compiler_path(compiler));
7171
cmd.arg("--rustdoc-path").arg(build.rustdoc(compiler));
7272
cmd.arg("--src-base").arg(build.src.join("src/test").join(suite));
73-
cmd.arg("--aux-base").arg(build.src.join("src/test/auxiliary"));
7473
cmd.arg("--build-base").arg(testdir(build, compiler.host).join(suite));
7574
cmd.arg("--stage-id").arg(format!("stage{}-{}", compiler.stage, target));
7675
cmd.arg("--mode").arg(mode);

branches/try/src/bootstrap/build/dist.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,23 +217,23 @@ pub fn debugger_scripts(build: &Build,
217217
t!(fs::create_dir_all(&dst));
218218
install(&build.src.join("src/etc/").join(file), &dst, 0o644);
219219
};
220-
if host.contains("windows") {
220+
if host.contains("windows-msvc") {
221221
// no debugger scripts
222-
} else if host.contains("darwin") {
223-
// lldb debugger scripts
224-
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
225-
0o755);
226-
227-
cp_debugger_script("lldb_rust_formatters.py");
228-
cp_debugger_script("debugger_pretty_printers_common.py");
229222
} else {
223+
cp_debugger_script("debugger_pretty_printers_common.py");
224+
230225
// gdb debugger scripts
231226
install(&build.src.join("src/etc/rust-gdb"), &sysroot.join("bin"),
232227
0o755);
233228

234229
cp_debugger_script("gdb_load_rust_pretty_printers.py");
235230
cp_debugger_script("gdb_rust_pretty_printing.py");
236-
cp_debugger_script("debugger_pretty_printers_common.py");
231+
232+
// lldb debugger scripts
233+
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
234+
0o755);
235+
236+
cp_debugger_script("lldb_rust_formatters.py");
237237
}
238238
}
239239

branches/try/src/doc/book/getting-started.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ we’ll talk about Cargo, Rust’s build system and package manager.
88

99
The first step to using Rust is to install it. Generally speaking, you’ll need
1010
an Internet connection to run the commands in this section, as we’ll be
11-
downloading Rust from the internet.
11+
downloading Rust from the Internet.
1212

1313
We’ll be showing off a number of commands using a terminal, and those lines all
1414
start with `$`. We don't need to type in the `$`s, they are there to indicate
@@ -399,13 +399,13 @@ Let’s convert the Hello World program to Cargo. To Cargo-fy a project, you nee
399399
to do three things:
400400

401401
1. Put your source file in the right directory.
402-
2. Get rid of the old executable (`main.exe` on Windows, `main` everywhere else)
403-
and make a new one.
402+
2. Get rid of the old executable (`main.exe` on Windows, `main` everywhere
403+
else).
404404
3. Make a Cargo configuration file.
405405

406406
Let's get started!
407407

408-
### Creating a new Executable and Source Directory
408+
### Creating a Source Directory and Removing the Old Executable
409409

410410
First, go back to your terminal, move to your *hello_world* directory, and
411411
enter the following commands:

branches/try/src/libcollections/fmt.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@
333333
//! precision := count | '*'
334334
//! type := identifier | ''
335335
//! count := parameter | integer
336-
//! parameter := integer '$'
336+
//! parameter := argument '$'
337337
//! ```
338338
//!
339339
//! # Formatting Parameters
@@ -403,11 +403,12 @@
403403
//! println!("Hello {:5}!", "x");
404404
//! println!("Hello {:1$}!", "x", 5);
405405
//! println!("Hello {1:0$}!", 5, "x");
406+
//! println!("Hello {:width$}!", "x", width = 5);
406407
//! ```
407408
//!
408409
//! Referring to an argument with the dollar syntax does not affect the "next
409-
//! argument" counter, so it's usually a good idea to refer to all arguments by
410-
//! their position explicitly.
410+
//! argument" counter, so it's usually a good idea to refer to arguments by
411+
//! position, or use named arguments.
411412
//!
412413
//! ## Precision
413414
//!
@@ -426,7 +427,7 @@
426427
//!
427428
//! the integer `N` itself is the precision.
428429
//!
429-
//! 2. An integer followed by dollar sign `.N$`:
430+
//! 2. An integer or name followed by dollar sign `.N$`:
430431
//!
431432
//! use format *argument* `N` (which must be a `usize`) as the precision.
432433
//!
@@ -456,6 +457,10 @@
456457
//! // Hello {next arg (x)} is {arg 2 (0.01) with precision
457458
//! // specified in its predecessor (5)}
458459
//! println!("Hello {} is {2:.*}", "x", 5, 0.01);
460+
//!
461+
//! // Hello {next arg (x)} is {arg "number" (0.01) with precision specified
462+
//! // in arg "prec" (5)}
463+
//! println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
459464
//! ```
460465
//!
461466
//! All print the same thing:

branches/try/src/libcore/cell.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,18 @@ impl<T:Copy> Cell<T> {
232232
pub fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
233233
&self.value
234234
}
235+
236+
/// Returns a mutable reference to the underlying data.
237+
///
238+
/// This call borrows `Cell` mutably (at compile-time) which guarantees
239+
/// that we possess the only reference.
240+
#[inline]
241+
#[unstable(feature = "cell_get_mut", issue = "33444")]
242+
pub fn get_mut(&mut self) -> &mut T {
243+
unsafe {
244+
&mut *self.value.get()
245+
}
246+
}
235247
}
236248

237249
#[stable(feature = "rust1", since = "1.0.0")]
@@ -455,6 +467,18 @@ impl<T: ?Sized> RefCell<T> {
455467
pub unsafe fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
456468
&self.value
457469
}
470+
471+
/// Returns a mutable reference to the underlying data.
472+
///
473+
/// This call borrows `RefCell` mutably (at compile-time) so there is no
474+
/// need for dynamic checks.
475+
#[inline]
476+
#[unstable(feature = "cell_get_mut", issue="33444")]
477+
pub fn get_mut(&mut self) -> &mut T {
478+
unsafe {
479+
&mut *self.value.get()
480+
}
481+
}
458482
}
459483

460484
#[stable(feature = "rust1", since = "1.0.0")]

branches/try/src/libcore/mem.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ pub use intrinsics::transmute;
110110
/// }
111111
/// }
112112
/// ```
113+
#[inline]
113114
#[stable(feature = "rust1", since = "1.0.0")]
114115
pub fn forget<T>(t: T) {
115116
unsafe { intrinsics::forget(t) }

branches/try/src/libcore/num/bignum.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use mem;
3333
use intrinsics;
3434

3535
/// Arithmetic operations required by bignums.
36-
pub trait FullOps {
36+
pub trait FullOps: Sized {
3737
/// Returns `(carry', v')` such that `carry' * 2^W + v' = self + other + carry`,
3838
/// where `W` is the number of bits in `Self`.
3939
fn full_add(self, other: Self, carry: bool) -> (bool /*carry*/, Self);

branches/try/src/libcore/num/wrapping.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,15 @@ macro_rules! wrapping_impl {
275275
*self = *self & other;
276276
}
277277
}
278+
279+
#[stable(feature = "wrapping_neg", since = "1.10.0")]
280+
impl Neg for Wrapping<$t> {
281+
type Output = Self;
282+
#[inline(always)]
283+
fn neg(self) -> Self {
284+
Wrapping(0) - self
285+
}
286+
}
278287
)*)
279288
}
280289

branches/try/src/librustc/dep_graph/dep_node.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub enum DepNode<D: Clone + Debug> {
8888
ImplOrTraitItems(D),
8989
ItemSignature(D),
9090
FieldTy(D),
91+
SizedConstraint(D),
9192
TraitItemDefIds(D),
9293
InherentImpls(D),
9394
ImplItems(D),
@@ -193,6 +194,7 @@ impl<D: Clone + Debug> DepNode<D> {
193194
ImplOrTraitItems(ref d) => op(d).map(ImplOrTraitItems),
194195
ItemSignature(ref d) => op(d).map(ItemSignature),
195196
FieldTy(ref d) => op(d).map(FieldTy),
197+
SizedConstraint(ref d) => op(d).map(SizedConstraint),
196198
TraitItemDefIds(ref d) => op(d).map(TraitItemDefIds),
197199
InherentImpls(ref d) => op(d).map(InherentImpls),
198200
ImplItems(ref d) => op(d).map(ImplItems),

branches/try/src/librustc/dep_graph/thread.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,9 @@ pub fn main(swap_in: Receiver<Vec<DepMessage>>,
176176
DepMessage::Query => query_out.send(edges.query()).unwrap(),
177177
}
178178
}
179-
swap_out.send(messages).unwrap();
179+
if let Err(_) = swap_out.send(messages) {
180+
// the receiver must have been dropped already
181+
break;
182+
}
180183
}
181184
}

branches/try/src/librustc/infer/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,17 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
814814
r
815815
}
816816

817+
// Execute `f` in a snapshot, and commit the bindings it creates
818+
pub fn in_snapshot<T, F>(&self, f: F) -> T where
819+
F: FnOnce(&CombinedSnapshot) -> T
820+
{
821+
debug!("in_snapshot()");
822+
let snapshot = self.start_snapshot();
823+
let r = f(&snapshot);
824+
self.commit_from(snapshot);
825+
r
826+
}
827+
817828
/// Execute `f` and commit only the region bindings if successful.
818829
/// The function f must be very careful not to leak any non-region
819830
/// variables that get created.

branches/try/src/librustc/lint/builtin.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,18 @@ declare_lint! {
185185
"detects super or self keywords at the beginning of global path"
186186
}
187187

188+
declare_lint! {
189+
pub UNSIZED_IN_TUPLE,
190+
Warn,
191+
"unsized types in the interior of a tuple were erroneously allowed"
192+
}
193+
194+
declare_lint! {
195+
pub OBJECT_UNSAFE_FRAGMENT,
196+
Warn,
197+
"object-unsafe non-principal fragments in object types were erroneously allowed"
198+
}
199+
188200
/// Does nothing as a lint pass, but registers some `Lint`s
189201
/// which are used by other parts of the compiler.
190202
#[derive(Copy, Clone)]
@@ -220,7 +232,9 @@ impl LintPass for HardwiredLints {
220232
TRANSMUTE_FROM_FN_ITEM_TYPES,
221233
OVERLAPPING_INHERENT_IMPLS,
222234
RENAMED_AND_REMOVED_LINTS,
223-
SUPER_OR_SELF_IN_GLOBAL_PATH
235+
SUPER_OR_SELF_IN_GLOBAL_PATH,
236+
UNSIZED_IN_TUPLE,
237+
OBJECT_UNSAFE_FRAGMENT
224238
)
225239
}
226240
}

0 commit comments

Comments
 (0)