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 13 pull requests #23884

Merged
merged 209 commits into from
Mar 31, 2015
Merged

Rollup of 13 pull requests #23884

merged 209 commits into from
Mar 31, 2015

Commits on Mar 13, 2015

  1. Add the -s flag to the suggested rustup invocation

    curl's progress meter would otherwise interfere with sudo's password prompt.
    
    In addition, add the -f flag to make sure 4xx status codes are treated as errors.
    Jakub Bukaj committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    b3c58cf View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2015

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

Commits on Mar 24, 2015

  1. Add examples for std::ascii

    Also tweaked a few things.
    steveklabnik committed Mar 24, 2015
    Configuration menu
    Copy the full SHA
    528a5e2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c3f4fba View commit details
    Browse the repository at this point in the history
  3. syntax: Allow where strings to be parsed independent from generics

    This allows quasiquoting to insert where clauses.
    erickt committed Mar 24, 2015
    Configuration menu
    Copy the full SHA
    4ec07ed View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a17f556 View commit details
    Browse the repository at this point in the history
  5. std: Reexport std::rt::unwind::try in std::thread

    This commit provides a safe, but unstable interface for the `try` functionality
    of running a closure and determining whether it panicked or not.
    
    There are two primary reasons that this function was previously marked `unsafe`:
    
    1. A vanilla version of this function exposes the problem of exception safety by
       allowing a bare try/catch in the language. It is not clear whether this
       concern should be directly tied to `unsafe` in Rust at the API level. At this
       time, however, the bounds on `ffi::try` require the closure to be both
       `'static` and `Send` (mirroring those of `thread::spawn`). It may be possible
       to relax the bounds in the future, but for now it's the level of safety that
       we're willing to commit to.
    
    2. Panicking while panicking will leak resources by not running destructors.
       Because panicking is still controlled by the standard library, safeguards
       remain in place to prevent this from happening.
    
    The new API is now called `catch_panic` and is marked as `#[unstable]` for now.
    alexcrichton committed Mar 24, 2015
    Configuration menu
    Copy the full SHA
    4c2ddb3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3577555 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2015

  1. Update pointers.md

    wettowelreactor committed Mar 25, 2015
    Configuration menu
    Copy the full SHA
    053d58e View commit details
    Browse the repository at this point in the history
  2. rustc: Remove support for int/uint

    This commit removes all parsing, resolve, and compiler support for the old and
    long-deprecated int/uint types.
    alexcrichton committed Mar 25, 2015
    Configuration menu
    Copy the full SHA
    54f16b8 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2015

  1. Alphabetize

    tamird committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    71386e5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d9d2236 View commit details
    Browse the repository at this point in the history
  3. Switch drop-flag to u8 to allow special tags to instrument state.

    Refactored code so that the drop-flag values for initialized
    (`DTOR_NEEDED`) versus dropped (`DTOR_DONE`) are given explicit names.
    
    Add `mem::dropped()` (which with `DTOR_DONE == 0` is semantically the
    same as `mem::zeroed`, but the point is that it abstracts away from
    the particular choice of value for `DTOR_DONE`).
    
    Filling-drop needs to use something other than `ptr::read_and_zero`,
    so I added such a function: `ptr::read_and_drop`.  But, libraries
    should not use it if they can otherwise avoid it.
    
    Fixes to tests to accommodate filling-drop.
    pnkfelix committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    3902190 View commit details
    Browse the repository at this point in the history
  4. Regression tests for issues uncovered only post the run-pass and comp…

    …ile-fail tests.
    
    (I.e. the idea being, lets catch errors in these basic constructs
    sometime *before* we start doing the doc tests.)
    pnkfelix committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    7c671e5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5bc35b1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5733726 View commit details
    Browse the repository at this point in the history
  7. Added instability markers to POST_DROP_* consts, and related opt-in's.

    (Reviewed rest of code; did not see other `pub` items that needed such
    treatment.)
    
    Driveby: fix typo in comment in ptr.rs.
    pnkfelix committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    601eca3 View commit details
    Browse the repository at this point in the history
  8. Use -Z force-dropflag-checks=on/off for emitting sanity-check.

    (That is, added config and debugflag a la check-overflow but for drop
    flag sanity-check.)
    
    Remove now-unused import of NoDebugInfo from trans::glue.
    pnkfelix committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    4053b00 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    aab4bef View commit details
    Browse the repository at this point in the history
  10. Deprecate as_mut_slice methods

    This is technically a breaking change as it deprecates and unstables
    some previously stable apis that were missed in the last round of
    deprecations.
    
    [breaking change]
    erickt committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    c5b8763 View commit details
    Browse the repository at this point in the history
  11. New section of the book: nightly rust

    Now that feature flags are only on nightly, it's good to split this stuff out.
    steveklabnik committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    c153fc1 View commit details
    Browse the repository at this point in the history
  12. Register new snapshots

    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    36ef29a View commit details
    Browse the repository at this point in the history
  13. syntax: Remove parsing of old slice syntax

    This syntax has been deprecated for quite some time, and there were only a few
    remaining uses of it in the codebase anyway.
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    77de3ee View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    e2cc8b1 View commit details
    Browse the repository at this point in the history
  15. Auto merge of rust-lang#23359 - erickt:quote, r=pnkfelix

    This PR allows the quote macros to unquote trait items, impl items, where clauses, and paths.
    bors committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    53a183f View commit details
    Browse the repository at this point in the history
  16. Adding more information about the behavior of Arc/Rc

    when you perform a clone() call.
    Adenilson committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    7d3bf47 View commit details
    Browse the repository at this point in the history
  17. Mass rename uint/int to usize/isize

    Now that support has been removed, all lingering use cases are renamed.
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    43bfaa4 View commit details
    Browse the repository at this point in the history
  18. doc: change 0u32..10 to 0..10

    oneeman committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    dac552f View commit details
    Browse the repository at this point in the history
  19. book: make it one sentence

    tshepang committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    3e100ff View commit details
    Browse the repository at this point in the history
  20. rustc: Remove support for old_impl_check

    This commit removes compiler support for the `old_impl_check` attribute which
    should in theory be entirely removed now. The last remaining use of it in the
    standard library has been updated by moving the type parameter on the
    `old_io::Acceptor` trait into an associated type. As a result, this is a
    breaking change for all current users of the deprecated `old_io::Acceptor`
    trait. Code can be migrated by using the `Connection` associated type instead.
    
    [breaking-change]
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    9754b06 View commit details
    Browse the repository at this point in the history
  21. impl FromStr for IpAddr

    murarth committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    1c43e53 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    07afd04 View commit details
    Browse the repository at this point in the history
  23. syntax: Remove support for #[should_fail]

    This attribute has been deprecated in favor of #[should_panic]. This also
    updates rustdoc to no longer accept the `should_fail` directive and instead
    renames it to `should_panic`.
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    3752958 View commit details
    Browse the repository at this point in the history
  24. Revise use of conversion traits

    This commit revises `path` and `os_str` to use blanket impls for `From`
    on reference types. This both cuts down on the number of required impls,
    and means that you can pass through e.g. `T: AsRef<OsStr>` to
    `PathBuf::from` without an intermediate call to `as_ref`.
    
    It also makes a FIXME note for later generalizing the blanket impls for
    `AsRef` and `AsMut` to use `Deref`/`DerefMut`, once it is possible to do
    so.
    aturon committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    e7525cf View commit details
    Browse the repository at this point in the history
  25. Update docs to fix various 404s

    Found a few 404s that seemed like simple fixes:
    
    The Result docs use old_io Writer as an example. Fix the link to old_io Writer. There's probably an effort to update the example away from a deprecated api but this was a simple fix.
    
    rustc/plugin was pointing at the old guide and it was a broken link anyways (plugin vs plugins). Point at the book instead.
    
    The main page of the API docs referenced c_{str,vec}. Looks like these were deleted in 25d5a3a. Point at ffi docs instead.
    gmjosack committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    5123bf4 View commit details
    Browse the repository at this point in the history
  26. Implement Reflect trait with a variant on the standard OIBIT

    semantics that tests the *interface* of trait objects, rather
    than what they close over.
    nikomatsakis committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    9c9bb9c View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    c59fe8b View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    703308d View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    710af04 View commit details
    Browse the repository at this point in the history
  30. rustc: Remove old #[phase] and #[plugin]

    This commit removes the extra deprecation warnings and support for the old
    `phase` and `plugin` attributes for loading plugins.
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    671d896 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    cbef22e View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    4357621 View commit details
    Browse the repository at this point in the history
  33. rustc: Remove support for -l foo:static

    This syntax has been renamed to `-l static=foo` some time ago.
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    4f419d9 View commit details
    Browse the repository at this point in the history
  34. book: fix typo

    tshepang committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    ce668a8 View commit details
    Browse the repository at this point in the history
  35. std: Stabilize BufRead::split

    Now that `<[_]>::split` is an inherent method, it will trump `BufRead::split`
    when `BufRead` is in scope, so there is no longer a conflict. As a result,
    calling `slice.split()` will probably always give you precisely what you want!
    alexcrichton committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    e71221f View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2015

  1. Configuration menu
    Copy the full SHA
    b68ca84 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c0dd239 View commit details
    Browse the repository at this point in the history
  3. Stabilize some stragglers in std::option

    Marks as `#[stable}`:
    
    * `ok_or`
    * `ok_or_else`
    * `iter_mut`
    * `cloned`
    
    Similarly to `IteratorExt::cloned`, the `cloned` method is pared down to
    work only on `Option<&T>`. Thus, this is a:
    
    [breaking-change]
    aturon committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    c9f600b View commit details
    Browse the repository at this point in the history
  4. Fix doc tests.

    nikomatsakis committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    dd8cf92 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1c35953 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    93cdf1f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a67faf1 View commit details
    Browse the repository at this point in the history
  8. num: Derive Debug for Wrapping

    This allows `Wrapping<T>` to be used in `assert_eq!`, for example.
    ruuda committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    975ebc1 View commit details
    Browse the repository at this point in the history
  9. default => or_insert per RFC

    Gankra committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    1b98f6d View commit details
    Browse the repository at this point in the history
  10. Auto merge of rust-lang#22930 - Gankro:entry_3, r=aturon

    RFC pending, but this is the patch that does it.
    
    Totally untested. Likely needs some removed imports. std::collections docs should also be updated to provide better examples.
    
    Closes rust-lang#23508
    bors committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    242ed0b View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    afaa3b6 View commit details
    Browse the repository at this point in the history
  12. alloc: Don't run some Arc doc tests

    Windows gets quite unhappy when a thread fails while the main thread is exiting,
    frequently leading to process deadlock. This has been causing quite a few
    deadlocks on the windows bots recently. The child threads are presumably failing
    because the `println!` is failing due to the main thread being shut down.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    fa38403 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    82b375b View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d77a951 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#23625 - fhahn:issue-23620-ice-unicode-bytes…

    …tring, r=alexcrichton
    
     closes rust-lang#23620
    
    This PR patches the issue mentioned in rust-lang#23620, but there is also an ICE for invalid escape sequences in byte literals. This is due to the fact that the `scan_byte` function returns ` token::intern(\"??\") ` for invalid bytes, resulting in an ICE later on. Is there a reason for this behavior? Shouldn't `scan_byte` fail when it encounters an invalid byte?
    
    And I noticed a small inconsistency in the documentation. According to the formal byte literal definition in http://doc.rust-lang.org/reference.html#byte-and-byte-string-literals , a byte string literal contains `string_body *`, but according to the text (and the behavior of the lexer) it should not accept unicode escape sequences. Hence it should be replaced by `byte_body *`. If this is valid, I can add this fix to this PR.
    Manishearth committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    e65c6e5 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#23712 - nikomatsakis:reflect-trait, r=FlaPer87

     This PR introduces a `Reflect` marker trait which is a supertrait of `Any`. The idea is that `Reflect` is defined for all concrete types, but is not defined for type parameters unless there is a `T:Reflect` bound. This is intended to preserve the parametricity property. This allows the `Any` interface to be stabilized without committing us to unbounded reflection that is not easily detectable by the caller.
    
    The implementation of `Reflect` relies on an experimental variant of OIBIT. This variant behaves differently for objects, since it requires that all types exposed as part of the object's *interface* are `Reflect`, but isn't concerned about other types that may be closed over. In other words, you don't have to write `Foo+Reflect` in order for `Foo: Reflect` to hold (where `Foo` is a trait).
    
    Given that `Any` is slated to stabilization and hence that we are committed to some form of reflection, the goal of this PR is to leave our options open with respect to parametricity. I see the options for full stabilization as follows (I think an RFC would be an appropriate way to confirm whichever of these three routes we take):
    
    1. We make `Reflect` a lang-item.
    2. We stabilize some version of the OIBIT variation I implemented as a general mechanism that may be appropriate for other use cases.
    3. We give up on preserving parametricity here and just have `impl<T> Reflect for T` instead. In that case, `Reflect` is a harmless but not especially useful trait going forward.
    
    cc @aturon
    cc @alexcrichton
    cc @glaebhoerl (this is more-or-less your proposal, as I understood it)
    cc @reem (this is more-or-less what we discussed on IRC at some point)
    cc @flaper87 (vaguely pertains to OIBIT)
    Manishearth committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    5b45ede View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    0e5052c View commit details
    Browse the repository at this point in the history
  18. rollup merge of rust-lang#23535: pnkfelix/fsk-filling-drop

    Replace zeroing-on-drop with filling-on-drop.
    
    This is meant to set the stage for removing *all* zeroing and filling (on drop) in the future.
    
    Note that the code is meant to be entirely abstract with respect to the particular values used for the drop flags: the final commit demonstrates how to go from zeroing-on-drop to filling-on-drop by changing the value of three constants (in two files).
    
    See further discussion on the internals thread:
      http://internals.rust-lang.org/t/attention-hackers-filling-drop/1715/11
    
    [breaking-change] especially for structs / enums using `#[unsafe_no_drop_flag]`.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    e42521a View commit details
    Browse the repository at this point in the history
  19. rollup merge of rust-lang#23625: fhahn/issue-23620-ice-unicode-bytest…

    …ring
    
    closes rust-lang#23620
    
    This PR patches the issue mentioned in rust-lang#23620, but there is also an ICE for invalid escape sequences in byte literals. This is due to the fact that the `scan_byte` function returns ` token::intern("??") ` for invalid bytes, resulting in an ICE later on. Is there a reason for this behavior? Shouldn't `scan_byte` fail when it encounters an invalid byte?
    
    And I noticed a small inconsistency in the documentation. According to the formal byte literal definition in http://doc.rust-lang.org/reference.html#byte-and-byte-string-literals , a byte string literal contains `string_body *`, but according to the text (and the behavior of the lexer) it should not accept unicode escape sequences. Hence it should be replaced by `byte_body *`. If this is valid, I can add this fix to this PR.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    b79fbe0 View commit details
    Browse the repository at this point in the history
  20. rollup merge of rust-lang#23651: alexcrichton/unwind-try

    This commit provides a safe, but unstable interface for the `try` functionality
    of running a closure and determining whether it panicked or not.
    
    There are two primary reasons that this function was previously marked `unsafe`:
    
    1. A vanilla version of this function exposes the problem of exception safety by
       allowing a bare try/catch in the language. It is not clear whether this
       concern should be directly tied to `unsafe` in Rust at the API level. At this
       time, however, the bounds on `ffi::try` require the closure to be both
       `'static` and `Send` (mirroring those of `thread::spawn`). It may be possible
       to relax the bounds in the future, but for now it's the level of safety that
       we're willing to commit to.
    
    2. Panicking while panicking will leak resources by not running destructors.
       Because panicking is still controlled by the standard library, safeguards
       remain in place to prevent this from happening.
    
    The new API is now called `catch_panic` and is marked as `#[unstable]` for now.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    6968ccf View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    431296f View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    adbb516 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of rust-lang#23740 - alexcrichton:remove-deprecated-slic…

    …ing-syntax, r=aturon
    
     This syntax has been deprecated for quite some time, and there were only a few
    remaining uses of it in the codebase anyway.
    Manishearth committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    db50084 View commit details
    Browse the repository at this point in the history
  24. rollup merge of rust-lang#23712: nikomatsakis/reflect-trait

    This PR introduces a `Reflect` marker trait which is a supertrait of `Any`. The idea is that `Reflect` is defined for all concrete types, but is not defined for type parameters unless there is a `T:Reflect` bound. This is intended to preserve the parametricity property. This allows the `Any` interface to be stabilized without committing us to unbounded reflection that is not easily detectable by the caller.
    
    The implementation of `Reflect` relies on an experimental variant of OIBIT. This variant behaves differently for objects, since it requires that all types exposed as part of the object's *interface* are `Reflect`, but isn't concerned about other types that may be closed over. In other words, you don't have to write `Foo+Reflect` in order for `Foo: Reflect` to hold (where `Foo` is a trait).
    
    Given that `Any` is slated to stabilization and hence that we are committed to some form of reflection, the goal of this PR is to leave our options open with respect to parametricity. I see the options for full stabilization as follows (I think an RFC would be an appropriate way to confirm whichever of these three routes we take):
    
    1. We make `Reflect` a lang-item.
    2. We stabilize some version of the OIBIT variation I implemented as a general mechanism that may be appropriate for other use cases.
    3. We give up on preserving parametricity here and just have `impl<T> Reflect for T` instead. In that case, `Reflect` is a harmless but not especially useful trait going forward.
    
    cc @aturon
    cc @alexcrichton
    cc @glaebhoerl (this is more-or-less your proposal, as I understood it)
    cc @reem (this is more-or-less what we discussed on IRC at some point)
    cc @flaper87 (vaguely pertains to OIBIT)
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    e6166b7 View commit details
    Browse the repository at this point in the history
  25. rollup merge of rust-lang#23719: steveklabnik/unstable_book

    Now that feature flags are only on nightly, it's good to split this stuff out.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    8eb918e View commit details
    Browse the repository at this point in the history
  26. rollup merge of rust-lang#23721: erickt/deprecate

    This is technically a breaking change as it deprecates and unstables some previously stable apis that were missed in the last round of deprecations.
    
    [breaking change]
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    4bd1552 View commit details
    Browse the repository at this point in the history
  27. rollup merge of rust-lang#23725: tamird/test-with-ios

    r? @alexcrichton this should allow `make check` to run when `./configure`d for iOS cross-compilation
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    39fecde View commit details
    Browse the repository at this point in the history
  28. rollup merge of rust-lang#23736: gmjosack/master

    Found a few 404s that seemed like simple fixes:
    
    In footer.inc, certain 404 pages were 404ing on the request to jquery.js and playpen.js. This is easily demonstrated by visiting http://doc.rust-lang.org/foo then http://doc.rust-lang.org/foo/bar. The latter 404s, looking for foo/jquery.js.
    
    The Result docs use old_io Writer as an example. Fix the link to old_io Writer. There's probably an effort to update the example away from a deprecated api but this was a simple fix.
    
    rustc/plugin was pointing at the old guide and it was a broken link anyways (plugin vs plugins). Point at the book instead.
    
    The main page of the API docs referenced c_{str,vec}. Looks like these were deleted in 25d5a3a. Point at ffi docs instead.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    31fbfc3 View commit details
    Browse the repository at this point in the history
  29. rollup merge of rust-lang#23740: alexcrichton/remove-deprecated-slici…

    …ng-syntax
    
    This syntax has been deprecated for quite some time, and there were only a few
    remaining uses of it in the codebase anyway.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    d2fac62 View commit details
    Browse the repository at this point in the history
  30. rollup merge of rust-lang#23743: Adenilson/addInfoArcClone01

    Adding more information about the behavior of Arc/Rc when you perform a clone() call.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    df49ea6 View commit details
    Browse the repository at this point in the history
  31. rollup merge of rust-lang#23745: oneeman/trpl-looping

    Was reading the 'Looping' section of the book and was puzzled why the last example uses `0u32..10` when the others don't.  Tried it out without and it seems to work, so I figured it should just be `0..10`.  If there is a reason it needs to be `0u32..10` it should be explained in the text (I'd offer to do it but I have no idea).
    
    r? @steveklabnik
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    5f9fd2e View commit details
    Browse the repository at this point in the history
  32. rollup merge of rust-lang#23747: tshepang/misleading-info

    The first sentence was not compatible with the second.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    5d8a529 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    88c3a0f View commit details
    Browse the repository at this point in the history
  34. rollup merge of rust-lang#23752: alexcrichton/remove-should-fail

    This attribute has been deprecated in favor of #[should_panic]. This also
    updates rustdoc to no longer accept the `should_fail` directive and instead
    renames it to `should_panic`.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    55c398d View commit details
    Browse the repository at this point in the history
  35. rollup merge of rust-lang#23753: aturon/revise-convert

    This commit revises `path` and `os_str` to use blanket impls for `From`
    on reference types. This both cuts down on the number of required impls,
    and means that you can pass through e.g. `T: AsRef<OsStr>` to
    `PathBuf::from` without an intermediate call to `as_ref`.
    
    It also makes a FIXME note for later generalizing the blanket impls for
    `AsRef` and `AsMut` to use `Deref`/`DerefMut`, once it is possible to do
    so.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    7d79a4f View commit details
    Browse the repository at this point in the history
  36. rollup merge of rust-lang#23761: alexcrichton/remove-phase

    This commit removes the extra deprecation warnings and support for the old
    `phase` and `plugin` attributes for loading plugins.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    6251999 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    19ed61e View commit details
    Browse the repository at this point in the history
  38. rollup merge of rust-lang#23765: alexcrichton/remove-colon-syntax

    This syntax has been renamed to `-l static=foo` some time ago.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    fbbf02d View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    7393693 View commit details
    Browse the repository at this point in the history
  40. rollup merge of rust-lang#23769: alexcrichton/stabilize-split

    Now that `<[_]>::split` is an inherent method, it will trump `BufRead::split`
    when `BufRead` is in scope, so there is no longer a conflict. As a result,
    calling `slice.split()` will probably always give you precisely what you want!
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    a491d21 View commit details
    Browse the repository at this point in the history
  41. rollup merge of rust-lang#23771: aturon/stab-straggle-1

    Marks as `#[stable}`:
    
    * `ok_or`
    * `ok_or_else`
    * `iter_mut`
    * `cloned`
    
    Similarly to `IteratorExt::cloned`, the `cloned` method is pared down to
    work only on `Option<&T>`. Thus, this is a:
    
    [breaking-change]
    
    r? @alexcrichton
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    45f1324 View commit details
    Browse the repository at this point in the history
  42. rollup merge of rust-lang#23775: alexcrichton/fix-flaky-test

    Windows gets quite unhappy when a thread fails while the main thread is exiting,
    frequently leading to process deadlock. This has been causing quite a few
    deadlocks on the windows bots recently. The child threads are presumably failing
    because the `println!` is failing due to the main thread being shut down.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    aff160b View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    dc6bb5e View commit details
    Browse the repository at this point in the history
  44. rollup merge of rust-lang#23780: ruud-v-a/wrapping

    This allows `Wrapping<T>` to be used in `assert_eq!`, for example.
    
    One of the tests (compile-fail/xc-private-method.rs) fails, but I can hardly imagine it is related to this change. I would also like to add a tests to ensure that `assert_eq!` compiles and keeps working in the future for `Wrapped<T>` values, but there appear to be no tests in libcore. What would be a good place to add such a test?
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    169231d View commit details
    Browse the repository at this point in the history
  45. rollup merge of rust-lang#23738: alexcrichton/snapshots

    Conflicts:
    	src/libcollections/vec.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    956c2eb View commit details
    Browse the repository at this point in the history
  46. rollup merge of rust-lang#23741: alexcrichton/remove-int-uint

    Conflicts:
    	src/librustc/middle/ty.rs
    	src/librustc_trans/trans/adt.rs
    	src/librustc_typeck/check/mod.rs
    	src/libserialize/json.rs
    	src/test/run-pass/spawn-fn.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    28a6b16 View commit details
    Browse the repository at this point in the history
  47. rollup merge of rust-lang#23749: alexcrichton/remove-old-impl-check

    Conflicts:
    	src/libsyntax/feature_gate.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    e361b25 View commit details
    Browse the repository at this point in the history
  48. rustc: Remove support for hyphens in crate names

    This commit removes parser support for `extern crate "foo" as bar` as the
    renamed crate is now required to be an identifier. Additionally this commit
    enables hard errors on crate names that contain hyphens in them, they must now
    solely contain alphanumeric characters or underscores.
    
    If the crate name is inferred from the file name, however, the file name
    `foo-bar.rs` will have the crate name inferred as `foo_bar`. If a binary is
    being emitted it will have the name `foo-bar` and a library will have the name
    `libfoo_bar.rlib`.
    
    This commit is a breaking change for a number of reasons:
    
    * Old syntax is being removed. This was previously only issuing warnings.
    * The output for the compiler when input is received on stdin is now `rust_out`
      instead of `rust-out`.
    * The crate name for a crate in the file `foo-bar.rs` is now `foo_bar` which can
      affect infrastructure such as logging.
    
    [breaking-change]
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    b24a3b8 View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    13e4270 View commit details
    Browse the repository at this point in the history
  50. Merge 'richo/unquote-crates' into less-quotes

    Conflicts:
    	src/libsyntax/parse/parser.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    8bc3838 View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    6acf385 View commit details
    Browse the repository at this point in the history
  52. When testing whether a default method predicates are satisfiable,

    combine normalization with this check so that we also skip the
    default method if normalization fails. Fixes rust-lang#23485.
    nikomatsakis committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    70042cf View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    0156011 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    e77db16 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    63bbdc1 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    0c9de81 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    1a6188a View commit details
    Browse the repository at this point in the history
  58. rollup merge of rust-lang#23285: steveklabnik/gh11794

    Fixes rust-lang#11794
    
    I mostly removed superflous examples which use the standard library.
    
    I have one more quesiton here though: threads. They're mostly a library thing, at this point, right?
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    3f1d57f View commit details
    Browse the repository at this point in the history
  59. rollup merge of rust-lang#23486: nikomatsakis/issue-23485

    When testing whether a default method predicates are satisfiable,
    combine normalization with this check so that we also skip the
    default method if normalization fails. Fixes rust-lang#23485.
    
    r? @nrc (I tried to address your nit from before as well)
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    ac24a51 View commit details
    Browse the repository at this point in the history
  60. rollup merge of rust-lang#23665: steveklabnik/doc_std_ascii

    Also tweaked a few things.
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    df50510 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    8ec3695 View commit details
    Browse the repository at this point in the history
  62. Feature gate *all* slice patterns. rust-lang#23121

    Until some backwards-compatibility hazards are fixed in rust-lang#23121,
    these need to be unstable.
    
    [breaking-change]
    brson committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    1639e51 View commit details
    Browse the repository at this point in the history
  63. rollup merge of rust-lang#23197: aatxe/master

    `std::dynamic_library` is currently using `std::old_io::Path` specifically. This change brings the API in alignment with `std::fs::File` by having it take `std::path::AsPath`. The Windows code should work, but I admittedly haven't tried it (I don't have a Windows machine readily available right now).
    
    r? @alexcrichton
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    828c369 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    1c78478 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    d65fee2 View commit details
    Browse the repository at this point in the history
  66. rustdoc: show negative impls properly in the implementors page

    This isn't really possible to test in an automatic way, since the only traits
    you can negative impl are `Send` and `Sync`, and the implementors page for
    those only exists in libstd.
    
    Closes rust-lang#21310
    emberian committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    8d6fb44 View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    e604382 View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    59d417a View commit details
    Browse the repository at this point in the history
  69. rollup merge of rust-lang#23794: brson/slicegate

    Conflicts:
    	src/test/run-pass/issue-13027.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    990202c View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    7e3fd14 View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    1c0e1a8 View commit details
    Browse the repository at this point in the history
  72. rollup merge of rust-lang#23786: alexcrichton/less-quotes

    Conflicts:
    	src/test/auxiliary/static-function-pointer-aux.rs
    	src/test/auxiliary/trait_default_method_xc_aux.rs
    	src/test/run-pass/issue-4545.rs
    alexcrichton committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    d3a4f36 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    5520801 View commit details
    Browse the repository at this point in the history
  74. Make std::error::Error not inherit from Send

    The Send bound is an unnecessary restriction, and though provided as a
    convenience, can't be removed by downstream code.
    
    The removal of this bound is a [breaking-change] since it
    removes an implicit Send bound on all `E: Error` and all
    `Error` trait objects.
    
    To migrate, consider if your code actually requires the Send
    bound and, if so, add it explicitly.
    
    Fixes rust-lang#23774
    reem committed Mar 27, 2015
    Configuration menu
    Copy the full SHA
    3feeea5 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2015

  1. Configuration menu
    Copy the full SHA
    e58f057 View commit details
    Browse the repository at this point in the history
  2. std: Don't deadlock/panic on recursive prints

    Previously a panic was generated for recursive prints due to a double-borrow of
    a `RefCell`. This was solved by the second borrow's output being directed
    towards the global stdout instead of the per-thread stdout (still experimental
    functionality).
    
    After this functionality was altered, however, recursive prints still deadlocked
    due to the overridden `write_fmt` method which locked itself first and then
    wrote all the data. This was fixed by removing the override of the `write_fmt`
    method. This means that unlocked usage of `write!` on a `Stdout`/`Stderr` may be
    slower due to acquiring more locks, but it's easy to make more performant with a
    call to `.lock()`.
    
    Closes rust-lang#23781
    alexcrichton committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    e2fd2df View commit details
    Browse the repository at this point in the history
  3. Auto merge of rust-lang#23798 - alexcrichton:issue-23781, r=aturon

    Previously a panic was generated for recursive prints due to a double-borrow of
    a `RefCell`. This was solved by the second borrow's output being directed
    towards the global stdout instead of the per-thread stdout (still experimental
    functionality).
    
    After this functionality was altered, however, recursive prints still deadlocked
    due to the overridden `write_fmt` method which locked itself first and then
    wrote all the data. This was fixed by removing the override of the `write_fmt`
    method. This means that unlocked usage of `write!` on a `Stdout`/`Stderr` may be
    slower due to acquiring more locks, but it's easy to make more performant with a
    call to `.lock()`.
    
    Closes rust-lang#23781
    bors committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    9f9e251 View commit details
    Browse the repository at this point in the history
  4. Auto merge of rust-lang#23799 - reem:error-no-send, r=aturon

    The Send bound is an unnecessary restriction, and though provided as a convenience, can't be removed by downstream code.
    
    The removal of this bound is a [breaking-change] since it removes an implicit Send bound on all `E: Error` and all `Error` trait objects.
    
    To migrate, consider if your code actually requires the Send bound and, if so, add it explicitly.
    
    Fixes rust-lang#23774
    
    r? @aturon
    bors committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    f8b6e28 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cbce6bf View commit details
    Browse the repository at this point in the history
  6. book: Fix typo

    dnwade committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    aaf74d1 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#23332 - jakub-:rustup-curl-silent-flag, r=b…

    …rson
    
    curl's progress meter would otherwise interfere with sudo's password prompt.
    
    In addition, add the -f flag to make sure 4xx status codes are treated as errors.
    
    r? @brson
    Manishearth committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    474062d View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#23751 - tshepang:do-not-hardcode-the-growth…

    …, r=Manishearth
    
    I found the arbitrary `10` surprising. A better method name, in such a case, would be `grow_by_10` :)
    Manishearth committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    5299d36 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    4aa17c8 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#23803 - richo:unused-braces, r=Manishearth

    Pretty much what it says on the tin.
    Manishearth committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    5eb4be4 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    95f4061 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    3e7385a View commit details
    Browse the repository at this point in the history
  13. Fix some typos

    petrochenkov committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    1accaa9 View commit details
    Browse the repository at this point in the history
  14. iOS: int/uint fallout

    vhbit committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    6b7c5b9 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    01f2c67 View commit details
    Browse the repository at this point in the history
  16. Update debug helpers and add list builder

    The collections debug helpers no longer prefix output with the
    collection name, in line with the current conventions for Debug
    implementations. Implementations that want to preserve the current
    behavior can simply add a `try!(write!(fmt, "TypeName "));` at the
    beginning of the `fmt` method.
    
    [breaking-change]
    sfackler committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    4037f2a View commit details
    Browse the repository at this point in the history
  17. libc: Don't use unstable apis

    Right now the `std::isize::BYTES` typedef is `#[unstable]`, but liblibc is using
    this, preventing it from compiling on stable Rust.
    alexcrichton committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    bd66f57 View commit details
    Browse the repository at this point in the history
  18. Fold collections debug impls

    Also convert [T]'s Debug impl. The behavior of the alternate flag here's
    changing.
    sfackler committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    b82bcec View commit details
    Browse the repository at this point in the history
  19. Remove standard io chapter from the book

    This was originally used to set up the guessing game, but that no longer
    exists. This version uses `old_io`, and updating it involves talking
    about `&mut` and such, which we haven't covered yet. So, for now, let's
    just remove it.
    
    Fixes rust-lang#23760
    steveklabnik committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    9fb54f8 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    f6c234f View commit details
    Browse the repository at this point in the history
  21. Remove IteratorExt

    All methods are inlined into Iterator with `Self: Sized` bounds to make
    sure Iterator is still object safe.
    
    [breaking-change]
    sfackler committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    d502f42 View commit details
    Browse the repository at this point in the history
  22. Auto merge of rust-lang#23300 - sfackler:rm-iterator-ext, r=alexcrichton

    All methods are inlined into Iterator with `Self: Sized` bounds to make
    sure Iterator is still object safe.
    
    [breaking-change]
    
    This is blocked on ICEs: https://gist.github.com/sfackler/5aff7c57cf8d896e2c6f
    Seem to be similar to rust-lang#23281.
    bors committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    c89de2c View commit details
    Browse the repository at this point in the history
  23. Correct Phil Dawes email address

    Phil Dawes committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    80c188e View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    842e6cf View commit details
    Browse the repository at this point in the history
  25. Port of pcwalton removal of #[unsafe_destructor] check.

    Earlier commits impose rules on lifetimes that make generic
    destructors safe; thus we no longer need the `#[unsafe_destructor]`
    attribute nor its associated check.
    
    ----
    
    So remove the check for the unsafe_destructor attribute.
    
    And remove outdated compile-fail tests from when lifetime-parameteric
    dtors were disallowed/unsafe.
    
    In addition, when one uses the attribute without the associated
    feature, report that the attribute is deprecated.
    
    However, I do not think this is a breaking-change, because the
    attribute and feature are still currently accepted by the compiler.
    (After the next snapshot that has this commit, we can remove the
    feature itself and the attribute as well.)
    
    ----
    
    I consider this to:
    
    Fix rust-lang#22196
    
    (techincally there is still the post snapshot work of removing the
    last remants of the feature and the attribute, but the ticket can
    still be closed in my opinion).
    pnkfelix committed Mar 28, 2015
    Configuration menu
    Copy the full SHA
    64c48f3 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2015

  1. Configuration menu
    Copy the full SHA
    256e78a View commit details
    Browse the repository at this point in the history
  2. Auto merge of rust-lang#23819 - pnkfelix:kill-unsafe-dtor, r=pnkfelix

    Port of pcwalton removal of `#[unsafe_destructor]` check.
    
    Earlier commits impose rules on lifetimes that make generic destructors safe; thus we no longer need the `#[unsafe_destructor]` attribute nor its associated check.
    
    ----
    
    So remove the check for the unsafe_destructor attribute.
    
    And remove outdated compile-fail tests from when lifetime-parameteric dtors were disallowed/unsafe.
    
    In addition, when one uses the attribute without the associated feature, report that the attribute is deprecated.
    
    However, I do not think this is a breaking-change, because the attribute and feature are still currently accepted by the compiler. (After the next snapshot that has this commit, we can remove the feature itself and the attribute as well.)
    
    ----
    
    I consider this to:
    
    Fix rust-lang#22196
    
    (technically there is still the post snapshot work of removing the last remnants of the feature and the attribute, but the ticket can still be closed in my opinion).
    bors committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    27af78c View commit details
    Browse the repository at this point in the history
  3. Oops fix output examples

    sfackler committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    3c0c8fc View commit details
    Browse the repository at this point in the history
  4. Auto merge of rust-lang#23810 - sfackler:debug-collections, r=alexcri…

    …chton
    
    The collections debug helpers no longer prefix output with the
    collection name, in line with the current conventions for Debug
    implementations. Implementations that want to preserve the current
    behavior can simply add a `try!(write!(fmt, "TypeName "));` at the
    beginning of the `fmt` method.
    
    [breaking-change]
    bors committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    227b46b View commit details
    Browse the repository at this point in the history
  5. Fix massive performance issue in read_to_end

    with_end_to_cap is enormously expensive now that it's initializing
    memory since it involves 64k allocation + memset on every call. This is
    most noticable when calling read_to_end on very small readers, where the
    new version if **4 orders of magnitude** faster.
    
    BufReader also depended on with_end_to_cap so I've rewritten it in its
    original form.
    
    As a bonus, converted the buffered IO struct Debug impls to use the
    debug builders.
    
    Fixes rust-lang#23815
    sfackler committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    ccb4e84 View commit details
    Browse the repository at this point in the history
  6. Auto merge of rust-lang#23787 - steveklabnik:gh23760, r=alexcrichton

    This was originally used to set up the guessing game, but that no longer
    exists. This version uses `old_io`, and updating it involves talking
    about `&mut` and such, which we haven't covered yet. So, for now, let's
    just remove it.
    
    Fixes rust-lang#23760
    bors committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    fa3d778 View commit details
    Browse the repository at this point in the history
  7. Fix typo

    huachaohuang committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    58c7d6f View commit details
    Browse the repository at this point in the history
  8. Auto merge of rust-lang#23809 - cmr:issue-21310, r=Manishearth

    This isn't really possible to test in an automatic way, since the only traits
    you can negative impl are `Send` and `Sync`, and the implementors page for
    those only exists in libstd.
    
    Closes rust-lang#21310
    bors committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    ea03ad9 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#23811 - alexcrichton:libc-stable, r=Manishe…

    …arth
    
    Right now the `std::isize::BYTES` typedef is `#[unstable]`, but liblibc is using
    this, preventing it from compiling on stable Rust.
    Manishearth committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    ef94b8a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    5daab4a View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#23817 - phildawes:master, r=alexcrichton

    Hello! I noticed that the email address in AUTHORS.txt doesn't point to my home email. Could somebody merge this patch to correct it please?
    
    Thanks very much!
    Manishearth committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    a96ee9d View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#23821 - nicholasbishop:bishop-slice-iter-ty…

    …po-fix, r=alexcrichton
    Manishearth committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    963bf1d View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    9147463 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    b27ba52 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    8fe7f1f View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    c5370be View commit details
    Browse the repository at this point in the history
  17. Update std::error example

    To not use `old_io` and `os`, which are deprecated. Since there is no more `MemoryMap` used byte parsing instead to generate the second potential error.
    Andrew Hobden committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    e489eaa View commit details
    Browse the repository at this point in the history
  18. Fix trailing whitespace. Whoops!

    Andrew Hobden committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    1a5e73a View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    2a1bad7 View commit details
    Browse the repository at this point in the history
  20. Auto merge of rust-lang#23820 - sfackler:fast_read_to_end, r=alexcric…

    …hton
    
    with_end_to_cap is enormously expensive now that it's initializing
    memory since it involves 64k allocation + memset on every call. This is
    most noticable when calling read_to_end on very small readers, where the
    new version if **4 orders of magnitude** faster.
    
    BufReader also depended on with_end_to_cap so I've rewritten it in its
    original form.
    
    As a bonus, converted the buffered IO struct Debug impls to use the
    debug builders.
    
    I first came across this in sfackler/rust-postgres#106 where a user reported a 10x performance regression. A call to read_to_end turned out to be the culprit: sfackler/rust-postgres@9cd413d.
    
    The new version differs from the old in a couple of ways. The buffer size used is now adaptive. It starts at 32 bytes and doubles each time EOF hasn't been reached up to a limit of 64k. In addition, the buffer is only truncated when EOF or an error has been reached, rather than after every call to read as was the case for the old implementation.
    
    I wrote up a benchmark to compare the old version and new version: https://gist.github.com/sfackler/e979711b0ee2f2063462
    
    It tests a couple of different cases: a high bandwidth reader, a low bandwidth reader, and a low bandwidth reader that won't return more than 10k per call to `read`. The high bandwidth reader should be analagous to use cases when reading from e.g. a `BufReader` or `Vec`, and the low bandwidth readers should be analogous to reading from something like a `TcpStream`.
    
    Of special note, reads from a high bandwith reader containing 4 bytes are now *4,495 times faster*. 
    ```
    ~/foo ❯ cargo bench
       Compiling foo v0.0.1 (file:///home/sfackler/foo)
         Running target/release/foo-7498d7dd7faecf5c
    
    running 13 tests
    test test_new ... ignored
    test new_delay_4      ... bench:    230768 ns/iter (+/- 14812)
    test new_delay_4_cap  ... bench:    231421 ns/iter (+/- 7211)
    test new_delay_5m     ... bench:  14495370 ns/iter (+/- 4008648)
    test new_delay_5m_cap ... bench:  73127954 ns/iter (+/- 59908587)
    test new_nodelay_4    ... bench:        83 ns/iter (+/- 2)
    test new_nodelay_5m   ... bench:  12527237 ns/iter (+/- 335243)
    test std_delay_4      ... bench:    373095 ns/iter (+/- 12613)
    test std_delay_4_cap  ... bench:    374190 ns/iter (+/- 19611)
    test std_delay_5m     ... bench:  17356012 ns/iter (+/- 15906588)
    test std_delay_5m_cap ... bench: 883555035 ns/iter (+/- 205559857)
    test std_nodelay_4    ... bench:    144937 ns/iter (+/- 2448)
    test std_nodelay_5m   ... bench:  16095893 ns/iter (+/- 3315116)
    
    test result: ok. 0 passed; 0 failed; 1 ignored; 12 measured
    ```
    
    r? @alexcrichton
    bors committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    92f3d9a View commit details
    Browse the repository at this point in the history
  21. Remove about standard io chapter from the book (from arrays-vectors-a…

    …nd-slices chapter)
    
    Remove the last sentence about standard io chapter.
    
    Additional Fixes rust-lang#23760
    kgv committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    f575aca View commit details
    Browse the repository at this point in the history
  22. Fixed wrong name of test module in testing.md

    The documentation says that 'The current convention is to use the `test` module
    to hold your "unit-style"' but then defines the module as "tests" instead.
    tyrion committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    b77a09c View commit details
    Browse the repository at this point in the history
  23. s/THRADS/THREADS/

    apasel422 committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    bf9c27d View commit details
    Browse the repository at this point in the history
  24. Fix line spacing.

    Andrew Hobden committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    d4b5f65 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    d8be84e View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2015

  1. Configuration menu
    Copy the full SHA
    c748864 View commit details
    Browse the repository at this point in the history
  2. Auto merge of rust-lang#23838 - kgv:master, r=steveklabnik

    Remove the last sentence about standard io chapter.
    
    Additional Fixes rust-lang#23760
    bors committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    f55d03c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d9252bd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f002640 View commit details
    Browse the repository at this point in the history
  5. Implement new type-checking strategy for binary operators. Basically,

    the plan is to treat all binary operators as if they were overloaded,
    relying on the fact that we have impls for all the builtin scalar
    operations (and no more). But then during writeback we clear the
    overload if the types correspond to a builtin op.
    
    This strategy allows us to avoid having to know the types of the
    operands ahead of time. It also avoids us overspecializing as we did in
    the past.
    nikomatsakis committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    d649292 View commit details
    Browse the repository at this point in the history
  6. Driveby cleanup of the impl for negation, which had some kind of

    surprising casts. This version more obviously corresponds to the builtin
    semantics.
    nikomatsakis committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    d6466ff View commit details
    Browse the repository at this point in the history
  7. Fallout where types must be specified.

    This is due to a [breaking-change] to operators. The primary affected
    code is uses of the `Rng` trait where we used to (incorrectly) infer the
    right-hand-side type from the left-hand-side, in the case that the LHS
    type was a scalar like `i32`. The fix is to add a type annotation like
    `x + rng.gen::<i32>()`.
    nikomatsakis committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    c92bdcb View commit details
    Browse the repository at this point in the history
  8. Auto merge of rust-lang#23848 - cmr:no-compiler-docs, r=huonw

    This saves a bunch of a time and will make distributions smaller, as well as
    avoiding filling the implementors page with internal garbage. Turn it back on
    with `--enable-compiler-docs` if you want them.
    
    (Crates behind the facade are not documented at all)
    
    [breaking-change]
    bors committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    14192d6 View commit details
    Browse the repository at this point in the history
  9. Mucho debug instrumentation.

    pnkfelix committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    aa13981 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0705e6a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    492b3b1 View commit details
    Browse the repository at this point in the history
  12. Address Issue 14270 by making cmt::freely_aliasable result more fin…

    …e-grained.
    
    Instead of encoding the aliasability (i.e. whether the cmt is uniquely
    writable or not) as an option, now pass back an enum indicating
    either: 1. freely-aliasable (thus not uniquely-writable),
    2. non-aliasble (thus uniquely writable), or 3. unique but immutable
    (and thus not uniquely writable, according to proposal from issue
    14270.)
    
    This is all of course a giant hack that will hopefully go away with an
    eventually removal of special treatment of `Box<T>` (aka `ty_unique`)
    from the compiler.
    pnkfelix committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    f513380 View commit details
    Browse the repository at this point in the history
  13. Fallout to test.

    pnkfelix committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    e434053 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    e2b2a53 View commit details
    Browse the repository at this point in the history
  15. Add test case for rust-lang#22743.

    Fixes rust-lang#22743.
    Fixes rust-lang#19035.
    Fixes rust-lang#22099.
    
    (Those all seem to be exactly the same scenario.)
    nikomatsakis committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    7595c25 View commit details
    Browse the repository at this point in the history
  16. Auto merge of rust-lang#23673 - nikomatsakis:issue-23319-binops-ng-5,…

    … r=pnkfelix
    
    The current binary operator code assumed that if the LHS was a scalar (`i32` etc), then the RHS had to match. This is not true with multidispatch. This PR generalizes the existing code to (primarily) use the traits -- this also allows us to defer the precise type-checking when the types aren't fully known. The one caveat is the unstable SIMD types, which don't fit in with the current traits -- in that case, the LHS type must be known to be SIMD ahead of time.
    
    There is one semi-hacky bit in that during writeback, for builtin operators, if the types resolve to scalars (i32 etc) then we clear the method override. This is because we know what the semantics are and it is more efficient to generate the code directly. It also ensures that we can use these overloaded operators in constants and so forth.
    
    cc @japaric
    cc @aturon 
    
    Fixes rust-lang#23319 (and others).
    bors committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    9de34a8 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    3b45470 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    6c0314a View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    6cf3b0b View commit details
    Browse the repository at this point in the history
  20. Explain why 'elision'

    steveklabnik committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    8f0c952 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    085bcfa View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    4c1f5bd View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    6e8693b View commit details
    Browse the repository at this point in the history
  24. std: Standardize (input, output) param orderings

    This functions swaps the order of arguments to a few functions that previously
    took (output, input) parameters, but now take (input, output) parameters (in
    that order).
    
    The affected functions are:
    
    * ptr::copy
    * ptr::copy_nonoverlapping
    * slice::bytes::copy_memory
    * intrinsics::copy
    * intrinsics::copy_nonoverlapping
    
    Closes rust-lang#22890
    [breaking-change]
    alexcrichton committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    acd48a2 View commit details
    Browse the repository at this point in the history
  25. lint: handle private traits better

    Due to a long-standing conservative approach to trait exports, all traits are
    considered exported. However, the missing_docs lint uses the export map to
    determine if something is public and ought to have documentation. This commit
    modifies the lint to check if traits are private before emitting the warning.
    
    Closes rust-lang#11592
    emberian committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    31a5285 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    1026b06 View commit details
    Browse the repository at this point in the history
  27. rustdoc: output stderr on doc-test fail

    Forward output from stderr when a test executable panics/fails.
    rayglover-ibm committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    5dc23be View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2015

  1. Configuration menu
    Copy the full SHA
    83d3503 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    470996a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8410788 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#23836 - Hoverbear:patch-1, r=steveklabnik

    To not use `old_io` and `os`, which are deprecated. Since there is no more `MemoryMap` used byte parsing instead to generate the second potential error.
    
    You can see the code working fine [here](http://is.gd/4g0wwp) on the PlayPen.
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    4038593 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#23839 - tyrion:patch-1, r=alexcrichton

    The documentation says that 'The current convention is to use the `test` module
    to hold your "unit-style"' but then defines the module as "tests" instead.
    
    Also in the output of the command we can see:
    ```
    test test::it_works ... ok
    ```
    So I think the name of the module was meant to be "test"
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    a4da0d8 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#23846 - rayglover:patch-rustdoc-stderr, r=a…

    …lexcrichton
    
    Currently if a rustdoc test panics then the fatal error message is not forwarded to the user. This change will have the test runner prefer forwarding anything on the stderr of the test process.
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    e76b412 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#23852 - cmr:missing_doc, r=Manishearth

    Due to a long-standing conservative approach to trait exports, all traits are
    considered exported. However, the missing_docs lint uses the export map to
    determine if something is public and ought to have documentation. This commit
    modifies the lint to check if traits are private before emitting the warning.
    
    Closes rust-lang#11592
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    2c0329c View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#23859 - pnkfelix:fsk-lesser-box, r=nikomats…

    …akis
    
    Disallow writing through mutable pointers stored in non-mut Box.
    
    Fix rust-lang#14270 
    
    The fix works by making `cmt::freely_aliasable` result more fine-grained.
    
    Instead of encoding the aliasability (i.e. whether the cmt is uniquely writable or not) as an option, now pass back an enum indicating either: 1. freely-aliasable (thus not uniquely-writable), 2. non-aliasable (thus uniquely writable), or 3. unique but immutable (and thus not uniquely writable, according to proposal from issue rust-lang#14270.)
    
    This is all of course a giant hack that will hopefully go away with an eventually removal of special treatment of `Box<T>` (aka `ty_unique`) from the compiler.
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    b4457fb View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#23862 - jviereck:fix_23713_v2, r=steveklabnik

    Based on the comment from @apasel422  in rust-lang#23791 (comment).
    Where @apasel422 proposed
    ```
    Moves the value out of the option if it is `Some`, or panics if it is `None`.
    ```
    I include in this PR the version
    ```
    Moves the value `v` out of the `Option` if it is `Some(v)`, or panics if it is `None`.
    ```
    which 
    - is a little bit more precise about what value is actually returned
    - uses `Option` over just "option" in the part `out of the [Option]
    
    r? @steveklabnik, @apasel422
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    8225a1c View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    464c18c View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#23866 - alexcrichton:switch-some-orders, r=…

    …aturon
    
    This functions swaps the order of arguments to a few functions that previously
    took (output, input) parameters, but now take (input, output) parameters (in
    that order).
    
    The affected functions are:
    
    * ptr::copy
    * ptr::copy_nonoverlapping
    * slice::bytes::copy_memory
    * intrinsics::copy
    * intrinsics::copy_nonoverlapping
    
    Closes rust-lang#22890
    [breaking-change]
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    5793804 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#23869 - tshepang:more-complete-builder-patt…

    …ern-example, r=alexcrichton
    
    This makes some use of `x` and `y`, instead of setting them to the same value.
    Manishearth committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    7afc7d3 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    db76327 View commit details
    Browse the repository at this point in the history