2015-01-10 18 views
13

Rust 1.0 alpha ile yazılmış çok basit bir kedi fonksiyonum var. Bunu derlerkenRust hakkında # [warn (unstable)] nedir?

use std::io; 

fn main(){ 
    let mut reader = io::stdin(); 
    loop { 
     let input = reader.read_line().ok().expect("Failed to read line"); 
     print!("{}", input); 
    } 
} 

, aşağıdaki uyarılara olsun:

bindings.rs:5:26: 5:35 warning: use of unstable item, #[warn(unstable)] on by default 
bindings.rs:5   let mut reader = io::stdin(); 
             ^~~~~~~~~ 
bindings.rs:6:28: 6:39 warning: use of unstable item, #[warn(unstable)] on by default 
bindings.rs:6   let input = reader.read_line().ok().expect("Failed to read line"); 
             ^~~~~~~~~~~ 

Bu uyarıları giderilmesi için bir yolu var mı?

+1

Bu sizin kodunuzdan kaynaklanmadı. :-) – Shepmaster

+1

Bu, olası bir kullanımdan kaldırılma uyarısına eşittir, ancak değiştirmenin henüz uygulanmadığı durumlarda. Bu tür uyarıları nasıl sustururum? – dhardy

+7

Soruma cevap vermek için: '#! [Izin ver (kararsız)]' hile yapar. – dhardy

cevap

14

1.0 sürümü için, Rust, dilinin tüm yaşamı için hangi dil özellikleri ve standart kitaplığın kullanılabileceği konusunda çok güçlü bir garanti sağlamak istiyor. Bu kolay bir başarı değil!

Yeni, test edilmemiş veya tam olarak pişirilmemiş özellikler, bir kararlılık özelliği ve won't be able to use unstable features in the beta or release ile işaretlenecektir. Bunları sadece gece yapımlarında kullanabileceksiniz. Bununla birlikte, bunlar alfa sırasında, yalnızca basittirler. Eğer alfadaki bir özelliği kullanmanız gerekiyorsa ve unstable olarak işaretlenmişse, o zaman beta'dan önce kararlı bir şekilde (ya da alternatif bir çözüm bulursanız) emin olmak isteyeceksiniz!

Bu durumda, tüm IO alt sistemi son dakika değişiklikleri geçiriyor, dolayısıyla kararsız olarak işaretlendi.

düzenleme 1

PR 21543 topraklar std::io olarak bilinen şimdiki dünyanın std::old_io olarak adlandırılacak zaman. Yeni yazılmış kod std::io'a girecek ve eski sürüm kullanımdan kaldırılacak.

+0

Herhangi bir yerde IO için bir yol haritası var mı? Belki pas repoda? – wegry

+6

Bildiğim iki tanesi [beta stabilizasyon metabug] (https://github.com/rust-lang/rust/issues/20761) ve [IO reformu RFC] (https://github.com/rust) olurdu. -lang/RFC/çekme/517 /) – Shepmaster