[#30679] IO.popen doesn't fail for non-existent command — nobu@...
なかだです。
4 messages
2007/04/03
[#30681] IO.popen("-") with no fork — Nobuyoshi Nakada <nobu@...>
なかだです。
13 messages
2007/04/03
[#30685] Re: IO.popen("-") with no fork
— "U.Nakamura" <usa@...>
2007/04/04
こんにちは、なかむら(う)です。
[#30686] Re: IO.popen("-") with no fork
— Yukihiro Matsumoto <matz@...>
2007/04/04
Hi,
[#30687] Re: IO.popen("-") with no fork
— Nobuyoshi Nakada <nobu@...>
2007/04/04
なかだです。
[#30688] Re: IO.popen("-") with no fork
— Yukihiro Matsumoto <matz@...>
2007/04/04
まつもと ゆきひろです
[#30722] JSON ライブラリの取り込み — "NARUSE, Yui" <naruse@...>
naruseです。
20 messages
2007/04/21
[#30723] Re: JSON ライブラリの取り込み
— "Akinori MUSHA" <knu@...>
2007/04/21
At Sat, 21 Apr 2007 12:27:47 +0900,
[#30724] Re: JSON ライブラリの取り込み
— "NAKAMURA, Hiroshi" <nakahiro@...>
2007/04/21
-----BEGIN PGP SIGNED MESSAGE-----
[#30729] Re: Ruby 1.9: multiple splats on rvalues in parallel assignment — SASADA Koichi <ko1@...>
ささだです.
6 messages
2007/04/26
[#30730] Re: Ruby 1.9: multiple splats on rvalues in parallel assignment
— Yukihiro Matsumoto <matz@...>
2007/04/26
まつもと ゆきひろです
[ruby-dev:30705] ruby-1.8.6, $SAFE=4, Proc#call
From:
Masatoshi SEKI <m_seki@...>
Date:
2007-04-09 15:27:15 UTC
List:
ruby-dev #30705
咳といいます。
一度、まつもとさんには私信で質問したのですが、せっかくなのでMLにも投げます。
Proc#callとyieldで、Procが実行される際の$SAFEが異なります。
まつもとさんはProc#callの挙動が意図したものである、とのことでした。(あってますか?>まつもとさん)
yieldの挙動をProc#callと揃える予定はありますか?
スレッドを作って$SAFE = 4でなにかを実行するのにyieldをよく使っていたのですが、
yieldもProc#callの挙動に揃えるとすると、ちょっと面倒です。
---
$SAFE=4のスレッドからProc#callした場合、Procを作ったコンテキストのsafe_levelで
Procが実行されるようです。yieldする場合には、safe_levelが引き継がれます。
これは意図した動作でしょうか?
なんとなくバグな気がします。
例えばこんなスクリプトで実験できます。
four_procの方は$SAFE=4のはずなのに標準出力に印字できます。
## safe.rb
def four_proc(&block)
Thread.new { $SAFE = 4; block.call }.join
end
def four_yield
Thread.new { $SAFE = 4; yield }.join
end
four_proc { p :proc }
four_yield { p :yield }
## 実行結果
cinq:~/develop/labo/ruby/misc mas$ ruby safe.rb
:proc
safe.rb:10:in `write': Insecure operation `write' at level 4 (SecurityError)
from safe.rb:6:in `join'
from safe.rb:6:in `four_yield'
from safe.rb:10