langsmith:163
From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Thu, 30 Dec 2004 00:18:05 +0900
Subject: [langsmith:163] Re: continuationの実装について
まつもと ゆきひろです In message "Re: [langsmith:162] Re: continuationの実装について" on Wed, 29 Dec 2004 23:59:46 +0900, Tsuguo MOGAMI <mogami brain.riken.go.jp> writes: |まずはこれがありました。 |http://i.loveruby.net/ja/rhg/cd/continuation.html |Rubyでは、VM方式でないけど、スレッドの実装のために、 |実行のコンテキストをセーブできる機能がすでに実装されて |いたからそれを使ったら簡単にできたということですが、 |私の場合はスレッドは実装されていないので真似はできません。 別にスレッドは必須ではありません。要するに * 実行開始時にスタックの開始位置を覚えておく * 継続が欲しいタイミングでスタックの開始位置から現在の先頭 までをヒープにコピー(ここではローカル変数を使ってはいけ ない) * setjmp(3)を呼ぶ これだけです。継続の再開は * ヒープからスタックに書き戻す * longjmp(3)を呼ぶ 手順で行います。継続があればスレッドは自分で実装できます。 |http://members.at.infoseek.co.jp/zzyyb/scm/hack/continuation.html |これは、よく分からなかった。これもスタックフレームのコピーかな? scmも上記の手順で継続を実現しているはずです。 -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
161 2004-12-29 23:25 [mogami brain.riken.g] continuationの実装について 162 2004-12-29 23:59 ┣[mogami brain.riken.g] -> 163 2004-12-30 00:18 ┃┗[matz ruby-lang.org ] 164 2004-12-30 08:36 ┗[shiro lava.net ] 165 2005-01-06 18:55 ┗[mogami brain.riken.g] 166 2005-01-08 07:45 ┗[shiro lava.net ]