Improve this page
Github へのログインが必要です。
簡単な修正は、ここから fork、オンライン編集、pull request ができます。
大きな修正については、
通常の clone で行って下さい。
Page wiki
関連するWikiページを参照・編集
English
このページの英語版(原文)
Memory Safe D 仕様
プログラムの メモリ安全性 (Memory Safety) の定義は、 そのプログラムがメモリを破壊することが不可能であることです。 したがって、 Safe D のプログラミング言語としての機能は、 メモリ破壊を決して引き起こさないと保証されたものだけから成り立っています。
Safe D は、モジュール単位で、 コンパイラの -safe スイッチによって有効にすることができます。
禁止される項目
- インラインアセンブラ
- const や immutable 属性をキャストで取り除くこと
- shared 属性をキャストで取り除くこと
- ポインタ型から別のポインタ型へのキャスト。
ただし以下を除く:
- void* へのキャストは許可
- 数値型へのポインタから、 同じまたは小さいサイズの別の数値型ポインタへのキャストは許可
- 非ポインタ型からポインタ型へのキャスト
Safe なモジュールから、システムモジュールを import してその public なインターフェイスを使用することは可能です。
制限
Safe D は、コードに可搬性があることも、 健全なプログラミング習慣に従っていることも、バイト順に影響されないことも、 その他のバグを引き起こさないことも、保証しません。 メモリ破壊の可能性のみに焦点を当てた仕様となっています。