[#36647] test/pathname/test_pathname.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
[#36649] Embedding struct RArray — "Yugui (Yuki Sonoda)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
[#36672] [Bug #616] instance_eval and Module#to_s — Shyouhei Urabe <redmine@...>
Bug #616: instance_eval and Module#to_s
[#36678] test_process.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
まつもと ゆきひろです
高野です。
[#36685] [Bug #621] When to call Class#inherited — Shyouhei Urabe <redmine@...>
Bug #621: When to call Class#inherited
[#36691] [Bug:1.9] ArgumentError on "%c" % 0x80 — Tanaka Akira <akr@...>
"%c" % 0x80 が例外になります。
[#36697] [Bug:1.9] rb_io_fread does not work — "Yusuke ENDOH" <mame@...>
遠藤です。
[#36704] Assertion failed in array.c on mswin32 Ruby (trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#36705] ruby1.9 on hppa build problem — Hideki Yamane <henrich@...>
こんにちは、
[#36706] Ruby on Vista — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36716] [Bug #644] compile error on win32ole with VC++6 — Usaku NAKAMURA <redmine@...>
Bug #644: compile error on win32ole with VC++6
[#36739] r19786 (trunk): * lib/delegate.rb (Delegator): simplified and restored 1.8 — Fujioka <fuj@...>
藤岡です。
[#36750] [Bug #650] Marshal.load raises RegexpError — Shyouhei Urabe <redmine@...>
Bug #650: Marshal.load raises RegexpError
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
もとの正規表現にバグがあるのは認めますが、それに巻き込まれてでかいPStore
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
けいじゅ@いしつかです.
卜部です。
けいじゅ@いしつかです.
卜部です。
[#36753] [Bug #651] Regexp.new returns strange regexp object — Shyouhei Urabe <redmine@...>
Bug #651: Regexp.new returns strange regexp object
まつもと ゆきひろです
[#36764] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...>
まつもとさん、こんばんは。
まつもと ゆきひろです
まつもとさん、こんにちは。
In article <6.0.0.20.2.20081019182600.08d852a8@localhost>,
ファイル名は以前の議論の結果「変換可能でしたら変換、そうでなかったら
In article <6.0.0.20.2.20081021093404.0ada7bf8@localhost>,
At 10:47 08/10/21, Tanaka Akira wrote:
[#36768] Re: [ruby-cvs:27042] Ruby:r19824 (trunk): * array.c: recycle shared-array when it isn't referenced. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ワナベです。
[#36774] ConverterNotFoundError while making Ruby in Windows(trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
In article <20081020173718.7FAD.C613B076@garbagecollect.jp>,
[#36789] [Bug #660] 数字を3桁ずつコンマで区切るsprintf書式指定 — "rubikitch ." <redmine@...>
Bug #660: 数字を3桁ずつコンマで区切るsprintf書式指定
[#36801] Marshal.load can't take GZipReader — arton <artonx@...>
artonです。
まつもと ゆきひろです
[#36813] Re: Ruby:r19863 (trunk): * regparse.c (parse_char_class): CCV_SB is only for single — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36866] [Bug #676] 引数の有無によるIO#readの挙動の違い — _ wanabe <redmine@...>
Bug #676: 引数の有無によるIO#readの挙動の違い
[#36877] [Feature #679] Integer#to_s(:step=>3, :sep=>",") が欲しい — Martin Dürst <redmine@...>
チケット #679 が更新されました。 (by Martin Dürst)
[#36909] trunk SEGV nkf? — "WATANABE Tetsuya" <tetsuya.watanabe@...>
渡辺哲也です。
[#36914] prefix math_* funcs — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
> complex.cで使うために、いくつか数学関数からstaticがとれたようですが、
[#36915] prefix signal_buff — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
[#36917] VMまわりのシンボルにも「rb_」を付けてほしい — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。連投ですみません。
[#36932] [Bug #6] sprintf() of %f on Windows(MSVCRT) — _ wanabe <redmine@...>
チケット #6 が更新されました。 (by _ wanabe)
[#36937] initial value of $. — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#36993] [Bug:1.9] removing Exception#initialize dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
[#37007] [Bug:1.9] 1+1+1+...+1 dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
はじめまして、よしおかと申します。
遠藤です。
こんにちは、なかむら(う)です。
[ruby-dev:36917] VMまわりのシンボルにも「rb_」を付けてほしい
斎藤と申します。連投ですみません。
さて、rb_等のprefixが付いていないシンボルに対して何らかの措置をとるパッチを
一通り投げました。それらは以下のようにしてチェックしたものです。
$ nm -gD libruby-trunk.so|grep -v ' U '|
> egrep -iv ' (rb|ruby|Init|onig|st|_)'| awk '{print $3}'
この中でdln_*とnode*は何か理由がある、と聞いたので放置しておくとすると、
残りはYARVで導入されたもののようです。それらを以下に挙げます。
insn_make_insn_table
insns_name_array
iseq_build_from_ary
iseq_compile
iseq_load
iseq_translate_threaded_code
vm_collect_local_variables_in_heap
vm_cref
vm_debug_print_post
vm_debug_print_pre
vm_debug_print_register
vm_env_dump_raw
vm_get_insns_address_table
vm_get_ruby_level_caller_cfp
vm_get_ruby_level_next_cfp
vm_get_sourceline
vm_invoke_proc
vm_jump_tag_but_local_jump
vm_localjump_error
vm_make_env_object
vm_make_jump_tag_but_local_jump
vm_make_proc
vm_proc_dump_raw
vm_stack_dump_each
vm_stack_dump_raw
vm_stack_dump_raw_current
vm_stack_dump_th
vm_stack_to_heap
vm_thread_dump_regs
vm_thread_dump_state
これらにも rb_ を付けていただけないでしょうか。
以前ささださんにお会いした時、少しお話ししたのですが、これらは外部で利用して
ほしくないために、意図的に rb_ を省いているということでした。
しかし、「外部から使われたくない」ことと、rb_ がない(これまでの規約に反する)
ことで「名前がかぶる」という可能性は、分けて考える必要があるのではないで
しょうか。
たとえば皆さんご存知のとおり、VMという言葉は言語処理系に限らず、様々なレベルで
使われる言葉です。よってvm_というprefixだけだと、どんなVMか分かりません。
RubyVMを組み込んだ他の種類のVMが実装されれば、当然vm_というprefixが使われる
可能性があるでしょう。もっと言えば、Virtual Machineかどうかさえ分かりません。
そういった可能性を考えず rb_ を省くのはあまりうれしくない、と自分は考えます。
「これはRubyである」というrb_ prefixを付けた上でならば、名前がぶつかれば
「rb_はRubyで使われるから避けてね」と説明できるでしょうし、C APIの作者からも
わかりやすくなると思います。
それで、外部からの利用を意図しているAPIと区別がつかずに困る、というのであれば、
それはドキュメントで明示するのが本筋ではないかと思うのですが、どうでしょうか。
以下、単なるアイデアの羅列ですが:
もしシンボル名だけで、APIとして利用できる・して欲しくないの区別をつけるならば、
「rb_」の前に「_」を付けて「_rb_foo()」にする、というのはどうでしょうか。
いかにも触りたくない感じになります。
もう一つ、librubyの外からは見えないが、.cの間では見える、という設定法があります。
GNU拡張になりますが、 __attribute__((visibility("hidden"))) というのを
設定すると、外部からは見えなくなるそうです。(これは Binary Hacks #29の
受け売りです...)
この方法の問題は、GCC3以降しか使えないという点です。GCC 2.xやMS Cでは見えて
しまう(と思う)ので、環境によって見えたり見えなかったりするシンボルができる、
ということになります。
もっとも、上記二つのアイデアを合わせればもっとそれらしくなるかもしれません。
つまり、使って欲しくない関数はGCC3以降では見えず、その他のコンパイラで
コンパイルした場合でも _rb_ 接頭辞によって、「使ってほしくない」という
メッセージが送れる、といった具合です。
羅列終わり。
今のところこのメールで触れた以外には、prefixを付けて回る必要はなさそうです。
つい先ほど作業を始めましたが、去年よりもだいぶ減っていたので非常に助かりました。
意識してコミットしていただき、本当にありがとうございました。
ーー
斎藤ただし