[#15359] Timeout::Error — Jeremy Thurgood <jerith@...>

Good day,

41 messages 2008/02/05
[#15366] Re: Timeout::Error — Eric Hodel <drbrain@...7.net> 2008/02/06

On Feb 5, 2008, at 06:20 AM, Jeremy Thurgood wrote:

[#15370] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/06

Eric Hodel wrote:

[#15373] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/06

Hi,

[#15374] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/06

Nobuyoshi Nakada wrote:

[#15412] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/07

Hi,

[#15413] Re: Timeout::Error — Jeremy Thurgood <jerith@...> 2008/02/07

Nobuyoshi Nakada wrote:

[#15414] Re: Timeout::Error — Nobuyoshi Nakada <nobu@...> 2008/02/07

Hi,

[#15360] reopen: can't change access mode from "w+" to "w"? — Sam Ruby <rubys@...>

I ran 'rake test' on test/spec [1], using

16 messages 2008/02/05
[#15369] Re: reopen: can't change access mode from "w+" to "w"? — Nobuyoshi Nakada <nobu@...> 2008/02/06

Hi,

[#15389] STDIN encoding differs from default source file encoding — Dave Thomas <dave@...>

This seems strange:

21 messages 2008/02/06
[#15392] Re: STDIN encoding differs from default source file encoding — Yukihiro Matsumoto <matz@...> 2008/02/06

Hi,

[#15481] very bad character performance on ruby1.9 — "Eric Mahurin" <eric.mahurin@...>

I'd like to bring up the issue of how characters are represented in

16 messages 2008/02/10

[#15528] Test::Unit maintainer — Kouhei Sutou <kou@...>

Hi Nathaniel, Ryan,

22 messages 2008/02/13

[#15551] Proc#curry — ts <decoux@...>

21 messages 2008/02/14
[#15557] Re: [1.9] Proc#curry — David Flanagan <david@...> 2008/02/15

ts wrote:

[#15558] Re: [1.9] Proc#curry — Yukihiro Matsumoto <matz@...> 2008/02/15

Hi,

[#15560] Re: Proc#curry — Trans <transfire@...> 2008/02/15

[#15585] Ruby M17N meeting summary — Martin Duerst <duerst@...>

This is a rough translation of the Japanese meeting summary

19 messages 2008/02/18

[#15596] possible bug in regexp lexing — Ryan Davis <ryand-ruby@...>

current:

17 messages 2008/02/19

[#15678] Re: [ANN] MacRuby — "Rick DeNatale" <rick.denatale@...>

On 2/27/08, Laurent Sansonetti <laurent.sansonetti@gmail.com> wrote:

18 messages 2008/02/28
[#15679] Re: [ANN] MacRuby — "Laurent Sansonetti" <laurent.sansonetti@...> 2008/02/28

On Thu, Feb 28, 2008 at 6:33 AM, Rick DeNatale <rick.denatale@gmail.com> wrote:

[#15680] Re: [ANN] MacRuby — Yukihiro Matsumoto <matz@...> 2008/02/28

Hi,

[#15683] Re: [ANN] MacRuby — "Laurent Sansonetti" <laurent.sansonetti@...> 2008/02/28

On Thu, Feb 28, 2008 at 1:51 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

Re: reopen: can't change access mode from "w+" to "w"?

From: Sam Ruby <rubys@...>
Date: 2008-02-06 11:58:52 UTC
List: ruby-core #15378
Nobuyoshi Nakada wrote:
> Hi,
> 
> At Wed, 6 Feb 2008 03:00:43 +0900,
> Sam Ruby wrote in [ruby-core:15360]:
>> require 'tmpdir'
>>
>> save = STDOUT.dup
>> STDOUT.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+")
>> puts 'hi'
>> out = STDOUT.dup
>> STDOUT.reopen save
> 
> Here, the mode of STDOUT was changed to "w+" by previos reopen,
> and this is trying to change the mode to "w" back, or "shrink"
> in other words.

Understood.  It works with ruby 1.8.6 (2007-06-07 patchlevel 36) 
[i486-linux], but fails with ruby 1.9.0 (2008-02-06 revision 15384) 
[i686-linux].

>> Is this a bug in Ruby 1.9?  If not, any suggestions on a workaround for 
>> test/spec?
> 
> A workaround is to specify the mode at reopen:
> 
>   save = STDOUT.dup
>   out = File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+")
>   STDOUT.reopen(out, "w")
>   puts 'hi'
>   STDOUT.reopen save

That doesn't work for me.  When reopen is passed two parameters, the 
first parameter is expected to be a file name.

The workaround suggested by Eero Saynatkari does work for me.  I've 
pasted a diff in terms of the the original test/spec code below my 
signature.  The only remaining question for me is whether this change in 
behavior in Ruby 1.9 is intentional, and that applications need to 
conform, or if it is temporary and will soon be corrected.

- Sam Ruby

--- old-testspec/lib/test/spec/should-output.rb 2008-02-06 
06:51:50.000000000 -0500
+++ new-testspec/lib/test/spec/should-output.rb 2008-02-06 
06:51:50.000000000 -0500
@@ -12,7 +12,7 @@
      old_to = to.dup

      # Obtain a filehandle to replace (works with Readline)
-    to.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+")
+    to.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w")

      # Execute
      @object.call
@@ -22,8 +22,8 @@
      to.reopen old_to

      # Grab the data
-    out.rewind
-    output = out.read
+    out.flush
+    output = File.open(out.path) {|file| file.read}

      # Match up
      case expected


In This Thread