ruby-trunk-changes r58238 - r58240

今日はなんと IO#pread と IO#pwrite メソッドの追加がありました。

normal: r58238 2017-04-03 05:16:02 +0900

r58233 で when 節の文字列リテラルによる Range オブジェクトの最適化で生成した range オブジェクトの mark をコンパイル時のみ行なう配列に入れておくようにしています。compile 後は ISeq の operand に入るからそっちで mark されるってことですかね。 [ruby-core:80536] [Feature #13355]

svn: r58239 2017-04-03 05:16:02 +0900

version.h の日付更新。

nobu: r58240 2017-04-03 09:10:50 +0900

IO#pread と IO#pwrite メソッドを追加しています。 これはオフセット指定つきの pread(2), pwrite(2) システムコールに対応したメソッドで、ほぼそのままのインタフェースを提供しています。つまり sysread/syswrite と同様に読み書きしようとしたサイズが全て読み書きできるとは限らず、指定したサイズよりも小さい文字列を返したり、渡した文字列よりも小さい書き込みバイト数を返すことがありそうです。チケットをみるとずいぶん昔から提案はあったみたいですね。 [ruby-core:79290] [Feature #4532]