Rust는 다중 패러다임, 범용, 컴파일된 프로그래밍 언어입니다.
몇일전 발표된 인기 있는 프로그래밍 언어인 "Rust 1.72"의 새 버전 출시, 새로운 기능이 추가된 버전은 물론 코드 생성 프로세스를 더 쉽고 유연하게 만드는 데 초점을 맞춘 개선 사항, 버그 수정 및 다양한 변경 사항이 포함되어 있습니다.
이 프로그래밍 언어를 모르는 사람들은 다음을 알아야 합니다. 메모리 안전에 중점을 두고 높은 병렬성을 달성할 수 있는 수단을 제공합니다. 가비지 컬렉터 및 런타임(런타임은 기본 초기화 및 표준 라이브러리 유지 관리로 축소됨)을 사용하지 않고 작업 수를 줄입니다.
Rust의 메모리 관리 방법 포인터를 조작할 때 개발자를 오류로부터 보호하고 문제로부터 보호합니다. 메모리 영역이 해제된 후 액세스, null 포인터 역참조, 버퍼 오버플로 등과 같은 낮은 수준의 메모리 처리로 인해 발생합니다. 라이브러리 배포, 빌드 제공 및 종속성 관리를 위해 프로젝트는 Cargo 패키지 관리자를 개발합니다.
Rust 1.72의 주요 새 기능
Rust 1.72 버전 XNUMX에서 나온 이 새 버전에서는 가장 혁신적인 기능은 의 개선 cfg 속성으로 비활성화된 항목의 유틸리티 조건부 컴파일 다음에 따라 Rust 코드 실행을 활성화할 수 있습니다. 상자의 특정 기능이 지원되는지 또는 특정 플랫폼에서 실행되는지 여부.
이전에는 cfg를 통해 비활성화된 항목이 표시되지 않았습니다. 컴파일러의 경우에는 변경되었지만 이제는 변경되었습니다. 이제 컴파일러는 요소 이름 및 cfg 조건을 포함한 중요한 정보를 보존합니다.. 이를 통해 컴파일러는 특정 상자 기능을 활성화해야 하기 때문에 기능을 사용할 수 없음을 강조하는 등 흥미로운 피드백을 제공할 수 있습니다. 이는 개발자에게 더 명확한 지침을 제공하고 더 효율적인 코딩 경험을 촉진합니다. 예를 들어 상자의 특정 기능 속성이 비활성화되어 일부 기능을 사용할 수 없다는 것을 이해할 수 있습니다.
Rust 1.72의 새 버전에서 눈에 띄는 또 다른 변경 사항은 다음과 같습니다. 상수 표현식의 평가 시간 제한이 제거되었습니다. 이전에는 컴파일 시간 루프를 피하기 위해 Rust는 상수 평가 중에 실행될 수 있는 최대 표현식 수를 제한했습니다.
이 기능은 준수하지 않는 코드를 컴파일할 때 오류를 발생시켰습니다. 제한 사항에 따라 새 버전에서는 엄격한 제한을 대체하기로 결정되었습니다 장기간의 지속적인 계산에 대해 알려주는 경고 화면이 있습니다. const_eval_long_running 린트 검사도 루프를 감지하기 위해 기본적으로 적용됩니다.
이 외에도 주의할 점은 Clippy 목록이 개선되었습니다. 많은 Clippy 검사가 Rustc 컴파일러로 이동되었기 때문에:
- undropped_manually_drops: 거부 수준으로 변경되었습니다. ManuallyDrop을 처리할 때 내부 값은 자동으로 삭제되지 않습니다. std::mem::drop을 호출해도 아무런 효과가 없습니다. 대신 이 Lint는 이제 ManuallyDrop::into_inner를 기본 옵션으로 사용하도록 제안합니다.
- valid_utf8_in_unchecked: 거부 수준 및 경고 수준으로 이름이 변경되었습니다. invalid_from_utf8_unchecked invalid_from_utf8. std::str::from_utf8_unchecked 및 std::str::from_utf8_unchecked_mut가 잘못된 UTF-8 리터럴과 함께 사용되는 인스턴스를 식별합니다. 이러한 사용은 보안 전제 조건을 위반하며 정의되지 않은 동작으로 이어집니다. 이 보풀은 이제 엄격히 금지됩니다.
- valid_nan_comparisons: f32::NAN 또는 f64::NAN을 피연산자로 포함하는 비교를 식별합니다. NaN에는 의미 있는 비교가 부족하기 때문에
- 잘못된_참조_캐스팅: 내부 가변성을 활용하지 않고 &T가 &mut T가 되는 경우를 강조합니다. 이러한 작업은 참조 사용 여부에 관계없이 즉각적이고 정의되지 않은 동작을 초래합니다.
의 눈에 띄는 다른 변화 새 버전 :
- 안정화된 메서드 및 특성 구현을 포함하여 API의 새로운 부분이 안정 범주로 이동되었습니다.
- 상수 대신 모든 컨텍스트에서 사용할 가능성을 결정하는 "const" 속성은 함수에서 사용됩니다.
- loongarch64-unknown-none* 플랫폼에 대한 세 번째 수준 지원이 구현되었습니다. 세 번째 수준에는 기본 지원이 포함되지만 자동화된 테스트, 공식 빌드 게시 및 코드 컴파일 가능성 확인은 포함되지 않습니다.
- Rust 1.76의 향후 릴리스에서는 Windows 7, 8 및 8.1 플랫폼에 대한 지원을 중단하고 Windows 10을 컴파일러 및 빌드 목적 모두를 위한 최소 버전으로 만들 계획입니다.
낮잠 그것에 대해 더 알고 싶은 관심, 당신은에서 세부 사항을 확인할 수 있습니다 다음 링크.
마지막으로 하시는 분들을 위해 이전 버전의 Rust에서 업그레이드하는 데 관심이 있습니다. Rustup을 통해 설치하면 다음과 같이 Rust 1.72.0의 새 버전을 얻을 수 있습니다.
rustup update stable