Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 26 pull requests #40596

Closed
wants to merge 72 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
13341f4
Reword the non-dropping of `src` for `ptr::write{,_unaligned}`
tbu- Mar 9, 2017
97a1b6a
Update usages of 'OSX' (and other old names) to 'macOS'.
frewsxcv Mar 12, 2017
b38992c
some style fixes
tshepang Mar 13, 2017
0644773
Remove doc about highlighting code in other languages #40301
projektir Mar 13, 2017
6b7b262
Updating README.md to point to the correct doc location
projektir Mar 13, 2017
eb203d5
Adjust wording #40301
projektir Mar 13, 2017
adba642
fix format grammar
llogiq Mar 13, 2017
5e49f79
Add test for issue #29595
mattico Mar 10, 2017
11d3344
Using X headings #39850
projektir Mar 13, 2017
8b9b3b6
Fix sidebar not extending to the bottom of the page
wesleywiser Mar 14, 2017
5b7f330
Corrected very minor documentation detail about Unicode and Japanese
Mar 14, 2017
e06c515
Rust unstable book: basic desc and example for `const_fn`.
frewsxcv Mar 11, 2017
327e8e9
Rust unstable book: basic desc and example for `conservative_impl_tra…
frewsxcv Mar 11, 2017
0dd03ff
Rust unstable book: basic desc and example for `const_indexing`.
frewsxcv Mar 12, 2017
137c1e8
Rust unstable book: basic desc and example for `i128_type`.
frewsxcv Mar 12, 2017
e58e3d0
Rust unstable book: basic desc and example for `non_ascii_idents`.
frewsxcv Mar 12, 2017
d3ae2eb
Rust unstable book: basic desc and example for `concat_idents`.
frewsxcv Mar 12, 2017
1545f4e
std: remove a workaround for privacy limitations that isn't necessary…
swgillespie Mar 14, 2017
e7b0f2b
Remove function invokation parens from documentation links.
frewsxcv Mar 12, 2017
5cc056a
A few improvements to the `core::hash` top-level docs.
frewsxcv Mar 14, 2017
0671cc1
.gitmodules: use official URLs w/o redirect
nodakai Mar 14, 2017
9a7b789
Add doc example for `OsStr::to_os_string`.
frewsxcv Mar 12, 2017
4d57d92
Add doc example for `OsString::reserve`.
frewsxcv Mar 12, 2017
5537955
Add doc example for `OsString::reserve_exact`.
frewsxcv Mar 12, 2017
bda57db
Add doc example for `OsString::shrink_to_fit`.
frewsxcv Mar 12, 2017
6adbbfc
Add doc example for `OsString::into_boxed_os_str`.
frewsxcv Mar 12, 2017
cc08edc
Remove incorrect feature from the 1.16 relnotes
steveklabnik Mar 14, 2017
8b7c7f3
Link core::slice to std::slice
steveklabnik Mar 14, 2017
e3b8550
Point out correct turbofish usage on `Foo<Bar<Baz>>`
estebank Mar 14, 2017
3554ff3
Make docs required again
brson Mar 14, 2017
18a8494
Ammended minor documentation detail abour Unicode cases.
Mar 15, 2017
f23d448
Stabilize move_cell feature, closes #39264
aturon Mar 15, 2017
5b4a1b6
Stabilize expect_err feature, closes #39041
aturon Mar 15, 2017
f789955
Stabilize ptr_unaligned feature, closes #37955
aturon Mar 15, 2017
b60879a
Stabilize process_abort feature, closes #37838
aturon Mar 15, 2017
698c1bb
Stabilize ptr_eq feature, closes #36497
aturon Mar 15, 2017
86b48b2
Stabilize btree_range, closes #27787
aturon Mar 15, 2017
52d9682
Stabilize ordering_chaining, closes #37053
aturon Mar 15, 2017
c2d2c2d
Stabilize rc_raw feature, closes #37197
aturon Mar 15, 2017
5de0406
rustbuild: Retry downloads of OpenSSL source
alexcrichton Mar 15, 2017
e66b3a2
Fix documentation for Vec::dedup_by.
kevinmehall Mar 15, 2017
0739ece
Removes Default for Box<Path>.
clarfonthey Mar 15, 2017
3d8d376
Minor fixups to fix tidy errors
alexcrichton Mar 15, 2017
befeb04
Remove unused param from bootstrap::clean::rm_rf
mbrubeck Mar 15, 2017
3d01e1a
add sort_unstable to unstable book
steveklabnik Mar 16, 2017
bc6eecd
Merge branch 'master' into frewsxcv-osstr
frewsxcv Mar 17, 2017
8523680
Rollup merge of #40387 - tbu-:pr_doc_ptr_write2, r=steveklabnik
frewsxcv Mar 17, 2017
3b1620b
Rollup merge of #40433 - mattico:test-issue-29595, r=estebank
frewsxcv Mar 17, 2017
74a7b4a
Rollup merge of #40452 - frewsxcv:frewsxcv-unstable-docs, r=Guillaume…
frewsxcv Mar 17, 2017
cbbc012
Rollup merge of #40456 - frewsxcv:frewsxcv-docs-function-parens, r=Gu…
frewsxcv Mar 17, 2017
3e059e9
Rollup merge of #40457 - frewsxcv:frewsxcv-macos, r=steveklabnik
frewsxcv Mar 17, 2017
d173aea
Rollup merge of #40458 - frewsxcv:frewsxcv-osstr, r=GuillaumeGomez
frewsxcv Mar 17, 2017
0d47a05
Rollup merge of #40463 - tshepang:nit, r=nikomatsakis
frewsxcv Mar 17, 2017
24fae27
Rollup merge of #40466 - projektir:outdated_docs_highlighting, r=stev…
frewsxcv Mar 17, 2017
c8bfd18
Rollup merge of #40467 - projektir:readme_docs, r=steveklabnik
frewsxcv Mar 17, 2017
804d079
Rollup merge of #40495 - llogiq:format-docs, r=steveklabnik
frewsxcv Mar 17, 2017
35badeb
Rollup merge of #40496 - projektir:docs_number_headings, r=frewsxcv
frewsxcv Mar 17, 2017
c42e6da
Rollup merge of #40497 - wesleywiser:fix_sidebar, r=GuillaumeGomez
frewsxcv Mar 17, 2017
0226767
Rollup merge of #40499 - ericfindlay:master, r=steveklabnik
frewsxcv Mar 17, 2017
05bea71
Rollup merge of #40500 - estebank:turbofish-help, r=pnkfelix
frewsxcv Mar 17, 2017
b523cee
Rollup merge of #40503 - swgillespie:thread-hack-removal, r=sfackler
frewsxcv Mar 17, 2017
7a71d64
Rollup merge of #40505 - frewsxcv:hash-docs, r=alexcrichton
frewsxcv Mar 17, 2017
4e4e555
Rollup merge of #40512 - nodakai:patch-1, r=alexcrichton
frewsxcv Mar 17, 2017
54ac08c
Rollup merge of #40517 - rust-lang:release-notes-tweak, r=alexcrichton
frewsxcv Mar 17, 2017
ec3bff2
Rollup merge of #40520 - steveklabnik:link-core-slice, r=alexcrichton
frewsxcv Mar 17, 2017
11788ea
Rollup merge of #40526 - brson:docs-req, r=alexcrichton
frewsxcv Mar 17, 2017
ded289f
Rollup merge of #40536 - kevinmehall:dedup_docs_for_dedup_by, r=steve…
frewsxcv Mar 17, 2017
eba6c1f
Rollup merge of #40538 - aturon:stab-1.17, r=alexcrichton
frewsxcv Mar 17, 2017
bc91547
Rollup merge of #40539 - clarcharr:no_default_path, r=alexcrichton
frewsxcv Mar 17, 2017
88a1234
Rollup merge of #40545 - alexcrichton:retry-download-openssl, r=nikom…
frewsxcv Mar 17, 2017
4e60bf4
Rollup merge of #40562 - mbrubeck:bootstrap, r=alexcrichton
frewsxcv Mar 17, 2017
365ae32
Rollup merge of #40586 - steveklabnik:add-unstable-sort-to-unstable-b…
frewsxcv Mar 17, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
url = https://github.com/rust-lang/libc.git
[submodule "src/doc/nomicon"]
path = src/doc/nomicon
url = https://github.com/rust-lang-nursery/nomicon
url = https://github.com/rust-lang-nursery/nomicon.git
[submodule "src/tools/cargo"]
path = cargo
url = https://github.com/rust-lang/cargo
url = https://github.com/rust-lang/cargo.git
[submodule "reference"]
path = src/doc/reference
url = https://github.com/rust-lang-nursery/reference.git
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,9 @@ If you’d like to build the documentation, it’s almost the same:
$ ./x.py doc
```

The generated documentation will appear in a top-level `doc` directory,
created by the `make` rule.
The generated documentation will appear under `doc` in the `build` directory for
the ABI used. I.e., if the ABI was `x86_64-pc-windows-msvc`, the directory will be
`build\x86_64-pc-windows-msvc\doc`.

## Notes

Expand Down
3 changes: 1 addition & 2 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ Version 1.16.0 (2017-03-16)
Language
--------

* Lifetimes in statics and consts default to `'static`. [RFC 1623]
* [The compiler's `dead_code` lint now accounts for type aliases][38051].
* [Uninhabitable enums (those without any variants) no longer permit wildcard
match patterns][38069]
Expand Down Expand Up @@ -5056,7 +5055,7 @@ Version 0.1 (2012-01-20)

* Compiler works with the following configurations:
* Linux: x86 and x86_64 hosts and targets
* MacOS: x86 and x86_64 hosts and targets
* macOS: x86 and x86_64 hosts and targets
* Windows: x86 hosts and targets

* Cross compilation / multi-target configuration supported.
Expand Down
2 changes: 1 addition & 1 deletion cargo
2 changes: 1 addition & 1 deletion src/bootstrap/bin/rustc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ fn main() {
if env::var("RUSTC_RPATH") == Ok("true".to_string()) {
let rpath = if target.contains("apple") {

// Note that we need to take one extra step on OSX to also pass
// Note that we need to take one extra step on macOS to also pass
// `-Wl,-instal_name,@rpath/...` to get things to work right. To
// do that we pass a weird flag to the compiler to get it to do
// so. Note that this is definitely a hack, and we should likely
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ pub fn compiletest(build: &Build,
cmd.arg("--docck-python").arg(build.python());

if build.config.build.ends_with("apple-darwin") {
// Force /usr/bin/python on OSX for LLDB tests because we're loading the
// Force /usr/bin/python on macOS for LLDB tests because we're loading the
// LLDB plugin's compiled module which only works with the system python
// (namely not Homebrew-installed python)
cmd.arg("--lldb-python").arg("/usr/bin/python");
Expand Down
12 changes: 6 additions & 6 deletions src/bootstrap/clean.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ use std::path::Path;
use Build;

pub fn clean(build: &Build) {
rm_rf(build, "tmp".as_ref());
rm_rf(build, &build.out.join("tmp"));
rm_rf(build, &build.out.join("dist"));
rm_rf("tmp".as_ref());
rm_rf(&build.out.join("tmp"));
rm_rf(&build.out.join("dist"));

for host in build.config.host.iter() {
let entries = match build.out.join(host).read_dir() {
Expand All @@ -38,12 +38,12 @@ pub fn clean(build: &Build) {
continue
}
let path = t!(entry.path().canonicalize());
rm_rf(build, &path);
rm_rf(&path);
}
}
}

fn rm_rf(build: &Build, path: &Path) {
fn rm_rf(path: &Path) {
if !path.exists() {
return
}
Expand All @@ -55,7 +55,7 @@ fn rm_rf(build: &Build, path: &Path) {
let file = t!(file).path();

if file.is_dir() {
rm_rf(build, &file);
rm_rf(&file);
} else {
// On windows we can't remove a readonly file, and git will
// often clone files as readonly. As a result, we have some
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ pub fn rustc(build: &Build, target: &str, compiler: &Compiler) {
cargo.env("CFG_LLVM_ROOT", s);
}
// Building with a static libstdc++ is only supported on linux right now,
// not for MSVC or OSX
// not for MSVC or macOS
if build.config.llvm_static_stdcpp &&
!target.contains("windows") &&
!target.contains("apple") {
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -846,7 +846,7 @@ impl Build {
.filter(|s| !s.starts_with("-O") && !s.starts_with("/O"))
.collect::<Vec<_>>();

// If we're compiling on OSX then we add a few unconditional flags
// If we're compiling on macOS then we add a few unconditional flags
// indicating that we want libc++ (more filled out than libstdc++) and
// we want to compile for 10.7. This way we can ensure that
// LLVM/jemalloc/etc are all properly compiled.
Expand Down
21 changes: 18 additions & 3 deletions src/bootstrap/native.rs
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,24 @@ pub fn openssl(build: &Build, target: &str) {
let tarball = out.join(&name);
if !tarball.exists() {
let tmp = tarball.with_extension("tmp");
build.run(Command::new("curl")
.arg("-o").arg(&tmp)
.arg(format!("https://www.openssl.org/source/{}", name)));
// originally from https://www.openssl.org/source/...
let url = format!("https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/{}",
name);
let mut ok = false;
for _ in 0..3 {
let status = Command::new("curl")
.arg("-o").arg(&tmp)
.arg(&url)
.status()
.expect("failed to spawn curl");
if status.success() {
ok = true;
break
}
}
if !ok {
panic!("failed to download openssl source")
}
let mut shasum = if target.contains("apple") {
let mut cmd = Command::new("shasum");
cmd.arg("-a").arg("256");
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/sanity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,10 @@ pub fn check(build: &mut Build) {
}

for target in build.config.target.iter() {
// Can't compile for iOS unless we're on OSX
// Can't compile for iOS unless we're on macOS
if target.contains("apple-ios") &&
!build.config.build.contains("apple-darwin") {
panic!("the iOS target is only supported on OSX");
panic!("the iOS target is only supported on macOS");
}

// Make sure musl-root is valid if specified
Expand Down
21 changes: 2 additions & 19 deletions src/doc/book/src/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,6 @@ more than one section:
# fn foo() {}
```

Let's discuss the details of these code blocks.

#### Code block annotations

To write some Rust code in a comment, use the triple graves:
Expand All @@ -183,23 +181,8 @@ To write some Rust code in a comment, use the triple graves:
# fn foo() {}
```

If you want something that's not Rust code, you can add an annotation:

```rust
/// ```c
/// printf("Hello, world\n");
/// ```
# fn foo() {}
```

This will highlight according to whatever language you're showing off.
If you're only showing plain text, choose `text`.

It's important to choose the correct annotation here, because `rustdoc` uses it
in an interesting way: It can be used to actually test your examples in a
library crate, so that they don't get out of date. If you have some C code but
`rustdoc` thinks it's Rust because you left off the annotation, `rustdoc` will
complain when trying to generate the documentation.
This will add code highlighting. If you are only showing plain text, put `text`
instead of `rust` after the triple graves (see below).

## Documentation as tests

Expand Down
8 changes: 4 additions & 4 deletions src/doc/book/src/ffi.md
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,7 @@ attribute turns off Rust's name mangling, so that it is easier to link to.

It’s important to be mindful of `panic!`s when working with FFI. A `panic!`
across an FFI boundary is undefined behavior. If you’re writing code that may
panic, you should run it in a closure with [`catch_unwind()`]:
panic, you should run it in a closure with [`catch_unwind`]:

```rust
use std::panic::catch_unwind;
Expand All @@ -706,11 +706,11 @@ pub extern fn oh_no() -> i32 {
fn main() {}
```

Please note that [`catch_unwind()`] will only catch unwinding panics, not
those who abort the process. See the documentation of [`catch_unwind()`]
Please note that [`catch_unwind`] will only catch unwinding panics, not
those who abort the process. See the documentation of [`catch_unwind`]
for more information.

[`catch_unwind()`]: ../std/panic/fn.catch_unwind.html
[`catch_unwind`]: ../std/panic/fn.catch_unwind.html

# Representing opaque structs

Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/src/guessing-game.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ The next part will use this handle to get input from the user:
.read_line(&mut guess)
```

Here, we call the [`read_line()`][read_line] method on our handle.
Here, we call the [`read_line`][read_line] method on our handle.
[Methods][method] are like associated functions, but are only available on a
particular instance of a type, rather than the type itself. We’re also passing
one argument to `read_line()`: `&mut guess`.
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/src/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ And that's reflected in the summary line:
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured
```

We also get a non-zero status code. We can use `$?` on OS X and Linux:
We also get a non-zero status code. We can use `$?` on macOS and Linux:

```bash
$ echo $?
Expand Down
6 changes: 3 additions & 3 deletions src/doc/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ Other unofficial documentation may exist elsewhere; for example, the [Rust
Learning] project collects documentation from the community, and [Docs.rs]
builds documentation for individual Rust packages.

## API Documentation
# API Documentation

Rust provides a standard library with a number of features; [we host its
documentation here][api].

## Extended Error Documentation
# Extended Error Documentation

Many of Rust's errors come with error codes, and you can request extended
diagnostics from the compiler on those errors. We also [have the text of those
extended errors on the web][err], if you prefer to read them that way.

## The Rust Bookshelf
# The Rust Bookshelf

Rust provides a number of book-length sets of documentation, collectively
nicknamed 'The Rust Bookshelf.'
Expand Down
1 change: 1 addition & 0 deletions src/doc/unstable-book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
- [simd](simd.md)
- [simd_ffi](simd-ffi.md)
- [slice_patterns](slice-patterns.md)
- [sort_unstable](sort-unstable.md)
- [specialization](specialization.md)
- [staged_api](staged-api.md)
- [start](start.md)
Expand Down
12 changes: 12 additions & 0 deletions src/doc/unstable-book/src/concat-idents.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,17 @@ The tracking issue for this feature is: [#29599]

------------------------

The `concat_idents` feature adds a macro for concatenating multiple identifiers
into one identifier.

## Examples

```rust
#![feature(concat_idents)]

fn main() {
fn foobar() -> u32 { 23 }
let f = concat_idents!(foo, bar);
assert_eq!(f(), 23);
}
```
56 changes: 56 additions & 0 deletions src/doc/unstable-book/src/conservative-impl-trait.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,61 @@ The tracking issue for this feature is: [#34511]

------------------------

The `conservative_impl_trait` feature allows a conservative form of abstract
return types.

Abstract return types allow a function to hide a concrete return type behind a
trait interface similar to trait objects, while still generating the same
statically dispatched code as with concrete types.

## Examples

```rust
#![feature(conservative_impl_trait)]

fn even_iter() -> impl Iterator<Item=u32> {
(0..).map(|n| n * 2)
}

fn main() {
let first_four_even_numbers = even_iter().take(4).collect::<Vec<_>>();
assert_eq!(first_four_even_numbers, vec![0, 2, 4, 6]);
}
```

## Background

In today's Rust, you can write function signatures like:

````rust,ignore
fn consume_iter_static<I: Iterator<u8>>(iter: I) { }

fn consume_iter_dynamic(iter: Box<Iterator<u8>>) { }
````

In both cases, the function does not depend on the exact type of the argument.
The type held is "abstract", and is assumed only to satisfy a trait bound.

* In the `_static` version using generics, each use of the function is
specialized to a concrete, statically-known type, giving static dispatch,
inline layout, and other performance wins.
* In the `_dynamic` version using trait objects, the concrete argument type is
only known at runtime using a vtable.

On the other hand, while you can write:

````rust,ignore
fn produce_iter_dynamic() -> Box<Iterator<u8>> { }
````

...but you _cannot_ write something like:

````rust,ignore
fn produce_iter_static() -> Iterator<u8> { }
````

That is, in today's Rust, abstract return types can only be written using trait
objects, which can be a significant performance penalty. This RFC proposes
"unboxed abstract types" as a way of achieving signatures like
`produce_iter_static`. Like generics, unboxed abstract types guarantee static
dispatch and inline data layout.
19 changes: 19 additions & 0 deletions src/doc/unstable-book/src/const-fn.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,24 @@ The tracking issue for this feature is: [#24111]

------------------------

The `const_fn` feature allows marking free functions and inherent methods as
`const`, enabling them to be called in constants contexts, with constant
arguments.

## Examples

```rust
#![feature(const_fn)]

const fn double(x: i32) -> i32 {
x * 2
}

const FIVE: i32 = 5;
const TEN: i32 = double(FIVE);

fn main() {
assert_eq!(5, FIVE);
assert_eq!(10, TEN);
}
```
9 changes: 9 additions & 0 deletions src/doc/unstable-book/src/const-indexing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,14 @@ The tracking issue for this feature is: [#29947]

------------------------

The `const_indexing` feature allows the constant evaluation of index operations
on constant arrays and repeat expressions.

## Examples

```rust
#![feature(const_indexing)]

const ARR: [usize; 5] = [1, 2, 3, 4, 5];
const ARR2: [usize; ARR[1]] = [42, 99];
```
Loading