Rust 1.100.0, never 타입과 사용자 지정 메모리 할당기 정식 도입

Rust 1.100.0은 오랫동안 실험 단계에 머물던 never 타입과 사용자 지정 메모리 할당기를 정식 기능으로 내놓았어요. 패키지 관리자 Cargo도 쓰지 않는 의존성 경고와 '갓 나온 버전 늦게 받기' 설정을 갖춰, 코드 표현력과 공급망 안전을 함께 챙길 수 있게 됐어요.

주요 기술적 특징

  • never 타입 정식화: !로 쓰는 never 타입(절대 값을 돌려주지 않는 상황을 나타내는 타입)이 안정 버전에 들어왔어요. 이에 맞춰 기존 Infallible은 !의 별칭이 됐고, 타입 추론의 기본 대체값도 모든 에디션에서 !로 바뀌었어요.
  • 사용자 지정 할당기: 메모리를 어디서 어떻게 빌려 올지 정하는 할당기를 직접 고를 수 있게 됐어요. Allocator 트레이트와 Vec::new_in, Box::new_in 같은 함수가 정식 API가 됐어요. 그동안은 외부 라이브러리로 흉내 내야 했던 기능이에요.
  • Cargo의 공급망 안전 장치: Cargo에 자체 린트(코드 점검 경고) 체계가 생겼고, 쓰지 않는 의존성을 알려 주는 검사가 기본 포함됐어요. 또 '의존성 쿨다운' 설정을 켜면 너무 최근에 올라온 버전은 해석 과정에서 건너뛰어요. 이미 잠금 파일에 있는 버전은 예외예요.
  • 그 밖의 변화: bool::toggle, str::trim_prefix, Box::map 등 작은 편의 함수가 여럿 추가됐어요. 웹어셈블리 대상 wasm32-wasip3는 Tier 2 지원으로 올라갔어요.
  • 라이선스: Rust는 MIT와 Apache 2.0 이중 라이선스로 배포되고, 일부는 BSD 계열 라이선스를 따라요.

개발자들의 반응

  • 할당기 정식화를 반기는 실사용 후기가 있었어요. 한 개발자는 최근 아레나 할당기의 메모리 누수를 고치느라 Vec::new_in을 쓰려고 별도 라이브러리를 들였는데, 이제 표준에서 바로 쓸 수 있다고 했어요.
  • 쓰지 않는 의존성 경고에 대해선 실제 경고 출력을 붙이며 반가워하는 반응이 나왔어요.
  • 불만도 있었어요. 한 개발자는 컴파일이 여전히 느리고, 매일 90GB에 이르는 임시 파일을 지워야 한다고 토로했어요.
  • 안정적인 ABI(컴파일된 코드끼리 맞물리는 규약)가 아직 없다는 아쉬움도 나왔어요. 소스 코드가 아닌 형태로 라이브러리를 배포하려면 꼭 필요하다는 주장과, 앞으로의 호환성을 묶어 버리는 부담이 크다는 반론이 맞섰어요.
  • never 타입과 짝을 이루는 Result::into_ok 등이 왜 함께 나오지 않았는지 묻는 댓글도 있었어요. 다른 개발자는 마감일을 조금 놓쳐 다음 버전에 들어간다고 답했어요.

기술적 의미와 한계

이번 버전은 시스템 프로그래밍처럼 메모리를 세밀하게 다루는 개발자에게 특히 쓸모 있어 보여요. 할당기를 표준 방식으로 바꿀 수 있어 외부 라이브러리 의존을 줄일 수 있기 때문이에요. Cargo의 쿨다운 설정은 갓 올라온 악성 버전을 피하려는 팀에게 의미가 있다고 봐요.

다만 업그레이드 전에 호환성 항목을 확인해야 해요. never 타입 대체값 변경, box 패턴 문법 제거, if let에서 클로저가 변수를 더 정확히 붙잡는 변화 등은 새 컴파일 오류를 낼 수 있다고 명시돼 있어요. 빌드 중간 산출물의 폴더 구조도 바뀌어, 그 경로에 기대던 도구는 손봐야 할 수 있어요. 컴파일 속도 개선 여부는 이번 자료로는 확인되지 않아요.

저장소

https://github.com/rust-lang/rust

评论

趋势

중국산 배지 표고버섯 563t 국내산 둔갑, 업체 5곳 적발
삼양식품, 베트남 박닌성에 공장 짓는다…2,186억 원 투…
미국 관제 통신 장애로 전국 이륙 중단, 인천발 미주 노…
올림픽공원 핸드볼경기장 점거, 자진 철거 기한 11월 19…
한화오션 RSU 지급 소송, 3차 변론 뒤에도 결론 없이 내…
1GB 메모리 TV 박스·옛 아이패드에서 160억 매개변수 언…
구독료 없이 자수기를 돌리는 무료 편집기 ZigZag
AWS 계정 없이 내 컴퓨터에서 돌리는 AWS 공식 에뮬레이…
Rust 1.100.0, never 타입과 사용자 지정 메모리 할당기…