나이틀리 Rust에서 구현된 꼬리 호출 인터프리터
(mattkeeter.com)
최근 나이틀리 Rust에 추가된 `become` 키워드를 활용하여 Uxn CPU를 위한 고성능 꼬리 호출(tail-call) 인터프리터가 개발되었습니다. 이 새로운 구현은 기존 Rust 버전은 물론, 직접 작성한 ARM64 어셈블리 코드보다도 뛰어난 성능을 보이며, 어셈블리의 안전성 문제를 해결하는 대안을 제시합니다.
이 글의 핵심 포인트
- 1나이틀리 Rust에 최근 추가된 `become` 키워드를 활용하여 Uxn CPU를 위한 고성능 꼬리 호출 인터프리터가 구현됨.
- 2새로운 Rust 구현은 기존 Rust 버전 대비 성능이 우수하며, 심지어 직접 작성한 ARM64 어셈블리 코드보다도 빠른 결과를 보여줌.
- 3기존 어셈블리 구현은 약 2000줄의 코드를 요구하며 안전성 문제(예: out-of-bounds write)가 있었으나, Rust 접근 방식은 이를 해결함.