Skip to content

Commit 24b1182

Browse files
committed
---
yaml --- r: 235638 b: refs/heads/stable c: d68b152 h: refs/heads/master v: v3
1 parent fc19532 commit 24b1182

Some content is hidden

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

108 files changed

+760
-1656
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: 21dfd24c4b1f8c24abb78d573c42344b8d2ec809
32+
refs/heads/stable: d68b152c3e2feb6ee18bdf2c992098376dbb528c
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b
3535
refs/tags/1.2.0: f557861f822c34f07270347b94b5280de20a597e

branches/stable/configure

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -323,17 +323,6 @@ envopt() {
323323
fi
324324
}
325325

326-
enable_if_not_disabled() {
327-
local OP=$1
328-
local UOP=$(echo $OP | tr '[:lower:]' '[:upper:]' | tr '\-' '\_')
329-
local ENAB_V="CFG_ENABLE_$UOP"
330-
local EXPLICITLY_DISABLED="CFG_DISABLE_${UOP}_PROVIDED"
331-
eval VV=\$$EXPLICITLY_DISABLED
332-
if [ -z "$VV" ]; then
333-
eval $ENAB_V=1
334-
fi
335-
}
336-
337326
to_llvm_triple() {
338327
case $1 in
339328
i686-w64-mingw32) echo i686-pc-windows-gnu ;;
@@ -682,12 +671,10 @@ if [ -n "$CFG_ENABLE_DEBUG" ]; then
682671
CFG_DISABLE_OPTIMIZE=1
683672
CFG_DISABLE_OPTIMIZE_CXX=1
684673
fi
685-
686-
# Set following variables to 1 unless setting already provided
687-
enable_if_not_disabled debug-assertions
688-
enable_if_not_disabled debug-jemalloc
689-
enable_if_not_disabled debuginfo
690-
enable_if_not_disabled llvm-assertions
674+
CFG_ENABLE_DEBUG_ASSERTIONS=1
675+
CFG_ENABLE_DEBUG_JEMALLOC=1
676+
CFG_ENABLE_DEBUGINFO=1
677+
CFG_ENABLE_LLVM_ASSERTIONS=1
691678
fi
692679

693680
# OK, now write the debugging options

branches/stable/src/libcollections/slice.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
//! A dynamically-sized view into a contiguous sequence, `[T]`.
11+
//! Utilities for slice manipulation
1212
//!
13+
//! The `slice` module contains useful code to help work with slice values.
1314
//! Slices are a view into a block of memory represented as a pointer and a
1415
//! length.
1516
//!
@@ -77,8 +78,7 @@
7778
//! iterators.
7879
//! * Further methods that return iterators are `.split()`, `.splitn()`,
7980
//! `.chunks()`, `.windows()` and more.
80-
//!
81-
//! *[See also the slice primitive type](../primitive.slice.html).*
81+
#![doc(primitive = "slice")]
8282
#![stable(feature = "rust1", since = "1.0.0")]
8383

8484
// Many of the usings in this module are only used in the test configuration.

branches/stable/src/libcollections/str.rs

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,43 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
//! Unicode string slices
11+
//! Unicode string manipulation (the `str` type).
1212
//!
13-
//! *[See also the `str` primitive type](../primitive.str.html).*
14-
13+
//! Rust's `str` type is one of the core primitive types of the language. `&str`
14+
//! is the borrowed string type. This type of string can only be created from
15+
//! other strings, unless it is a `&'static str` (see below). It is not possible
16+
//! to move out of borrowed strings because they are owned elsewhere.
17+
//!
18+
//! # Examples
19+
//!
20+
//! Here's some code that uses a `&str`:
21+
//!
22+
//! ```
23+
//! let s = "Hello, world.";
24+
//! ```
25+
//!
26+
//! This `&str` is a `&'static str`, which is the type of string literals.
27+
//! They're `'static` because literals are available for the entire lifetime of
28+
//! the program.
29+
//!
30+
//! You can get a non-`'static` `&str` by taking a slice of a `String`:
31+
//!
32+
//! ```
33+
//! let some_string = "Hello, world.".to_string();
34+
//! let s = &some_string;
35+
//! ```
36+
//!
37+
//! # Representation
38+
//!
39+
//! Rust's string type, `str`, is a sequence of Unicode scalar values encoded as
40+
//! a stream of UTF-8 bytes. All [strings](../../reference.html#literals) are
41+
//! guaranteed to be validly encoded UTF-8 sequences. Additionally, strings are
42+
//! not null-terminated and can thus contain null bytes.
43+
//!
44+
//! The actual representation of `str`s have direct mappings to slices: `&str`
45+
//! is the same as `&[u8]`.
1546
47+
#![doc(primitive = "str")]
1648
#![stable(feature = "rust1", since = "1.0.0")]
1749

1850
// Many of the usings in this module are only used in the test configuration.

branches/stable/src/libcore/array.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
//! Implementations of things like `Eq` for fixed-length arrays
1212
//! up to a certain length. Eventually we should able to generalize
1313
//! to all lengths.
14-
//!
15-
//! *[See also the array primitive type](../primitive.array.html).*
1614
15+
#![doc(primitive = "array")]
1716
#![unstable(feature = "fixed_size_array",
1817
reason = "traits and impls are better expressed through generic \
1918
integer constants")]

branches/stable/src/libcore/atomic.rs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ use intrinsics;
7878
use cell::UnsafeCell;
7979

8080
use default::Default;
81-
use fmt;
8281

8382
/// A boolean type which can be safely shared between threads.
8483
#[stable(feature = "rust1", since = "1.0.0")]
@@ -1090,23 +1089,3 @@ pub fn fence(order: Ordering) {
10901089
}
10911090
}
10921091
}
1093-
1094-
macro_rules! impl_Debug {
1095-
($($t:ident)*) => ($(
1096-
#[stable(feature = "atomic_debug", since = "1.3.0")]
1097-
impl fmt::Debug for $t {
1098-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1099-
f.debug_tuple(stringify!($t)).field(&self.load(Ordering::SeqCst)).finish()
1100-
}
1101-
}
1102-
)*);
1103-
}
1104-
1105-
impl_Debug!{ AtomicUsize AtomicIsize AtomicBool }
1106-
1107-
#[stable(feature = "atomic_debug", since = "1.3.0")]
1108-
impl<T> fmt::Debug for AtomicPtr<T> {
1109-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1110-
f.debug_tuple("AtomicPtr").field(&self.load(Ordering::SeqCst)).finish()
1111-
}
1112-
}

branches/stable/src/libcore/char.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
//! For more details, see ::rustc_unicode::char (a.k.a. std::char)
1414
1515
#![allow(non_snake_case)]
16+
#![doc(primitive = "char")]
1617
#![stable(feature = "core_char", since = "1.2.0")]
1718

1819
use iter::Iterator;

branches/stable/src/libcore/fmt/num.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
1313
// FIXME: #6220 Implement floating point formatting
1414

15+
#![allow(unsigned_negation)]
16+
1517
use prelude::*;
1618

1719
use fmt;

branches/stable/src/libcore/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,10 @@ pub mod str;
154154
pub mod hash;
155155
pub mod fmt;
156156

157+
#[doc(primitive = "bool")]
158+
mod bool {
159+
}
160+
157161
// note: does not need to be public
158162
mod tuple;
159163

branches/stable/src/libcore/num/f32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
//! Operations and constants for 32-bits floats (`f32` type)
1212
13+
#![doc(primitive = "f32")]
1314
// FIXME: MIN_VALUE and MAX_VALUE literals are parsed as -inf and inf #14353
1415
#![allow(overflowing_literals)]
1516

branches/stable/src/libcore/num/f64.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
//! Operations and constants for 64-bits floats (`f64` type)
1212
13+
#![doc(primitive = "f64")]
1314
// FIXME: MIN_VALUE and MAX_VALUE literals are parsed as -inf and inf #14353
1415
#![allow(overflowing_literals)]
1516

branches/stable/src/libcore/num/i16.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for signed 16-bits integers (`i16` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "i16")]
1415

1516
int_module! { i16, 16 }

branches/stable/src/libcore/num/i32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for signed 32-bits integers (`i32` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "i32")]
1415

1516
int_module! { i32, 32 }

branches/stable/src/libcore/num/i64.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for signed 64-bits integers (`i64` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "i64")]
1415

1516
int_module! { i64, 64 }

branches/stable/src/libcore/num/i8.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for signed 8-bits integers (`i8` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "i8")]
1415

1516
int_module! { i8, 8 }

branches/stable/src/libcore/num/isize.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
//! Operations and constants for pointer-sized signed integers (`isize` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "isize")]
1415

1516
#[cfg(target_pointer_width = "32")]
1617
int_module! { isize, 32 }

branches/stable/src/libcore/num/u16.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for unsigned 16-bits integers (`u16` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "u16")]
1415

1516
uint_module! { u16, i16, 16 }

branches/stable/src/libcore/num/u32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for unsigned 32-bits integers (`u32` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "u32")]
1415

1516
uint_module! { u32, i32, 32 }

branches/stable/src/libcore/num/u64.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for unsigned 64-bits integer (`u64` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "u64")]
1415

1516
uint_module! { u64, i64, 64 }

branches/stable/src/libcore/num/u8.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for unsigned 8-bits integers (`u8` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "u8")]
1415

1516
uint_module! { u8, i8, 8 }

branches/stable/src/libcore/num/usize.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
//! Operations and constants for pointer-sized unsigned integers (`usize` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14+
#![doc(primitive = "usize")]
1415

1516
uint_module! { usize, isize, ::isize::BITS }

branches/stable/src/libcore/ops.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ pub trait Neg {
517517
macro_rules! neg_impl_core {
518518
($id:ident => $body:expr, $($t:ty)*) => ($(
519519
#[stable(feature = "rust1", since = "1.0.0")]
520+
#[allow(unsigned_negation)]
520521
impl Neg for $t {
521522
#[stable(feature = "rust1", since = "1.0.0")]
522523
type Output = $t;

branches/stable/src/libcore/ptr.rs

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,84 @@
1010

1111
// FIXME: talk about offset, copy_memory, copy_nonoverlapping_memory
1212

13-
//! Raw, unsafe pointers, `*const T`, and `*mut T`
13+
//! Operations on raw pointers, `*const T`, and `*mut T`.
1414
//!
15-
//! *[See also the pointer primitive types](../primitive.pointer.html).*
15+
//! Working with raw pointers in Rust is uncommon,
16+
//! typically limited to a few patterns.
17+
//!
18+
//! Use the `null` function to create null pointers, and the `is_null` method
19+
//! of the `*const T` type to check for null. The `*const T` type also defines
20+
//! the `offset` method, for pointer math.
21+
//!
22+
//! # Common ways to create raw pointers
23+
//!
24+
//! ## 1. Coerce a reference (`&T`) or mutable reference (`&mut T`).
25+
//!
26+
//! ```
27+
//! let my_num: i32 = 10;
28+
//! let my_num_ptr: *const i32 = &my_num;
29+
//! let mut my_speed: i32 = 88;
30+
//! let my_speed_ptr: *mut i32 = &mut my_speed;
31+
//! ```
32+
//!
33+
//! To get a pointer to a boxed value, dereference the box:
34+
//!
35+
//! ```
36+
//! let my_num: Box<i32> = Box::new(10);
37+
//! let my_num_ptr: *const i32 = &*my_num;
38+
//! let mut my_speed: Box<i32> = Box::new(88);
39+
//! let my_speed_ptr: *mut i32 = &mut *my_speed;
40+
//! ```
41+
//!
42+
//! This does not take ownership of the original allocation
43+
//! and requires no resource management later,
44+
//! but you must not use the pointer after its lifetime.
45+
//!
46+
//! ## 2. Consume a box (`Box<T>`).
47+
//!
48+
//! The `into_raw` function consumes a box and returns
49+
//! the raw pointer. It doesn't destroy `T` or deallocate any memory.
50+
//!
51+
//! ```
52+
//! # #![feature(box_raw)]
53+
//! let my_speed: Box<i32> = Box::new(88);
54+
//! let my_speed: *mut i32 = Box::into_raw(my_speed);
55+
//!
56+
//! // By taking ownership of the original `Box<T>` though
57+
//! // we are obligated to put it together later to be destroyed.
58+
//! unsafe {
59+
//! drop(Box::from_raw(my_speed));
60+
//! }
61+
//! ```
62+
//!
63+
//! Note that here the call to `drop` is for clarity - it indicates
64+
//! that we are done with the given value and it should be destroyed.
65+
//!
66+
//! ## 3. Get it from C.
67+
//!
68+
//! ```
69+
//! # #![feature(libc)]
70+
//! extern crate libc;
71+
//!
72+
//! use std::mem;
73+
//!
74+
//! fn main() {
75+
//! unsafe {
76+
//! let my_num: *mut i32 = libc::malloc(mem::size_of::<i32>() as libc::size_t) as *mut i32;
77+
//! if my_num.is_null() {
78+
//! panic!("failed to allocate memory");
79+
//! }
80+
//! libc::free(my_num as *mut libc::c_void);
81+
//! }
82+
//! }
83+
//! ```
84+
//!
85+
//! Usually you wouldn't literally use `malloc` and `free` from Rust,
86+
//! but C APIs hand out a lot of pointers generally, so are a common source
87+
//! of raw pointers in Rust.
1688
1789
#![stable(feature = "rust1", since = "1.0.0")]
90+
#![doc(primitive = "pointer")]
1891

1992
use mem;
2093
use clone::Clone;

branches/stable/src/libcore/slice.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
//! For more details `std::slice`.
1414
1515
#![stable(feature = "rust1", since = "1.0.0")]
16+
#![doc(primitive = "slice")]
1617

1718
// How this module is organized.
1819
//

0 commit comments

Comments
 (0)