撒き戻すんだけれど、この例では撒き戻してはいけない。撒き戻しを抑止する方法なんだが、コンパイル中に適切にその命令でのスタックの深さを測らないといけない。するような命令だと、きちんとできるようにするためには工夫が必要。オペランド融合、命令融合したときにはもう目が当てられないわけです。さぁどうしてくれる(知るかよ)。使ったことがあります。2005)継続はスタック全セーブ/リストアなんでしたっけ。Gaucheはフレームをひとつづつセーブして、継続起動時はヒープのフレームを直接参照するので、関数の頭でのspと途中の時点でのspとの間隔はコンパイル時に決まりません。この例のようなケースでは引数式の評価の前に継続フレームのpushを入れています。メジャーになればいいと思うのですが(誰か記事書かないかな...)。2005)そうか、Schemeでは例外の起動は継続の呼び出しになるんですね。YARVスタック双方)。Rubyでの例外発生とRubyでの継続実行のコストは違いがあるべきだと思っています(前者が圧倒的に高速でないといけない)。デザイン的には同じことを違う方法を使って行うので気持ち悪いんですが。comment?_6(Tue)YARV、それなりに対応できているような気がするので評価などしてもらえるとうれしいです。スレッドとかシグナルとか、まだいい加減だけど。全部書き換えないと駄目かなぁ。終わらせたりするんだけれど、はて2回目をやるべきか。印象としては手をつなぐゼルダの伝説。連載って毎号続けないといけないんだっけ。うちの先生への応募が増えてるな。連載の話を出したのは、るびまを念頭に考えてます。びまの連載記事は、毎号出すから連載って意味じゃなくて、一度で終わらないとか、続き物という意味で連載にしてるんですが、さて毎号出せなければ、出せなかった分は「休載」ということになるんだろうか、と思って。ちなみに、やーまには先月出さなかったけど休載とは思ってない人。いや、次回予告を裏切ったので、休載かなぁ。罪悪感は全然無いんだけど。変わるのは気持ち悪いなあ(そういうもんだけど)。2005)らしいっすね(攻略ページで見た奴)。2005)モーニングを購読してますが毎号載ってる話は少ないですね。人気が出てくるとスグに隔週になってます。endendが動かない。endrescueend今度はこれが動かない。理由はわかったんだけど、どうしたもんかな。raiseとコンパイルされる。捉えられる(ややこしい)ことになる。こいつをなんとかするにはコピーする場所を変えるか、キャッチするアドレスをいじるかしないといけないのだけれど、さてどうしたものかな。部の中から脱出するのを真面目に考えてないからいけないんだけれども。raiseどう考えても案1が綺麗だよなぁ。テーブルいじるの面倒だし。この領域はスルー、って教えてあげるのはどうだろうか。ネストしてたりとかbreakが何個もあったりすると泥沼。いうわけで、案1、コンパイラで頑張る、を選択。対応にコンパイラの行数が。endendは、次のようになる。eliminationするとこうなる。高速化したんだけれど、他に高速化しないといけないような、よく使うものってあるかな。フレームワークみたいなものは作ったんだから、どうしても、ってところをちょいちょい追加できるってことでよしとしとこう(拡張ライブラリのようになっている)。レベルで書くことは不可能なのでやらない。visibilityなんだが...。現状のRubyでも十分通用する話。なんというか、いつも戸惑う。説明などで、とくに戸惑う。Rubyだからなぁ)例外について保護された部分(冗長)なんというのがいいんでしょうかねぇ。爆笑してしまったので自分もやってみた。なったかと思えばまた復活する。あわないだろう、と思った。出来ないことに気づく。2005)私もそう呼びますかね。comment?_4(Sun)なんでRubyはwhile文ひとつとってもとても難しいかね。endendを実現することあたりが難しい。気にしてないというか、「とくに」ってことは無いと思うよ。書いたほうが速くなった素晴らしいじゃないですか。無い暗黙の裡に読めばいいじゃない。大きくなると、処理系の起動が遅くなっちゃうかな。2005)やっぱそうなりますかねぇ。「すでに読んだ状態」のヒープイメージを作っておいてmmap。コンパイル結果のVMコードを、Cの定数として配列に入れとく。AOTでCにコンパイルしてリンク。comment?_2(Fri)今日はいいことがあった。