ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with
@ 2012-09-22  5:57 authorNari (Narihiro Nakamura)
  2012-09-25  7:59 ` [ruby-dev:46160] [ruby-trunk - Feature #7047] " ko1 (Koichi Sasada)
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-09-22  5:57 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46160] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
@ 2012-09-25  7:59 ` ko1 (Koichi Sasada)
  2012-09-26 13:22 ` [ruby-dev:46166] " authorNari (Narihiro Nakamura)
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: ko1 (Koichi Sasada) @ 2012-09-25  7:59 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46166] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
  2012-09-25  7:59 ` [ruby-dev:46160] [ruby-trunk - Feature #7047] " ko1 (Koichi Sasada)
@ 2012-09-26 13:22 ` authorNari (Narihiro Nakamura)
  2012-09-30 22:56   ` [ruby-dev:46180] " SASADA Koichi
  2012-10-01  4:15 ` [ruby-dev:46181] " authorNari (Narihiro Nakamura)
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-09-26 13:22 UTC (permalink / raw
  To: ruby developers list


Issue #7047 has been updated by authorNari (Narihiro Nakamura).


レビューありがとうございます。
rb_newobj_with(klass, VALUE flags) でパッチを修正しました。

https://github.com/authorNari/ruby/compare/trunk...rb_newobj2

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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46180] Re: [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-26 13:22 ` [ruby-dev:46166] " authorNari (Narihiro Nakamura)
@ 2012-09-30 22:56   ` SASADA Koichi
  0 siblings, 0 replies; 9+ messages in thread
From: SASADA Koichi @ 2012-09-30 22:56 UTC (permalink / raw
  To: ruby developers list

(2012/09/26 22:22), authorNari (Narihiro Nakamura) wrote:
> rb_newobj_with(klass, VALUE flags) でパッチを修正しました。

flags を取るようにしたので,rb_newobj_with_flags でどうでしょうか.
何かしら,マクロで隠蔽して,実質こいつは呼ばない,となると,長い名前でも
良いのではないか,と思うのですが(別に長くてもいいか?).

-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46181] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
  2012-09-25  7:59 ` [ruby-dev:46160] [ruby-trunk - Feature #7047] " ko1 (Koichi Sasada)
  2012-09-26 13:22 ` [ruby-dev:46166] " authorNari (Narihiro Nakamura)
@ 2012-10-01  4:15 ` authorNari (Narihiro Nakamura)
  2012-10-01  4:27   ` [ruby-dev:46182] " SASADA Koichi
  2012-10-02 13:29 ` [ruby-dev:46192] " kou (Kouhei Sutou)
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-10-01  4:15 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46182] Re: [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-10-01  4:15 ` [ruby-dev:46181] " authorNari (Narihiro Nakamura)
@ 2012-10-01  4:27   ` SASADA Koichi
  0 siblings, 0 replies; 9+ messages in thread
From: SASADA Koichi @ 2012-10-01  4:27 UTC (permalink / raw
  To: ruby developers list

(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 パターンが増えるんでしょうか.
しかし,やはりバリエーションを増やそうとすると困るな.

-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46192] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
                   ` (2 preceding siblings ...)
  2012-10-01  4:15 ` [ruby-dev:46181] " authorNari (Narihiro Nakamura)
@ 2012-10-02 13:29 ` kou (Kouhei Sutou)
  2012-10-03  3:18 ` [ruby-dev:46194] " authorNari (Narihiro Nakamura)
  2012-10-16  6:58 ` [ruby-dev:46220] " authorNari (Narihiro Nakamura)
  5 siblings, 0 replies; 9+ messages in thread
From: kou (Kouhei Sutou) @ 2012-10-02 13:29 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46194] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
                   ` (3 preceding siblings ...)
  2012-10-02 13:29 ` [ruby-dev:46192] " kou (Kouhei Sutou)
@ 2012-10-03  3:18 ` authorNari (Narihiro Nakamura)
  2012-10-16  6:58 ` [ruby-dev:46220] " authorNari (Narihiro Nakamura)
  5 siblings, 0 replies; 9+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-10-03  3:18 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-dev:46220] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with
  2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
                   ` (4 preceding siblings ...)
  2012-10-03  3:18 ` [ruby-dev:46194] " authorNari (Narihiro Nakamura)
@ 2012-10-16  6:58 ` authorNari (Narihiro Nakamura)
  5 siblings, 0 replies; 9+ messages in thread
From: authorNari (Narihiro Nakamura) @ 2012-10-16  6:58 UTC (permalink / raw
  To: ruby developers list


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_newobj2.patch

また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教
えてもらえると嬉しいです。



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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-10-16  6:49 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-22  5:57 [ruby-dev:46159] [ruby-trunk - Feature #7047][Open] Add new C API: rb_newobj_with authorNari (Narihiro Nakamura)
2012-09-25  7:59 ` [ruby-dev:46160] [ruby-trunk - Feature #7047] " ko1 (Koichi Sasada)
2012-09-26 13:22 ` [ruby-dev:46166] " authorNari (Narihiro Nakamura)
2012-09-30 22:56   ` [ruby-dev:46180] " SASADA Koichi
2012-10-01  4:15 ` [ruby-dev:46181] " authorNari (Narihiro Nakamura)
2012-10-01  4:27   ` [ruby-dev:46182] " SASADA Koichi
2012-10-02 13:29 ` [ruby-dev:46192] " kou (Kouhei Sutou)
2012-10-03  3:18 ` [ruby-dev:46194] " authorNari (Narihiro Nakamura)
2012-10-16  6:58 ` [ruby-dev:46220] " authorNari (Narihiro Nakamura)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).