[#45910] [ruby-trunk - Bug #6694][Open] Thread.new without block. — "ko1 (Koichi Sasada)" <redmine@...>

24 messages 2012/07/04

[#45913] [ruby-trunk - Bug #6698][Open] MacOSXではDir.globが返すファイル名の内容はUTF8-MACですがencodingがUTF-8になっている — "imkira (Mario Freitas)" <imkira@...>

10 messages 2012/07/04

[#45933] [ruby-trunk - Bug #6716][Open] FileUtils.mv でリンク先がないシンボリックリンクファイルを指定すると ENOENT エラーになる — "tommy (Masahiro Tomita)" <tommy@...>

8 messages 2012/07/10

[#45976] [ruby-trunk - Bug #6756][Open] FileUtils.rm_rf がアクセス権のない空ディレクトリを削除しない — "fumiyas (Fumiyasu SATOH)" <fumiyas@...>

9 messages 2012/07/20

[#46012] [ruby-trunk - Feature #6812][Open] Refactor gc.c — "authorNari (Narihiro Nakamura)" <authorNari@...>

13 messages 2012/07/30

[ruby-dev:45883] [ruby-trunk - Feature #2674][Feedback] RubyVM::InstructionSequence to accept IOs

From: "mame (Yusuke Endoh)" <mame@...>
Date: 2012-07-01 01:04:27 UTC
List: ruby-dev #45883
Issue #2674 has been updated by mame (Yusuke Endoh).

Status changed from Assigned to Feedback

パッチ募集中だそうです。

-- 
Yusuke Endoh <[email protected]
----------------------------------------
Feature #2674: RubyVM::InstructionSequence to accept IOs
https://bugs.ruby-lang.org/issues/2674#change-27642

Author: shyouhei (Shyouhei Urabe)
Status: Feedback
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: YARV
Target version: 2.0.0


=begin
 RipperはRipper#initializeでIOを受け付けますが、ISeqはそうはなっていません。
 非対称なのでISeqもIOを受け付けるようにするのはどうでしょうか。
 
 Signed-off-by: Urabe, Shyuohei <[email protected]>
 ---
  iseq.c |    6 +++++-
  1 files changed, 5 insertions(+), 1 deletions(-)
 
 diff --git a/iseq.c b/iseq.c
 index 3c957c7..2d86f5d 100644
 --- a/iseq.c
 +++ b/iseq.c
 @@ -538,10 +538,14 @@ rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE line, VALUE opt)
      rb_compile_option_t option;
      const char *fn = StringValueCStr(file);
      int ln = NUM2INT(line);
 -    NODE *node = parse_string(StringValue(src), fn, ln);
 +    NODE *node;
      rb_thread_t *th = GET_THREAD();
      make_compile_option(&option, opt);
  
 +    if (rb_obj_respond_to(src, rb_intern("gets"), 0))
 +        node = rb_compile_file(fn, src, ln);
 +    else
 +        node = rb_compile_string(fn, StringValue(src), ln);
      if (th->base_block && th->base_block->iseq) {
  	return rb_iseq_new_with_opt(node, th->base_block->iseq->name,
  				    file, line, th->base_block->iseq->self,
 -- 1.6.0.4
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next