From: Akinori MUSHA Date: 2003-11-06T04:45:07+09:00 Subject: [ruby-list:38764] Re: ruby-dev summary 21730-21822 /draft  英語の話題はおもしろいので乗ってしまう…。 At Thu, 6 Nov 2003 03:37:18 +0900, Hiroharu Sugawara wrote: > found that the safe interpreter of Tcl/Tk cannot refer to > its operating (running) environment such as ENV, OS, and libraries. > > 実行環境って、上の言い方でいいのかな? "the running environment" で通じます。 > > such as env, OS, library and so on. And he asked > > whether we should forbid to use ENV, RUBY_PLATFORM > > and $LOAD_PATH when $SAFE=4. > > so he proposed to restrict the accesses to ENV, RUBY_PLATFORM, > and $LOAD_PATH env-vars when $SAFE=4  propose to do だと、提案よりは意図を示すニュアンスになる気が します。部分的には propose doing や suggest doing と書き換えれば いいですが、その提案の内容が restrict というちょっと強くて堅い 事柄なので、 that 句で so he proposed that access to .... env-vars be restricted when $SAFE=4. とした方が適当かも。あと、この「アクセス」はさほど回数を念頭に 置いて言っているものでもないので、数えない方が自然と思います。 > > $SAFE >= 4 でのアクセスが禁止される. > > > > We cannot refer/modify $LOAD_PATH if $SAFE>=4. > > $LOAD_PATH cannot be referred nor modified when $SAFE >= 4. > > ifは仮想なので、単なる条件なら when の方がいいと思います。 referred -> referenced / referred to / read (out) でしょうか。 (reference の動詞用法は辞書にはないけど、この世界ではよく使われる) > > Following new methods are defined. > introduced 頭に The もほしいですね。 > > : ENV.allow_insecure_ref(varname) > > $SAFE >= 4 での環境変数 name の読み出しを許可する. > > Allows to refer VARNAME environment variable for insecure > > programs. > > Enables insecure programs to refer VARNAME env-var. > > プログラム言語の英文教科書が手元にないので、 > refer か refer to かは、わからないです。 > 変数の参照と、変数の値の参照で、言い方が違うと思います。  「〜を参照する」と言うときはいつも refer to でいいと思いますよ。 refer を他動詞で使うときは、目的語には参照する主体が来ますよね。  refer -> refer to / read the value of / reference でどうでしょう。 > > すべての環境変数のデフォルト設定は「読み出し可」である. > > ( $SAFE >= 4 での書き込みは常に例外を発生することに注意.) > > We can refer all environment variables by default, > > for backward compatibility. > > By default, any insecure programs can refer > to all the env-vars for backward compatibilify.  even an insecure program can read ... が元の言いたいことに近い? > > 読み出し禁止に設定した環境変数を $SAFE >= 4 で読み出そうとすると, > > その環境変数が存在しない場合と同様に nil が返る. > > The reference to the deny_insecure_ref'ed env-var when $SAFE>=4 > returns nil as if that to undefined env-vars does.  最初の二つの the は a ですね。最後は as if it were undefined. でしょうか。  というか、それ以下も踏まえてまとめれば、 For insecure programs, deny_insecure_ref'ed env-vars are completely invisible when $SAFE>=4, as if they were not defined. ということ?  で、メソッド名はやはりわかりにくいですね。deny_insecure_ref'ed ってすごい動詞だ。 (^^;  代わりに ENV.restrict(envvar) ENV.derestrict(envvar) ENV.restricted?(envvar) ではどうでしょう。(derestrict は一般的な単語じゃないかも)  あと、リストを得るという機能は、 ENV.select { |var,| ENV.restricted?(var) } ではだめかしら?よく使うのならメソッドにした方がいいでしょうが。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "It seems to me as we make our own few circles 'round the sun We get it backwards and our seven years go by like one"