Commit Graph

1294 Commits

Author SHA1 Message Date
varkor ea505fd60b Make std::io::Error #[non_exhaustive] 2018-08-15 17:16:48 +01:00
Ralf Jung 31bec788f4 avoid using the word 'initialized' to talk about that non-reentrant-capable state of the mutex 2018-08-08 18:12:33 +02:00
Ralf Jung 645388583c actually, reentrant uninitialized mutex acquisition is outright UB 2018-08-06 14:39:55 +02:00
Ralf Jung 22457deef7 make Lazy::new unsafe and check reentrancy condition in the callers 2018-08-06 13:52:15 +02:00
Ralf Jung d3d31105e9 clarify partially initialized Mutex issues 2018-08-06 12:54:44 +02:00
ljedrz b5ed39ff10 Implement custom read_to_end for io::Take 2018-08-01 13:26:45 +02:00
Simon Sapin 4ca77f702f Remove unstable and deprecated APIs 2018-07-30 18:18:23 +02:00
bors 4f1e235744 Auto merge of #52336 - ishitatsuyuki:dyn-rollup, r=Mark-Simulacrum
Rollup of bare_trait_objects PRs

All deny attributes were moved into bootstrap so they can be disabled with a line of config.

Warnings for external tools are allowed and it's up to the tool's maintainer to keep it warnings free.

r? @Mark-Simulacrum
cc @ljedrz @kennytm
2018-07-27 20:27:40 +00:00
Jonathan Behrens abb704ec78 State default capacity for BufReader/BufWriter 2018-07-26 00:49:35 +01:00
Tatsuyuki Ishi 4f1d4e4db6 Merge remote-tracking branches 'ljedrz/dyn_libcore', 'ljedrz/dyn_libstd' and 'ljedrz/dyn_libterm' into dyn-rollup 2018-07-25 10:25:02 +09:00
Tommi Komulainen 8b80c9f5a1 Cursor: update docs to clarify Cursor only works with in-memory buffers
Reduce misconceptions about Cursor being more general than it really is.

Fixes: #52470
2018-07-19 21:11:51 +02:00
Andy Russell c12a757424 simplify assertions 2018-07-11 14:39:22 -04:00
ljedrz 1915cd1dc2 Add missing dyn in tests 2018-07-11 09:11:39 +02:00
ljedrz 560d8079ec Deny bare trait objects in src/libstd. 2018-07-10 20:35:36 +02:00
Andy Russell a1e1b5c3fb rework LineWriter example
The original example didn't check the return value of `write()`, didn't
flush the writer, and didn't properly demonstrate the buffering.

Fixes #51621.
2018-07-08 17:46:23 -04:00
Pietro Albini 0ceeb1be31 Rollup merge of #51973 - estk:master, r=abonander
Make Stdio handle UnwindSafe

Closes  #51863

This is my first compiler PR. Thanks Niko for the mentor help!

r? @nikomatsakis
2018-07-03 11:31:03 +02:00
bors 0fb6e3994f Auto merge of #51564 - SimonSapin:try-int, r=alexcrichton
Implement always-fallible TryFrom for usize/isize conversions that are infallible on some platforms

This reverts commit 837d6c7023 "Remove TryFrom impls that might become conditionally-infallible with a portability lint".

This fixes #49415 by adding (restoring) missing `TryFrom` impls for integer conversions to or from `usize` or `isize`, by making them always fallible at the type system level (that is, with `Error=TryFromIntError`) even though they happen to be infallible on some platforms (for some values of `size_of::<usize>()`).

They had been removed to allow the possibility to conditionally having some of them be infallible `From` impls instead, depending on the platforms, and have the [portability lint](https://github.com/rust-lang/rfcs/pull/1868) warn when they are used in code that is not already opting into non-portability. For example `#[allow(some_lint)] usize::from(x: u64)` would be valid on code that only targets 64-bit platforms.

This PR gives up on this possiblity for two reasons:

* Based on discussion with @aturon, it seems that the portability lint is not happening any time soon. It’s better to have the conversions be available *at all* than keep blocking them for so long. Portability-lint-gated platform-specific APIs can always be added separately later.

* For code that is fine with fallibility, the alternative would force it to opt into "non-portability" even though there would be no real portability issue.
2018-07-03 04:08:02 +00:00
Evan Simmons 9797665b28 Make Stdio handle UnwindSafe 2018-07-02 12:54:30 -07:00
Sgeo 0b9c686b47 Remove erroneous example of main as a non-Result function. 2018-06-19 18:32:44 -04:00
NODA, Kai b81da27862 libstd: add an RAII utility for sys_common::mutex::Mutex
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2018-06-17 15:18:32 +08:00
Simon Sapin e7c122c5b5 Revert "Remove TryFrom impls that might become conditionally-infallible with a portability lint"
This reverts commit 837d6c7023.

Fixes https://github.com/rust-lang/rust/issues/49415
2018-06-06 13:52:22 +02:00
Simon Sapin 7cbeddb7b7 Deprecate Read::chars and char::decode_utf8
Per FCP:

* https://github.com/rust-lang/rust/issues/27802#issuecomment-377537778
* https://github.com/rust-lang/rust/issues/33906#issuecomment-377534308
2018-04-15 08:18:00 +02:00
Thayne McCombs 210a2a2b9e Stabilize take_set_limit
Fixes #42781
2018-04-05 00:30:49 -06:00
kennytm 93ad4f2b9c Rollup merge of #49594 - mbrubeck:docs, r=steveklabnik
Add some performance guidance to std::fs and std::io docs

Adds more documentation about performance to various "read" functions in `fs` and `io`, and to `BufReader`/`BufWriter`, with the goal of helping developers choose the best option for a given task.
2018-04-05 02:17:03 +08:00
Matt Brubeck 390f8367e7 Add performance notes to BufReader/BufWriter docs 2018-04-03 15:25:55 -07:00
Matt Brubeck 1ce98f34d3 Cross-reference fs::read functions from io::Read docs 2018-04-03 15:25:55 -07:00
Rolf van de Krol a2a0f21ba1 Fix typo 2018-04-02 21:48:56 +02:00
bors e5277c1457 Auto merge of #49357 - frewsxcv:frewsxcv-termination-doc-examples, r=GuillaumeGomez
Remove hidden `foo` functions from doc examples; use `Termination` trait.

Fixes https://github.com/rust-lang/rust/issues/49233.

Easier to review with the white-space ignoring `?w=1` feature: https://github.com/rust-lang/rust/pull/49357/files?w=1
2018-03-28 18:11:44 +00:00
Corey Farwell e9dcec070d Remove hidden foo functions from doc examples; use Termination trait.
Fixes https://github.com/rust-lang/rust/issues/49233.
2018-03-28 13:15:05 +02:00
Simon Sapin 837d6c7023 Remove TryFrom impls that might become conditionally-infallible with a portability lint
https://github.com/rust-lang/rust/pull/49305#issuecomment-376293243
2018-03-27 09:48:42 +02:00
Steven Fackler 16da5d4bb2 Add BufReader::buffer
This subsumes the need for an explicit is_empty function, and provides
access to the buffered data itself which has been requested from time to
time.
2018-03-18 13:14:29 -07:00
Stjepan Glavina cb56b2d152 Fix a bug introduced in previous commit 2018-03-01 00:07:27 +01:00
Stjepan Glavina 27fae2b24a Remove thread_local_state 2018-02-28 18:59:12 +01:00
Stjepan Glavina c99f4c4c5b Stabilize LocalKey::try_with 2018-02-28 12:41:36 +01:00
Andreas Streichardt f0a968eada Add missing link 2018-02-19 17:19:30 +01:00
Guillaume Gomez af140ecdbc Rollup merge of #48275 - matthiaskrgr:codespell, r=kennytm,varkor
fix more typos found by codespell.
2018-02-18 13:21:01 +01:00
Matthias Krüger 4452446292 fix more typos found by codespell. 2018-02-17 17:38:49 +01:00
Guillaume Gomez 62d6ba4638 Rollup merge of #48234 - zombiezen:patch-1, r=steveklabnik
Remove "empty buffer" doc in read_until

This appears copied from fill_buf, but the above paragraph already indicates that a lack of delimiter at the end is EOF.
2018-02-17 14:45:22 +01:00
Ross Light e1e79d3a10 Remove "empty buffer" doc in read_until
This appears copied from fill_buf, but the above paragraph already indicates that a lack of delimiter at the end is EOF.
2018-02-15 07:32:42 -08:00
Oliver Middleton 45d5a420ad Correct a few stability attributes 2018-02-10 21:20:42 +00:00
James Cowgill e9d70417ca std: use more portable error number in from_raw_os_error docs
On MIPS, error number 98 is not EADDRINUSE (it is EPROTOTYPE). To fix the
resulting test failure this causes, use a more portable error number in
the example documentation. EINVAL shold be more reliable because it was
defined in the original Unix as 22 so hopefully most derivatives have
defined it the same way.
2018-01-30 11:53:50 +00:00
kennytm 6966f335ac Rollup merge of #47330 - bmusin:patch-2, r=shepmaster
fix off-by-one error

Fixes https://github.com/rust-lang/rust/issues/47325.
2018-01-15 18:49:33 +08:00
kennytm 06112abd5f Rollup merge of #47120 - clarcharr:io_error_debug, r=dtolnay
Better Debug impl for io::Error.

This PR includes the below changes:

1. The former impl wrapped the entire thing in `Error { repr: ... }` which was unhelpful; this has been removed.
2. The `Os` variant of `io::Error` included the code and message, but not the kind; this has been fixed.
3. The `Custom` variant of `io::Error` included a `Custom(Custom { ... })`, which is now just `Custom { ... }`.

Example of previous impl:

```rust
Error {
    repr: Custom(
        Custom {
            kind: InvalidData,
            error: Error {
                repr: Os {
                    code: 2,
                    message: "no such file or directory"
                }
            }
        }
    )
}
```

Example of new impl:

```rust
Custom {
    kind: InvalidData,
    error: Os {
        code: 2,
        kind: NotFound,
        message: "no such file or directory"
    }
}
```
2018-01-15 18:49:30 +08:00
bors 80e2e67f4c Auto merge of #46832 - Diggsey:bufread-cheaper-seek, r=alexcrichton
BufRead: Only flush the internal buffer if seeking outside of it.

Fixes #31100

r? @dtolnay
2018-01-14 00:42:11 +00:00
Diggory Blake c96f30257a Add note to documentation 2018-01-13 18:44:25 +00:00
Diggory Blake 562ba04e45 Implement "seek_relative" 2018-01-13 18:39:37 +00:00
Clar Charr 52e074e40e Better Debug impl for io::Error. 2018-01-13 12:45:19 -05:00
Bulat Musin cee295e8af fix off-by-one error 2018-01-13 07:23:43 +03:00
bors 27ede55414 Auto merge of #46830 - Diggsey:cursor-vec-mut, r=alexcrichton
Implement `Write` for `Cursor<&mut Vec<T>>`

Fixes #30132

r? @dtolnay (I'm just going through `feature-accepted` issues I swear 😛)
2018-01-10 06:33:31 +00:00
Guillaume Gomez 93969734f6 Add missing links 2018-01-08 14:16:16 +01:00