2007-12-30
Ruby 1.9.0のバイトコードをいじり倒す(その5)
|現在分かっているInstructionSequcenceの問題点です。いろいろ、追ってみたのですが分からないです。
prog = <<EOS [ ["abc", 123], ["def", 999] ].each do |x| p x end EOS print "--- with InstructionSequence\n" iseq = VM::InstructionSequence.compile(prog) VM::InstructionSequence.load(iseq.to_a).eval print "--- without InstructionSequence\n" eval(prog)
with/withoutで結果が同じになる必要があるのですが、InstructionSequenceでは第1要素だけしか取り出せないです。
c:\cygwin\usr\local\bin\ruby test3.rb --- with InstructionSequence "abc" "def" --- without InstructionSequence ["abc", 123] ["def", 999]
yarv-devかruby-devに報告した方がいいのかなー?でも、自家製パッチを当てた上のバグだから、報告するのもおかしいよなー。時間があるときにまた追ってみます。この問題があるから、実用で使えないのですよね。
- 5 http://d.hatena.ne.jp/keyworddiary/Scheme
- 2 http://d.hatena.ne.jp/keyworddiary/Ruby
- 2 http://reader.livedoor.com/reader/
- 1 http://d.hatena.ne.jp/keyword/最適化
- 1 http://d.hatena.ne.jp/keyword/Ruby
- 1 http://d.hatena.ne.jp/keyword/Scheme
- 1 http://d.hatena.ne.jp/keyword/YARV
- 1 http://d.hatena.ne.jp/negation/edit?date=20071231
- 1 http://d.hatena.ne.jp/shimobayashi/20071230
- 1 http://i-know.jp/deriwosk/