unsafeコードなしのガベージコレクション
https://fitzgen.com/2024/02/06/safe-gc.html概要
Trace トレイトと Gc<T> ラッパーを使い、unsafe ブロックを一切排除した Rust 向け GC の紹介です。
まとめ
- Gc<T> ラッパーと derive マクロにより、unsafe なしで安全にトレース参照を実現
- GC に起因する未定義動作を根本から排除 — システムレベルの GC 実装では珍しいアプローチ
- 一方、Gc<> は型をアロケータと密結合させるため、導入や乗り換えのコストが高い
ディスカッション
-
@the-smug-one: Gc<> ラッパーが型を特定のアロケータに縛り付けるため、GC を試すだけでも型の書き直しが必要になると指摘
trying out a GC is a pain, as you’re stuck first doing the rewrite of your types
- @foota: C FFI の unsafe コード除去を検討する中でこのライブラリを発見したが、最終的にはポインタマッピングを選択したとのこと
- 主な論点: Gc<> の人間工学的なコストが安全性の保証に見合うかどうか。
| Type | Link |
| Added | Apr 22, 2026 |
| Modified | Apr 22, 2026 |