takiuchi (Genki Takiuchi)
- Login: takiuchi
- Registered on: 07/20/2011
- Last sign in: 04/20/2023
Issues
| open | closed | Total | |
|---|---|---|---|
| Assigned issues | 0 | 0 | 0 |
| Reported issues | 0 | 7 | 7 |
Activity
03/12/2022
-
01:47 AM Ruby Feature #18626 (Rejected): 注釈付き代入演算子 ()= の提案
- 型制約を実現するために以下のような注釈付き代入演算子を提案します。
```
class Object
def self.()= (what)
what.is_a? self or raise TypeRestrictionError
end
end
age (Fixnum) = 30
def add(a(Numeric), b(Numeric))
a + b
end
add 1, "2" # raises TypeR...
01/09/2018
-
05:18 AM Ruby Bug #14341 (Closed): do/end blocks after arrow operator don't work with ensure/rescue/else
- New feature #12906 seems lacks a bit of implementation.
Example:
~~~
-> do
rescue
end
# => syntax error, unexpected keyword_rescue
lambda do
rescue
end
# => it's ok!
~~~
This behavior looks inconsistent.
I think all...
11/22/2013
-
03:34 PM Ruby Bug #8730: "rescue Exception" rescues Timeout::ExitException
- そもそも rescue Exceptionを使うのはまずいという意見が出ていますが、
例えば以下ようにフィルタ的に全てのexceptionを補足してそのままraiseするような
利用をしたい場合があり、実際に使われています。
```ruby
begin
do_something
rescue Exception => e
log_exception e
raise e
end
```
libraryコードの中でこのようなコードが...
08/31/2013
-
10:45 PM Ruby Bug #8730: "rescue Exception" rescues Timeout::ExitException
- すでに修正されているようなので蛇足気味ですが、
githubなどで公開されているソースコードを調べますと、
`rescue Exception` を使っているライブラリコードは広く散見され、
書籍などで紹介されている workaround はほとんど浸透していないようです。
この問題の厄介なところは、自分自身が書いたコードだけでなく、利用するライブラリの
コード中にも `rescue Exception` をしている箇所があると、大外に掛けた time... -
10:30 PM Ruby Bug #8845: Timeout::ExitException が意図せずに rescue される事がある
- すみません、重複ですね。
自分で削除する権限が無いので、削除いただけるとありがたいです。 -
01:33 PM Ruby Bug #8845 (Rejected): Timeout::ExitException が意図せずに rescue される事がある
- timeout.rb の実装が内部的に利用している Timeout::ExitException の無名派生クラスが、
意図しないタイミングで rescue され、timeout処理が実行されないケースがある。
以下の例では、Timeout::Error が発生しない。
timeout 1 do
begin
sleep 10
rescue Exception
end
end -
05:30 PM Ruby Feature #8849 (Rejected): Thread#throw
- Thread#raise と同様に、Threadのcontextでthrowする。
t = Thread.current
catch :foo do
Thread.new do
t.throw :foo
end
end
ユースケースとしては、Issue #8845 を修正するために raise の代わりに throw を使うことが考えられる。 -
05:18 PM Ruby Feature #8779: Binding#yourself
- Ruby開発社会議20130831での議論の結果、
Binding#receiver
ということに。 -
01:29 PM Ruby Feature #8726: Class#source_location
- 了解です。Timeoutのバグは別なissueにしますね。
08/25/2013
-
11:24 PM Ruby Feature #8726: Class#source_location
- Timeoutのバグの本質は、timeoutブロック内で rescue Exception した場合に、timeoutの実装が
内部的に使っている Timeout::ExitExceptionの無名派生クラスを拾ってしまうことのようです。
Timeoutの例は一例でして、Class#source_location があれば無名クラスがどこで定義されたものか
デバッグするのが容易になる、というのが趣旨でした。