1. 09 3月, 2015 2 次提交
  2. 08 3月, 2015 12 次提交
  3. 07 3月, 2015 14 次提交
  4. 06 3月, 2015 12 次提交
    • J
      Check that traits with default impls have no methods · 707f7a16
      Jorge Aparicio 提交于
      fixes #23080
      707f7a16
    • S
      Fix an easy to trigger deadlock in std::io::stdio · 3f94260b
      Simonas Kazlauskas 提交于
      Being a person who somehow has taken a liking to premature optimisation, my knee-jerk reaction to
      locking in std handles was preamble resembling following snippet:
      
          let stdout = stdout();
          let lstdout = stdout.lock();
          let stdin = stdin();
          let lstdin = stdin.lock();
      
      and then reading from the locked handle like this:
      
          let mut letter = [0; 1];
          lstdin.read(&mut letter).unwrap();
      
      As it is now this code will deadlock because the `read` method attempts to lock stdout as well!
      3f94260b
    • L
      ccd83daa
    • W
      Fix reference to 'librlibc' in libcore docs · 96b1f0c0
      Wesley Wiser 提交于
      Fixes #23059
      96b1f0c0
    • B
      1552f672
    • C
      Removing unnecessary pub from a test function · 1bda1ff9
      Carol Nichols 提交于
      1bda1ff9
    • C
      8f091efa
    • C
      Rearrange tests to be in the same order as implementation · 33d8a4ef
      Carol Nichols 提交于
      I was having trouble figuring out which functions had tests and which
      didn't. This commit is just moving tests around and does not change
      anything.
      33d8a4ef
    • B
      'ignore-fast' directives do nothing · 8655e94a
      Brian Anderson 提交于
      8655e94a
    • A
      std: Fix peeling ports from addresses · 65b4eda5
      Alex Crichton 提交于
      The `rsplitn` call was called with 2 instead of 1 so the iterator would yield 3
      items in some cases, not the 2 that it should have.
      
      Closes #23076
      65b4eda5
    • P
      fix minor grammar mistake in paths documentation · a08f1295
      Paul Osborne 提交于
      a08f1295
    • A
      std: Stabilize the `fs` module · 73b0b25e
      Alex Crichton 提交于
      This commit performs a stabilization pass over the `std::fs` module now that
      it's had some time to bake. The change was largely just adding `#[stable]` tags,
      but there are a few APIs that remain `#[unstable]`.
      
      The following apis are now marked `#[stable]`:
      
      * `std::fs` (the name)
      * `File`
      * `Metadata`
      * `ReadDir`
      * `DirEntry`
      * `OpenOptions`
      * `Permissions`
      * `File::{open, create}`
      * `File::{sync_all, sync_data}`
      * `File::set_len`
      * `File::metadata`
      * Trait implementations for `File` and `&File`
      * `OpenOptions::new`
      * `OpenOptions::{read, write, append, truncate, create}`
      * `OpenOptions::open` - this function was modified, however, to not attempt to
        reject cross-platform openings of directories. This means that some platforms
        will succeed in opening a directory and others will fail.
      * `Metadata::{is_dir, is_file, len, permissions}`
      * `Permissions::{readonly, set_readonly}`
      * `Iterator for ReadDir`
      * `DirEntry::path`
      * `remove_file` - like with `OpenOptions::open`, the extra windows code to
        remove a readonly file has been removed. This means that removing a readonly
        file will succeed on some platforms but fail on others.
      * `metadata`
      * `rename`
      * `copy`
      * `hard_link`
      * `soft_link`
      * `read_link`
      * `create_dir`
      * `create_dir_all`
      * `remove_dir`
      * `remove_dir_all`
      * `read_dir`
      
      The following apis remain `#[unstable]`.
      
      * `WalkDir` and `walk` - there are many methods by which a directory walk can be
        constructed, and it's unclear whether the current semantics are the right
        ones. For example symlinks are not handled super well currently. This is now
        behind a new `fs_walk` feature.
      * `File::path` - this is an extra abstraction which the standard library
        provides on top of what the system offers and it's unclear whether we should
        be doing so. This is now behind a new `file_path` feature.
      * `Metadata::{accessed, modified}` - we do not currently have a good
        abstraction for a moment in time which is what these APIs should likely be
        returning, so these remain `#[unstable]` for now. These are now behind a new
        `fs_time` feature
      * `set_file_times` - like with `Metadata::accessed`, we do not currently have
        the appropriate abstraction for the arguments here so this API remains
        unstable behind the `fs_time` feature gate.
      * `PathExt` - the precise set of methods on this trait may change over time and
        some methods may be removed. This API remains unstable behind the `path_ext`
        feature gate.
      * `set_permissions` - we may wish to expose a more granular ability to set the
        permissions on a file instead of just a blanket "set all permissions" method.
        This function remains behind the `fs` feature.
      
      The following apis are now `#[deprecated]`
      
      * The `TempDir` type is now entirely deprecated and is [located on
        crates.io][tempdir] as the `tempdir` crate with [its source][github] at
        rust-lang/tempdir.
      
      [tempdir]: https://crates.io/crates/tempdir
      [github]: https://github.com/rust-lang/tempdir
      
      The stability of some of these APIs has been questioned over the past few weeks
      in using these APIs, and it is intentional that the majority of APIs here are
      marked `#[stable]`. The `std::fs` module has a lot of room to grow and the
      material is [being tracked in a RFC issue][rfc-issue].
      
      [rfc-issue]: https://github.com/rust-lang/rfcs/issues/939
      
      [breaking-change]
      73b0b25e