Issue #11219 has been updated by Usaku NAKAMURA.
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
----------------------------------------
Bug #11219: bootstrap test failed on sparc Solaris since r50743
https://bugs.ruby-lang.org/issues/11219#change-53179
* Author: Naohisa Goto
* Status: Closed
* Priority: Normal
* Assignee: Koichi Sasada
* ruby -v: -
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
----------------------------------------
r50743以降、sparc Solaris 10 にて bootstrap test が失敗します。
(64ビット、32ビット共)
~~~
test_syntax.rb ..............................Fstderr output is not empty
bootstraptest.tmp.rb:4: [BUG] unreachable
ruby 2.3.0dev (2015-06-03) [sparc64-solaris2.10]
-- Control frame information -----------------------------------------------
c:0003 p:0022 s:0010 e:000007 METHOD bootstraptest.tmp.rb:4
c:0002 p:0026 s:0005 E:000b20 EVAL bootstraptest.tmp.rb:17 [FINISH]
c:0001 p:0000 s:0002 E:001020 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
bootstraptest.tmp.rb:17:in `<main>'
bootstraptest.tmp.rb:4:in `test'
-- Other runtime information -----------------------------------------------
* Loaded script: bootstraptest.tmp.rb
* Loaded features:
0 enumerator.so
1 rational.so
2 complex.so
3 /XXXXX-50743/.ext/sparc64-solaris2.10/enc/encdb.so
4 /XXXXX-50743/.ext/sparc64-solaris2.10/enc/trans/transdb.so
5 /XXXXX-50743/lib/unicode_normalize.rb
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
.............................................................................................................................
test_thread.rb ..................................................
#142 test_eval.rb:212:in `<top (required)>':
class Module
def my_module_eval(&block)
module_eval(&block)
end
end
class String
Integer.my_module_eval do
def hoge; end
end
end
if Integer.instance_methods(false).map{|m|m.to_sym}.include?(:hoge) &&
!String.instance_methods(false).map{|m|m.to_sym}.include?(:hoge)
:ok
else
:ng
end
#=> "ng" (expected "ok") [ruby-dev:34236]
#837 test_syntax.rb:233:in `<top (required)>':
class C
def test
[defined?(m1()), defined?(self.m1), defined?(C.new.m1),
defined?(m2()), defined?(self.m2), defined?(C.new.m2),
defined?(m3()), defined?(self.m3), defined?(C.new.m3)]
end
def m1
end
private
def m2
end
protected
def m3
end
end
C.new.test + [defined?(C.new.m3)]
#=> "" (expected "[\"method\", \"method\", \"method\", \"method\", nil,nil, \"method\", \"method\", \"method\", nil]")
FAIL 2/1012 tests failed
make: *** [yes-btest-ruby] Error 1
~~~
r50743 は rb_method_definition_t のビットフィールド分割などの変更ですので、
おそらく、big endian と little endian の違いにより顕在化した問題で、
何かの値をVALUEなどと暗黙のうちに兼用している部分があるのだと思いますが、
探しだせませんでした。
--
https://bugs.ruby-lang.org/