Ruby Issue Tracking System: Issues
https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2010-03-14T19:35:10Z
Ruby Issue Tracking System
Redmine
Ruby master - Bug #2960 (Closed): svn revision detection of git-based repo on Windows is broken
https://redmine.ruby-lang.org/issues/2960
2010-03-14T19:35:10Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
This leads to situation when MRI built on Windows from git-based repo doesn't show the actual SVN revision: ruby 1.9.2dev (2010-03-14) [i386-mingw32]</p>
<p>This is a regression caused by recent changes in file2lastrev.rb file.</p>
<p>Attached is a small patch that fixes the problem for me on Windows. And I checked that it works on Linux as well.<br>
=end</p>
Ruby master - Bug #2959 (Closed): IO#codepoints crashes MRI/mingw on Windows
https://redmine.ruby-lang.org/issues/2959
2010-03-14T18:48:45Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
One earlier MRI 1.9.2 builds on Windows, IO#codepoints just didn't do <em>anything</em>.<br>
With more recent versions, MRI crashes.</p>
<p>ruby -ve "File.open('TODO').codepoints{|c| p c}"</p>
<p>ruby 1.9.2dev (2010-03-05 trunk 26821) [i386-mingw32]<br>
-e:1: [BUG] Segmentation fault<br>
ruby 1.9.2dev (2010-03-05 trunk 26821) [i386-mingw32]</p>
<h2>-- control frame ----------<br>
c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :codepoints<br>
c:0003 p:0023 s:0006 b:0006 l:0010c4 d:000964 EVAL -e:1<br>
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH<br>
c:0001 p:0000 s:0002 b:0002 l:0010c4 d:0010c4 TOP</h2>
<p>-- Ruby level backtrace information ----------------------------------------<br>
-e:1:in <code><main>' -e:1:in </code>codepoints'<br>
=end</p>
Backport191 - Backport #2560 (Closed): IO.read not always closes the file
https://redmine.ruby-lang.org/issues/2560
2010-01-06T02:31:34Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
Consider the following:</p>
<p>File.open('test_file', 'wb') { |f| f.write 'abc' }<br>
IO.read('test_file', 0, -1) rescue nil<br>
File.unlink('test_file')</p>
<p>On Windows the unlink call fails with:<br>
`unlink': Permission denied - test_file (Errno::EACCES)</p>
<p>This is due to fact that IO.read, invoked with invalid offset parameter does not close the opened file. But the documentation clearly states that:<br>
"read ensures the file is closed before returning."</p>
<p>This causes two RubySpec failures for IO.read:</p>
<p>mspec -t r core\io\read_spec.rb<br>
ruby 1.9.2dev (2009-11-12 trunk 25723) [i386-mingw32]<br>
..........E..E..................E.</p>
<ol>
<li>
</ol>
<p>An exception occurred during: after :each<br>
IO.read raises an Errno::EINVAL when not passed a valid offset ERROR<br>
Errno::EACCES: Permission denied - D:/work/jruby-dev/rubyspec.git/rubyspec_temp/io_read.txt<br>
D:/work/jruby-dev/rubyspec.git/core/io/read_spec.rb:13:in <code>block (2 levels) in <top (required)>' D:/work/jruby-dev/rubyspec.git/core/io/read_spec.rb:5:in </code><top (required)>'<br>
D:/work/jruby-dev/mspec.git/bin/mspec-run:8:in `'</p>
<ol start="2">
<li>
</ol>
<p>An exception occurred during: after :each<br>
IO#read can be read from consecutively ERROR<br>
Errno::EACCES: Permission denied - D:/work/jruby-dev/rubyspec.git/rubyspec_temp/io_read.txt<br>
D:/work/jruby-dev/rubyspec.git/core/io/read_spec.rb:100:in <code>block (2 levels) in <top (required)>' D:/work/jruby-dev/rubyspec.git/core/io/read_spec.rb:88:in </code><top (required)>'<br>
D:/work/jruby-dev/mspec.git/bin/mspec-run:8:in `'<br>
=end</p>
Ruby master - Bug #2466 (Closed): Mutex#lock documentation is incorrect
https://redmine.ruby-lang.org/issues/2466
2009-12-09T21:58:14Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
Currently, it states:</p>
<p>mutex.lock => true or false</p>
<p>But actually, the Mutex#lock <em>always</em> just returns self, which is the most sensible behavior.</p>
<p>The doc should be:</p>
<p>mutex.lock => self</p>
<p>That would be in sync with Mutex#unlock as well.<br>
=end</p>
Backport187 - Backport #2449 (Closed): StringIO#ungetc behavior is contrary to its spec
https://redmine.ruby-lang.org/issues/2449
2009-12-07T05:12:36Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
The spec for StringIO#ungetc() states: "Pushing back behind the beginning of the buffer string is not possible. Nothing will be done if such an attempt is made.".</p>
<p>But: ruby -rstringio -e "io = StringIO.new(''); io.ungetc(?1); io.ungetc(?2); p io.gets"</p>
<p>will print "21" instead of nil. Please also note that rbx and JRuby correctly return nil. Also, there is a stringio test that actually enforses the wrong behavior (test_ungetc), but with the comment: bug? :)</p>
<p>Here's how different MRI versions behave: Looks like MRI 1.8.6 is the correct one:</p>
<p>Z:\work\ruby18-dev.git>pik ruby -rstringio -e "io=StringIO.new('');io.ungetc(?1);io.ungetc(?2); p io.gets"<br>
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]</p>
<p>nil</p>
<p>ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]</p>
<p>"21"</p>
<p>ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]</p>
<p>nil</p>
<p>ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]</p>
<p>"21"</p>
<p>ruby 1.9.0 (2008-06-20 revision 17482) [i386-mswin32]</p>
<p>"21"</p>
<p>ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]</p>
<p>"21"</p>
<p>ruby 1.9.1p0 (2009-01-30 revision 21907) [x64-mswin64_80]</p>
<p>"21"</p>
<p>ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32]</p>
<p>"21"</p>
<p>ruby 1.9.2dev (2009-07-18) [i386-mswin32]</p>
<p>"21"</p>
<p>ruby 1.9.2dev (2009-11-12 trunk 25723) [i386-mingw32]</p>
<p>"21"<br>
=end</p>
Backport187 - Bug #2378 (Closed): Regression in ParseDate.parsedate('nn-nn')
https://redmine.ruby-lang.org/issues/2378
2009-11-17T05:18:35Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
On MRI 1.8.6, ParseDate.parsedate('nn-nn') returns sensible data:</p>
<p>ruby -rparsedate -e "p ParseDate.parsedate('08-09')"<br>
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]<br>
[8, 9, nil, nil, nil, nil, nil, nil]</p>
<p>Essentially, it treats nn-nn as yy-mm.</p>
<p>In MRI 1.8.7, there is a regression, and the returned values now are less sensible:</p>
<p>ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]<br>
[nil, nil, 8, nil, nil, nil, "-09", nil]</p>
<p>Day and weird zone, huh?</p>
<p>This also leads to RubySpec failures on MRI 1.8.7.<br>
=end</p>
Backport187 - Backport #2376 (Closed): Kernel.__method__ rubyspec failures for 1.8.*
https://redmine.ruby-lang.org/issues/2376
2009-11-16T20:56:54Z
vvs (Vladimir Sizikov)
vsizikov@gmail.com
<p>=begin<br>
The specs pass on MRI 1.9 and on JRuby, but fail on MRI 1.8.7, 1.8.*.</p>
<p>mspec -t /opt/ruby187-dev/bin/ruby core/kernel/__method__spec.rb -fs<br>
ruby 1.8.7 (2009-11-09 patchlevel 202) [i686-linux]</p>
<p>Kernel.<strong>method</strong></p>
<ul>
<li>returns the current method, even when aliased (FAILED - 1)</li>
<li>returns the original name when aliased method (FAILED - 2)</li>
<li>returns the caller from blocks too (FAILED - 3)</li>
<li>returns the caller from define_method too</li>
<li>returns the caller from block inside define_method too</li>
<li>returns the caller from a define_method called from the same class</li>
<li>returns method name even from eval</li>
<li>returns nil when not called from a method (FAILED - 4)</li>
</ul>
<ol>
<li>
</ol>
<p>Kernel.<strong>method</strong> returns the current method, even when aliased FAILED<br>
Expected :send<br>
to equal :f</p>
<p>/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in <code>fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in </code>=='<br>
/opt/work/rubyspec.git/core/kernel/shared/<strong>method</strong>.rb:9<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/rubyspec.git/core/kernel/__method__spec.rb:3:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:135:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/runner/context.rb:163:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:155:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:155:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:36:in <code>describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in </code>describe'<br>
/opt/work/rubyspec.git/core/kernel/__method__spec.rb:5<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in </code>files'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in </code>each'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:41:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:87:in <code>run' /opt/work/mspec.git/lib/mspec/utils/script.rb:217:in </code>main'<br>
/opt/work/mspec.git/bin/mspec-run:8</p>
<ol start="2">
<li>
</ol>
<p>Kernel.<strong>method</strong> returns the original name when aliased method FAILED<br>
Expected :send<br>
to equal :f</p>
<p>/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in <code>fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in </code>=='<br>
/opt/work/rubyspec.git/core/kernel/shared/<strong>method</strong>.rb:13<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:135:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/runner/context.rb:163:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:155:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:155:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:36:in <code>describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in </code>describe'<br>
/opt/work/rubyspec.git/core/kernel/__method__spec.rb:5<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in </code>files'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in </code>each'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:41:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:87:in <code>run' /opt/work/mspec.git/lib/mspec/utils/script.rb:217:in </code>main'<br>
/opt/work/mspec.git/bin/mspec-run:8</p>
<ol start="3">
<li>
</ol>
<p>Kernel.<strong>method</strong> returns the caller from blocks too FAILED<br>
Expected [:send, :send]<br>
to equal [:h, :h]</p>
<p>/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in <code>fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in </code>=='<br>
/opt/work/rubyspec.git/core/kernel/shared/<strong>method</strong>.rb:20<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:135:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/runner/context.rb:163:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:155:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:155:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:36:in <code>describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in </code>describe'<br>
/opt/work/rubyspec.git/core/kernel/__method__spec.rb:5<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in </code>files'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in </code>each'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:41:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:87:in <code>run' /opt/work/mspec.git/lib/mspec/utils/script.rb:217:in </code>main'<br>
/opt/work/mspec.git/bin/mspec-run:8</p>
<ol start="4">
<li>
</ol>
<p>Kernel.<strong>method</strong> returns nil when not called from a method FAILED<br>
Expected :send<br>
to equal nil</p>
<p>/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:15:in <code>fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:8:in </code>=='<br>
/opt/work/rubyspec.git/core/kernel/shared/<strong>method</strong>.rb:49<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/rubyspec.git/core/kernel/shared/__method__.rb:43:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:135:in </code>all?'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:135:in <code>protect' /opt/work/mspec.git/lib/mspec/runner/context.rb:163:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/context.rb:155:in <code>each' /opt/work/mspec.git/lib/mspec/runner/context.rb:155:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:36:in <code>describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in </code>describe'<br>
/opt/work/rubyspec.git/core/kernel/__method__spec.rb:5<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in </code>files'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in <code>instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:67:in </code>protect'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:55:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in </code>each'<br>
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in <code>files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:41:in </code>process'<br>
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:87:in <code>run' /opt/work/mspec.git/lib/mspec/utils/script.rb:217:in </code>main'<br>
/opt/work/mspec.git/bin/mspec-run:8</p>
<p>Finished in 0.012987 seconds</p>
<p>1 file, 8 examples, 8 expectations, 4 failures, 0 errors<br>
=end</p>