Project

General

Profile

Actions

Feature #2674

closed

RubyVM::InstructionSequence to accept IOs

Added by shyouhei (Shyouhei Urabe) about 14 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
[ruby-dev:40202]

Description

=begin
RipperはRipper#initializeでIOを受け付けますが、ISeqはそうはなっていません。
非対称なのでISeqもIOを受け付けるようにするのはどうでしょうか。

Signed-off-by: Urabe, Shyuohei

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


Files

iseq_io.diff (748 Bytes) iseq_io.diff IOを受け付けるIseq Glass_saga (Masaki Matsushita), 07/01/2012 10:57 PM
ripper_with_T_FILE.diff (1.26 KB) ripper_with_T_FILE.diff T_FILEの方に倒したripper Glass_saga (Masaki Matsushita), 07/01/2012 10:57 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0