[#46309] [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — "usa (Usaku NAKAMURA)" <usa@...>

13 messages 2012/10/29
[#46310] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — Tanaka Akira <akr@...> 2012/10/29

2012年10月29日 10:31 usa (Usaku NAKAMURA) <[email protected]>:

[#46366] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — "U.Nakamura" <usa@...> 2012/11/02

こんにちは、なかむら(う)です。

[#46375] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — KOSAKI Motohiro <kosaki.motohiro@...> 2012/11/02

>> とくに指定しなければ、default external は locale から設定されるので、

[ruby-dev:46181] [ruby-trunk - Feature #7047] Add new C API: rb_newobj_with

From: "authorNari (Narihiro Nakamura)" <authorNari@...>
Date: 2012-10-01 04:15:49 UTC
List: ruby-dev #46181
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/

In This Thread