Commit graph

10901 commits

Author SHA1 Message Date
bors
ca94c75c52 Auto merge of #44220 - kennytm:fix-44216-instance-plus-max-duration-should-panic, r=alexcrichton
Properly detect overflow in Instance ± Duration.

Fix #44216.
Fix #42622

The computation `Instant::now() + Duration::from_secs(u64::max_value())` now panics. The call `receiver.recv_timeout(Duration::from_secs(u64::max_value()))`, which involves such time addition, will also panic.

The reason #44216 arises is because of an unchecked cast from `u64` to `i64`, making the duration equivalent to -1 second.

Note that the current implementation is over-conservative, since e.g. (-2⁶²) + (2⁶³) is perfectly fine for an `i64`, yet this is rejected because (2⁶³) overflows the `i64`.
2017-09-10 18:37:27 +00:00
bors
d290dec97f Auto merge of #44474 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 13 pull requests

- Successful merges: #44262, #44329, #44332, #44347, #44372, #44384, #44387, #44396, #44449, #44451, #44457, #44464, #44467
- Failed merges:
2017-09-10 12:48:55 +00:00
Guillaume Gomez
f76f2c76dc Rollup merge of #44396 - joshlf:tls-comment, r=alexcrichton
std:🧵:LocalKey: Document limitation with initializers

Document that if a `LocalKey`'s initializer recursively depends on itself, initialization will result in infinite recursion.
2017-09-10 14:03:27 +02:00
Guillaume Gomez
0e2dac7eba Rollup merge of #44384 - alexcrichton:osx-segfault, r=estebank
std: Fix a segfault on OSX with backtraces

Apparently `dladdr` can succeed but still give you NULL pointers!

Closes #44379
2017-09-10 14:03:25 +02:00
Eduard-Mihai Burtescu
10f66bd6e4 Use rvalue promotion to 'static instead of static items. 2017-09-10 11:20:27 +03:00
bors
ddd123ed9a Auto merge of #44251 - kennytm:osx-backtrace, r=alexcrichton
Add libbacktrace support for Apple platforms (resubmitted)

Resubmitting #43422 rebased on the current master (cc @JohnColanduoni).

I have added an additional commit to fallback to `dladdr`-based `resolve_symbol` if `libbacktrace` returns `None`, otherwise the stack trace will be full of `<unknown>` when you forget to pass the `-g` flag (actually it seems — at least on macOS — the `dladdr` symbol is more accurate than the `libbacktrace` one).
2017-09-09 17:32:13 +00:00
bors
929b878262 Auto merge of #44438 - Xaeroxe:clamp, r=Mark-Simulacrum
Revert clamp

Revert clamp per https://github.com/rust-lang/rust/issues/44095#issuecomment-328218316 while we take time to assess the potential backwards compatibility damage done by it.
2017-09-09 09:13:03 +00:00
Jacob Kiesel
db5b5f9706 Revert "Add clamp functions"
This reverts commit c589f867f8.
2017-09-08 16:07:21 -06:00
Jacob Kiesel
63f4dab0f5 Revert "Add NAN examples"
This reverts commit f74c5d2e18.
2017-09-08 16:07:19 -06:00
Jacob Kiesel
eafdad511f Revert "Fix f32 examples."
This reverts commit 61f20f8df0.
2017-09-08 16:07:17 -06:00
Jacob Kiesel
15d3eeaf65 Revert "Fix f64 examples"
This reverts commit 576426a05a.
2017-09-08 16:07:15 -06:00
Jacob Kiesel
8b96167004 Revert "Fix documentation and formatting."
This reverts commit 2e34ff7671.
2017-09-08 16:07:13 -06:00
Jacob Kiesel
67283fa8e6 Revert "Add panic unit tests"
This reverts commit b762283e57.
2017-09-08 16:07:09 -06:00
Joshua Liebow-Feeser
ddb072b8d7 std:🧵:LocalKey: Document limitation with initializers 2017-09-07 12:57:08 -07:00
kennytm
83d14bda7f
Disable the 80-year-difference test on 32-bit-time_t platforms. 2017-09-07 17:14:27 +08:00
kennytm
756026563d
Fix incorrect test in time::tests::system_time_math. 2017-09-07 17:14:27 +08:00
kennytm
8410ca6632
Properly detect overflow in Instance +/- Duration.
Avoid unchecked cast from `u64` to `i64`. Use `try_into()` for checked
cast. (On Unix, cast to `time_t` instead of `i64`.)
2017-09-07 17:14:27 +08:00
bors
d7d75eff30 Auto merge of #43931 - eddyb:const-local-key, r=alexcrichton
Make the LocalKey facade of thread_local! inlineable cross-crate.

Fixes (almost*) #25088 by changing the `LocalKey` `static` `thread_local!` generates to a `const`.
This can be done because a `LocalKey` value holds no actual TLS data, only function pointers to get at said data, and it could even be made `Copy` without any negative consequences.
The recent stabilization of rvalue promotion to `'static` allows doing this without changing the API.
r? @alexcrichton

*almost because we can't yet inline `__getit` because it breaks on MSVC, see https://github.com/rust-lang/rust/pull/43931#issuecomment-323534214
2017-09-07 06:52:05 +00:00
Alex Crichton
f633284b3d std: Fix a segfault on OSX with backtraces
Apparently `dladdr` can succeed but still give you NULL pointers!

Closes #44379
2017-09-06 22:14:34 -07:00
Mark Simulacrum
fdb8d0beb4 Rollup merge of #44315 - kallisti5:epoch-doc-example-squashed, r=GuillaumeGomez
std/time: Give an example to get UNIX_EPOCH in seconds
2017-09-06 18:27:53 -06:00
Mark Simulacrum
44351edb64 Rollup merge of #44097 - Xaeroxe:clamp, r=burntsushi
Add clamp functions

Implementation of clamp feature:

Tracking issue: https://github.com/rust-lang/rust/issues/44095
RFC: https://github.com/rust-lang/rfcs/pull/1961
2017-09-06 18:27:45 -06:00
Jacob Kiesel
b762283e57 Add panic unit tests 2017-09-04 21:39:46 -06:00
Alexander von Gluck IV
1c5bf2468b std/time: Give an example to get UNIX_EPOCH in seconds 2017-09-04 19:21:58 -05:00
Eduard-Mihai Burtescu
4e2be14986 Make the LocalKey facade of thread_local! inlineable cross-crate. 2017-09-04 08:24:06 +03:00
Ralf Jung
12d84cc009 update gcc crate
Use gcc::Build rather than deprecated gcc::Config.
Fixes #43973
2017-09-02 21:51:18 +02:00
kennytm
7169fe57d6
Fallback to dladdr-based resolve_symbol if backtrace failed.
This programs compiled without -g on macOS still provide the resolve to
actual symbols, instead of `<unknown>` everywhere.
2017-09-02 03:24:17 +08:00
John Colanduoni
09f572b7dc
Use env::current_exe for libbacktrace on macOS 2017-09-02 03:24:17 +08:00
John Colanduoni
e8121b3d16
Add libbacktrace support for Apple platforms 2017-09-02 03:24:15 +08:00
bors
f861b6ee46 Auto merge of #44154 - alexcrichton:bump-bootstrap, r=Mark-Simulacrum
Bump to 1.22.0 and update boostrap compiler

Time to get a new nightly!
2017-09-01 16:39:31 +00:00
bors
ed532c0d93 Auto merge of #44238 - nrc:pulldown-warn, r=@QuietMisdreavus
Improve the Pulldown/hoedown warnings

cc #44229

r? @QuietMisdreavus
2017-09-01 13:56:22 +00:00
Nick Cameron
1d6d09fa6d Fix tests
This is just undoing changes from #41991 because we are not running markdown rendering twice.
2017-09-01 20:07:04 +12:00
Jacob Kiesel
2e34ff7671 Fix documentation and formatting. 2017-09-01 00:07:26 -06:00
Alex Crichton
9e5a7e9472 Bring back stage0 allocator logic on MSVC
I think there may still be bugs preventing its removal..
2017-08-31 18:20:52 -07:00
Mark Simulacrum
3cd4ea3bfa Rollup merge of #44209 - frewsxcv:frewsxcv-addr-other-scenarios, r=alexcrichton
Expand docs of multi-address behavior of some UDP/TCP APIs.

Fixes https://github.com/rust-lang/rust/issues/22569.
2017-08-31 18:07:46 -06:00
Mark Simulacrum
471f9894c9 Rollup merge of #44205 - frewsxcv:frewsxcv-addr-doc-fix, r=QuietMisdreavus
Fix typo in doc `ToSocketAddrs` example.

None
2017-08-31 18:07:44 -06:00
Corey Farwell
0a716fdce2 Expand docs of multi-address behavior of some UDP/TCP APIs.
Fixes https://github.com/rust-lang/rust/issues/22569.
2017-08-31 11:24:34 -04:00
Alex Crichton
7a2a8d7d60 Update Cargo to 0.23.0 and our lockfile 2017-08-31 07:02:50 -07:00
Alex Crichton
9b9de27101 Bump to 1.22.0 2017-08-31 06:58:58 -07: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
bors
97b01abf3d Auto merge of #41991 - GuillaumeGomez:rustdoc-html-diff, r=nrc
Add warnings when rustdoc html rendering differs
2017-08-31 08:52:03 +00:00
Corey Farwell
396fc111e1 Fix typo in doc ToSocketAddrs example. 2017-08-30 22:03:03 -04:00
Alex Crichton
c0812c8458 Rollup merge of #44160 - AndyGauge:api-docs-macros, r=steveklabnik
API docs: macros.  Standard Documentation Checklist

Fixes #29381
r? @steveklabnik
2017-08-30 13:17:05 -07:00
Alex Crichton
bc6981ba55 Rollup merge of #44116 - alexcrichton:update-libc, r=Mark-Simulacrum
Update the libc submodule

Brings in a few fixes for wasm/asmjs
2017-08-30 11:11:11 -05:00
Guillaume Gomez
bba7fd9dd5 Temporary fix for a test (will require another update when this is fully merged) 2017-08-30 09:40:43 +02:00
Andy Gauge
80d513aaec broken links resolved 2017-08-29 16:39:11 -07:00
Ariel Ben-Yehuda
30907e1a27 Rollup merge of #44117 - frewsxcv:frewsxcv-to-socket-addrs-examples, r=QuietMisdreavus
Rewrite `std::net::ToSocketAddrs` doc examples.

in particular:

* show how to create an iterator that yields multiple socket addresses
* show more failing scenarios

done this as preliminary work while investigating https://github.com/rust-lang/rust/issues/22569

note: i haven't run doc tests on my machine for this, so would be good to confirm CI passes before approving
2017-08-29 21:40:57 +00: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
Alex Crichton
e5b123cba2 Update the libc submodule
Brings in a few fixes for wasm/asmjs
2017-08-28 07:58:19 -07:00
Corey Farwell
10bd39e7af Rewrite std::net::ToSocketAddrs doc examples.
in particular:

* show how to create an iterator that yields multiple socket addresses
* show more failing scenarios
2017-08-28 09:23:06 -04:00