Commit graph

4436 commits

Author SHA1 Message Date
steveklabnik
9331f046f4 fix tests 2017-06-05 13:14:31 -04:00
steveklabnik
2f0dc04bb5 address review feedback 2017-06-05 13:09:19 -04:00
steveklabnik
fd2cbf9956 Coming soon 2017-06-02 08:58:00 -04:00
steveklabnik
4ed3a15bfc wip 2017-06-01 10:56:06 -04:00
steveklabnik
9eeb83cb9d add a new mdbook for rustdoc 2017-05-31 12:46:17 -04:00
bors
bcf95067e4 Auto merge of #42167 - scottmcm:iter-stepby-sizehint, r=alexcrichton
Override size_hint and propagate ExactSizeIterator for iter::StepBy

Generally useful, but also a prerequisite for moving a bunch of unit tests off `Range*::step_by`.

A small non-breaking subset of https://github.com/rust-lang/rust/pull/42110 (which I closed).

Includes two small documentation changes @ivandardi requested on that PR.

r? @alexcrichton
2017-05-28 14:26:52 +00:00
bors
5d2512ec5b Auto merge of #42162 - est31:closure-to-fn-coercion, r=aturon
Stabilize non capturing closure to fn coercion

Stabilisation PR for non capturing closure to fn coercion.

closes #39817
2017-05-27 23:02:44 +00:00
Corey Farwell
7e47327d90 Rollup merge of #42169 - scottmcm:new-step-trait-issue, r=alexcrichton
Give step_trait a distinct tracking issue from step_by

iterator_step_by has decoupled their futures, so the tracking issue should split.

Old issue: https://github.com/rust-lang/rust/issues/27741
New issue: https://github.com/rust-lang/rust/issues/42168

r? @alexcrichton (another follow-up to closed PR https://github.com/rust-lang/rust/pull/42110#issuecomment-303176049)
2017-05-26 10:20:25 -04:00
bors
2db17c86e3 Auto merge of #42058 - froydnj:thiscall-support, r=nikomatsakis
add thiscall calling convention support

This support is needed for bindgen to work well on 32-bit Windows, and also enables people to begin experimenting with C++ FFI support on that platform.

Fixes #42044.
2017-05-26 07:36:25 +00:00
bors
4f9c9ed1a5 Auto merge of #40847 - jseyfried:decl_macro, r=nrc
Initial implementation of declarative macros 2.0

Implement declarative macros 2.0 (rust-lang/rfcs#1584) behind `#![feature(decl_macro)]`.
Differences from `macro_rules!` include:
 - new syntax: `macro m(..) { .. }` instead of `macro_rules! m { (..) => { .. } }`
 - declarative macros are items:
```rust
// crate A:
pub mod foo {
    m!(); // use before definition; declaration order is irrelevant
    pub macro m() {} // `pub`, `pub(super)`, etc. work
}
fn main() {
    foo::m!(); // named like other items
    { use foo::m as n; n!(); } // imported like other items
}
pub use foo::m; // re-exported like other items

// crate B:
extern crate A; // no need for `#[macro_use]`
A::foo::m!(); A::m!();
```
 - Racket-like hygiene for items, imports, methods, fields, type parameters, privacy, etc.
   - Intuitively, names in a macro definition are resolved in the macro definition's scope, not the scope in which the macro is used.
   - This [explaination](http://beautifulracket.com/explainer/hygiene.html) of hygiene for Racket applies here (except for the "Breaking Hygiene" section). I wrote a similar [explanation](https://github.com/jseyfried/rfcs/blob/hygiene/text/0000-hygiene.md) for Rust.
   - Generally speaking, if `fn f() { <body> }` resolves, `pub macro m() { <body> } ... m!()` also resolves, even if `m!()` is in a separate crate.
   - `::foo::bar` in a `macro` behaves like `$crate::foo::bar` in a `macro_rules!`, except it can access everything visible from the `macro` (thus more permissive).
   - See [`src/test/{run-pass, compile-fail}/hygiene`](https://github.com/rust-lang/rust/pull/40847/commits/afe7d89858fd72b983e24727d6f4058293153c19) for examples. Small example:
```rust
mod foo {
    fn f() { println!("hello world"); }
    pub macro m() { f(); }
}
fn main() { foo::m!(); }
```

Limitations:
 - This does not address planned changes to matchers (`expr`,`ty`, etc.), c.f. #26361.
 - Lints (including stability and deprecation) and `unsafe` are not hygienic.
   - adding hygiene here will be mostly or entirely backwards compatible
 - Nested macro definitions (a `macro` inside another `macro`) don't always work correctly when invoked from external crates.
   - pending improvements in how we encode macro definitions in crate metadata
 - There is no way to "escape" hygiene without using a procedural macro.

r? @nrc
2017-05-25 22:31:34 +00:00
est31
87950b79de Stabilize non capturing closure to fn coercion 2017-05-25 11:57:55 +02:00
Jeffrey Seyfried
2a1d2edb82 Declarative macros 2.0 without hygiene. 2017-05-25 05:51:06 +00:00
Nathan Froyd
9a2e2450f9 add thiscall calling convention support
This support is needed for bindgen to work well on 32-bit Windows, and
also enables people to begin experimenting with C++ FFI support on that
platform.

Fixes #42044.
2017-05-24 16:40:03 -04:00
Matthew
6627ef228c Stabilize in 1.19 2017-05-23 14:00:20 +01:00
Scott McMurray
794e5724a8 Give step_trait a distinct tracking issue from step_by
iterator_step_by has decoupled their futures, so the tracking issue should split.
2017-05-23 03:08:18 -07:00
Scott McMurray
4be488c065 Add iterator_step_by to the unstable book's summary 2017-05-23 02:25:07 -07:00
Corey Farwell
7a7e236076 Rollup merge of #42122 - rust-lang:frewsxcv/unstable-book, r=steveklabnik
Add a few entries to the Unstable Book.
2017-05-23 00:15:42 -04:00
Corey Farwell
e38d5d5039 Rollup merge of #42016 - pietroalbini:stabilize/loop_break_value, r=nikomatsakis
Stabilize the loop_break_value feature

Tracking issue: #37339.

Documentation PRs already sent to the various repositories.
2017-05-23 00:15:41 -04:00
bors
f6cc40f168 Auto merge of #41904 - sfackler:1.18-stabilization, r=alexcrichton
Stabilize library features for 1.18.0

Closes #38863
Closes #38980
Closes #38903
Closes #36648

r? @alexcrichton

@rust-lang/libs
2017-05-21 22:06:08 +00:00
Steven Fackler
7c2cd93b2b Stabilize library features for 1.18.0
Closes #38863
Closes #38980
Closes #38903
Closes #36648
2017-05-20 21:58:47 -07:00
Alexis Beingessner
1f01b09ddc Add stub entry to unstable book for needs_drop 2017-05-20 19:27:31 -04:00
Corey Farwell
2d3438d35f Add basic Unstable Book entry for attr_literals. 2017-05-20 12:08:28 -04:00
Corey Farwell
d1f4993099 Add basic Unstable Book entry for catch_expr. 2017-05-20 11:47:51 -04:00
Corey Farwell
0c97d6c855 Add basic Unstable Book entry for on_unimplemented. 2017-05-20 11:38:22 -04:00
bors
543691d0eb Auto merge of #41439 - ivandardi:master, r=BurntSushi
Stabilize step_by by adding it to Iterator (issue #27741)

Inspired by itertools' `take()` method. See issue #27741
2017-05-19 17:42:28 +00:00
Pietro Albini
93c1f2472b
Stabilize the loop_break_value feature 2017-05-17 21:34:37 +02:00
bors
7b5c3d2b20 Auto merge of #41857 - dhardy:master, r=steveklabnik
loop_break_value: add documentation for book

Some notes at the top of the file.

r? @steveklabnik
2017-05-17 15:42:55 +00:00
Diggory Hardy
7ab35b703a loop_break_value doc: remove note about other loops 2017-05-17 13:00:10 +01:00
bors
42e3732d7d Auto merge of #41476 - abonander:book_proc_macro, r=nrc
Document the `proc_macro` feature in the Unstable Book

Discusses the `proc_macro` feature flag and the features it enables:

* Implicit enable of `extern_use_macros` feature and how to import proc macros
* Error handling in proc macros (using panic messages)
* Function-like proc macros using `#[proc_macro]` and a usage example for creating and invoking
* Attribute-like proc macros using `#[proc_macro_attribute]` and a usage example for creating and invoking

[Rendered](https://github.com/abonander/rust/blob/book_proc_macro/src/doc/unstable-book/src/language-features/proc-macro.md)
2017-05-17 04:21:06 +00:00
Austin Bonander
e616d12cbb Document the proc_macro feature in the Unstable Book 2017-05-16 17:08:43 -07:00
steveklabnik
ff399a098e Update the various books to latest
This includes a draft of chapter 20 of the book!
2017-05-16 16:01:23 -04:00
Diggory Hardy
3f980beb3e loop_break_value: fix tests (but ignore one expected not to compile) 2017-05-16 18:54:41 +01:00
bors
4d09a0eb5d Auto merge of #41771 - clarcharr:resize_default, r=nikomatsakis
Add Vec::resize_default.

As suggested by #41758.
2017-05-16 08:14:29 +00:00
Ivan Dardi
4955517201 Add entry to the Unstable Book 2017-05-15 17:00:02 -03:00
bors
75b0568123 Auto merge of #41992 - ollie27:linkchecker_base, r=alexcrichton
linkchecker: Add support for <base> tag

Add support for the HTML <base> tag as used by mdBook so The Unstable
Book can be checked.

Also cleanup a few things:
* Stop checking the name attribute. It should never have been used and
mdBook has since been fixed not to use it.
* Make sure we only check html files.
* Remove a few unnecessary allocations.

Finally, dead links in The Unstable Book have been fixed.
2017-05-15 12:59:31 +00:00
Oliver Middleton
21ca9cab7d Fix some dead links in The Unstable Book 2017-05-14 18:06:13 +01:00
Clar Charr
c2c0641444 Add Vec::resize_default. 2017-05-11 12:56:12 -04:00
Zack Weinberg
4ab3bcb9ca Fix up stability annotations per feedback. 2017-05-10 09:52:16 -04:00
Zack Weinberg
07766f675c Revise the eprint(ln)! feature.
* Factor out the nigh-identical bodies of `_print` and `_eprint` to a helper
   function `print_to` (I was sorely tempted to call it `_doprnt`).
 * Update the issue number for the unstable `eprint` feature.
 * Add entries to the "unstable book" for `eprint` and `eprint_internal`.
 * Style corrections to the documentation.
2017-05-10 09:41:42 -04:00
Diggory Hardy
7488ff5c44 loop_break_value book doc: remove some curiosities, regarding leodasvacas's comments 2017-05-09 19:34:00 +01:00
Diggory Hardy
7d94b4804a loop_break_value: address review comments on book addition 2017-05-09 15:48:45 +01:00
Diggory Hardy
52c33804af loop_break_value: add documentation for book 2017-05-09 12:30:26 +01:00
Jing Zhao
9b8f9b7cf8 Update rustc-ux-guidelines.md
"A `note` to emitted to" changed to "A `note` is emitted to"
2017-05-08 18:15:23 -07:00
Jing Zhao
576266927a Grammar fixes to rustc-ux-guidelines.md
1) changed "long way into" to "long way toward"
2) changed "developer lives" to "developers' lives"
3) removed the "either... or..." format from second paragraph because there are more than 2 options
4) Minor revisions to paragraphs 3-6 to make them more consistent in format and to fix minor grammar issues.
2017-05-08 13:33:54 -07:00
Mark Simulacrum
7f2f780f95 Minor cleanup of UX guidelines. 2017-05-06 14:17:26 -06:00
Corey Farwell
6ace8a76cb Rollup merge of #41064 - Gankro:ptr-redux, r=alexcrichton
refactor NonZero, Shared, and Unique APIs

Major difference is that I removed Deref impls, as apparently LLVM has
trouble maintaining metadata with a `&ptr -> &ptr` API. This was cited
as a blocker for ever stabilizing this API. It wasn't that ergonomic
anyway.

* Added `get` to NonZero to replace Deref impl
* Added `ptr` getter to Shared/Unique to replace Deref impl
* Added Unique's `get` and `get_mut` conveniences to Shared
* Deprecated `as_mut_ptr` on Shared in favour of `ptr`

Note that Shared used to primarily expose only `*const` but there isn't
a good justification for that, so I made it `*mut`.
2017-05-05 17:35:24 -04:00
Alexis Beingessner
e8234e0e47 update to latest nomicon 2017-05-04 23:54:55 -04:00
Steven Stewart-Gallus
f4fe3cd0e9 Added spin loop pause function 2017-05-01 17:11:44 -07:00
Michael Woerister
ab9691d5b7 Add some documentation for -Zremap-path-prefix to the unstable book 2017-04-26 16:13:16 +02:00
bors
dad9814eb0 Auto merge of #41258 - clarcharr:str_box_extras, r=Kimundi
More methods for str boxes. (reduce Box<[u8]> ↔ Box<str> transmutes)

This is a follow-up to #41096 that adds safer methods for converting between `Box<str>` and `Box<[u8]>`. They're gated under a different feature from the `&mut str` methods because they may be too niche to include in public APIs, although having them internally helps reduce the number of transmutes the standard library uses.

What's added:

* `From<Box<str>> for Box<[u8]>`
* `<Box<str>>::into_boxed_bytes` (just calls `Into::into`)
* `alloc::str` (new module)
* `from_boxed_utf8` and `from_boxed_utf8_unchecked`, defined in `alloc:str`, exported in `collections::str`
* exports `from_utf8_mut` in `collections::str` (missed from previous PR)
2017-04-26 06:18:17 +00:00