고성능 링커(linker)인 'Mold(몰드)'가 3.0.0 버전을 기점으로 C++에서 Rust(러스트) 언어로 전면 재작성되어 공개되었습니다. 이번 릴리스는 기존 C++ 버전의 마지막이었던 2.42.1 버전을 완벽히 대체하도록 설계되었으며, 명령행 옵션과 지원 아키텍처는 물론 링크 성능까지 기존과 동일한 수준을 유지하는 것이 특징입니다. 개발팀은 Rust 전환을 통해 메모리 안전성을 강화하고, 향후 리눅스(Linux) 배포판의 기본 링커로 채택될 기반을 마련하는 것을 목표로 하고 있습니다.
Mold 3.0.0은 기존 버전과의 호환성을 최우선으로 고려했습니다. 광범위한 테스트 스위트 실행, 다양한 실제 작업 부하 테스트, 젠투(Gentoo) 패키지 전체 빌드 등을 통해 회귀(regression) 문제가 없음을 검증했습니다. 특히, 손상된 입력 파일 처리 시 C++ 버전에서 발생할 수 있었던 범위 밖 메모리 읽기(out-of-bounds read)로 인한 세그멘테이션 오류(segmentation fault) 문제를 Rust의 경계 검사(bounds checking)를 통해 패닉(panic)으로 안전하게 중단되도록 개선했습니다. 빌드 시스템은 기존 CMake에서 Cargo로 전환되었으며, Rust 1.95 이상과 C 컴파일러가 필요합니다. 또한, GNU ld와의 호환성 격차를 줄이고 링커 스크립트 지원을 강화하는 것이 3.x 버전대의 주요 목표 중 하나입니다.
이번 Rust 재작성은 Mold 프로젝트에 여러 중요한 의미를 부여합니다. 첫째, Rust 언어의 강점인 메모리 안전성을 확보함으로써 링커의 안정성과 신뢰성을 크게 향상시켰습니다. 이는 개발자들이 복잡한 동시성(concurrency) 코드를 더욱 안심하고 작성할 수 있게 하여, 향후 성능 최적화와 기능 확장에 긍정적인 영향을 미칠 것입니다. 둘째, 리눅스 배포판의 기본 링커 채택이라는 장기 목표 달성에 한 걸음 더 다가섰습니다. 안정성과 호환성, 그리고 지속적인 개선 가능성은 오픈소스 생태계에서 핵심적인 요소이기 때문입니다. 마지막으로, C++에서 Rust로의 성공적인 대규모 전환 사례를 제시하며, 기존 시스템 소프트웨어 개발에서 Rust의 활용 가능성을 다시 한번 입증하는 계기가 될 것으로 보입니다.