Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 6 pull requests #58691

Merged
merged 29 commits into from
Feb 24, 2019
Merged

Rollup of 6 pull requests #58691

merged 29 commits into from
Feb 24, 2019

Commits on Feb 13, 2019

  1. Clarify guarantees for Box allocation

    Jethro Beekman committed Feb 13, 2019
    Configuration menu
    Copy the full SHA
    e41e694 View commit details
    Browse the repository at this point in the history
  2. Avoid allocation in std::sys::unix::weak

    If we add a terminating NUL to the name in the `weak!` macro, then
    `fetch()` can use `CStr::from_bytes_with_nul()` instead of `CString`.
    cuviper committed Feb 13, 2019
    Configuration menu
    Copy the full SHA
    70c5af8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    33d80bf View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2019

  1. Configuration menu
    Copy the full SHA
    235a6b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bd18cc5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b2bf37a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f7c4931 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7db96a3 View commit details
    Browse the repository at this point in the history
  6. Update src/librustc_mir/interpret/operand.rs

    Co-Authored-By: oli-obk <github35764891676564198441@oli-obk.de>
    RalfJung and oli-obk committed Feb 16, 2019
    Configuration menu
    Copy the full SHA
    bee3c67 View commit details
    Browse the repository at this point in the history
  7. 3 Configuration menu
    Copy the full SHA
    525983a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    27e438a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    4fdeb2d View commit details
    Browse the repository at this point in the history
  10. 2 Configuration menu
    Copy the full SHA
    4b08533 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    1fe7eb0 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2019

  1. Configuration menu
    Copy the full SHA
    0651157 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc20ed6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f411852 View commit details
    Browse the repository at this point in the history
  4. Address review comments

    pitdicker committed Feb 20, 2019
    Configuration menu
    Copy the full SHA
    b09803e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6464e32 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2019

  1. Configuration menu
    Copy the full SHA
    7cfddfb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1a944b0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bde4d19 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    aa0fa75 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2019

  1. Rollup merge of rust-lang#57364 - hdhoang:33418_negative_bounds, r=es…

    …tebank
    
    Improve parsing diagnostic for negative supertrait bounds
    
    closes rust-lang#33418
    
    r? @estebank
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    ae64668 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#58183 - jethrogb:jb/alloc-box-guarantees, r…

    …=SimonSapin
    
    Clarify guarantees for `Box` allocation
    
    This basically says `Box` does the obvious things for its allocations.
    
    See also: https://users.rust-lang.org/t/alloc-crate-guarantees/24981
    
    This may require a T-libs FCP? Not sure.
    
    r? @sfackler
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    55b5ab8 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#58442 - cuviper:unix-weak, r=alexcrichton

    Simplify the unix `Weak` functionality
    
    - We can avoid allocation by adding a NUL to the function name.
    - We can get `Option<F>` directly, rather than aliasing the inner `AtomicUsize`.
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    b78e9f4 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#58454 - pitdicker:windows_stdio, r=alexcric…

    …hton
    
    Refactor Windows stdio and remove stdin double buffering
    
    I was looking for something nice and small to work on, tried to tackle a few FIXME's in Windows stdio, and things grew from there.
    
    This part of the standard library contains some tricky code, and has changed over the years to handle more corner cases. It could use some refactoring and extra comments.
    
    Changes/fixes:
    - Made `StderrRaw` `pub(crate)`, to remove the `Write` implementations on `sys::Stderr` (used unsynchronised for panic output).
    - Remove the unused `Read` implementation on `sys::windows::stdin`
    - The `windows::stdio::Output` enum made sense when we cached the handles, but we can use simple functions like `is_console` now that we get the handle on every read/write
    - `write` can now calculate the number of written bytes as UTF-8 when we can't write all `u16`s.
    - If `write` could only write one half of a surrogate pair, attempt another write for the other because user code can't reslice in any way that would allow us to write it otherwise.
    - Removed the double buffering on stdin. Documentation on the unexposed `StdinRaw` says: 'This handle is not synchronized or buffered in any fashion'; which is now true.
    - `sys::windows::Stdin` now always only partially fills its buffer, so we can guarantee any arbitrary UTF-16 can be re-encoded without losing any data.
    - `sys::windows::STDIN_BUF_SIZE` is slightly larger to compensate. There should be no real change in the number of syscalls the buffered `Stdin` does. This buffer is a little larger, while the extra buffer on Stdin is gone.
    - `sys::windows::Stdin` now attempts to handle unpaired surrogates at its buffer boundary.
    - `sys::windows::Stdin` no langer allocates for its buffer, but the UTF-16 decoding still does.
    
    ### Testing
    I did some manual testing of reading and writing to console. The console does support UTF-16 in some sense, but doesn't supporting displaying characters outside the BMP.
    - compile stage 1 stdlib with a tiny value for `MAX_BUFFER_SIZE` to make it easier to catch corner cases
    - run a simple test program that reads on stdin, and echo's to stdout
    - write some lines with plenty of ASCII and emoji in a text editor
    - copy and paste in console to stdin
    - return with `\r\n\` or CTRL-Z
    - copy and paste in text editor
    - check it round-trips
    
    -----
    
    Fixes rust-lang#23344. All but one of the suggestions in that issue are now implemented. the missing one is:
    
    > * When reading data, we require the entire set of input to be valid UTF-16. We should instead attempt to read as much of the input as possible as valid UTF-16, only returning an error for the actual invalid elements. For example if we read 10 elements, 5 of which are valid UTF-16, the 6th is bad, and then the remaining are all valid UTF-16, we should probably return the first 5 on a call to `read`, then return an error, then return the remaining on the next call to `read`.
    
    Stdin in Console mode is dealing with text directly input by a user. In my opinion getting an unpaired surrogate is quite unlikely in that case, and a valid reason to error on the entire line of input (which is probably short). Dealing with it is incompatible with an unbuffered stdin, which seems the more interesting guarantee to me.
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    4dcb7af View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#58511 - oli-obk:const_to_op, r=RalfJung

    Const to op simplification
    
    r? @RalfJung
    
    alternative to rust-lang#58486
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    1082a29 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#58642 - tspiteri:intra-rustdoc-prim-method,…

    … r=GuillaumeGomez
    
    rustdoc: support methods on primitives in intra-doc links
    
    Fixes rust-lang#58598.
    Centril committed Feb 24, 2019
    Configuration menu
    Copy the full SHA
    f01ebc5 View commit details
    Browse the repository at this point in the history