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 7 pull requests #86891

Merged
merged 23 commits into from
Jul 5, 2021
Merged

Rollup of 7 pull requests #86891

merged 23 commits into from
Jul 5, 2021

Commits on May 22, 2021

  1. Add std::os::unix::fs::DirEntryExt2::file_name_ref(&self) -> &OsStr

    DirEntryExt2 is a new trait with the same purpose as DirEntryExt,
    but sealed
    arennow committed May 22, 2021
    Configuration menu
    Copy the full SHA
    bc45e47 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2021

  1. Configuration menu
    Copy the full SHA
    719dafc View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2021

  1. Configuration menu
    Copy the full SHA
    618c805 View commit details
    Browse the repository at this point in the history
  2. Remove "delete" doc aliases

    Amanieu committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    fc2705d View commit details
    Browse the repository at this point in the history
  3. Remove "length" doc aliases

    Amanieu committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    e2536bb View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2021

  1. Configuration menu
    Copy the full SHA
    6d34a2e View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2021

  1. aborts: Clarify documentation and comments

    In the docs for intrinsics::abort():
    
     * Strengthen the recommendation by to use process::abort instead.
     * Document the fact that it (ab)uses an LLVM debug trap and what the
       likely consequences are.
     * State that the precise behaviour is unstable.
    
    In the docs for process::abort():
    
     * Promise that we have the same behaviour as C `abort()`.
     * Document the likely consequences, including, specifically, the
       consequences on Unix.
    
    In the internal comment for unix::abort_internal:
    
     * Refer to the public docs for the public API functions.
     * Correct and expand the description of libc::abort.  Specifically:
     * Do not claim that abort() unregisters signal handlers.  It doesn't;
       it honours the SIGABRT handler.
     * Discuss, extensively, the issue with abort() flushing stdio buffers.
     * Describe the glibc behaviour in some detail.
    
    Co-authored-by: Mark Wooding <[email protected]>
    Signed-off-by: Ian Jackson <[email protected]>
    2 people authored and m-ou-se committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    a8bb7fa View commit details
    Browse the repository at this point in the history
  2. abort docs: Do not claim that intrinsics::abort is always a debug trap

    As per discussion here
     rust-lang#85377 (review)
    
    Signed-off-by: Ian Jackson <[email protected]>
    ijackson authored and m-ou-se committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    de19e4d View commit details
    Browse the repository at this point in the history
  3. abort docs: Document buffer non-flushing

    There is discussion of this in rust-lang#40230 which requests clarification.
    
    Signed-off-by: Ian Jackson <[email protected]>
    ijackson authored and m-ou-se committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    4e7c348 View commit details
    Browse the repository at this point in the history
  4. Talk about invalid instructions rather than debug traps

    And withdraw the allegation of "abuse".
    
    Adapted from a suggestion by @m-ou-se.
    
    Co-authored-by: Mara Bos <[email protected]>
    Signed-off-by: Ian Jackson <[email protected]>
    ijackson and m-ou-se committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    44852e0 View commit details
    Browse the repository at this point in the history
  5. Talk about "terminate" rather than "die"

    Adapted from a suggestion by @m-ou-se.
    
    Co-authored-by: Mara Bos <[email protected]>
    Signed-off-by: Ian Jackson <[email protected]>
    ijackson and m-ou-se committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    19c347e View commit details
    Browse the repository at this point in the history
  6. Use american spelling for behaviour

    Co-authored-by: Yuki Okushi <[email protected]>
    m-ou-se and JohnTitor committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    f73a555 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    08d912f View commit details
    Browse the repository at this point in the history
  8. ⬆️ rust-analyzer

    lnicola committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    4fa5406 View commit details
    Browse the repository at this point in the history
  9. Enable dir_entry_ext2 feature in doc test.

    Co-authored-by: Yuki Okushi <[email protected]>
    m-ou-se and JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    469f467 View commit details
    Browse the repository at this point in the history
  10. Remove impl Clean for {Ident, Symbol}

    These were only used once, in a place where it was trivial to replace.
    Also, it's unclear what 'clean' would mean for these, so it seems better
    to be explicit.
    jyn514 committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    6f931da View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#83581 - arennow:dir_entry_ext_unix_borrow_n…

    …ame, r=m-ou-se
    
    Add std::os::unix::fs::DirEntryExt2::file_name_ref(&self) -> &OsStr
    
    Greetings!
    
    This is my first PR here, so please forgive me if I've missed an important step or otherwise done something wrong. I'm very open to suggestions/fixes/corrections.
    
    This PR adds a function that allows `std::fs::DirEntry` to vend a borrow of its filename on Unix platforms, which is especially useful for sorting. (Windows has (as I understand it) encoding differences that require an allocation.) This new function sits alongside the cross-platform [`file_name(&self) -> OsString`](https://doc.rust-lang.org/std/fs/struct.DirEntry.html#method.file_name) function.
    
    I pitched this idea in an [internals thread](https://internals.rust-lang.org/t/allow-std-direntry-to-vend-borrows-of-its-filename/14328/4), and no one objected vehemently, so here we are.
    
    I understand features in general, I believe, but I'm not at all confident that my whole-cloth invention of a new feature string (as required by the compiler) was correct (or that the name is appropriate). Further, there doesn't appear to be a test for the sibling `ino` function, so I didn't add one for this similarly trivial function either. If it's desirable that I should do so, I'd be happy to [figure out how to] do that.
    
    The following is a trivial sample of a use-case for this function, in which directory entries are sorted without any additional allocations:
    
    ```rust
    use std::os::unix::fs::DirEntryExt;
    use std::{fs, io};
    
    fn main() -> io::Result<()> {
        let mut entries = fs::read_dir(".")?.collect::<Result<Vec<_>, io::Error>>()?;
        entries.sort_unstable_by(|a, b| a.file_name_ref().cmp(b.file_name_ref()));
    
        for p in entries {
            println!("{:?}", p);
        }
    
        Ok(())
    }
    ```
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    1fcd9ab View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#85377 - ijackson:abort-docs, r=m-ou-se

    aborts: Clarify documentation and comments
    
    In the docs for intrinsics::abort():
    
     * Strengthen the recommendation by to use process::abort instead.
     * Document the fact that it sometimes (ab)uses an LLVM debug trap and what the likely consequences are.
     * State that the precise behaviour is unstable.
    
    In the docs for process::abort():
    
     * Promise that we have the same behaviour as C `abort()`.
     * Document the likely consequences, including, specifically, the consequences on Unix.
    
    In the internal comment for unix::abort_internal:
    
     * Refer to the public docs for the public API functions.
     * Correct and expand the description of libc::abort.  Specifically:
     * Do not claim that abort() unregisters signal handlers.  It doesn't; it honours the SIGABRT handler.
     * Discuss, extensively, the issue with abort() flushing stdio buffers.
     * Describe the glibc behaviour in some detail.
    
    Co-authored-by: Mark Wooding <[email protected]>
    Signed-off-by: Ian Jackson <[email protected]>
    
    Fixes rust-lang#40230
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    add24d2 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#86685 - RalfJung:alloc-mut, r=oli-obk

    double-check mutability inside Allocation
    
    r? `@oli-obk`
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    1ca3205 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#86794 - inquisitivecrystal:seek-rewind, r=m…

    …-ou-se
    
    Stabilize `Seek::rewind()`
    
    This stabilizes `Seek::rewind`. It seemed to fit into one of the existing tests, so I extended that test rather than adding a new one.
    
    Closes rust-lang#85149.
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    2bc7d4d View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#86852 - Amanieu:remove_doc_aliases, r=josht…

    …riplett
    
    Remove some doc aliases
    
    As per the new doc alias policy in rust-lang/std-dev-guide#25, this removes some controversial doc aliases:
    - `malloc`, `alloc`, `realloc`, etc.
    - `length` (alias for `len`)
    - `delete` (alias for `remove` in collections and also file/directory deletion)
    
    r? `@joshtriplett`
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    470ed70 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#86878 - lnicola:rust-analyzer-2021-07-05, r…

    …=lnicola
    
    ⬆️ rust-analyzer
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    973f208 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of rust-lang#86886 - jyn514:no-clean-symbol, r=Guillaume…

    …Gomez
    
    Remove `impl Clean for {Ident, Symbol}`
    
    These were only used once, in a place where it was trivial to replace.
    Also, it's unclear what 'clean' would mean for these, so it seems better
    to be explicit.
    
    Found while reviewing rust-lang#86841, which makes the same change to `build_macro`, so the two will conflict.
    
    r? `@GuillaumeGomez`
    JohnTitor authored Jul 5, 2021
    Configuration menu
    Copy the full SHA
    952deae View commit details
    Browse the repository at this point in the history