2015-01-10 3 views
13

나는 Rust 1.0 alpha로 쓰여진 아주 간단한 cat 함수를 가지고있다. 나는 그것을 컴파일하면녹에 대해 # [warn (unstable)]이 무엇입니까?

use std::io; 

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

, 나는 다음과 같은 경고를 얻을 :

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"); 
             ^~~~~~~~~~~ 

이 경고를 해결하는 방법이 있나요?

+1

그것은 귀하의 코드 때문입니다. :-) – Shepmaster

+1

잠재적 인 사용 중단 경고와 같지만 교체가 아직 구현되지 않은 경우입니다. 어떻게 이러한 경고를 축소합니까? – dhardy

+7

내 질문에 답하기 위해서 :'#! [allow (unstable)] '는 속임수를 사용합니다. – dhardy

답변

14

1.0 릴리스의 경우 Rust는 언어의 전체 수명 에 사용할 언어 및 표준 라이브러리의 기능에 대한 매우 강력한 보증을 제공하려고합니다. 이것은 쉬운 위업이 아닙니다!

새 기능, ​​테스트되지 않은 기능 또는 완전하게 조리되지 않은 기능은 안정성 특성으로 표시되며 won't be able to use unstable features in the beta or release입니다. 야간에만 사용할 수 있습니다.

그러나 알파 동안 그들은 단순히 경고입니다. 알파에서 기능을 사용해야하고 unstable으로 표시된 경우 베타 이전에 안정적인지 확인해야합니다 (또는 대체 솔루션을 찾으십시오)!

이 경우 전체 IO 하위 시스템이 막판 변경 중이므로 불안정한 것으로 표시됩니다.

편집 1

PR 21543 땅은 std::io로 알려진 현재의 세계는 std::old_io로 이름이 변경됩니다합니다. 새로 작성된 코드는 std::io으로 바뀌며 이전 버전은 더 이상 사용되지 않습니다.

+0

IO 용 로드맵이 있습니까? 어쩌면 녹스틴 레포에서? – wegry

+6

내가 아는 두 가지는 [베타 안정화 메타 보] (https://github.com/rust-lang/rust/issues/20761)와 [IO 개혁 RFC] (https://github.com/rust -lang/rfcs/pull/517 /) – Shepmaster

관련 문제