Commit Graph

306 Commits

Author SHA1 Message Date
Mark Rousskov
683a3db01f Switch to bootstrapping from 1.29 beta 2018-08-01 11:59:08 -06:00
kennytm
8e6971dd2d
Rollup merge of #52581 - petrochenkov:bmacrodoc, r=alexcrichton
Avoid using `#[macro_export]` for documenting builtin macros

Use a special `rustc_*` attribute instead.

cc https://github.com/rust-lang/rust/pull/52234
2018-07-23 01:00:03 +08:00
Esteban Küber
3c817259e3 fix tidy ~ again 2018-07-21 19:19:56 -07:00
Esteban Küber
6aa17a3c68 Don't use the new eprintln for stage0 and stage1
I'm not entirely sure why (or if) this is needed.
2018-07-21 17:59:17 -07:00
Esteban Küber
a7a68370a7 Change eprintln!()
Address #30143 as well. `writeln!()` hasn't been changed.
2018-07-21 15:56:37 -07:00
Esteban Küber
00d500052c Gate format_args_nll behind feature flag 2018-07-21 15:50:46 -07:00
Vadim Petrochenkov
a18be44d63 Avoid using #[macro_export] for documenting builtin macros 2018-07-21 02:49:34 +03:00
Esteban Küber
154dee2dcc rework println 2018-07-19 23:18:07 -07:00
Esteban Küber
e613bfb701 Same change as println for eprintln 2018-07-19 23:18:07 -07:00
Esteban Küber
fbce952193 review comments: modify note wording and change println
- Don't print the newline on its own to avoid the possibility of
  printing it out of order due to `stdout` locking.
- Modify wording of `concat!()` with non-literals to not mislead into
  believing that only `&str` literals are accepted.
- Add test for `concat!()` with non-literals.
2018-07-19 23:18:07 -07:00
Esteban Küber
f53c145ef1 Improve suggestion for missing fmt str in println
Avoid using `concat!(fmt, "\n")` to improve the diagnostics being
emitted when the first `println!()` argument isn't a formatting string
literal.
2018-07-19 23:18:07 -07:00
Benjamin Sago
f85ddfbc3f
Add sentence to compile_error!() docs
It now details why using compile_error!() is different from just not having the final macro_rules!() branch.
2018-06-25 10:34:00 +02:00
Benjamin Sago
2d3c369d87
Link the docs of panic!() and compile_error!()
Fixes #47275. These two macros are similar, but different, and could do with documentation links to each other.
2018-06-25 10:33:54 +02:00
Taylor Cramer
9a310abf79 Remove impl trait names and move bits of await into a function 2018-06-22 16:08:07 -07:00
Taylor Cramer
ee51a3c10a Review nits and updates
Move future_from_generator out of raw
Update await to use $crate
Renumber errors
2018-06-22 11:36:01 -07:00
Taylor Cramer
f744ac5538 Allow unsafe code inside of await macro 2018-06-21 22:38:05 -07:00
Taylor Cramer
cf844b547d async await desugaring and tests 2018-06-21 22:36:36 -07:00
Guillaume Gomez
fe9a19580c Add documentation about env! second argument 2018-05-24 20:08:10 +02:00
Michael Lamparski
8e38d02d98 update concat_idents doc stubs 2018-05-03 06:49:30 -04:00
Guillaume Gomez
05275dafaa Remove unwanted auto-linking and update 2018-04-16 23:37:11 +02:00
Alex Burka
333b0a0471
tweak format_args! docs
Swap the variable names in the example.
2018-04-03 09:20:04 -04:00
Mazdak Farrokhzad
afff64e7a4 document format_args! further wrt. Debug & Display" 2018-03-21 07:55:09 +01:00
bors
5f3996c3ec Auto merge of #48813 - sinkuu:build_in_assert_macro, r=alexcrichton
Make `assert` a built-in procedural macro

Makes `assert` macro a built-in one without touching its functionality. This is a prerequisite for RFC 2011 (#44838).
2018-03-16 08:22:11 +00:00
Manish Goregaokar
b65b171f44
Rollup merge of #48857 - Songbird0:improve_column_macro_documentation, r=joshtriplett
Modify part of `column!` documentation.

Just like `line!` documentation, I've replaced:

> The returned column is not the invocation of the `column!` macro itself

By

> The returned column is *not necessarily* the line of the `column!` invocation itself

See #46997.
2018-03-08 17:25:59 -08:00
Anthony Defranceschi
a0758cdcff Modify part of column! documentation.
Just like `line!` documentation, I've replaced:

> The returned column is not the invocation of the `column!` macro itself

By

> The returned column is *not necessarily* the line of the `column!` invocation itself

See #46997.
2018-03-09 00:43:54 +01:00
Anthony Defranceschi
2d7472fadc Modify part of line! documentation.
In accordance with #46997, I've replaced:

> The returned line is not the invocation of the line! macro itself [...]

By

> The returned line is *not necessarily* the line of the `line!` invocation itself [...]
2018-03-09 00:36:07 +01:00
Shotaro Yamada
517083fbad Make assert macro a built-in procedural macro 2018-03-07 17:22:58 +09:00
Michael Lamparski
b7c6dc6c06 update the builtin macro doc stubs 2018-02-07 12:48:25 -05:00
Michael Lamparski
96eed862a0 libcore/libstd: fix commas in macro_rules! macros
BREAKING CHANGE: (or perhaps, *bugfix*)

In #![no_std] applications, the following calls to `panic!` used
to behave differently; they now behave the same.

Old behavior:

    panic!("{{");   // panics with "{{"
    panic!("{{",);  // panics with "{"

New behavior:

    panic!("{{");   // panics with "{{"
    panic!("{{",);  // panics with "{{"

This only affects calls to `panic!` (and by proxy `assert`
and `debug_assert`) with a single string literal followed by
a trailing comma, and only in `#![no_std]` applications.
2018-02-07 09:36:20 -05:00
Andrew Brinker
45221511d4 Fixed a typo in the compile_error docs 2018-01-08 16:35:06 -08:00
est31
6081989adc Fix docs mistake 2017-12-25 14:15:59 +01:00
est31
e5c3aac0b4 Make column macro output 1 based and document it 2017-12-24 02:20:06 +01:00
Guillaume Gomez
912def328f Rollup merge of #46416 - liigo:cfg-macro, r=steveklabnik
doc: macro `cfg!` evaluating at compile-time
2017-12-07 23:59:00 +01:00
Havvy
aaaea2c562 compile_error example blurbs 2017-12-05 14:01:09 -08:00
Havvy
3f0b766c35 No unused macro warning in compile_error example. 2017-12-05 01:47:47 -08:00
Havvy
44c343be45 Give compile_error macro examples 2017-12-04 21:55:24 -08:00
Liigo Zhuang
9e281cc6a5 doc: macro cfg! evaluating at compile-time 2017-12-01 13:32:56 +08:00
Michael Lamparski
6ff04ffdfe Make builtin macro doc stubs more accurate
See #46242.
2017-11-25 12:06:20 -05:00
Alex Crichton
80ff0f74b0 std: Add a new wasm32-unknown-unknown target
This commit adds a new target to the compiler: wasm32-unknown-unknown. This
target is a reimagining of what it looks like to generate WebAssembly code from
Rust. Instead of using Emscripten which can bring with it a weighty runtime this
instead is a target which uses only the LLVM backend for WebAssembly and a
"custom linker" for now which will hopefully one day be direct calls to lld.

Notable features of this target include:

* There is zero runtime footprint. The target assumes nothing exists other than
  the wasm32 instruction set.
* There is zero toolchain footprint beyond adding the target. No custom linker
  is needed, rustc contains everything.
* Very small wasm modules can be generated directly from Rust code using this
  target.
* Most of the standard library is stubbed out to return an error, but anything
  related to allocation works (aka `HashMap`, `Vec`, etc).
* Naturally, any `#[no_std]` crate should be 100% compatible with this new
  target.

This target is currently somewhat janky due to how linking works. The "linking"
is currently unconditional whole program LTO (aka LLVM is being used as a
linker). Naturally that means compiling programs is pretty slow! Eventually
though this target should have a linker.

This target is also intended to be quite experimental. I'm hoping that this can
act as a catalyst for further experimentation in Rust with WebAssembly. Breaking
changes are very likely to land to this target, so it's not recommended to rely
on it in any critical capacity yet. We'll let you know when it's "production
ready".

---

Currently testing-wise this target is looking pretty good but isn't complete.
I've got almost the entire `run-pass` test suite working with this target (lots
of tests ignored, but many passing as well). The `core` test suite is still
getting LLVM bugs fixed to get that working and will take some time. Relatively
simple programs all seem to work though!

---

It's worth nothing that you may not immediately see the "smallest possible wasm
module" for the input you feed to rustc. For various reasons it's very difficult
to get rid of the final "bloat" in vanilla rustc (again, a real linker should
fix all this). For now what you'll have to do is:

    cargo install --git https://github.com/alexcrichton/wasm-gc
    wasm-gc foo.wasm bar.wasm

And then `bar.wasm` should be the smallest we can get it!

---

In any case for now I'd love feedback on this, particularly on the various
integration points if you've got better ideas of how to approach them!
2017-11-19 21:07:41 -08:00
Alex Burka
365eafbc7f fix stringify docs in std 2017-10-22 13:17:23 -04:00
Eduard-Mihai Burtescu
10f66bd6e4 Use rvalue promotion to 'static instead of static items. 2017-09-10 11:20:27 +03:00
Alex Crichton
2972687d10 Update bootstrap compiler
This commit updates the bootstrap compiler and clears out a number
of #[cfg(stage0)] annotations and related business
2017-08-31 06:58:58 -07:00
Andy Gauge
80d513aaec broken links resolved 2017-08-29 16:39:11 -07:00
Andrew Gauger
84c5441e70 fix test failures in documentation change 2017-08-29 12:53:12 -07:00
Andy Gauge
b9b654924e API docs: macros. Part of #29329 Standard Library Documentation Checklist. 2017-08-29 10:30:19 -07:00
Corey Farwell
8d0d2a5729 Add complete doc example for include_str!. 2017-08-12 00:31:56 -04:00
Corey Farwell
446ff0d529 Add complete doc example for include_bytes!. 2017-08-12 00:31:55 -04:00
Corey Farwell
ea6f0f060c Demonstrate include! with Rust code, not just a string slice literal. 2017-08-12 00:31:54 -04:00
est31
b6ac9c0d30 Avoid calling the column!() macro in panic 2017-08-08 11:35:09 +02:00
bors
e574ba4994 Auto merge of #43477 - est31:master, r=alexcrichton
Switch to begin_panic again

In https://github.com/rust-lang/rust/pull/42938 we made the compiler
emit a call to begin_panic_new in order to pass column info to it. Now
with stage0 updated (https://github.com/rust-lang/rust/pull/43320),
we can safely change begin_panic and start emitting calls for it again.
2017-07-27 04:25:37 +00:00
est31
90ac6408ba Switch to begin_panic again
In https://github.com/rust-lang/rust/pull/42938 we made the compiler
emit a call to begin_panic_new in order to pass column info to it. Now
with stage0 updated (https://github.com/rust-lang/rust/pull/43320),
we can safely change begin_panic and start emitting calls for it again.
2017-07-25 22:10:10 +02:00
Alex Crichton
20b4f86d13 Stabilize the compile_error_macro feature
Stabilizes:

* `compile_error!` as a macro defined by rustc

Closes #40872
2017-07-25 07:09:31 -07:00
Mark Simulacrum
500518ab72 Rollup merge of #42670 - dns2utf8:panic_return_code, r=steveklabnik
Add hint about the return code of panic!

I hope the link works on all cases, since the `unreachable` doc is copied to `std::` as well.
2017-07-12 06:58:43 -06:00
Stefan Schindler
133c1bc9ac Wrap long line 2017-07-11 16:45:39 +02:00
Stefan Schindler
9e001ce865 Be more specific about the implications of the panic! 2017-07-05 23:44:24 +02:00
Stefan Schindler
d5390573ba Insert current implementation header 2017-07-05 21:16:58 +02:00
est31
da887074fc Output line column info when panicking 2017-07-02 13:53:29 +02:00
kennytm
4711982314
Removed as many "```ignore" as possible.
Replaced by adding extra imports, adding hidden code (`# ...`), modifying
examples to be runnable (sorry Homura), specifying non-Rust code, and
converting to should_panic, no_run, or compile_fail.

Remaining "```ignore"s received an explanation why they are being ignored.
2017-06-23 15:31:53 +08:00
Wesley Wiser
0b29d26079 Add compile_error!
Related to #40872
2017-06-19 14:29:12 -04:00
Stefan Schindler
84b880d55e Add hint about the return code of panic! 2017-06-15 11:36:32 +02:00
Wonwoo Choi
3cb7825986 Update older URLs pointing to the first edition of the Book
`compiler-plugins.html` is moved into the Unstable Book.
Explanation is slightly modified to match the change.
2017-06-15 00:04:00 +09:00
Oliver Middleton
2f703e4304 Correct some stability versions
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
2017-05-20 08:38:39 +01: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
Zack Weinberg
76127275a0 Add eprint! and eprintln! macros to the prelude.
These are exactly the same as `print!` and `println!` except that
they write to stderr instead of stdout.  Issue #39228.
2017-05-10 09:29:16 -04:00
Steve Klabnik
3eb8434150 Get linkchecker clean
This affects the book, some missed things in the reference, the grammar,
and the standard library. Whew!
2017-02-21 14:02:12 -05:00
Guillaume Gomez
ced04ff5c6 Rollup merge of #38457 - frewsxcv:include, r=GuillaumeGomez
Improvements to 'include' macro documentation.

None
2017-01-19 11:56:00 +01:00
Corey Farwell
4a354abeae Fix 'unhygienically' typo. 2016-12-21 10:44:54 -08:00
Corey Farwell
44c2eb9182 Move parenthesized statement within sentence. 2016-12-21 10:44:08 -08:00
Corey Farwell
8a472a5567 Add a more complete doc example for 'include' macro. 2016-12-21 10:44:07 -08:00
Tobias Bucher
a0b346a349 Allow writeln! without arguments, in symmetry with println! 2016-12-19 16:57:23 +01:00
Tamir Duberstein
bef1911b15
tidy/features: fix checking of lang features
Removes the `STATUSES` static which duplicates truth from the pattern
match in `collect_lang_features`.

Fixes existing duplicates by renaming:
- never_type{,_impls} on `impl`s on `!`
- concat_idents{,_macro} on `macro_rules! concat_idents`

Fixes #37013.
2016-10-27 21:35:57 -04:00
Артём Павлов [Artyom Pavlov]
34576da935
Small docstring changes for include_bytes and include_str 2016-10-21 18:03:22 +03:00
Артём Павлов [Artyom Pavlov]
b374c53ae6
Small doc change for include! 2016-10-21 17:44:19 +03:00
bors
1e4c8b1a81 Auto merge of #36825 - sbwtw:master, r=alexcrichton
add println!() macro with out any arguments

lets add println!() to write "\n".
like java https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println()
2016-10-11 01:17:03 -07:00
bors
8991ffc303 Auto merge of #36404 - christopherdumas:master, r=GuillaumeGomez
Documentation change to macros.rs for `includes!`

I'm not sure if this documentation is clear or extensive enough, but this is just to get started on the problem, fixes issue #36387.
2016-10-02 08:32:07 -07:00
石博文
7d6227a9b3 add println!() macro with out any arguments 2016-09-30 09:11:18 +08:00
Mark-Simulacrum
ad63215732 Add links between format_args! macro and std::fmt::Arguments struct 2016-09-16 15:33:53 -06:00
christopherdumas
3660a790fb Fixed issue #36387 2016-09-12 05:58:37 -07:00
Mike Hommey
4bfaa43eed doc: Mention that writeln! and println! always use LF
Fixes #34697
2016-07-12 14:39:16 +09:00
Oliver Middleton
1cc54d0327 Mark concat_idents! unstable
This is mostly just a documentation fix as I don't think stability
attributes have any effect on macros.
2016-06-21 23:30:15 +01:00
Alex Crichton
0ec321f7b5 rustc: Implement custom panic runtimes
This commit is an implementation of [RFC 1513] which allows applications to
alter the behavior of panics at compile time. A new compiler flag, `-C panic`,
is added and accepts the values `unwind` or `panic`, with the default being
`unwind`. This model affects how code is generated for the local crate, skipping
generation of landing pads with `-C panic=abort`.

[RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md

Panic implementations are then provided by crates tagged with
`#![panic_runtime]` and lazily required by crates with
`#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic
runtime must match the final product, and if the panic strategy is not `abort`
then the entire DAG must have the same panic strategy.

With the `-C panic=abort` strategy, users can expect a stable method to disable
generation of landing pads, improving optimization in niche scenarios,
decreasing compile time, and decreasing output binary size. With the `-C
panic=unwind` strategy users can expect the existing ability to isolate failure
in Rust code from the outside world.

Organizationally, this commit dismantles the `sys_common::unwind` module in
favor of some bits moving part of it to `libpanic_unwind` and the rest into the
`panicking` module in libstd. The custom panic runtime support is pretty similar
to the custom allocator support with the only major difference being how the
panic runtime is injected (takes the `-C panic` flag into account).
2016-05-09 08:22:36 -07:00
Alex Crichton
0d5cfd9117 mk: Distribute fewer TARGET_CRATES
Right now everything in TARGET_CRATES is built by default for all non-fulldeps
tests and is distributed by default for all target standard library packages.
Currenly this includes a number of unstable crates which are rarely used such as
`graphviz` and `rbml`>

This commit trims down the set of `TARGET_CRATES`, moves a number of tests to
`*-fulldeps` as a result, and trims down the dependencies of libtest so we can
distribute fewer crates in the `rust-std` packages.
2016-03-07 13:05:12 -08:00
NODA, Kai
cec158b6b7
doc: concat_idents! macro: more on its limitations.
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-02-11 04:14:03 +08:00
Barosl Lee
1a8cdc0f2f Use different numbers of #s when expanding documentation comments
Any documentation comments that contain raw-string-looking sequences may
pretty-print invalid code when expanding them, as the current logic
always uses the `r"literal"` form, without appending any `#`s.

This commit calculates the minimum number of `#`s required to wrap a
comment correctly and appends `#`s appropriately.

Fixes #27489.
2016-01-19 06:24:08 +09:00
Alex Crichton
464cdff102 std: Stabilize APIs for the 1.6 release
This commit is the standard API stabilization commit for the 1.6 release cycle.
The list of issues and APIs below have all been through their cycle-long FCP and
the libs team decisions are listed below

Stabilized APIs

* `Read::read_exact`
* `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`)
* libcore -- this was a bit of a nuanced stabilization, the crate itself is now
  marked as `#[stable]` and the methods appearing via traits for primitives like
  `char` and `str` are now also marked as stable. Note that the extension traits
  themeselves are marked as unstable as they're imported via the prelude. The
  `try!` macro was also moved from the standard library into libcore to have the
  same interface. Otherwise the functions all have copied stability from the
  standard library now.
* The `#![no_std]` attribute
* `fs::DirBuilder`
* `fs::DirBuilder::new`
* `fs::DirBuilder::recursive`
* `fs::DirBuilder::create`
* `os::unix::fs::DirBuilderExt`
* `os::unix::fs::DirBuilderExt::mode`
* `vec::Drain`
* `vec::Vec::drain`
* `string::Drain`
* `string::String::drain`
* `vec_deque::Drain`
* `vec_deque::VecDeque::drain`
* `collections::hash_map::Drain`
* `collections::hash_map::HashMap::drain`
* `collections::hash_set::Drain`
* `collections::hash_set::HashSet::drain`
* `collections::binary_heap::Drain`
* `collections::binary_heap::BinaryHeap::drain`
* `Vec::extend_from_slice` (renamed from `push_all`)
* `Mutex::get_mut`
* `Mutex::into_inner`
* `RwLock::get_mut`
* `RwLock::into_inner`
* `Iterator::min_by_key` (renamed from `min_by`)
* `Iterator::max_by_key` (renamed from `max_by`)

Deprecated APIs

* `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`)
* `OsString::from_bytes`
* `OsStr::to_cstring`
* `OsStr::to_bytes`
* `fs::walk_dir` and `fs::WalkDir`
* `path::Components::peek`
* `slice::bytes::MutableByteVector`
* `slice::bytes::copy_memory`
* `Vec::push_all` (renamed to `extend_from_slice`)
* `Duration::span`
* `IpAddr`
* `SocketAddr::ip`
* `Read::tee`
* `io::Tee`
* `Write::broadcast`
* `io::Broadcast`
* `Iterator::min_by` (renamed to `min_by_key`)
* `Iterator::max_by` (renamed to `max_by_key`)
* `net::lookup_addr`

New APIs (still unstable)

* `<[T]>::sort_by_key` (added to mirror `min_by_key`)

Closes #27585
Closes #27704
Closes #27707
Closes #27710
Closes #27711
Closes #27727
Closes #27740
Closes #27744
Closes #27799
Closes #27801
cc #27801 (doesn't close as `Chars` is still unstable)
Closes #28968
2015-12-05 15:09:44 -08:00
Alex Burka
f18bfb3168 tweak cfg! doc comment 2015-11-29 22:53:19 -05:00
Alex Burka
f542d4aba7 fix docs for compiler builtin macros 2015-11-26 22:45:55 -05:00
Vadim Petrochenkov
7e2ffc7090 Add missing annotations and some tests 2015-11-18 01:24:21 +03:00
Ben S
c6e1b12a58 Change the first line of the println macro doc
This makes the first lines of the print! and println! macros
different. Previously, they would show up exactly the same in the
documentation for the macros in libstd [1], with nothing about how
one of them also prints a newline.

[1]: https://doc.rust-lang.org/stable/std/#macros
2015-09-25 12:29:47 +01:00
llogiq
49b1902345 added panic docs for print\! and println\! macros 2015-09-19 09:04:12 +02:00
Jake Goulding
acea5f4c82 Clarify that include_bytes! returns a reference to an array, not just a slice
This can be shown with the example code

```rust
fn main() {
    let () = include_bytes!("/etc/hosts");
}

Which will have the error:

expected `&[u8; 195]`,
    found `()`
2015-09-07 20:01:14 -04:00
bors
ab792abf1f Auto merge of #28047 - steveklabnik:doc_print, r=alexcrichton 2015-08-28 13:48:09 +00:00
Steve Klabnik
d9819b76d2 Add some examples for the print! macro 2015-08-27 19:02:45 -04:00
Alex Burka
595fda0de7 fix some more unstable issue annotations 2015-08-27 12:48:35 -04:00
Alex Crichton
8cb4d8671a std: Clean up primitive integer modules
All of the modules in the standard library were just straight reexports of those
in libcore, so remove all the "macro modules" from the standard library and just
reexport what's in core directly.
2015-08-17 14:03:32 -07:00
Steve Klabnik
ba5fcb726f Show appropriate feature flags in docs 2015-07-27 12:28:13 -04:00
Richo Healey
30cde078c6 std: clean up duplicated attrs and comment on panic 2015-06-26 09:53:56 -07:00
Steve Klabnik
1620acf3ad Fix docs for column/line
Fixes #26424
2015-06-19 11:22:37 -04:00
Alex Crichton
6895311e85 std: Split the std_misc feature 2015-06-17 09:06:59 -07:00