非同期Rustによる新しいSchemeコンパイラ:scheme-rsの紹介

2025-02-18

Matthew Plantは、非同期Rustの力を利用して、遅いコンパイル時間と難しいデバッグ体験に対処する、彼のScheme実装であるscheme-rsを紹介します。scheme-rsはR6RS標準を使用し、非同期Rustとのシームレスな相互運用性を提供することで、コードの結合とデバッグを容易にします。また、作者は、scheme-rsを基盤とした将来の言語Goukiを構想しており、SchemeのマクロシステムとRustの型システムを組み合わせることで、より強力なプログラミング体験を提供します。開発中であるものの、scheme-rsはコア機能を備えており、作者はビルトイン関数の追加とコンパイルパフォーマンスの最適化を計画しています。

続きを読む
開発

並行サイクルコレクション:RustによるSchemeのガベージコレクションスマートポインタ

2024-12-13

この記事では、Schemeインタプリタ内のガベージコレクションスマートポインタ(Gc)のための、Rustでの並行サイクルコレクタの実装について詳しく説明します。GcはArc>と同様に機能し、内部的な可変性、クローン作成、スレッド間の送受信をサポートします。この記事では、セマフォと読み書きロックを使用してスレッドセーフな内部的可変性を実現するGcの実装、およびBaconとRajanのアルゴリズムに基づく並行サイクルコレクションの実装の詳細について徹底的に説明します。これには、Traceトレイト、サイクル検出、並行な変更を処理するためのメカニズムが含まれます。

続きを読む