Issue #7047 has been reported by authorNari (Narihiro Nakamura). ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-09-22 07:57
on 2012-09-25 09:59
Issue #7047 has been updated by ko1 (Koichi Sasada). Description updated ささだです. 1点気になるのが, rb_newobj_with(VALUE, enum ruby_value_type) が flag 取らなくてもいいんかな,という点でして.いや,NEWOBJ_WITH() だと,問答無用で enum ruby_value_type じゃなくて,flag を渡しているようなんですが.その辺が整理出来ていない気がしています. rb_newobj_with(klass, enum ruby_value_type type, VALUE flag) なんてのもアリなのかとか, rb_newobj_with(klass, VALUE flag) もアリかもとか. _with という名前は,私もあまり妙案が無い感じです.with 何? という気もします.rb_typed_newobj だと誤解を生みそうですね.なんか無いかな. ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-29732 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-09-26 15:23
Issue #7047 has been updated by authorNari (Narihiro Nakamura). レビューありがとうございます。 rb_newobj_with(klass, VALUE flags) でパッチを修正しました。 https://github.com/authorNari/ruby/compare/trunk..... flagsさえ引数にとればenum ruby_value_type相当の情報は取れるはずなので問 題ないのかなと思います。 また名前の候補を考えたり、教えていただいたりしていました。 * rb_type_new (青木さん案) * rb_typed_newobj (ささださん案) * rb_newobj_with_setup * rb_new_segregated_obj * rb_new_distinct_obj * rb_new_typed_obj * rb_gc_newobj いまいちこれといった名前が思いつかないですね。 (rb_newobjがやっぱり適切な名前なんですよねぇ…) 私は rb_new_typed_obj あたりが好きです。 ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-29755 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-10-01 00:58
(2012/09/26 22:22), authorNari (Narihiro Nakamura) wrote:
> rb_newobj_with(klass, VALUE flags) でパッチを修正しました。
flags を取るようにしたので,rb_newobj_with_flags でどうでしょうか.
何かしら,マクロで隠蔽して,実質こいつは呼ばない,となると,長い名前でも
良いのではないか,と思うのですが(別に長くてもいいか?).
on 2012-10-01 06:16
Issue #7047 has been updated by authorNari (Narihiro Nakamura). ko1 (Koichi Sasada) wrote: > (2012/09/26 22:22), authorNari (Narihiro Nakamura) wrote: > > rb_newobj_with(klass, VALUE flags) でパッチを修正しました。 > > flags を取るようにしたので,rb_newobj_with_flags でどうでしょうか. > 何かしら,マクロで隠蔽して,実質こいつは呼ばない,となると,長い名前でも > 良いのではないか,と思うのですが(別に長くてもいいか?). > まつもとさんに直接意見を聞いてみました。 with_flagsでもいいと思うんだけど、引数としてはflagsもklassも、どちらも 何かしらのタイプを受け取るので、 rb_newobj_of(xxx) がいいのじゃないか、 とおっしゃってました。new obj of class みたいな意味で。 * rb_newobj_of(klass, VALUE flags) * NEWOBJ_OF(obj,type,klass,flags) 反対意見がでなければこれで進めようかと思うのですが、いかがでしょうか? # あとでruby-coreの方にも聞いてみます。 ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-29816 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-10-01 06:28
(2012/10/01 13:15), authorNari (Narihiro Nakamura) wrote: > with_flagsでもいいと思うんだけど、引数としてはflagsもklassも、どちらも > 何かしらのタイプを受け取るので、 rb_newobj_of(xxx) がいいのじゃないか、 > とおっしゃってました。new obj of class みたいな意味で。 > > * rb_newobj_of(klass, VALUE flags) > * NEWOBJ_OF(obj,type,klass,flags) +1 短くて判りやすいですね. 今後は ..._of パターンが増えるんでしょうか. しかし,やはりバリエーションを増やそうとすると困るな.
on 2012-10-02 15:30
Issue #7047 has been updated by kou (Kouhei Sutou). rb_obj_new()はどうでしょうか。 rb_obj_がprefixのみなさんとまぎらわしいかしら。 ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-29943 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-10-03 05:18
Issue #7047 has been updated by authorNari (Narihiro Nakamura). kou (Kouhei Sutou) wrote: > rb_obj_new()はどうでしょうか。 > rb_obj_がprefixのみなさんとまぎらわしいかしら。 ありがとうございます。 でも、おっしゃる通りすこし紛らわしい気がしますねぇ。 ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-29961 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
on 2012-10-16 08:59
Issue #7047 has been updated by authorNari (Narihiro Nakamura). Category set to core Assignee set to authorNari (Narihiro Nakamura) ---------------------------------------- Feature #7047: Add new C API: rb_newobj_with https://bugs.ruby-lang.org/issues/7047#change-30834 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: 2.0.0 nariです。 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと ころに割り当てるなどの特別な処理がやりづらくなっています。 そこで以下のC APIの追加を提案します。 * VALUE rb_newobj_with(VALUE, enum ruby_value_type); * #define NEWOBJ_WITH(obj,type,klass,flags) ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します が、将来的には消したいですね。ただ2.0では難しそうです。 パッチは以下のとおりです。 https://github.com/authorNari/ruby/compare/trunk..... また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 えてもらえると嬉しいです。
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.