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 5 pull requests #59653

Closed
wants to merge 14 commits into from
Closed

Commits on Mar 11, 2019

  1. Add initial implementation of 'sort_at_index' for slices -- analog to…

    … C++'s std::nth_element (a.k.a. quickselect)
    
    Add some more notes to the documentation:
    
    - Mention that the median can be found if we used `len() / 2`.
    - Mention that this function is usually called "kth element" in other libraries.
    
    Address some comments in PR:
    
    - Change wording on some of the documentation
    - Change recursive function into a loop
    
    Update name to `partition_at_index` and add convenience return values.
    
    Address reviewer comments:
    
    - Don't swap on each iteration when searching for min/max element.
    - Add some docs about when we panic.
    - Test that the sum of the lengths of the output matches the length of the input.
    - Style fix for for-loop.
    
    Address more reviewer comments
    
    Fix Rng stuff for test
    
    Fix doc test build
    
    Don't run the partition_at_index test on wasm targets
    
    Miri does not support entropy for test partition_at_index
    Mokosha committed Mar 11, 2019
    Configuration menu
    Copy the full SHA
    3f306db View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2019

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

Commits on Apr 1, 2019

  1. wasi: Load arguments via syscalls

    This commit switches the wasi target to loading CLI arguments via the
    syscalls provided by wasi rather than through the argc/argv passed to
    the main function. While serving the same purpose it's hoped that using
    syscalls will make us a bit more portable (less reliance from libstd on
    an external C library) as well as avoiding the need for a lock!
    alexcrichton committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    382f9a7 View commit details
    Browse the repository at this point in the history
  2. wasi: Use raw syscalls for stdio

    I've since learned that the mapping between libc fds and wasi fds are
    expected to be one-to-one, so we can use the raw syscalls for writing to
    stdout/stderr and reading from stdin! This should help ensure that we
    don't depend on a C library too unnecessarily.
    alexcrichton committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    60f6cbd View commit details
    Browse the repository at this point in the history
  3. wasi: Implement error_string to get readable errors

    This routes the `error_string` API to `strerror` in libc which should
    have more human readable descriptions.
    alexcrichton committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    32a7684 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2019

  1. wasi: Fill out std::fs module for WASI

    This commit fills out the `std::fs` module and implementation for WASI.
    Not all APIs are implemented, such as permissions-related ones and
    `canonicalize`, but all others APIs have been implemented and very
    lightly tested so far. We'll eventually want to run a more exhaustive
    test suite!
    
    For now the highlights of this commit are:
    
    * The `std::fs::File` type is now backed by `WasiFd`, a raw WASI file
      descriptor.
    * All APIs in `std::fs` (except permissions/canonicalize) have
      implementations for the WASI target.
    * A suite of unstable extension traits were added to
      `std::os::wasi::fs`. These traits expose the raw filesystem
      functionality of WASI, namely `*at` syscalls (opening a file relative
      to an already opened one, for example). Additionally metadata only
      available on wasi is exposed through these traits.
    
    Perhaps one of the most notable parts is the implementation of
    path-taking APIs. WASI actually has no fundamental API that just takes a
    path, but rather everything is relative to a previously opened file
    descriptor. To allow existing APIs to work (that only take a path) WASI
    has a few syscalls to learn about "pre opened" file descriptors by the
    runtime. We use these to build a map of existing directory names to file
    descriptors, and then when using a path we try to anchor it at an
    already-opened file.
    
    This support is very rudimentary though and is intended to be shared
    with C since it's likely to be so tricky. For now though the C library
    doesn't expose quite an API for us to use, so we implement it for now
    and will swap it out as soon as one is available.
    alexcrichton committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    38fb7a7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ac29ca7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4122d22 View commit details
    Browse the repository at this point in the history
  4. Shrink mir::Statement.

    The `InlineAsm` variant is extremely rare, and `mir::Statement` often
    contributes significantly to peak memory usage.
    nnethercote committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    d00d639 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#55448 - Mokosha:SortAtIndex, r=bluss

    Add 'partition_at_index/_by/_by_key' for slices.
    
    This is an analog to C++'s std::nth_element (a.k.a. quickselect).
    
    Corresponds to tracking bug rust-lang#55300.
    Centril committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    54c602b View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#59186 - ssomers:btreeset_intersection_revis…

    …ited_again, r=KodrAus
    
    improve worst-case performance of BTreeSet intersection v3
    
    Variation of [rust-lang#59078](rust-lang#59078) with `Intersection` remaining a struct
    
    r? @scottmcm
    Centril committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    a08a3a3 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#59514 - tmandry:remove-adt-def-from-project…

    …ion-elem, r=eddyb
    
    Remove adt_def from projections and downcasts in MIR
    
    As part of optimizing generator layouts in MIR, we'd like to allow downcasting generators to variants which do not have a corresponding `def_id`, since they are created by the compiler.
    
    This refactor hopes to allow that, without regressing perf.
    
    r? @eddyb
    Centril committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    420b11a View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#59619 - alexcrichton:wasi-fs, r=fitzgen

    wasi: Implement more of the standard library
    
    This commit fills out more of the `wasm32-unknown-wasi` target's standard library, notably the `std::fs` module and all of its internals. A few tweaks were made along the way to non-`fs` modules, but the last commit contains the bulk of the work which is to wire up all APIs to their equivalent on WASI targets instead of unconditionally returning "unsupported". After this some basic filesystem operations and such should all be working in WASI!
    Centril committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    6fe9bb1 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#59630 - nnethercote:shrink-mir-Statement, r…

    …=pnkfelix
    
    Shrink `mir::Statement`.
    
    The `InlineAsm` variant is extremely rare, and `mir::Statement` often
    contributes significantly to peak memory usage.
    Centril committed Apr 2, 2019
    Configuration menu
    Copy the full SHA
    fe4518d View commit details
    Browse the repository at this point in the history