NEPLg2 Standard Library - drop - drop
Web Playground
Web Playground

drop

所有権しょゆうけんわるときの後始末あとしまつ capability

目的もくてき

  • 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 規則きそく整合せいごうしている必要ひつようがあります。