From: matz@... (Yukihiro Matsumoto) Date: 2003-04-03T22:08:13+09:00 Subject: [ruby-list:37514] Re: Tmpfile.new がデフォルトで/tmpを利用すること まつもと ゆきひろです In message "[ruby-list:37509] Re: Tmpfile.new がデフォルトで/tmpを利用すること" on 03/04/03, Siena. / SHINAGAWA, Norihide writes: |あたしは、この件があって tempfile.rb を見るまでは Tempfile は |デフォルトの動作で環境依存しないで動くと思ってしまっていました。 |理由を推測すると、一時ファイルの作成はどのプラットフォームでも |一般的に行なわれる事である、Tempfile が標準添付で手軽に使える、 |リファレンスマニュアルにも特に断り書きがない、という辺りでしょうか。 |で、'/tmp' の縛りがある事に気付いた時は考えの至らなさに愕然と ^^; DOSISHでも動くTempfileの挙動を定義してくださるのでもかまいま せんが。^^;;; 私には知識がなくてできそうにないけど。 |で、その [ruby-list:37479] と重複しますが、こういう勘違い・ |理解不足は生じやすく、不注意に Tempfile を使うとこぞって環境依存に |なるというのは、やはり何とかならないものかと思ってしまいます。 |Ruby が完全なプラットフォーム中立を謳っていないとはいえです。 | |望ましくはないけれども環境依存せずにとりあえず動くというものにして、 |* $SAFE > 0 の時は作業ディレクトリを明示的に | 指定する事が望ましいとマニュアルに書いておく |* Ruby -w で、$SAFE > 0 かつ作業ディレクトリの指定を | 省略した場合、環境によっては動かない可能性を警告する |などで、望ましいやり方へ誘導するというのが良さそうに感じます。 マニュアルの文案を募集します。 |「別の枠組み」とは関係ないのですが、別の所でもらった意見に |「make 時に /tmp 相当を指定できるようにするのは?」というのがありました。 |この場合、tempfile.rb そのものを書き換えて導入するとか、 |Tempfile が rbconfig.rb に書かれたものを参照するとかになりそうです。 |rbconfig.rb の信頼性も [ruby-list:37503] と同様、なのでしょう。 それだとRubyインタプリタがtmpdirを決めることになりますよね。 でも、アプリケーションごとに(とくにDOSISH環境では)tmpdirは違っ たりするんじゃないでしょうか。 まつもと ゆきひろ /:|)