Avatar
omochimetaru 5/4/2024 4:10 PM
https://t.co/HDfWBl6B8G
Rustの標準ライブラリにはunsafe関数に関する多くの事前条件チェックが実装されているが、標準ライブラリは通常リリースモードで配布されるので、ほとんどの開発者はこのチェックを全く実行できていなかった。
4:10 PM
このアサーションをコード生成まで遅延させることで、ユーザー自身のデバッグ設定に基づいて実行できるようになった
例えば、slice::from_raw_parts は非ヌルでアライメントされたポインタを要求する。アライメントされていないポインタはUBをもたらし偶然不幸にも「動作してしまう」かもしれない
4:10 PM
この話題、Swiftにも全く同じ課題がありそうで気になった。
4:11 PM
stdlibの中にdebug/release気にしたいろんな安全機構があるけど、みんなが使ってるのはreleaseだから。
4:12 PM
そもそもメジャーな環境のiOSではstdlibがprebuiltな時点で詰んどるけど