[#38647] [Ruby 1.9 - Bug #5130][Open] Thread.pass sticks on OpenBSD — Yui NARUSE <naruse@...>

16 messages 2011/08/01

[#38653] [Ruby 1.9 - Bug #5135][Open] Ruby 1.9.3-preview1 tests fails in Fedora Rawhide — Vit Ondruch <v.ondruch@...>

31 messages 2011/08/01

[#38666] [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK — Yehuda Katz <wycats@...>

61 messages 2011/08/01
[#38667] Re: [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK — Aaron Patterson <aaron@...> 2011/08/01

On Tue, Aug 02, 2011 at 07:35:15AM +0900, Yehuda Katz wrote:

[#38669] Re: [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK — Urabe Shyouhei <shyouhei@...> 2011/08/01

(08/02/2011 07:46 AM), Aaron Patterson wrote:

[#38671] Re: [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK — Eric Wong <normalperson@...> 2011/08/01

Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#38695] [Ruby 1.9 - Bug #5144][Open] Remove GPL file from repository — Vit Ondruch <v.ondruch@...>

17 messages 2011/08/02

[#38706] [Ruby 1.9 - Bug #5147][Open] mkmf should not require static library when ruby is built with --enable-shared — Vit Ondruch <v.ondruch@...>

9 messages 2011/08/02

[#38894] Why Ruby has versioned paths? — V咜 Ondruch <v.ondruch@...>

Hello, could somebody please elaborate about reasons why Ruby uses versioned

9 messages 2011/08/10

[#38972] [Ruby 1.9 - Bug #5193][Open] ruby_thread_data_type linker errors fixed with RUBY_EXTERN — Charlie Savage <cfis@...>

28 messages 2011/08/16

[#38980] :symbol.is_a?(String) — Magnus Holm <judofyr@...>

http://viewsourcecode.org/why/redhanded/inspect/SymbolIs_aString.html

8 messages 2011/08/16

[#39025] [Ruby 1.9 - Feature #5206][Open] ruby -K should warn — Eric Hodel <drbrain@...7.net>

14 messages 2011/08/19

[#39062] Releasing r33028 as Ruby 1.9.3 RC1 — Yugui <yugui@...>

Hi,

17 messages 2011/08/23

[#39093] [Ruby 1.9 - Bug #5227][Open] Float#round fails on corner cases — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/08/24
[#39115] [Ruby 1.9 - Bug #5227][Assigned] Float#round fails on corner cases — Yui NARUSE <naruse@...> 2011/08/26

[#39126] Re: [Ruby 1.9 - Bug #5227][Assigned] Float#round fails on corner cases — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2011/08/26

Hi

[#39120] [Ruby 1.9 - Bug #5233][Open] OpenSSL::SSL::SSLSocket has problems with encodings other than "ascii" — Niklas Baumstark <niklas.baumstark@...>

9 messages 2011/08/26

[#39142] [Ruby 1.9 - Bug #5239][Open] bootstraptest/runner.rb: assert_normal_exit logic broken on Debian/GNU kFreeBSD — Lucas Nussbaum <lucas@...>

11 messages 2011/08/27

[#39162] [Ruby 1.9 - Bug #5244][Open] Continuation causes Bus Error on Debian sparc — Lucas Nussbaum <lucas@...>

29 messages 2011/08/28

[ruby-core:39207] [Ruby 1.9 - Bug #5237] IO.copy_stream calls #read on an object infinitely many times

From: Motohiro KOSAKI <kosaki.motohiro@...>
Date: 2011-08-31 03:48:05 UTC
List: ruby-core #39207
Issue #5237 has been updated by Motohiro KOSAKI.


If you are reading following paragraph, 

> *  At end of file, it returns <code>nil</code> or <code>""</code>
> *  depend on <i>length</i>.
> *  <code><i>ios</i>.read()</code> and
> *  <code><i>ios</i>.read(nil)</code> returns <code>""</code>.
> *  <code><i>ios</i>.read(<i>positive-integer</i>)</code> returns <code>nil</code>.

you have to read following paragraph too, I think.

> *  If <i>length</i> is a positive integer,
> *  it try to read <i>length</i> bytes without any conversion (binary mode).
> *  It returns <code>nil</code> or a string whose length is 1 to <i>length</i> bytes.
> *  <code>nil</code> means it met EOF at beginning.

*AT BEGINNING*

Thus, positive length destination buffer and returning nil are exclusive. Now, I don't think
we need doc fix.

but I'm not talking about a behavior change. I have no strong opinion. It's another story. I'm waiting akr-san's response.


----------------------------------------
Bug #5237: IO.copy_stream calls #read on an object infinitely many times
http://redmine.ruby-lang.org/issues/5237

Author: Brian Ford
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 
ruby -v: -


The code for IO.copy_stream appears to support passing any object that implements #readpartial or #read. For example, passing an instance of StringIO works just fine:

sasha:rubinius2.0 brian$ irb
ruby-1.9.2-p290 :001 > puts RUBY_DESCRIPTION
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
 => nil 
ruby-1.9.2-p290 :002 > require 'stringio'
 => true 
ruby-1.9.2-p290 :003 > s = StringIO.new "this is a test"
 => #<StringIO:0x00000100851190> 
ruby-1.9.2-p290 :004 > IO.copy_stream s, "copy_stream_stringio"
 => 14 
ruby-1.9.2-p290 :005 > IO.read "copy_stream_stringio"
 => "this is a test" 
ruby-1.9.2-p290 :006 > 

However, passing an object that implements eg #read according to the specification of IO#read, causes IO.copy_stream to endlessly call #read on the object:

class A
  def initialize
    @count = 0
  end

  def read(bytes, buffer)
    print "read: #{@count += 1}\r"
    buffer.replace "this is a test"
    return nil
  end
end

a = A.new
IO.copy_stream a, "copy_stream_test"

ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
copy_stream_bug.rb:7:in `write': Interrupt
	from copy_stream_bug.rb:7:in `print'
	from copy_stream_bug.rb:7:in `read'
	from copy_stream_bug.rb:14:in `copy_stream'
	from copy_stream_bug.rb:14:in `<main>'

Thanks,
Brian


-- 
http://redmine.ruby-lang.org

In This Thread