drop
目的
Vecや stream handle のような所有資源 を持 つ型 が、寿命 終了時 に実行 すべき後始末 を.nepl上 で宣言 できるようにします。- compiler が
特定型 の free/close をハードコード せず、trait capability と impl定義 から auto drop を構成 できるようにします。
注意
Dropは copy/clone capability ではありません。所有権 を持 つ値 にだけ impl する想定 です。dropは同 じ値 に 2回 以上 実行 してはいけません。
Drop
目的
値 が生存域 を抜 けるときに必要 な free / close / release を trait method として宣言 します。
注意
- destructor は
値渡 しではなく参照 で受 けます。raw wasm経路 でも複合値 を ABI にそのまま流 さず、drop glue が local / stack slot の番地 を渡 せるようにするためです。 明示呼 びと auto drop の両方 が走 ると double free になるため、compiler側 の move/drop規則 と整合 している必要 があります。