[#45311] 開発会議 — SASADA Koichi <ko1@...>
笹田です.
10 messages
2012/03/06
[#45312] Re: 開発会議
— "ayumu.aizawa@..." <ayumu.aizawa@...>
2012/03/06
US=1B$B$K$$$k$N$G!"=1B(BSkype=1B$B$H$+=1B(BFaceTime=1B$B$G;22C$7$?$$$G$9!#=1B=
[#45341] 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...>
ささだです.
28 messages
2012/03/11
[#45816] Re: 非同期割り込みに対する対処案(日本語版)
— SASADA Koichi <ko1@...>
2012/06/25
ささだです.
[#45817] Re: 非同期割り込みに対する対処案(日本語版)
— Tanaka Akira <akr@...>
2012/06/25
2012年6月25日 18:26 SASADA Koichi <ko1@atdot.net>:
[#45819] Re: 非同期割り込みに対する対処案(日本語版)
— SASADA Koichi <ko1@...>
2012/06/25
ささだです.
[#45820] Re: 非同期割り込みに対する対処案(日本語版)
— Tanaka Akira <akr@...>
2012/06/25
2012年6月25日 19:39 SASADA Koichi <ko1@atdot.net>:
[#45827] Re: 非同期割り込みに対する対処案(日本語版)
— SASADA Koichi <ko1@...>
2012/06/25
(2012/06/25 20:32), Tanaka Akira wrote:
[#45835] Re: 非同期割り込みに対する対処案(日本語版)
— KOSAKI Motohiro <kosaki.motohiro@...>
2012/06/25
> の3つになるような気がしていますので,ある例外がこれら 3 つのどの状態に
[#45841] Re: 非同期割り込みに対する対処案(日本語版)
— Tanaka Akira <akr@...>
2012/06/25
2012年6月26日 3:40 SASADA Koichi <ko1@atdot.net>:
[#45844] Re: 非同期割り込みに対する対処案(日本語版)
— SASADA Koichi <ko1@...>
2012/06/25
(2012/06/26 5:07), Tanaka Akira wrote:
[#45871] Re: 非同期割り込みに対する対処案(日本語版)
— Tanaka Akira <akr@...>
2012/06/29
2012年6月26日 5:15 SASADA Koichi <ko1@atdot.net>:
[#45372] Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
14 messages
2012/03/16
[#45376] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— Yukihiro Matsumoto <matz@...>
2012/03/17
まつもと ゆきひろです
[#45377] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— keiju@... (石塚圭樹)
2012/03/17
けいじゅ@いしつかです.
[#45381] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— Yukihiro Matsumoto <matz@...>
2012/03/17
まつもと ゆきひろです
[#45399] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— keiju@... (石塚圭樹)
2012/03/18
けいじゅ@いしつかです.
[#45401] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— Tanaka Akira <akr@...>
2012/03/19
2012年3月19日5:54 石塚圭樹 <keiju@ishitsuka.com>:
[#45405] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて
— keiju@... (石塚圭樹)
2012/03/19
けいじゅ@いしつかです.
[#45451] [ruby-trunk - Feature #6218][Open] struct.cのrb_struct_s_members_m()について — "Glass_saga (Masaki Matsushita)" <glass.saga@...>
6 messages
2012/03/28
[ruby-dev:45430] [ruby-trunk - Bug #6195] String#[] に逆順の Range を渡した場合の挙動
From:
"shugo (Shugo Maeda)" <redmine@...>
Date:
2012-03-23 14:38:39 UTC
List:
ruby-dev #45430
Issue #6195 has been updated by shugo (Shugo Maeda).
前田です。
mrkn (Kenta Murata) wrote:
> 以下のように String#[] に対して、範囲の開始インデックスが文字列の長さ以下の値である逆順の Range (beg > end) を渡した場合に空文字列が返ります。
>
> "1"[1..0] #=> ""
> "1"[1..-1] #=> ""
> "123"[2..1] #=> ""
> "123"[2..-2] #=> ""
>
> 一方、範囲の開始インデックスが文字列の長さより大きい場合は nil が返ります。
>
> "1"[2..0] #=> nil
> "1"[2..-1] #=> nil
> "123"[4..1] #=> nil
> "123"[4..-2] #=> nil
>
> この挙動の違いは、rb_range_beg_len の実装に起因しています。
> 文字列のインデックスが昇順のみである仕様を考慮すると、上記前者の場合も nil が返るべきじゃないかと思います。
私も最初そう思ったのですが、PythonやJavaScriptではどちらの場合も空文字列を返すようです。
# 以下の例はどちらもRubyのs[x...y]相当(s[x..y]ではない)です。
defiant:ruby$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "abc"[1:2]
'b'
>>> "abc"[1:1]
''
>>> "abc"[1:0]
''
>>> "abc"[4:0]
''
defiant:ruby$ js
> "abc".slice(1,2)
'b'
> "abc".slice(1,1)
''
> "abc".slice(1,0)
''
> "abc".slice(4,0)
''
これはこれで合理的だと思いますがどうでしょうか。
また、Net::FTP#parse227が今の挙動に依存しているようです。
def parse227(resp) # :nodoc:
if resp[0, 3] != "227"
raise FTPReplyError, resp
end
left = resp.index("(")
right = resp.index(")")
if left == nil or right == nil
raise FTPProtoError, resp
end
numbers = resp[left + 1 .. right - 1].split(",")
if numbers.length != 6
raise FTPProtoError, resp
end
host = numbers[0, 4].join(".")
port = (numbers[4].to_i << 8) + numbers[5].to_i
return host, port
end
respが"227 )("のようなケースでも今のString#[]ではresp[left + 1 .. right - 1]
が""になるのでsplitできますが、nilを返すようになるとnil.split(",")でNoMethodError
になってしまいます。
このコードがひどいと言われればそれまでですが、若気の至りということで。
# たぶん当時のftplib.pyのパクリなんだろうなあ。
----------------------------------------
Bug #6195: String#[] に逆順の Range を渡した場合の挙動
https://bugs.ruby-lang.org/issues/6195#change-25071
Author: mrkn (Kenta Murata)
Status: Open
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-03-23 trunk 35121) [x86_64-darwin11.3.0]
以下のように String#[] に対して、範囲の開始インデックスが文字列の長さ以下の値である逆順の Range (beg > end) を渡した場合に空文字列が返ります。
"1"[1..0] #=> ""
"1"[1..-1] #=> ""
"123"[2..1] #=> ""
"123"[2..-2] #=> ""
一方、範囲の開始インデックスが文字列の長さより大きい場合は nil が返ります。
"1"[2..0] #=> nil
"1"[2..-1] #=> nil
"123"[4..1] #=> nil
"123"[4..-2] #=> nil
この挙動の違いは、rb_range_beg_len の実装に起因しています。
文字列のインデックスが昇順のみである仕様を考慮すると、上記前者の場合も nil が返るべきじゃないかと思います。
--
http://bugs.ruby-lang.org/