OCaml의 GC로 Rust의 GC를 수행하는 방법
Meta Garbage Collection: Using OCaml's GC to GC Rust

Soteria Rust는 Rust 프로그램을 검증하는 기호 실행 도구로, Rust의 별칭 모델인 Tree Borrows를 구현했습니다. 최근 N번 반복하는 간단한 루프가 N에 대해 2차 시간이 걸리는 문제를 발견했습니다. 원인은 반복마다 Range 객체에 대한 reborrow가 9개의 노드를 생성하고, 각 노드에 대한 접근이 10번 발생하기 때문이었습니다. 해결책은 OCaml의 가비지 컬렉터를 활용하여 더 이상 도달할 수 없는 트리 노드를 정리하는 '메타 가비지 컬렉션'이었습니다. 약 40줄의 코드로 2차 시간을 선형 시간으로 줄여 최대 10배의 속도 향상을 얻었습니다.
Soteria는 OCaml로 작성되었기 때문에 Tree Borrows 상태의 가비지 컬렉션을 OCaml의 가비지 컬렉터에 위임할 수 있습니다.