[#47562] [Backport 200 - Backport #8716][Open] segmation fault 正規表現で大量のグループを利用時 — "taka-yoshi (taka-yoshi taka)" <smokeonthewater222@...>

15 messages 2013/08/01

[#47569] [ruby-trunk - Feature #8726][Open] Class#source_location — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

14 messages 2013/08/03

[ruby-dev:47577] Re: [ruby-trunk - Feature #8696] Process.setproctitle

From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2013-08-04 01:01:31 UTC
List: ruby-dev #47577
2013/7/30 knu (Akinori MUSHA) <knu@ruby-lang.org>:
>
> Issue #8696 has been updated by knu (Akinori MUSHA).
>
>
> getproctitle() というAPIはないので、 Process.setproctitle() でいいんじゃないかと思います。
> $0はベタに Process.argv0 でどうでしょう。argv0という名前はTclに先例があります。

現在すでに $PROGRAM_NAME があるわけですが、argv0はそれより分かりやすさが一段落ちる感じ。
C言語は当然知ってるよねという前提はいいのかなあ

getproctitle()というAPIはないというご指摘ですが、Rubyで最後に設定した文字列を覚えておくだけなので
あまり障害になるとは考えていません。
すごい長い文字列を与えた時にsetproctitle()側で勝手に切り詰める仕様があったりすると不一致になりますが
実用上は問題にならないでしょう。それともFreeBSDのような頭にprefix勝手につけるようなsetproctitle()実装を
心配している?

> $0=でsetproctitle()が呼ばれるのはPerlから引き継いだ仕様だと思いますが、argv[0]を初期値とする$0のsetterがsetproctitle()であるというのは実は対称性がありません。(setproctitle()で設定される文字列の初期値はコマンドライン全体なので)

これはargv0がよろしくないという理由の1つになっていると思います。

なかださんの指摘しているClass.nameとの衝突は説得力があったので、Process.title か
Process.program_name のどちらかがいいのではないでしょうか。

In This Thread