Skip to content

Commit cb6bdf2

Browse files
committed
---
yaml --- r: 231933 b: refs/heads/auto c: 33f0920 h: refs/heads/master i: 231931: b256c63 v: v3
1 parent adbc9d5 commit cb6bdf2

File tree

57 files changed

+2922
-772
lines changed

Some content is hidden

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

57 files changed

+2922
-772
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: e8c398d05c92d4cdd7b3528b892355e0c000131b
11+
refs/heads/auto: 33f0920d0e81cf95cb62f380c13f100f3e1d804c
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/configure

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,28 @@ then
885885
CFG_DISABLE_JEMALLOC=1
886886
fi
887887

888+
# default gcc version under OpenBSD maybe too old, try using egcc, which is a
889+
# gcc version from ports
890+
if [ $CFG_OSTYPE = unknown-openbsd ]
891+
then
892+
if [ $("$CFG_GCC" --version 2>&1 | grep -c ' 4\.[0-6]') -ne 0 ]; then
893+
step_msg "older GCC found, try with egcc instead"
894+
895+
# probe again but using egcc
896+
probe CFG_GCC egcc
897+
898+
# and use egcc/eg++ for CC/CXX too if it was found
899+
# (but user setting has priority)
900+
if [ -n "$CFG_GCC" ]; then
901+
CC="${CC:-egcc}"
902+
CXX="${CXX:-eg++}"
903+
fi
904+
fi
905+
906+
step_msg "on OpenBSD, disabling jemalloc"
907+
CFG_DISABLE_JEMALLOC=1
908+
fi
909+
888910
# OS X 10.9, gcc is actually clang. This can cause some confusion in the build
889911
# system, so if we find that gcc is clang, we should just use clang directly.
890912
if [ $CFG_OSTYPE = apple-darwin -a -z "$CFG_ENABLE_CLANG" ]
@@ -956,7 +978,7 @@ then
956978
LLVM_VERSION=$($LLVM_CONFIG --version)
957979

958980
case $LLVM_VERSION in
959-
(3.[5-7]*)
981+
(3.[5-8]*)
960982
msg "found ok version of LLVM: $LLVM_VERSION"
961983
;;
962984
(*)
@@ -1030,7 +1052,7 @@ then
10301052
esac
10311053
else
10321054
case $CFG_CLANG_VERSION in
1033-
(3.2* | 3.3* | 3.4* | 3.5* | 3.6* | 3.7*)
1055+
(3.2* | 3.3* | 3.4* | 3.5* | 3.6* | 3.7* | 3.8*)
10341056
step_msg "found ok version of CLANG: $CFG_CLANG_VERSION"
10351057
;;
10361058
(*)

branches/auto/src/doc/nomicon/destructors.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@ this is totally fine.
2626
For instance, a custom implementation of `Box` might write `Drop` like this:
2727

2828
```rust
29-
#![feature(heap_api, core_intrinsics, unique)]
29+
#![feature(alloc, heap_api, core_intrinsics, unique)]
30+
31+
extern crate alloc;
3032

31-
use std::rt::heap;
3233
use std::ptr::Unique;
3334
use std::intrinsics::drop_in_place;
3435
use std::mem;
3536

37+
use alloc::heap;
38+
3639
struct Box<T>{ ptr: Unique<T> }
3740

3841
impl<T> Drop for Box<T> {
@@ -45,6 +48,7 @@ impl<T> Drop for Box<T> {
4548
}
4649
}
4750
}
51+
# fn main() {}
4852
```
4953

5054
and this works fine because when Rust goes to drop the `ptr` field it just sees
@@ -54,13 +58,16 @@ use-after-free the `ptr` because when drop exits, it becomes inacessible.
5458
However this wouldn't work:
5559

5660
```rust
57-
#![feature(heap_api, core_intrinsics, unique)]
61+
#![feature(alloc, heap_api, core_intrinsics, unique)]
62+
63+
extern crate alloc;
5864

59-
use std::rt::heap;
6065
use std::ptr::Unique;
6166
use std::intrinsics::drop_in_place;
6267
use std::mem;
6368

69+
use alloc::heap;
70+
6471
struct Box<T>{ ptr: Unique<T> }
6572

6673
impl<T> Drop for Box<T> {
@@ -87,6 +94,7 @@ impl<T> Drop for SuperBox<T> {
8794
}
8895
}
8996
}
97+
# fn main() {}
9098
```
9199

92100
After we deallocate the `box`'s ptr in SuperBox's destructor, Rust will
@@ -129,13 +137,16 @@ The classic safe solution to overriding recursive drop and allowing moving out
129137
of Self during `drop` is to use an Option:
130138

131139
```rust
132-
#![feature(heap_api, core_intrinsics, unique)]
140+
#![feature(alloc, heap_api, core_intrinsics, unique)]
141+
142+
extern crate alloc;
133143

134-
use std::rt::heap;
135144
use std::ptr::Unique;
136145
use std::intrinsics::drop_in_place;
137146
use std::mem;
138147

148+
use alloc::heap;
149+
139150
struct Box<T>{ ptr: Unique<T> }
140151

141152
impl<T> Drop for Box<T> {
@@ -165,6 +176,7 @@ impl<T> Drop for SuperBox<T> {
165176
}
166177
}
167178
}
179+
# fn main() {}
168180
```
169181

170182
However this has fairly odd semantics: you're saying that a field that *should*

branches/auto/src/doc/nomicon/vec-alloc.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This is perfectly fine because we already have `cap == 0` as our sentinel for no
99
allocation. We don't even need to handle it specially in almost any code because
1010
we usually need to check if `cap > len` or `len > 0` anyway. The traditional
1111
Rust value to put here is `0x01`. The standard library actually exposes this
12-
as `std::rt::heap::EMPTY`. There are quite a few places where we'll
12+
as `alloc::heap::EMPTY`. There are quite a few places where we'll
1313
want to use `heap::EMPTY` because there's no real allocation to talk about but
1414
`null` would make the compiler do bad things.
1515

@@ -20,11 +20,12 @@ the `heap` API anyway, so let's just get that dependency over with.
2020
So:
2121

2222
```rust,ignore
23-
#![feature(heap_api)]
23+
#![feature(alloc, heap_api)]
2424
25-
use std::rt::heap::EMPTY;
2625
use std::mem;
2726
27+
use alloc::heap::EMPTY;
28+
2829
impl<T> Vec<T> {
2930
fn new() -> Self {
3031
assert!(mem::size_of::<T>() != 0, "We're not ready to handle ZSTs");

branches/auto/src/doc/nomicon/vec-final.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22

33
```rust
44
#![feature(unique)]
5-
#![feature(heap_api)]
5+
#![feature(alloc, heap_api)]
6+
7+
extern crate alloc;
68

79
use std::ptr::{Unique, self};
8-
use std::rt::heap;
910
use std::mem;
1011
use std::ops::{Deref, DerefMut};
1112
use std::marker::PhantomData;
1213

13-
14-
15-
14+
use alloc::heap;
1615

1716
struct RawVec<T> {
1817
ptr: Unique<T>,

branches/auto/src/doc/reference.md

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1489,14 +1489,14 @@ impl Num for f64 {
14891489
let x: f64 = Num::from_i32(42);
14901490
```
14911491

1492-
Traits may inherit from other traits. For example, in
1492+
Traits may inherit from other traits. Consider the following example:
14931493

14941494
```
14951495
trait Shape { fn area(&self) -> f64; }
14961496
trait Circle : Shape { fn radius(&self) -> f64; }
14971497
```
14981498

1499-
the syntax `Circle : Shape` means that types that implement `Circle` must also
1499+
The syntax `Circle : Shape` means that types that implement `Circle` must also
15001500
have an implementation for `Shape`. Multiple supertraits are separated by `+`,
15011501
`trait Circle : Shape + PartialEq { }`. In an implementation of `Circle` for a
15021502
given type `T`, methods can refer to `Shape` methods, since the typechecker
@@ -2059,31 +2059,31 @@ arbitrarily complex configurations through nesting.
20592059

20602060
The following configurations must be defined by the implementation:
20612061

2062-
* `debug_assertions`. Enabled by default when compiling without optimizations.
2062+
* `debug_assertions` - Enabled by default when compiling without optimizations.
20632063
This can be used to enable extra debugging code in development but not in
20642064
production. For example, it controls the behavior of the standard library's
20652065
`debug_assert!` macro.
2066-
* `target_arch = "..."`. Target CPU architecture, such as `"x86"`, `"x86_64"`
2066+
* `target_arch = "..."` - Target CPU architecture, such as `"x86"`, `"x86_64"`
20672067
`"mips"`, `"powerpc"`, `"arm"`, or `"aarch64"`.
2068-
* `target_endian = "..."`. Endianness of the target CPU, either `"little"` or
2068+
* `target_endian = "..."` - Endianness of the target CPU, either `"little"` or
20692069
`"big"`.
2070-
* `target_env = ".."` - an option provided by the compiler by default
2070+
* `target_env = ".."` - An option provided by the compiler by default
20712071
describing the runtime environment of the target platform. Some examples of
20722072
this are `musl` for builds targeting the MUSL libc implementation, `msvc` for
20732073
Windows builds targeting MSVC, and `gnu` frequently the rest of the time. This
20742074
option may also be blank on some platforms.
2075-
* `target_family = "..."`. Operating system family of the target, e. g.
2075+
* `target_family = "..."` - Operating system family of the target, e. g.
20762076
`"unix"` or `"windows"`. The value of this configuration option is defined
20772077
as a configuration itself, like `unix` or `windows`.
2078-
* `target_os = "..."`. Operating system of the target, examples include
2078+
* `target_os = "..."` - Operating system of the target, examples include
20792079
`"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`, `"freebsd"`, `"dragonfly"`,
20802080
`"bitrig"` , `"openbsd"` or `"netbsd"`.
2081-
* `target_pointer_width = "..."`. Target pointer width in bits. This is set
2081+
* `target_pointer_width = "..."` - Target pointer width in bits. This is set
20822082
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
20832083
64-bit pointers.
2084-
* `test`. Enabled when compiling the test harness (using the `--test` flag).
2085-
* `unix`. See `target_family`.
2086-
* `windows`. See `target_family`.
2084+
* `test` - Enabled when compiling the test harness (using the `--test` flag).
2085+
* `unix` - See `target_family`.
2086+
* `windows` - See `target_family`.
20872087

20882088
You can also set another attribute based on a `cfg` variable with `cfg_attr`:
20892089

@@ -2367,9 +2367,6 @@ The currently implemented features of the reference compiler are:
23672367
into a Rust program. This capability, especially the signature for the
23682368
annotated function, is subject to change.
23692369

2370-
* `struct_inherit` - Allows using struct inheritance, which is barely
2371-
implemented and will probably be removed. Don't use this.
2372-
23732370
* `struct_variant` - Structural enum variants (those with named fields). It is
23742371
currently unknown whether this style of enum variant is as
23752372
fully supported as the tuple-forms, and it's not certain

0 commit comments

Comments
 (0)