1752078840
2025-07-09 14:40:00
Rustプログラミング言語は、所有権ベースのタイプシステムでよく知られています。これは、メモリの安全性やデータレースの自由などの強力な保証を提供します。ただし、Rustも提供します 安全でない 安全性が自動的に保証されておらず、代わりにプログラマーが手動で支持する必要があるハッチを脱出します。これにより緊張が生じます。一方で、コンパイラは、強力な陽性の最適化のロックを解除するために、タイプシステム、特にポインターのエイリアシングに関連する型システムの強力な保証を活用したいと考えています。一方、これらの最適化は、「ひどく動作した」安全でないコードによって簡単に無効になります。このような最適化の正しさを確保するために、安全でないコードが「ひどく動作」しているものを明確に定義することが必要になります。以前の作業では、 外部ページ 積み重ねられた借入 この目標を達成する一連のルールを定義しました。ただし、積み重ねられた借入は、実際の安全でないRustコードで一般的であることが判明するいくつかのパターンを除外しており、最近導入されたRust Rourd Rourd Checkerの高度な機能を説明していません。
これらの問題を解決するために、私たちは提示します 木の借入。名前が示すように、ツリーの借入は、積み上げられた借入の中心にあるスタックを木に置き換えることによって定義されます。これは、前述の制限を克服します。最も広く使用されている30 000の錆びた木箱での評価は、積み重ねられた借入よりも54%少ないテストケースを拒否することを示しています。さらに、(ROCQで)積み重ねられた借入の最適化のほとんどを保持しており、重要な新しいもの、特に読み上げられた並べ替えを可能にすることを証明します。
#ツリーの借入 #プログラミング言語財団ラボ