<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ rustc -v
rustc 0.13.0-dev (14cd5c590 2014-11-05 12:26:34 +0000)

$ git clone https://github.com/servo/string-cache
$ git checkout rustup
$ cargo test --verbose
...
   Compiling string_cache v0.0.0 (file:///tmp/string-cache)
     Running `rustc /tmp/string-cache/src/lib.rs --crate-name string_cache --crate-type lib -g -C metadata=d91f0064f95ce600 -C extra-filename=-d91f0064f95ce600 --out-dir /tmp/string-cache/target --dep-info /tmp/string-cache/target/.fingerprint/string_cache-d91f0064f95ce600/dep-lib-string_cache -L /tmp/string-cache/target -L /tmp/string-cache/target/deps --extern phf=/tmp/string-cache/target/deps/libphf-4fc01267f85abb4e.rlib --extern string_cache_macros=/tmp/string-cache/target/deps/libstring_cache_macros-d823bfff3d1c9882.so --extern lazy_static=/tmp/string-cache/target/deps/liblazy_static-518089d616e0fe56.rlib --extern phf_mac=/tmp/string-cache/target/deps/libphf_mac-78b8694be35c3487.so --extern xxhash=/tmp/string-cache/target/deps/libxxhash-0275196ad61a41f5.rlib`
rustc: /home/keegan/proj/rust/rust/src/llvm/include/llvm/Support/CommandLine.h:682: void llvm::cl::parser&lt;DataType&gt;::addLiteralOption(const char*, const DT&amp;, const char*) [with DT = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level); DataType = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)]: Assertion `findOption(Name) == Values.size() &amp;&amp; &quot;Option already exists!&quot;' failed.
Could not compile `string_cache`.

Caused by:
  Process didn't exit successfully: `rustc /tmp/string-cache/src/lib.rs --crate-name string_cache --crate-type lib -g -C metadata=d91f0064f95ce600 -C extra-filename=-d91f0064f95ce600 --out-dir /tmp/string-cache/target --dep-info /tmp/string-cache/target/.fingerprint/string_cache-d91f0064f95ce600/dep-lib-string_cache -L /tmp/string-cache/target -L /tmp/string-cache/target/deps --extern phf=/tmp/string-cache/target/deps/libphf-4fc01267f85abb4e.rlib --extern string_cache_macros=/tmp/string-cache/target/deps/libstring_cache_macros-d823bfff3d1c9882.so --extern lazy_static=/tmp/string-cache/target/deps/liblazy_static-518089d616e0fe56.rlib --extern phf_mac=/tmp/string-cache/target/deps/libphf_mac-78b8694be35c3487.so --extern xxhash=/tmp/string-cache/target/deps/libxxhash-0275196ad61a41f5.rlib` (status=6)"><pre class="notranslate"><code class="notranslate">$ rustc -v
rustc 0.13.0-dev (14cd5c590 2014-11-05 12:26:34 +0000)

$ git clone https://github.com/servo/string-cache
$ git checkout rustup
$ cargo test --verbose
...
   Compiling string_cache v0.0.0 (file:///tmp/string-cache)
     Running `rustc /tmp/string-cache/src/lib.rs --crate-name string_cache --crate-type lib -g -C metadata=d91f0064f95ce600 -C extra-filename=-d91f0064f95ce600 --out-dir /tmp/string-cache/target --dep-info /tmp/string-cache/target/.fingerprint/string_cache-d91f0064f95ce600/dep-lib-string_cache -L /tmp/string-cache/target -L /tmp/string-cache/target/deps --extern phf=/tmp/string-cache/target/deps/libphf-4fc01267f85abb4e.rlib --extern string_cache_macros=/tmp/string-cache/target/deps/libstring_cache_macros-d823bfff3d1c9882.so --extern lazy_static=/tmp/string-cache/target/deps/liblazy_static-518089d616e0fe56.rlib --extern phf_mac=/tmp/string-cache/target/deps/libphf_mac-78b8694be35c3487.so --extern xxhash=/tmp/string-cache/target/deps/libxxhash-0275196ad61a41f5.rlib`
rustc: /home/keegan/proj/rust/rust/src/llvm/include/llvm/Support/CommandLine.h:682: void llvm::cl::parser&lt;DataType&gt;::addLiteralOption(const char*, const DT&amp;, const char*) [with DT = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level); DataType = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)]: Assertion `findOption(Name) == Values.size() &amp;&amp; "Option already exists!"' failed.
Could not compile `string_cache`.

Caused by:
  Process didn't exit successfully: `rustc /tmp/string-cache/src/lib.rs --crate-name string_cache --crate-type lib -g -C metadata=d91f0064f95ce600 -C extra-filename=-d91f0064f95ce600 --out-dir /tmp/string-cache/target --dep-info /tmp/string-cache/target/.fingerprint/string_cache-d91f0064f95ce600/dep-lib-string_cache -L /tmp/string-cache/target -L /tmp/string-cache/target/deps --extern phf=/tmp/string-cache/target/deps/libphf-4fc01267f85abb4e.rlib --extern string_cache_macros=/tmp/string-cache/target/deps/libstring_cache_macros-d823bfff3d1c9882.so --extern lazy_static=/tmp/string-cache/target/deps/liblazy_static-518089d616e0fe56.rlib --extern phf_mac=/tmp/string-cache/target/deps/libphf_mac-78b8694be35c3487.so --extern xxhash=/tmp/string-cache/target/deps/libxxhash-0275196ad61a41f5.rlib` (status=6)
</code></pre></div>
<p dir="auto">We will eventually need a process for API stabilization planning and discussion, but while we're first getting used to the 6 week cadence, we'll use this issue for tracking.</p>
<h3 dir="auto">Planned for 1.0 stable</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">str::Utf8Error</code> (switch from enum to opaque struct, with accessor for "last valid byte position")</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">io::Error::from_raw_os_error</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">Clone::clone_from</code> (likely)</li>
</ul>
<h3 dir="auto">Planned for 1.1 beta</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">str_words</code> -- see <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="37717750" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/15628" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/15628/hovercard" href="https://github.com/rust-lang/rust/issues/15628">#15628</a></li>
</ul>
<h3 dir="auto">Planned for 1.1 stable</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">thread::catch_panic</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">time::Duration</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> debug builders</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">collections::Bound</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">One/Zero</code> + .sum / .product</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">iter::StepBy</code> -- decide what to do on a negative step</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">Box::from_raw</code>, <code class="notranslate">boxed::into_raw</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">char::encode_utf{8,16}</code></li>
</ul>
<h3 dir="auto">APIs with known problems/requiring more thought</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">iter::order</code> -- would prefer to use comparison operators</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">alloc::heap</code> -- huge risks for future tracing support etc.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">IteratorExt::{min,max}_by</code> --  <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="36921943" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/15311" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/15311/hovercard" href="https://github.com/rust-lang/rust/issues/15311">#15311</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">&lt;[_]&gt;::position_elem</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">#[bench]</code> -- want more pluggable framework</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">std::slice::bytes</code> -- wants more design work</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">char::width</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">Read::chars</code> -- has problematic error type; should this even be provided given how slow it is?</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">iter::range_inclusive</code> -- replace with adapters</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">collections::{BitVec, VecMap}</code> -- need clearer policy on what ships in collections</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">mem::copy{,_mut}_lifetime</code>, <code class="notranslate">ptr::Unique</code> -- wants more general design for "safer unsafe patterns"</li>
</ul>
<h3 dir="auto">Slated for eventual deprecation/removal (if unstable)</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">Vec::push_all</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">Vec::from_raw_buf</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">FromPrimitive</code>/<code class="notranslate">ToPrimitive</code>/<code class="notranslate">NumCast</code> (will be replaced with more general failable cast)</li>
</ul>
<h3 dir="auto">Far-future</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">raw::TraitObject</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">intrinsics::volatile_set_memory</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <code class="notranslate">intrinsics::type_name</code></li>
</ul>