auto merge of #15421 : catharsis/rust/doc-ffi-minor-fixes, r=alexcrichton

Signed-off-by: Anton Lofgren <alofgren@op5.com>
auto merge of #15604 : mrmonday/rust/raw-socket-libc, r=alexcrichton

This pull request adds some necessary function definitions and types for doing low level networking with Rust.
Deprecate `str::from_utf8_owned`

Use `String::from_utf8` instead

[breaking-change]
Deprecate `str::from_chars`

Use `String::from_chars` instead

[breaking-change]
Deprecate `str::from_char`

Use `String::from_char` or `.to_str` instead

[breaking-change]
Deprecate str::from_byte

Replaced by `String::from_byte`

[breaking-change]
Deprecate `str::from_utf16`

Use `String::from_utf16` instead

[breaking-change]
Deprecate `str::from_utf16_lossy`

Use `String::from_utf16_lossy` instead.

[breaking-change]
Deprecate `str::from_utf8_lossy`

Use `String::from_utf8_lossy` instead

[breaking-change]
Fix errors
auto merge of #15426 : aochagavia/rust/str, r=alexcrichton

* Deprecated `str::from_utf8_owned` in favor of `String::from_utf8`
* Deprecated `str::from_utf8_lossy` in favor of `String::from_utf8_lossy`
* Deprecated `str::from_utf16` in favor of `String::from_utf16`
* Deprecated `str::from_utf16_lossy` in favor of `String::from_utf16_lossy`
* Deprecated `str::from_chars` in favor of `String::from_chars`
* Deprecated `str::from_char` in favor of `String::from_char` and `.to_string()`
* Deprecated `str::from_byte` in favor of `String::from_byte`

[breaking-change]
Fix cargo install instructions

Cargo now comes with Rust
test: Try to fix a failing snapshot test

This test seems to yield a different error message on cross compiles, so just
ignore it when cross compiling.
auto merge of #15615 : jakub-/rust/diagnostics, r=brson
use trait rather than fns

please note the snapshot-waiting unpleasantness. I'm
unable to use the traditional #[cfg(stage0)] mechanism
to swap the new style in for later compiler stages,
because macros invocations in method positions cause
the parser to choke before cfg can strip it out.

Parenthetical note: this problem wouldn't arise with
an interleaved parsing/expansion....
change to new trait style for method field refs

Per @pnkfelix 's suggestion, using a trait to make these
field accesses more readable (and vastly more similar
to the original code.

oops fix new ast_map fix
auto merge of #15619 : kwantam/rust/master, r=huonw

- `width()` computes the displayed width of a string, ignoring the width of control characters.
    - arguably we might do *something* else for control characters, but the question is, what?
    - users who want to do something else can iterate over chars()

- `graphemes()` returns a `Graphemes` struct, which implements an iterator over the grapheme clusters of a &str.
    - fully compliant with [UAX#29](http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries)
    - passes all [Unicode-supplied tests](http://www.unicode.org/reports/tr41/tr41-15.html#Tests29)

- added code to generate additionial categories in `unicode.py`
    - `Cn` aka `Not_Assigned`
    - categories necessary for grapheme cluster breaking

- tidied up the exports from libunicode
  - all exports are exposed through a module rather than directly at crate root.
  - std::prelude imports UnicodeChar and UnicodeStrSlice from std::char and std::str rather than directly from libunicode

closes #7043
libsyntax::ast: Derive Show impls
middle: Derive Show impls

And change some uses of the `{:?}` format string to `{}`.
Support for specifying the code model

The default code model is usually unsuitable for kernels,
so we add an option to specify which model we want.