[#37959] [Bug:trunk] I can modify literals — Yusuke ENDOH <mame@...>

遠藤です。

13 messages 2009/02/10

[#38005] Is URI.decode() broken? — MOROHASHI Kyosuke <moronatural@...>

もろはしです。いつもお世話になっております。

39 messages 2009/02/14
[#38006] Re: Is URI.decode() broken? — Nobuyoshi Nakada <nobu@...> 2009/02/14

なかだです。

[#38009] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/14

成瀬です、

[#38016] Re: Is URI.decode() broken? — Fujioka <fuj@...> 2009/02/15

xibbarこと藤岡です。

[#38017] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/15

成瀬です。

[#38040] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/02/17

NARUSE, Yui さんは書きました:

[#38124] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/03/03

成瀬です。

[#39214] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/09/02

(2009年03月03日 22:45), NARUSE, Yui さんは書きました:

[#39218] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/09/02

成瀬です。

[#39236] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/05

In article <4A9E44DD.6050706@airemix.jp>,

[#39242] Re: Is URI.decode() broken? — KOSAKI Motohiro <kosaki.motohiro@...> 2009/09/07

小崎@思いつきを適当に書いてみるテスト

[#39246] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/07

In article <20090907091830.2C7A.A69D9226@jp.fujitsu.com>,

[#38096] 多重代入やメソッド引数の展開でto_aが呼ばれます — nagachika <nagachika00@...>

nagachika と申します。

10 messages 2009/02/26

[#38098] ブロック引数と括弧・引数なしsuper — Shugo Maeda <shugo@...>

前田です。

12 messages 2009/02/27

[ruby-dev:37984] Re: [Bug #1150] calling instance_eval in extended library cause exception

From: SASADA Koichi <ko1@...>
Date: 2009-02-12 21:31:54 UTC
List: ruby-dev #37984
 ささだです.

Akio Tajima wrote::
> 拡張ライブラリ内のメソッドでinstance_evalを呼び出すと、Can't eval on top of Fiber or Thread (RuntimeError)になります。

 ご指摘ありがとうございます.バグでした.

Index: vm_core.h
===================================================================
--- vm_core.h	(リビジョン 22272)
+++ vm_core.h	(作業コピー)
@@ -593,10 +593,14 @@ int ruby_thread_has_gvl_p(void);
 VALUE rb_make_backtrace(void);
 typedef int rb_backtrace_iter_func(void *, const char *, int, const
char *);
 VALUE rb_backtrace_each(rb_backtrace_iter_func *iter, void *arg);
+rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(rb_thread_t *th,
rb_control_frame_t *cfp);

 NOINLINE(void rb_gc_save_machine_context(rb_thread_t *));

Index: vm_eval.c
===================================================================
--- vm_eval.c	(リビジョン 22272)
+++ vm_eval.c	(作業コピー)
@@ -706,7 +706,7 @@ eval_string_with_cref(VALUE self, VALUE
 	    th->base_block = &env->block;
 	}
 	else {
-	    rb_control_frame_t *cfp = vm_get_ruby_level_caller_cfp(th, th->cfp);
+	    rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_cfp(th, th->cfp);

 	    if (cfp != 0) {
 		block = *RUBY_VM_GET_BLOCK_PTR_IN_CFP(cfp);
Index: proc.c
===================================================================
--- proc.c	(リビジョン 22272)
+++ proc.c	(作業コピー)
@@ -274,8 +274,6 @@ binding_clone(VALUE self)
     return bindval;
 }

-rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(rb_thread_t *th,
rb_control_frame_t *cfp);
-
 VALUE
 rb_binding_new(void)
 {



 ちなみに,本当に eval がやりたいんですかね.binding を考えなければ,

    rb_iseq_eval(rb_iseq_compile(VALUE src, VALUE file, VALUE line))

なんて手があります.が,まだこれは裏技(intern.h にないという意味)だ
な.1.9.2 までに整理しよう.これをいっぺんにやる API もほしいんですが,
名前が決められなくて.

-- 
// SASADA Koichi at atdot dot net

In This Thread

Prev Next