Skip to content

Commit a98468a

Browse files
---
yaml --- r: 235965 b: refs/heads/stable c: 2449823 h: refs/heads/master i: 235963: 05222ba v: v3
1 parent a712da9 commit a98468a

File tree

219 files changed

+7986
-2956
lines changed

Some content is hidden

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

219 files changed

+7986
-2956
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: 033b886f8c4f4b8de0b1f670f45a780e5679620b
32+
refs/heads/stable: 2449823268a886b2faa899ffb794e8396fc02278
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b
3535
refs/tags/1.2.0: f557861f822c34f07270347b94b5280de20a597e

branches/stable/.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@
66
*.rs rust
77
src/etc/pkg/rust-logo.ico binary
88
src/etc/pkg/rust-logo.png binary
9+
src/rt/msvc/* -whitespace
10+
src/rt/valgrind/* -whitespace
911
*.woff binary

branches/stable/configure

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -601,9 +601,7 @@ valopt llvm-root "" "set LLVM root"
601601
valopt python "" "set path to python"
602602
valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located"
603603
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
604-
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path (deprecated)"
605-
valopt arm-linux-androideabi-ndk "" "arm-linux-androideabi NDK standalone path"
606-
valopt aarch64-linux-android-ndk "" "aarch64-linux-android NDK standalone path"
604+
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
607605
valopt release-channel "dev" "the name of the release channel to build"
608606
valopt musl-root "/usr/local" "MUSL root installation directory"
609607

@@ -1114,24 +1112,20 @@ do
11141112
fi
11151113

11161114
case $i in
1117-
*android*)
1118-
upper_snake_target=$(echo "$i" | tr '[:lower:]' '[:upper:]' | tr '\-' '\_')
1119-
eval ndk=\$"CFG_${upper_snake_target}_NDK"
1120-
if [ -z "$ndk" ]
1115+
arm-linux-androideabi)
1116+
1117+
if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-gcc ]
11211118
then
1122-
ndk=$CFG_ANDROID_CROSS_PATH
1123-
eval "CFG_${upper_snake_target}_NDK"=$CFG_ANDROID_CROSS_PATH
1124-
warn "generic/default Android NDK option is deprecated (use --$i-ndk option instead)"
1119+
err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-gcc not found"
1120+
fi
1121+
if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-g++ ]
1122+
then
1123+
err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-g++ not found"
1124+
fi
1125+
if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-ar ]
1126+
then
1127+
err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-ar not found"
11251128
fi
1126-
1127-
# Perform a basic sanity check of the NDK
1128-
for android_ndk_tool in "$ndk/bin/$i-gcc" "$ndk/bin/$i-g++" "$ndk/bin/$i-ar"
1129-
do
1130-
if [ ! -f $android_ndk_tool ]
1131-
then
1132-
err "NDK tool $android_ndk_tool not found (bad or missing --$i-ndk option?)"
1133-
fi
1134-
done
11351129
;;
11361130

11371131
arm-apple-darwin)
@@ -1183,13 +1177,8 @@ do
11831177
# INCLUDE and LIB variables for MSVC so we can set those in the
11841178
# build system as well.
11851179
install=$(reg QUERY \
1186-
'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0' \
1180+
'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0' \
11871181
-v InstallDir)
1188-
if [ -z "$install" ]; then
1189-
install=$(reg QUERY \
1190-
'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0' \
1191-
-v InstallDir)
1192-
fi
11931182
need_ok "couldn't find visual studio install root"
11941183
CFG_MSVC_ROOT=$(echo "$install" | grep InstallDir | sed 's/.*REG_SZ[ ]*//')
11951184
CFG_MSVC_ROOT=$(dirname "$CFG_MSVC_ROOT")
@@ -1471,22 +1460,12 @@ do
14711460

14721461
msg "configuring LLVM with:"
14731462
msg "$CMAKE_ARGS"
1474-
case "$CFG_MSVC_ROOT" in
1475-
*14.0*)
1476-
generator="Visual Studio 14 2015"
1477-
;;
1478-
*12.0*)
1479-
generator="Visual Studio 12 2013"
1480-
;;
1481-
*)
1482-
err "can't determine generator for LLVM cmake"
1483-
;;
1484-
esac
14851463
case "$t" in
14861464
x86_64-*)
1487-
generator="$generator Win64"
1465+
generator="Visual Studio 12 2013 Win64"
14881466
;;
14891467
i686-*)
1468+
generator="Visual Studio 12 2013"
14901469
;;
14911470
*)
14921471
err "can only build LLVM for x86 platforms"
@@ -1688,8 +1667,7 @@ putvar CFG_HOST
16881667
putvar CFG_TARGET
16891668
putvar CFG_LIBDIR_RELATIVE
16901669
putvar CFG_DISABLE_MANAGE_SUBMODULES
1691-
putvar CFG_AARCH64_LINUX_ANDROID_NDK
1692-
putvar CFG_ARM_LINUX_ANDROIDEABI_NDK
1670+
putvar CFG_ANDROID_CROSS_PATH
16931671
putvar CFG_MANDIR
16941672

16951673
# Avoid spurious warnings from clang by feeding it original source on

branches/stable/mk/cfg/aarch64-linux-android.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# aarch64-linux-android configuration
22
# CROSS_PREFIX_aarch64-linux-android-
3-
CC_aarch64-linux-android=$(CFG_AARCH64_LINUX_ANDROID_NDK)/bin/aarch64-linux-android-gcc
4-
CXX_aarch64-linux-android=$(CFG_AARCH64_LINUX_ANDROID_NDK)/bin/aarch64-linux-android-g++
5-
CPP_aarch64-linux-android=$(CFG_AARCH64_LINUX_ANDROID_NDK)/bin/aarch64-linux-android-gcc -E
6-
AR_aarch64-linux-android=$(CFG_AARCH64_LINUX_ANDROID_NDK)/bin/aarch64-linux-android-ar
3+
CC_aarch64-linux-android=$(CFG_ANDROID_CROSS_PATH)/bin/aarch64-linux-android-gcc
4+
CXX_aarch64-linux-android=$(CFG_ANDROID_CROSS_PATH)/bin/aarch64-linux-android-g++
5+
CPP_aarch64-linux-android=$(CFG_ANDROID_CROSS_PATH)/bin/aarch64-linux-android-gcc -E
6+
AR_aarch64-linux-android=$(CFG_ANDROID_CROSS_PATH)/bin/aarch64-linux-android-ar
77
CFG_LIB_NAME_aarch64-linux-android=lib$(1).so
88
CFG_STATIC_LIB_NAME_aarch64-linux-android=lib$(1).a
99
CFG_LIB_GLOB_aarch64-linux-android=lib$(1)-*.so

branches/stable/mk/cfg/arm-linux-androideabi.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# arm-linux-androideabi configuration
2-
CC_arm-linux-androideabi=$(CFG_ARM_LINUX_ANDROIDEABI_NDK)/bin/arm-linux-androideabi-gcc
3-
CXX_arm-linux-androideabi=$(CFG_ARM_LINUX_ANDROIDEABI_NDK)/bin/arm-linux-androideabi-g++
4-
CPP_arm-linux-androideabi=$(CFG_ARM_LINUX_ANDROIDEABI_NDK)/bin/arm-linux-androideabi-gcc -E
5-
AR_arm-linux-androideabi=$(CFG_ARM_LINUX_ANDROIDEABI_NDK)/bin/arm-linux-androideabi-ar
2+
CC_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
3+
CXX_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++
4+
CPP_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc -E
5+
AR_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar
66
CFG_LIB_NAME_arm-linux-androideabi=lib$(1).so
77
CFG_STATIC_LIB_NAME_arm-linux-androideabi=lib$(1).a
88
CFG_LIB_GLOB_arm-linux-androideabi=lib$(1)-*.so

branches/stable/src/doc/trpl/choosing-your-guarantees.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ allowed to share references to this by the regular borrowing rules, checked at c
4242

4343
## `&T` and `&mut T`
4444

45-
These are immutable and mutable references respectively. They follow the &lquo;read-write lock&rquo;
45+
These are immutable and mutable references respectively. They follow the “read-write lock”
4646
pattern, such that one may either have only one mutable reference to some data, or any number of
4747
immutable ones, but not both. This guarantee is enforced at compile time, and has no visible cost at
4848
runtime. In most cases these two pointer types suffice for sharing cheap references between sections
@@ -81,7 +81,7 @@ The main guarantee provided here is that the data will not be destroyed until al
8181
are out of scope.
8282

8383
This should be used when we wish to dynamically allocate and share some data (read-only) between
84-
various portions of your program, where it is not certain which portion will finish using the pointer
84+
various portions of yur program, where it is not certain which portion will finish using the pointer
8585
last. It's a viable alternative to `&T` when `&T` is either impossible to statically check for
8686
correctness, or creates extremely unergonomic code where the programmer does not wish to spend the
8787
development cost of working with.
@@ -108,7 +108,7 @@ increment the inner reference count and return a copy of the `Rc<T>`.
108108

109109
# Cell types
110110

111-
&lquo;Cell&rquo;s provide interior mutability. In other words, they contain data which can be manipulated even
111+
`Cell`s provide interior mutability. In other words, they contain data which can be manipulated even
112112
if the type cannot be obtained in a mutable form (for example, when it is behind an `&`-ptr or
113113
`Rc<T>`).
114114

branches/stable/src/doc/trpl/compiler-plugins.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ fn expand_rn(cx: &mut ExtCtxt, sp: Span, args: &[TokenTree])
6161
("I", 1)];
6262
6363
let text = match args {
64-
[TtToken(_, token::Ident(s, _))] => s.to_string(),
64+
[TtToken(_, token::Ident(s, _))] => token::get_ident(s).to_string(),
6565
_ => {
6666
cx.span_err(sp, "argument should be a single identifier");
6767
return DummyResult::any(sp);
@@ -186,7 +186,8 @@ impl LintPass for Pass {
186186
}
187187
188188
fn check_item(&mut self, cx: &Context, it: &ast::Item) {
189-
if it.ident.name == "lintme" {
189+
let name = token::get_ident(it.ident);
190+
if name.get() == "lintme" {
190191
cx.span_lint(TEST_LINT, it.span, "item is named 'lintme'");
191192
}
192193
}

branches/stable/src/doc/trpl/crates-and-modules.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -355,10 +355,6 @@ Hello in English: Hello!
355355
Goodbye in English: Goodbye.
356356
```
357357
358-
`pub` also applies to `struct`s and their member fields. In keeping with Rust’s
359-
tendency toward safety, simply making a `struct` public won't automatically
360-
make its members public: you must mark the fields individually with `pub`.
361-
362358
Now that our functions are public, we can use them. Great! However, typing out
363359
`phrases::english::greetings::hello()` is very long and repetitive. Rust has
364360
another keyword for importing names into the current scope, so that you can

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

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -347,50 +347,40 @@ easiest just to show an example:
347347

348348
```rust
349349
trait Foo {
350-
fn is_valid(&self) -> bool;
350+
fn bar(&self);
351351

352-
fn is_invalid(&self) -> bool { !self.is_valid() }
352+
fn baz(&self) { println!("We called baz."); }
353353
}
354354
```
355355

356-
Implementors of the `Foo` trait need to implement `is_valid()`, but they don’t
357-
need to implement `is_invalid()`. They’ll get this default behavior. They can
356+
Implementors of the `Foo` trait need to implement `bar()`, but they don’t
357+
need to implement `baz()`. They’ll get this default behavior. They can
358358
override the default if they so choose:
359359

360360
```rust
361361
# trait Foo {
362-
# fn is_valid(&self) -> bool;
363-
#
364-
# fn is_invalid(&self) -> bool { !self.is_valid() }
362+
# fn bar(&self);
363+
# fn baz(&self) { println!("We called baz."); }
365364
# }
366365
struct UseDefault;
367366

368367
impl Foo for UseDefault {
369-
fn is_valid(&self) -> bool {
370-
println!("Called UseDefault.is_valid.");
371-
true
372-
}
368+
fn bar(&self) { println!("We called bar."); }
373369
}
374370

375371
struct OverrideDefault;
376372

377373
impl Foo for OverrideDefault {
378-
fn is_valid(&self) -> bool {
379-
println!("Called OverrideDefault.is_valid.");
380-
true
381-
}
374+
fn bar(&self) { println!("We called bar."); }
382375

383-
fn is_invalid(&self) -> bool {
384-
println!("Called OverrideDefault.is_invalid!");
385-
true // this implementation is a self-contradiction!
386-
}
376+
fn baz(&self) { println!("Override baz!"); }
387377
}
388378

389379
let default = UseDefault;
390-
assert!(!default.is_invalid()); // prints "Called UseDefault.is_valid."
380+
default.baz(); // prints "We called baz."
391381

392382
let over = OverrideDefault;
393-
assert!(over.is_invalid()); // prints "Called OverrideDefault.is_invalid!"
383+
over.baz(); // prints "Override baz!"
394384
```
395385

396386
# Inheritance

branches/stable/src/liballoc/boxed.rs

Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
use core::prelude::*;
5757

5858
use heap;
59-
use raw_vec::RawVec;
6059

6160
use core::any::Any;
6261
use core::cmp::Ordering;
@@ -66,7 +65,7 @@ use core::marker::{self, Unsize};
6665
use core::mem;
6766
use core::ops::{CoerceUnsized, Deref, DerefMut};
6867
use core::ops::{Placer, Boxed, Place, InPlace, BoxPlace};
69-
use core::ptr::{self, Unique};
68+
use core::ptr::Unique;
7069
use core::raw::{TraitObject};
7170

7271
/// A value that represents the heap. This is the default place that the `box`
@@ -87,13 +86,10 @@ use core::raw::{TraitObject};
8786
#[lang = "exchange_heap"]
8887
#[unstable(feature = "box_heap",
8988
reason = "may be renamed; uncertain about custom allocator design")]
90-
#[allow(deprecated)]
9189
pub const HEAP: ExchangeHeapSingleton =
9290
ExchangeHeapSingleton { _force_singleton: () };
9391

9492
/// This the singleton type used solely for `boxed::HEAP`.
95-
#[unstable(feature = "box_heap",
96-
reason = "may be renamed; uncertain about custom allocator design")]
9793
#[derive(Copy, Clone)]
9894
pub struct ExchangeHeapSingleton { _force_singleton: () }
9995

@@ -301,7 +297,7 @@ impl<T: Clone> Clone for Box<T> {
301297
/// let y = x.clone();
302298
/// ```
303299
#[inline]
304-
fn clone(&self) -> Box<T> { box {(**self).clone()} }
300+
fn clone(&self) -> Box<T> { box (HEAP) {(**self).clone()} }
305301
/// Copies `source`'s contents into `self` without creating a new allocation.
306302
///
307303
/// # Examples
@@ -515,55 +511,3 @@ impl<'a,A,R> FnOnce<A> for Box<FnBox<A,Output=R>+Send+'a> {
515511
}
516512

517513
impl<T: ?Sized+Unsize<U>, U: ?Sized> CoerceUnsized<Box<U>> for Box<T> {}
518-
519-
#[stable(feature = "box_slice_clone", since = "1.3.0")]
520-
impl<T: Clone> Clone for Box<[T]> {
521-
fn clone(&self) -> Self {
522-
let mut new = BoxBuilder {
523-
data: RawVec::with_capacity(self.len()),
524-
len: 0
525-
};
526-
527-
let mut target = new.data.ptr();
528-
529-
for item in self.iter() {
530-
unsafe {
531-
ptr::write(target, item.clone());
532-
target = target.offset(1);
533-
};
534-
535-
new.len += 1;
536-
}
537-
538-
return unsafe { new.into_box() };
539-
540-
// Helper type for responding to panics correctly.
541-
struct BoxBuilder<T> {
542-
data: RawVec<T>,
543-
len: usize,
544-
}
545-
546-
impl<T> BoxBuilder<T> {
547-
unsafe fn into_box(self) -> Box<[T]> {
548-
let raw = ptr::read(&self.data);
549-
mem::forget(self);
550-
raw.into_box()
551-
}
552-
}
553-
554-
impl<T> Drop for BoxBuilder<T> {
555-
fn drop(&mut self) {
556-
let mut data = self.data.ptr();
557-
let max = unsafe { data.offset(self.len as isize) };
558-
559-
while data != max {
560-
unsafe {
561-
ptr::read(data);
562-
data = data.offset(1);
563-
}
564-
}
565-
}
566-
}
567-
}
568-
}
569-

branches/stable/src/liballoc/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,14 @@
7070
test(no_crate_inject))]
7171
#![no_std]
7272

73+
// SNAP d4432b3
74+
#![allow(unused_features)] // until feature(placement_in_syntax) is in snap
7375
#![feature(allocator)]
7476
#![feature(box_syntax)]
7577
#![feature(coerce_unsized)]
7678
#![feature(core)]
7779
#![feature(core_intrinsics)]
7880
#![feature(core_prelude)]
79-
#![feature(core_slice_ext)]
8081
#![feature(custom_attribute)]
8182
#![feature(fundamental)]
8283
#![feature(lang_items)]

branches/stable/src/libcollections/slice.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -762,16 +762,12 @@ impl<T> [T] {
762762

763763
/// Find the first index containing a matching value.
764764
#[unstable(feature = "slice_position_elem")]
765-
#[deprecated(since = "1.3.0",
766-
reason = "less idiomatic than .iter().position()")]
767765
pub fn position_elem(&self, t: &T) -> Option<usize> where T: PartialEq {
768766
core_slice::SliceExt::position_elem(self, t)
769767
}
770768

771769
/// Find the last index containing a matching value.
772770
#[unstable(feature = "slice_position_elem")]
773-
#[deprecated(since = "1.3.0",
774-
reason = "less idiomatic than .iter().rev().position()")]
775771
pub fn rposition_elem(&self, t: &T) -> Option<usize> where T: PartialEq {
776772
core_slice::SliceExt::rposition_elem(self, t)
777773
}
@@ -1013,8 +1009,6 @@ impl<T> [T] {
10131009
/// ```
10141010
#[unstable(feature = "move_from",
10151011
reason = "uncertain about this API approach")]
1016-
#[deprecated(since = "1.3.0",
1017-
reason = "unclear that it must belong in the standard library")]
10181012
#[inline]
10191013
pub fn move_from(&mut self, mut src: Vec<T>, start: usize, end: usize) -> usize {
10201014
for (a, b) in self.iter_mut().zip(&mut src[start .. end]) {

0 commit comments

Comments
 (0)