Valen, 여러 수정 참조를 허용하는 borrow checker 공개
Valen 개발자 Evan Ovadia가 같은 객체를 수정하는 참조 여러 개를 허용하는 새 borrow checker를 소개했다. 참조가 가리키는 경로와 함수의 수정 범위를 추적해 해제 후 사용을 컴파일 단계에서 막는 방식이다. 설명한 기능은 현재 컴파일러에서 작동하지만, 자동 역참조 등 예제의 일부 문법은 11월 도입 예정이다.
Nick Smith의 Group Borrowing 제안을 기반으로, 단일 소유권 구조에서 객체와 참조의 경로를 추적한다.
객체가 파괴되거나 함수가 특정 경로를 수정하면 해당 범위 안을 가리키는 참조를 더 이상 사용할 수 없도록 검사한다.
같은 객체를 가리키는 여러 지역 참조를 통해 수정하거나, 객체 전체와 내부 요소를 함께 인자로 전달하는 패턴을 지원한다고 설명했다.
현재 예제를 실행하려면 역참조를 명시하고 my_vec.data[0]처럼 배열에 직접 접근하며 매개변수 타입을 적어야 한다.
실행 비용과 Rust 대비 속도 설명은 개발자의 주장이며, 본문에도 Rust 코드를 재구성해 같은 속도를 낼 수 있다는 조건이 제시됐다.
객체 전체와 내부 요소를 함께 함수에 넘기는 코드에서 참조를 반복해서 찾거나 데이터 구조를 평탄화할 필요를 줄이는 접근이다.
원문
- Valen's Memory Safety: A New Kind of Borrow CheckingHacker News · 원문 2026-10-11