Project

General

Profile

Actions

Bug #10871

closed

Sclass thread unsafe due to CREF sharing

Added by evanphx (Evan Phoenix) almost 10 years ago. Updated about 9 years ago.

Status:
Closed
Target version:
-
ruby -v:
2.2.0p0, trunk
[ruby-core:68191]

Description

When entering an sclass, the context is tracked via the same cref mechanism used for class and module, specifically on the iseq->cref_stack. The bug is that the cref_stack is the wrong place to put the new cref because the scope is specific only to that sclass body. Mutating and using the iseq->cref_stack causes any code that reads the cref via this cref_stack to incorrectly pick up the sclass instance instead of the proper scope!

This is major thread safety bug because it means that all uses of class << obj are thread-unsafe and can cause random code to fail.

Here is a simple reproduction of the bug: https://gist.github.com/evanphx/6eef92f2c40662a4171b

I attempted to fix the bug by treating an sclass body the same as an eval, which already has special handling for cref's but I don't understand the code enough to make that change quickly.

I believe this is a major bug and hope that ruby-core can address it soon.

Thank you!

Updated by tenderlovemaking (Aaron Patterson) over 9 years ago

I tried to fix this, but I can't figure it out. :(

I tried adding the singleton class to the stack frame. Since the stack frames are thread local, I thought that would at least fix the problem, but it didn't.

Here is the patch I tried:

https://gist.github.com/tenderlove/a8e30c1f764040de7536

I verified that putspecialobject 2 would put the right class on the stack, and I verified that m_core_define_method got the right class, but still your test failed. I don't understand what I'm doing wrong. :(

Updated by ko1 (Koichi Sasada) over 9 years ago

Deterministic example (avoiding non-deterministic).

class C
end
class D
end

$fibs = []
$xs = []

[C, D].each{|klass|
  klass.class_eval{
    $fibs << Fiber.new{
      class << self
        class X
          $xs << self
          CONST = $i
          def self.i
            CONST
          end

          def i
            CONST
          end
        end
      end
    }
  }
}

2.times{|i|
  $i = i
  $fibs[i].resume
}

$xs.each{|x|
  p [x::CONST, x.i, x.new.i]
}

To solve this issue, I will duplicate iseq (CREF holder) for sclass. I need to check other cases.

Actions #3

Updated by clay@dabohealth.com (clay shentrup) over 9 years ago

Can anyone update us on the status of this bug? Thanks.

Actions #4

Updated by ko1 (Koichi Sasada) over 9 years ago

I fixed this bug for 2.3 [Bug #10943] and ask to discuss for previous versions. But no discussions....

I will make workaround patch ONLY for this issue. That patch does not solve all of issue, but can solve this issue (this sample code).

Updated by evanphx (Evan Phoenix) over 9 years ago

Koichi, I think a workaround patch to be applied to 2.2 and 2.1 would be very useful.

Updated by glittershark (Griffin Smith) over 9 years ago

I also would very much like a backport of this, as it effectively makes certain bits of "idiomatic" ruby inherently (and very unexpectedly) completely thread-unsafe - see https://github.com/puma/puma/issues/647

Updated by mattbrictson (Matt Brictson) over 9 years ago

I recently opened bug #11153 which may be related. When using threads, methods defined inside class << obj sometimes fail to work. Feel free to close mine as a duplicate if it is the same underlying cause. In any case I would also appreciate a backport. :)

Updated by ko1 (Koichi Sasada) over 9 years ago

  • Assignee set to ko1 (Koichi Sasada)

Updated by ko1 (Koichi Sasada) over 9 years ago

This is an ad-hoc fix only for this issue.
Not complete fix. I wrote explanation about it in ChangeLog entry.

Index: insns.def
===================================================================
--- insns.def	(revision 50914)
+++ insns.def	(working copy)
@@ -914,6 +914,7 @@
 (VALUE val)
 {
     VALUE klass;
+    VALUE class_iseq_val = class_iseq->self;
     rb_vm_defineclass_type_t type = VM_DEFINECLASS_TYPE(flags);
 
     switch (type) {
@@ -963,7 +964,17 @@
       case VM_DEFINECLASS_TYPE_SINGLETON_CLASS:
 	/* val is dummy.  classdef returns class scope value */
 	/* super is dummy */
-	klass = rb_singleton_class(cbase);
+	{
+	    klass = rb_singleton_class(cbase);
+
+	    /* Copy iseq to duplicate cref_stack place.
+	     * This is ad-hoc solution for [Bug #10871].
+	     * and this does not solve more complicated source code with singleton class.
+	     * If you need to solve everything, use Ruby 2.3 and later.
+	     */
+	    class_iseq_val = rb_iseq_clone(class_iseq->self, cbase);
+	    GetISeqPtr(class_iseq_val, class_iseq);
+	}
 	break;
       case VM_DEFINECLASS_TYPE_MODULE:
 	/* val is dummy.  classdef returns class scope value */
@@ -998,6 +1009,9 @@
 		  klass, 0, VM_ENVVAL_BLOCK_PTR(GET_BLOCK_PTR()),
 		  class_iseq->iseq_encoded, GET_SP(),
 		  class_iseq->local_size, 0, class_iseq->stack_max);
+
+    RB_GC_GUARD(class_iseq_val);
+
     RESTORE_REGS();
     NEXT_INSN();
 }

ChangeLog

Tue Jun 16 18:17:31 2015  Koichi Sasada <ko1@atdot.net>

	* insns.def (defineclass): introduce an ad-hoc patch to avoid
	  an issue reported on [Bug #10871].

	  This patch does not fix completely. For example, method definition
	  in a block (like 1.times{def ...; end}) still causes same issue.
	  To solve all, we need a huge patch and it seems difficult for
	  stable branch.

	  Use Ruby 2.3 and later to solve this issue completely.
	  (See [Bug #10943])

Updated by nagachika (Tomoyuki Chikanaga) over 9 years ago

Hi, ko1 san.

I applied the ko1's patch on ruby_2_2 branch and make test-rubyspec fails with Segmentation fault.

/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/fixtures/classes.rb:265: [BUG] Segmentation fault at 0x00000000000000
ruby 2.2.3p137 (2015-06-18 revision 50923) [x86_64-darwin14]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.

-- Control frame information -----------------------------------------------
c:0031 p:0009 s:0105 e:000104 LAMBDA /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/fixtures/classes.rb:265 [FINISH]
c:0030 p:0009 s:0103 e:000102 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/block_given_spec.rb:15 [FINISH]
c:0029 p:---- s:0101 e:000100 CFUNC  :instance_eval
c:0028 p:0013 s:0098 e:000097 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69
c:0027 p:0017 s:0092 e:000091 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179 [FINISH]
c:0026 p:---- s:0089 e:000088 IFUNC
c:0025 p:---- s:0087 e:000086 CFUNC  :each
c:0024 p:---- s:0085 e:000084 CFUNC  :all?
c:0023 p:0041 s:0082 e:000081 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179
c:0022 p:0073 s:0076 e:000075 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:215
c:0021 p:0006 s:0072 e:000071 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:239 [FINISH]
c:0020 p:---- s:0070 e:000069 CFUNC  :times
c:0019 p:0014 s:0067 e:000066 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:238
c:0018 p:0013 s:0064 e:000063 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:207 [FINISH]
c:0017 p:---- s:0061 e:000060 CFUNC  :each
c:0016 p:0091 s:0058 e:000057 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:206
c:0015 p:0075 s:0055 e:000054 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:38
c:0014 p:0025 s:0048 e:000047 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/object.rb:11
c:0013 p:0063 s:0041 E:001e50 TOP    /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/block_given_spec.rb:31 [FINISH]
c:0012 p:---- s:0039 e:000038 CFUNC  :load
c:0011 p:0015 s:0035 e:000034 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:57 [FINISH]
c:0010 p:---- s:0033 e:000032 CFUNC  :instance_eval
c:0009 p:0013 s:0030 e:000029 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69
c:0008 p:0061 s:0024 E:000c98 BLOCK  /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:57 [FINISH]
c:0007 p:---- s:0021 e:000020 CFUNC  :each
c:0006 p:0039 s:0018 E:001c08 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:51
c:0005 p:0015 s:0014 e:000013 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:43
c:0004 p:0047 s:0011 e:000010 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/commands/mspec-run.rb:92
c:0003 p:0069 s:0008 e:000007 METHOD /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/script.rb:217
c:0002 p:0047 s:0004 E:001da0 EVAL   /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/bin/mspec-run:8 [FINISH]
c:0001 p:0000 s:0002 E:001f60 TOP    [FINISH]

-- Ruby level backtrace information ----------------------------------------
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/bin/mspec-run:8:in `<main>'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/script.rb:217:in `main'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/commands/mspec-run.rb:92:in `run'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:43:in `process'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:51:in `files'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:51:in `each'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:57:in `block in files'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69:in `protect'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69:in `instance_eval'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:57:in `block (2 levels) in files'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:57:in `load'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/block_given_spec.rb:31:in `<top (required)>'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/object.rb:11:in `describe'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:38:in `describe'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:206:in `process'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:206:in `each'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:207:in `block in process'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:238:in `repeat'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:238:in `times'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:239:in `block in repeat'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:215:in `block (2 levels) in process'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179:in `protect'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179:in `all?'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179:in `each'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb:179:in `block in protect'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69:in `protect'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb:69:in `instance_eval'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/block_given_spec.rb:15:in `block (2 levels) in <top (required)>'
/Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/fixtures/classes.rb:265:in `block in singleton class'

-- Machine register context ------------------------------------------------
 rax: 0x0000000000000000 rbx: 0x0000000000000dbb rcx: 0x0000000000000001
 rdx: 0x0000000000000000 rdi: 0x0000000000000000 rsi: 0x0000000000000dbb
 rbp: 0x00007fff516eccd0 rsp: 0x00007fff516ecc70  r8: 0x0000000000000000
  r9: 0x000000010e850338 r10: 0x000000010e94f6a0 r11: 0x00007fee70c09410
 r12: 0x0000000000000000 r13: 0x0000000000000dbb r14: 0x0000000000000000
 r15: 0x0000000000000000 rip: 0x000000010e67361b rfl: 0x0000000000010246

-- C level backtrace information -------------------------------------------
0   ruby                                0x000000010e6af815 rb_vm_bugreport + 149
1   ruby                                0x000000010e550e69 rb_bug_context + 473
2   ruby                                0x000000010e629933 sigsegv + 83
3   libsystem_platform.dylib            0x00007fff8678df1a _sigtramp + 26
4   ruby                                0x000000010e67361b rb_const_get_0 + 235
5   ???                                 0x0000000000000007 0x0 + 7

-- Other runtime information -----------------------------------------------

* Loaded script: /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/bin/mspec-run

* Loaded features:

    0 enumerator.so
    1 rational.so
    2 complex.so
    3 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/encdb.bundle
    4 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/transdb.bundle
    5 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/unicode_normalize.rb
    6 /Users/nagachika/opt/ruby-2.2/src/build/rbconfig.rb
    7 thread.rb
    8 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/thread.bundle
    9 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/compatibility.rb
   10 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/defaults.rb
   11 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/deprecate.rb
   12 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/errors.rb
   13 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/version.rb
   14 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/requirement.rb
   15 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/platform.rb
   16 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/basic_specification.rb
   17 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/stub_specification.rb
   18 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/util/stringio.rb
   19 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/specification.rb
   20 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/exceptions.rb
   21 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/core_ext/kernel_gem.rb
   22 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/monitor.rb
   23 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/core_ext/kernel_require.rb
   24 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems.rb
   25 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/version.rb
   26 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/version.rb
   27 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/options.rb
   28 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/context.rb
   29 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/exception.rb
   30 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/tag.rb
   31 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/etc.bundle
   32 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/fileutils.rb
   33 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/mspec.rb
   34 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/tally.rb
   35 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/guard.rb
   36 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/expectations/expectations.rb
   37 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/timer.rb
   38 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/dotted.rb
   39 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/script.rb
   40 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/commands/mspec-run.rb
   41 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/base.rb
   42 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_an_instance_of.rb
   43 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_ancestor_of.rb
   44 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_close.rb
   45 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_computed_by.rb
   46 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_computed_by_function.rb
   47 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_empty.rb
   48 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_false.rb
   49 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_kind_of.rb
   50 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_nan.rb
   51 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_nil.rb
   52 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_true.rb
   53 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/be_valid_dns_name.rb
   54 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/feature.rb
   55 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/io.rb
   56 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/complain.rb
   57 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/eql.rb
   58 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/equal.rb
   59 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/equal_element.rb
   60 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/encode.rb
   61 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/equal_utf16.rb
   62 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/stringsymboladapter.rb
   63 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/variable.rb
   64 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_constant.rb
   65 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_class_variable.rb
   66 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_data.rb
   67 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/method.rb
   68 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_instance_method.rb
   69 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_instance_variable.rb
   70 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_method.rb
   71 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb
   72 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_private_method.rb
   73 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb
   74 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb
   75 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/have_singleton_method.rb
   76 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/include.rb
   77 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/infinity.rb
   78 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/match_yaml.rb
   79 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/raise_error.rb
   80 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/raise_exception.rb
   81 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/output.rb
   82 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/tmp.rb
   83 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/output_to_fd.rb
   84 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/respond_to.rb
   85 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers/signed_zero.rb
   86 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/matchers.rb
   87 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/expectations/should.rb
   88 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/expectations.rb
   89 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/singleton_class.rb
   90 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/mocks/mock.rb
   91 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/mocks/proxy.rb
   92 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/mocks/object.rb
   93 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/mocks.rb
   94 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/evaluate.rb
   95 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/example.rb
   96 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/object.rb
   97 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/describe.rb
   98 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/file.rb
   99 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/specdoc.rb
  100 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/html.rb
  101 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/summary.rb
  102 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/unit.rb
  103 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/spinner.rb
  104 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/method.rb
  105 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/yaml.rb
  106 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/profile.rb
  107 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/utils/ruby_name.rb
  108 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters/junit.rb
  109 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/formatters.rb
  110 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/filters/match.rb
  111 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/filter.rb
  112 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/tag.rb
  113 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/taglist.rb
  114 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions/tagpurge.rb
  115 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/actions.rb
  116 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/filters/regexp.rb
  117 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/filters/tag.rb
  118 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/filters/profile.rb
  119 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/filters.rb
  120 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner/shared.rb
  121 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/runner.rb
  122 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/background.rb
  123 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/block_device.rb
  124 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/version.rb
  125 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/bug.rb
  126 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/compliance.rb
  127 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/conflict.rb
  128 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/endian.rb
  129 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/extensions.rb
  130 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/noncompliance.rb
  131 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/platform.rb
  132 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/quarantine.rb
  133 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/runner.rb
  134 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/specified.rb
  135 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/support.rb
  136 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/superuser.rb
  137 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/tty.rb
  138 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards/user.rb
  139 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/guards.rb
  140 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/argv.rb
  141 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/const_lookup.rb
  142 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/datetime.rb
  143 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/ducktype.rb
  144 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/enumerator_class.rb
  145 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/environment.rb
  146 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/fixture.rb
  147 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/flunk.rb
  148 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/fs.rb
  149 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/hash.rb
  150 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/mock_to_path.rb
  151 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/numeric.rb
  152 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/pack.rb
  153 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/ruby_exe.rb
  154 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/scratch.rb
  155 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers/stasy.rb
  156 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec/helpers.rb
  157 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/prettyprint.rb
  158 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/pp.rb
  159 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/mspec/lib/mspec.rb
  160 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/spec_helper.rb
  161 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/array.rb
  162 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/block.rb
  163 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/break.rb
  164 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/class.rb
  165 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/class_variables.rb
  166 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/constants.rb
  167 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/constants_sclass.rb
  168 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/constant_visibility.rb
  169 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/def.rb
  170 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/defined.rb
  171 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/coding_us_ascii.rb
  172 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/coding_utf_8.rb
  173 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/ensure.rb
  174 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/code_loading.rb
  175 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/shared/__FILE__.rb
  176 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/classes.rb
  177 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/shared/__LINE__.rb
  178 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/match_operators.rb
  179 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/metaclass.rb
  180 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/module.rb
  181 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/next.rb
  182 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/precedence.rb
  183 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/stringio.bundle
  184 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/euc_jp.bundle
  185 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_1.bundle
  186 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_16.bundle
  187 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/private.rb
  188 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/windows_31j.bundle
  189 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/return.rb
  190 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/send.rb
  191 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/super.rb
  192 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/variables.rb
  193 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/language/fixtures/yield.rb
  194 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/each_byte.rb
  195 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/each_char.rb
  196 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/each_codepoint.rb
  197 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/each_line.rb
  198 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/eof.rb
  199 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/filename.rb
  200 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/fileno.rb
  201 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/getc.rb
  202 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/gets.rb
  203 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/pos.rb
  204 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/argf/shared/readlines.rb
  205 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/japanese_euc.bundle
  206 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/fixtures/classes.rb
  207 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/clone.rb
  208 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/collect.rb
  209 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/enumeratorize.rb
  210 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/slice.rb
  211 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/eql.rb
  212 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/index.rb
  213 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/fixtures/encoded_strings.rb
  214 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/inspect.rb
  215 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/utf_32be.bundle
  216 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/utf_16be.bundle
  217 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/utf_16_32.bundle
  218 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/join.rb
  219 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/keep_if.rb
  220 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/length.rb
  221 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/basic.rb
  222 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/string.rb
  223 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/encodings.rb
  224 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/numeric_basic.rb
  225 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/float.rb
  226 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/integer.rb
  227 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/pack/shared/unicode.rb
  228 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/array/shared/replace.rb
  229 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/kernel/object_id.rb
  230 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/basicobject/fixtures/common.rb
  231 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/basicobject/fixtures/classes.rb
  232 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/kernel/classes.rb
  233 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/kernel/method_missing.rb
  234 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/kernel/singleton_method.rb
  235 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/kernel/singleton_method_added.rb
  236 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/kernel/singleton_method_removed.rb
  237 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/kernel/singleton_method_undefined.rb
  238 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/bignum/shared/abs.rb
  239 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/bignum/shared/equal.rb
  240 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/bignum/shared/divide.rb
  241 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/bignum/shared/modulo.rb
  242 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/binding/fixtures/classes.rb
  243 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/binding/shared/clone.rb
  244 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/class/fixtures/classes.rb
  245 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/comparable/fixtures/classes.rb
  246 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/abs2.rb
  247 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/abs.rb
  248 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/arg.rb
  249 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/coerce.rb
  250 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/conjugate.rb
  251 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/constants.rb
  252 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/denominator.rb
  253 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/divide.rb
  254 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/equal_value.rb
  255 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/exponent.rb
  256 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/hash.rb
  257 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/image.rb
  258 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/inspect.rb
  259 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/minus.rb
  260 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/multiply.rb
  261 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/numerator.rb
  262 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/plus.rb
  263 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/polar.rb
  264 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/real.rb
  265 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/rect.rb
  266 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/to_s.rb
  267 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/continuation/call.rb
  268 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/continuation/new.rb
  269 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/fixtures/common.rb
  270 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/chroot.rb
  271 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/closed.rb
  272 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/delete.rb
  273 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/glob.rb
  274 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/euc_kr.bundle
  275 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/korean.bundle
  276 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/exist.rb
  277 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/pwd.rb
  278 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/open.rb
  279 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/path.rb
  280 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/dir/shared/pos.rb
  281 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/big5.bundle
  282 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/euc_tw.bundle
  283 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/gb2312.bundle
  284 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/gbk.bundle
  285 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_2.bundle
  286 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_3.bundle
  287 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_4.bundle
  288 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_5.bundle
  289 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_6.bundle
  290 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_7.bundle
  291 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_8.bundle
  292 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_9.bundle
  293 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_10.bundle
  294 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_11.bundle
  295 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_13.bundle
  296 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_14.bundle
  297 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/iso_8859_15.bundle
  298 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/koi8_r.bundle
  299 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/shift_jis.bundle
  300 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/utf_32le.bundle
  301 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/windows_1251.bundle
  302 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/utf_16le.bundle
  303 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/iso2022.bundle
  304 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/emacs_mule.bundle
  305 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/single_byte.bundle
  306 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/japanese_sjis.bundle
  307 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/utf8_mac.bundle
  308 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/big5.bundle
  309 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/cp949.bundle
  310 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/chinese.bundle
  311 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/gb18030.bundle
  312 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/gb18030.bundle
  313 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/gbk.bundle
  314 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/koi8_u.bundle
  315 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/emoji.bundle
  316 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/emoji_sjis_docomo.bundle
  317 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/emoji_sjis_kddi.bundle
  318 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/emoji_iso2022_kddi.bundle
  319 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/emoji_sjis_softbank.bundle
  320 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/enc/trans/japanese.bundle
  321 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/encoding/fixtures/classes.rb
  322 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/encoding/shared/name.rb
  323 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/fixtures/classes.rb
  324 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/collect_concat.rb
  325 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/collect.rb
  326 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/find.rb
  327 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/entries.rb
  328 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/find_all.rb
  329 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/take.rb
  330 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/include.rb
  331 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerable/shared/inject.rb
  332 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/each.rb
  333 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/enumerator/classes.rb
  334 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/with_index.rb
  335 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/with_object.rb
  336 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/enum_for.rb
  337 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/fixtures/common.rb
  338 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/lazy/fixtures/classes.rb
  339 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/lazy/shared/collect_concat.rb
  340 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/lazy/shared/collect.rb
  341 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/lazy/shared/to_enum.rb
  342 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/enumerator/lazy/shared/select.rb
  343 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/new.rb
  344 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/next.rb
  345 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/enumerator/rewind.rb
  346 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/each.rb
  347 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/store.rb
  348 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/include.rb
  349 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/value.rb
  350 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/key.rb
  351 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/length.rb
  352 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/env/shared/to_hash.rb
  353 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/exception/fixtures/common.rb
  354 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/exception/shared/new.rb
  355 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/path_support.rb
  356 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/lib/rubygems/dependency.rb
  357 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/fiber/resume.rb
  358 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/blockdev.rb
  359 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/chardev.rb
  360 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/shared/unlink.rb
  361 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/directory.rb
  362 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/executable_real.rb
  363 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/executable.rb
  364 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/exist.rb
  365 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/fixtures/common.rb
  366 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/file.rb
  367 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/shared/fnmatch.rb
  368 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/fixtures/file_types.rb
  369 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/socket.bundle
  370 /Users/nagachika/opt/ruby-2.2/src/build/.ext/common/socket.rb
  371 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/grpowned.rb
  372 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/identical.rb
  373 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/shared/stat.rb
  374 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/shared/open.rb
  375 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/owned.rb
  376 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/pipe.rb
  377 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/shared/read.rb
  378 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/readable_real.rb
  379 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/readable.rb
  380 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/setgid.rb
  381 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/setuid.rb
  382 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/size.rb
  383 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/socket.rb
  384 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/file/stat/fixtures/classes.rb
  385 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/sticky.rb
  386 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/symlink.rb
  387 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/world_readable.rb
  388 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/world_writable.rb
  389 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/writable_real.rb
  390 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/writable.rb
  391 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/file/zero.rb
  392 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/fixnum/shared/abs.rb
  393 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/fixnum/shared/equal.rb
  394 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/fixnum/shared/modulo.rb
  395 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/shared/abs.rb
  396 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/float/arg.rb
  397 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/shared/equal.rb
  398 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/fixtures/coerce.rb
  399 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/shared/quo.rb
  400 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/shared/modulo.rb
  401 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/float/shared/to_i.rb
  402 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/fixtures/classes.rb
  403 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/iteration.rb
  404 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/each.rb
  405 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/store.rb
  406 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/eql.rb
  407 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/key.rb
  408 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/value.rb
  409 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/index.rb
  410 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/to_s.rb
  411 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/length.rb
  412 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/update.rb
  413 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/replace.rb
  414 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/hash/shared/values_at.rb
  415 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/integer/shared/to_i.rb
  416 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/integer/shared/next.rb
  417 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/fixtures/classes.rb
  418 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/binwrite.rb
  419 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/chars.rb
  420 /Users/nagachika/opt/ruby-2.2/src/build/.ext/x86_64-darwin14/fcntl.bundle
  421 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/codepoints.rb
  422 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/each.rb
  423 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/new.rb
  424 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/readlines.rb
  425 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/gets_ascii.rb
  426 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/tty.rb
  427 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/pos.rb
  428 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/io/putc.rb
  429 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/thread_runner.rb
  430 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/io/shared/write.rb
  431 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/fixtures/classes.rb
  432 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/complex/Complex.rb
  433 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/fixtures/rational.rb
  434 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/rational/Rational.rb
  435 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/shared/__method__.rb
  436 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/core/kernel/fixtures/__method__.rb
  437 /Users/nagachika/opt/ruby-2.2/src/ruby_2_2/spec/rubyspec/shared/process/abort.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
Don't forget to include the above Crash Report log file.
For details: http://www.ruby-lang.org/bugreport.html

crash dump file

Process:               ruby [12296]
Path:                  /Users/USER/*/ruby
Identifier:            ruby
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        make [12294]
Responsible:           Terminal [345]
User ID:               501

Date/Time:             2015-06-18 05:59:53.087 +0900
OS Version:            Mac OS X 10.10.3 (14D136)
Report Version:        11
Anonymous UUID:        483AEFD5-A87F-0CAA-1FEA-AD4EC10E3D3C

Sleep/Wake UUID:       6903D86A-16DE-44B8-A743-EA3534242F4C

Time Awake Since Boot: 230000 seconds
Time Since Wake:       3100 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGABRT)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

VM Regions Near 0:
--> 
    __TEXT                 000000010e50f000-000000010e73d000 [ 2232K] r-x/rwx SM=COW  /Users/USER/*

Application Specific Information:
abort() called

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff867a8286 __pthread_kill + 10
1   libsystem_c.dylib             	0x00007fff88d09b53 abort + 129
2   ruby                          	0x000000010e550c89 die + 9
3   ruby                          	0x000000010e550ebe rb_bug_context + 558
4   ruby                          	0x000000010e629933 sigsegv + 83
5   libsystem_platform.dylib      	0x00007fff8678df1a _sigtramp + 26
6   ???                           	000000000000000000 0 + 0
7   ruby                          	0x000000010e6abb68 vm_get_ev_const + 824
8   ruby                          	0x000000010e68d46f vm_exec_core + 1839
9   ruby                          	0x000000010e6a07a1 vm_exec + 129
10  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
11  ruby                          	0x000000010e69f873 vm_invoke_proc + 195
12  ruby                          	0x000000010e6ade28 vm_call_bmethod + 184
13  ruby                          	0x000000010e6ac8f7 vm_call_method + 1143
14  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
15  ruby                          	0x000000010e6a07a1 vm_exec + 129
16  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
17  ruby                          	0x000000010e69def9 yield_under + 393
18  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
19  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
20  ruby                          	0x000000010e6a07a1 vm_exec + 129
21  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
22  ruby                          	0x000000010e69cc27 rb_yield_values2 + 103
23  ruby                          	0x000000010e54b9c3 all_iter_i + 19
24  ruby                          	0x000000010e6a57fe invoke_block_from_c + 1678
25  ruby                          	0x000000010e69c9c0 rb_yield + 192
26  ruby                          	0x000000010e5133e9 rb_ary_each + 89
27  ruby                          	0x000000010e6a9bd3 vm_call0_body + 2435
28  ruby                          	0x000000010e69d12c iterate_method + 220
29  ruby                          	0x000000010e69cf69 rb_iterate + 441
30  ruby                          	0x000000010e69d03d rb_block_call + 45
31  ruby                          	0x000000010e54790d enum_all + 77
32  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
33  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
34  ruby                          	0x000000010e6a07a1 vm_exec + 129
35  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
36  ruby                          	0x000000010e69c9c0 rb_yield + 192
37  ruby                          	0x000000010e5b1578 int_dotimes + 56
38  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
39  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
40  ruby                          	0x000000010e6a07a1 vm_exec + 129
41  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
42  ruby                          	0x000000010e69c9c0 rb_yield + 192
43  ruby                          	0x000000010e5133e9 rb_ary_each + 89
44  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
45  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
46  ruby                          	0x000000010e6a07a1 vm_exec + 129
47  ruby                          	0x000000010e6a06ed rb_iseq_eval + 285
48  ruby                          	0x000000010e55effb rb_load_internal0 + 315
49  ruby                          	0x000000010e55ecaa rb_f_load + 186
50  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
51  ruby                          	0x000000010e690400 vm_exec_core + 14016
52  ruby                          	0x000000010e6a07a1 vm_exec + 129
53  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
54  ruby                          	0x000000010e69def9 yield_under + 393
55  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
56  ruby                          	0x000000010e6ac7ff vm_call_method + 895
57  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
58  ruby                          	0x000000010e6a07a1 vm_exec + 129
59  ruby                          	0x000000010e6a5b0d invoke_block_from_c + 2461
60  ruby                          	0x000000010e69c9c0 rb_yield + 192
61  ruby                          	0x000000010e5133e9 rb_ary_each + 89
62  ruby                          	0x000000010e6ad735 vm_call_cfunc + 1797
63  ruby                          	0x000000010e6ac7ff vm_call_method + 895
64  ruby                          	0x000000010e6901e0 vm_exec_core + 13472
65  ruby                          	0x000000010e6a07a1 vm_exec + 129
66  ruby                          	0x000000010e6a1378 rb_iseq_eval_main + 504
67  ruby                          	0x000000010e559c34 ruby_exec_internal + 148
68  ruby                          	0x000000010e559b5e ruby_run_node + 78
69  ruby                          	0x000000010e51086f main + 79
70  libdyld.dylib                 	0x00007fff8b6f45c9 start + 1

Thread 1:: ruby-timer-thr
0   libsystem_kernel.dylib        	0x00007fff867a95c2 poll + 10
1   libsystem_pthread.dylib       	0x00007fff8b746268 _pthread_body + 131
2   libsystem_pthread.dylib       	0x00007fff8b7461e5 _pthread_start + 176
3   libsystem_pthread.dylib       	0x00007fff8b74441d thread_start + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000006  rcx: 0x00007fee710ecdf8  rdx: 0x0000000000000000
  rdi: 0x000000000000091f  rsi: 0x0000000000000006  rbp: 0x00007fee710ece20  rsp: 0x00007fee710ecdf8
   r8: 0x00007fee710ecdd0   r9: 0x00007fff73a2f300  r10: 0x0000000008000000  r11: 0x0000000000000206
  r12: 0x00007fee710ecf50  r13: 0x000000000000005e  r14: 0x00007fff73a2f300  r15: 0x000000010e6d24c6
  rip: 0x00007fff867a8286  rfl: 0x0000000000000206  cr2: 0x00007fff735f9fd8
  
Logical CPU:     0
Error Code:      0x02000148
Trap Number:     133


Binary Images:
       0x10e50f000 -        0x10e73cff7 +ruby (0) <58B2D03B-01FC-3995-BBD6-A545EF9E7205> /Users/USER/*/ruby
       0x10e82e000 -        0x10e84bfff  libJapaneseConverter.dylib (64) <12325659-06A4-37C9-8A9C-DA7A3F8DB8A2> /System/Library/CoreServices/Encodings/libJapaneseConverter.dylib
       0x10e958000 -        0x10e959ff7 +encdb.bundle (0) <7B915906-F1E8-3F54-8A67-61404A9B2D84> /Users/USER/*/encdb.bundle
       0x10e95c000 -        0x10e95dff7 +transdb.bundle (0) <72E964B1-9EB6-3B71-B8C4-D3C79FCF7F82> /Users/USER/*/transdb.bundle
       0x10e960000 -        0x10e962fff +thread.bundle (0) <948B6CBA-CD7D-3F4F-A585-76E81B89D376> /Users/USER/*/thread.bundle
       0x10e967000 -        0x10e96afff +etc.bundle (0) <81839F89-6958-348A-9B5C-9C5C2158D2DB> /Users/USER/*/etc.bundle
       0x10e96f000 -        0x10e973ff7 +stringio.bundle (0) <E3D3D7E2-B04C-38EE-A1FE-85EBF56EBC6B> /Users/USER/*/stringio.bundle
       0x10e979000 -        0x10e97aff7 +euc_jp.bundle (0) <C8E13642-355F-3C0A-8EDD-4C67A0A34B52> /Users/USER/*/euc_jp.bundle
       0x10e97d000 -        0x10e97dfff +iso_8859_1.bundle (0) <68A70804-54BB-3669-A2EB-77D2DF6FB88F> /Users/USER/*/iso_8859_1.bundle
       0x10ea80000 -        0x10ea80fff +iso_8859_16.bundle (0) <D0EBDE86-B610-3E90-AC0A-52FE93414561> /Users/USER/*/iso_8859_16.bundle
       0x10ea83000 -        0x10ea84ff7 +windows_31j.bundle (0) <58C6F67D-61EB-34F4-904F-8524D4E301ED> /Users/USER/*/windows_31j.bundle
       0x10ea87000 -        0x10eadcfff +japanese_euc.bundle (0) <7043E8EE-FF16-3375-AA71-90325D9F9885> /Users/USER/*/japanese_euc.bundle
       0x10eadf000 -        0x10eadfff7 +fcntl.bundle (0) <C756D5C2-80D6-38C9-9411-4F0D81B4AC24> /Users/USER/*/fcntl.bundle
       0x10eb1f000 -        0x10eb1fff7 +utf_32be.bundle (0) <0686B4FB-C605-3940-B0B8-8578152E2A3D> /Users/USER/*/utf_32be.bundle
       0x10eb22000 -        0x10eb22fff +utf_16be.bundle (0) <DAE3E019-33DE-3E63-8630-DBBB3B11DE4A> /Users/USER/*/utf_16be.bundle
       0x10eb25000 -        0x10eb26ff7 +utf_16_32.bundle (0) <24234290-3FCD-345A-9D43-07DFFD1C1D7C> /Users/USER/*/utf_16_32.bundle
       0x10eb29000 -        0x10eb29fff +euc_kr.bundle (0) <D78CD1E6-2723-3AC4-8113-934DF08F52A3> /Users/USER/*/euc_kr.bundle
       0x10eb2c000 -        0x10eb66fff +korean.bundle (0) <B90D5D92-C50A-3C6E-ADAD-1991B2B72291> /Users/USER/*/korean.bundle
       0x10eb69000 -        0x10eb6afff +big5.bundle (0) <F76EA3E4-1D0B-3704-989C-02E91B526B92> /Users/USER/*/big5.bundle
       0x10eb6d000 -        0x10eb6efff +euc_tw.bundle (0) <6784D422-408F-355D-95B7-16D37F0BB55A> /Users/USER/*/euc_tw.bundle
       0x10eb71000 -        0x10eb71fff +gb2312.bundle (0) <187F53D4-B9B4-3C52-89A9-362B1B4808F1> /Users/USER/*/gb2312.bundle
       0x10eb74000 -        0x10eb74fff +gbk.bundle (0) <609104AF-04AB-3054-AFD8-3289AEB7FCAB> /Users/USER/*/gbk.bundle
       0x10eb77000 -        0x10eb77fff +iso_8859_2.bundle (0) <178B635A-5FB2-30E1-A2CF-4F9815EAA19E> /Users/USER/*/iso_8859_2.bundle
       0x10eb7a000 -        0x10eb7afff +iso_8859_3.bundle (0) <25E52314-54D0-3064-99FF-BE3EB910295C> /Users/USER/*/iso_8859_3.bundle
       0x10eb7d000 -        0x10eb7dfff +iso_8859_4.bundle (0) <4DF33DCA-B16D-3260-85A2-B2F5998D48CD> /Users/USER/*/iso_8859_4.bundle
       0x10eb80000 -        0x10eb80fff +iso_8859_5.bundle (0) <E34CEED3-1DE3-3E51-BADD-27DC03C4846B> /Users/USER/*/iso_8859_5.bundle
       0x10eb83000 -        0x10eb83fff +iso_8859_6.bundle (0) <4A85B62A-D39D-3A60-BF44-4ECA39407AC1> /Users/USER/*/iso_8859_6.bundle
       0x10eb86000 -        0x10eb86fff +iso_8859_7.bundle (0) <57BBAF09-D669-3716-9E76-A1C4A9F084DB> /Users/USER/*/iso_8859_7.bundle
       0x10eb89000 -        0x10eb89fff +iso_8859_8.bundle (0) <F393B58F-D2A1-34B3-B361-28E1D71D941F> /Users/USER/*/iso_8859_8.bundle
       0x10eb8c000 -        0x10eb8cfff +iso_8859_9.bundle (0) <86FBC3AA-DA51-32F8-BF93-B2AEEB12ACB7> /Users/USER/*/iso_8859_9.bundle
       0x10eb8f000 -        0x10eb8ffff +iso_8859_10.bundle (0) <05A107D9-87C0-346A-8D0B-1463023C74A6> /Users/USER/*/iso_8859_10.bundle
       0x10eb92000 -        0x10eb92fff +iso_8859_11.bundle (0) <974D8900-EE00-39CA-83B2-204A62B98D04> /Users/USER/*/iso_8859_11.bundle
       0x10eb95000 -        0x10eb95fff +iso_8859_13.bundle (0) <D880EEFB-2ED2-3608-844D-A6F68E4A968D> /Users/USER/*/iso_8859_13.bundle
       0x10eb98000 -        0x10eb98fff +iso_8859_14.bundle (0) <426C58D1-C77A-3FC8-93A2-427B50ED11FC> /Users/USER/*/iso_8859_14.bundle
       0x10eb9b000 -        0x10eb9bfff +iso_8859_15.bundle (0) <02FF4F68-9B98-3623-9842-3105613745E9> /Users/USER/*/iso_8859_15.bundle
       0x10eb9e000 -        0x10eb9efff +koi8_r.bundle (0) <7ACAB727-7001-34CD-AF93-112DE30468BB> /Users/USER/*/koi8_r.bundle
       0x10eba1000 -        0x10eba2ff7 +shift_jis.bundle (0) <F4E7D7AA-DC6A-3DD6-A65B-F16796567B79> /Users/USER/*/shift_jis.bundle
       0x10eba5000 -        0x10eba5ff7 +utf_32le.bundle (0) <650673D4-32D1-3D97-BFC3-BCE8DD803026> /Users/USER/*/utf_32le.bundle
       0x10eba8000 -        0x10eba8fff +windows_1251.bundle (0) <4298C1C4-1FA5-311B-8409-099DC570934A> /Users/USER/*/windows_1251.bundle
       0x10ebab000 -        0x10ebabfff +utf_16le.bundle (0) <F6137486-8A89-3066-8B5C-0042B80BF526> /Users/USER/*/utf_16le.bundle
       0x10ebae000 -        0x10ebafff7 +iso2022.bundle (0) <3980C4EA-F09A-3018-B555-C6B6F0D59FF0> /Users/USER/*/iso2022.bundle
       0x10ebb2000 -        0x10ebb3ff7 +emacs_mule.bundle (0) <1F4FDBBE-75FA-34CC-875F-D081EF672C4B> /Users/USER/*/emacs_mule.bundle
       0x10ebb6000 -        0x10ebc9fff +single_byte.bundle (0) <C6D5E427-5C2A-3ED0-9A15-3EA416221265> /Users/USER/*/single_byte.bundle
       0x10ebd2000 -        0x10ebf5fff +japanese_sjis.bundle (0) <42018EF1-AF3E-374E-B1FC-2EA582F8FFCF> /Users/USER/*/japanese_sjis.bundle
       0x10ebf8000 -        0x10ec38fff +utf8_mac.bundle (0) <C6DACE4D-4629-3BD2-B6C1-0A98D36347F0> /Users/USER/*/utf8_mac.bundle
       0x10ec3b000 -        0x10ecc6ff7 +big5.bundle (0) <DA6D814C-2210-364C-ABEF-4D125CB9EB17> /Users/USER/*/big5.bundle
       0x10ecc9000 -        0x10ecc9fff +cp949.bundle (0) <D8090A00-2A07-3C52-AC47-293B81BFECA9> /Users/USER/*/cp949.bundle
       0x10eccc000 -        0x10ecf7ff7 +chinese.bundle (0) <43E48F6D-100B-3697-9D7F-90B9A282C65E> /Users/USER/*/chinese.bundle
       0x10ecfa000 -        0x10ecfbfff +gb18030.bundle (0) <604A8F2E-3712-3BB8-A454-B6F612F52A6F> /Users/USER/*/gb18030.bundle
       0x10ecfe000 -        0x10ed28fff +gb18030.bundle (0) <AD99354D-3478-3726-9CD4-F31D1B7B3914> /Users/USER/*/gb18030.bundle
       0x10ed2b000 -        0x10ed59ff7 +gbk.bundle (0) <7F5B4177-48D3-3641-83C1-C16D86857397> /Users/USER/*/gbk.bundle
       0x10ed5c000 -        0x10ed5cfff +koi8_u.bundle (0) <7B271B5A-53A7-31D0-9995-0B3C26F912F7> /Users/USER/*/koi8_u.bundle
       0x10ed5f000 -        0x10ed69ff7 +emoji.bundle (0) <34BDAFCD-3C0C-366A-A1C0-6972EC43E11C> /Users/USER/*/emoji.bundle
       0x10ed6c000 -        0x10ed87ff7 +emoji_sjis_docomo.bundle (0) <E420733F-4C57-3E71-A3BC-FF8E74CD49FA> /Users/USER/*/emoji_sjis_docomo.bundle
       0x10ed8a000 -        0x10eda6ff7 +emoji_sjis_kddi.bundle (0) <CDFC29E6-AA14-3A36-AE78-21E82DDDC75E> /Users/USER/*/emoji_sjis_kddi.bundle
       0x10eda9000 -        0x10edc2fff +emoji_iso2022_kddi.bundle (0) <48020221-9F61-3DD8-B788-3DC1C71A726D> /Users/USER/*/emoji_iso2022_kddi.bundle
       0x10edc5000 -        0x10ede0ff7 +emoji_sjis_softbank.bundle (0) <DCD6D76A-451D-3F61-A7BB-0774A7D4C331> /Users/USER/*/emoji_sjis_softbank.bundle
       0x10ede3000 -        0x10ede3fff +japanese.bundle (0) <AD72F4D3-0F42-3191-82B0-66B2D181C09C> /Users/USER/*/japanese.bundle
       0x10eed0000 -        0x10eeeefff +socket.bundle (0) <80C0C4A6-4E2E-3CC4-A068-98895D00812C> /Users/USER/*/socket.bundle
    0x7fff66c0a000 -     0x7fff66c40837  dyld (353.2.1) <65DCCB06-339C-3E25-9702-600A28291D0E> /usr/lib/dyld
    0x7fff83b09000 -     0x7fff83b31fff  libsystem_info.dylib (459.20.1) <AEB3FE62-4763-3050-8352-D6F9AF961AE6> /usr/lib/system/libsystem_info.dylib
    0x7fff843d8000 -     0x7fff843ddfff  libsystem_stats.dylib (163.20.16) <FBC3F80F-A0FB-3BD6-9A7E-800DE45F092E> /usr/lib/system/libsystem_stats.dylib
    0x7fff8478f000 -     0x7fff847bffff  libsystem_m.dylib (3086.1) <1E12AB45-6D96-36D0-A226-F24D9FB0D9D6> /usr/lib/system/libsystem_m.dylib
    0x7fff848be000 -     0x7fff848c3ff7  libmacho.dylib (862) <126CA2ED-DE91-308F-8881-B9DAEC3C63B6> /usr/lib/system/libmacho.dylib
    0x7fff8507f000 -     0x7fff8527946f  libobjc.A.dylib (647) <759E155D-BC42-3D4E-869B-6F57D477177C> /usr/lib/libobjc.A.dylib
    0x7fff85c8d000 -     0x7fff85c8dff7  liblaunch.dylib (559.20.9) <FA89A113-696E-3271-8FE1-A0D7324E8481> /usr/lib/system/liblaunch.dylib
    0x7fff8603e000 -     0x7fff8604fff7  libz.1.dylib (55) <88C7C7DE-04B8-316F-8B74-ACD9F3DE1AA1> /usr/lib/libz.1.dylib
    0x7fff861b8000 -     0x7fff861baff7  libsystem_coreservices.dylib (9) <41B7C578-5A53-31C8-A96F-C73E030B0938> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff861bb000 -     0x7fff861c6fff  libcommonCrypto.dylib (60061) <D381EBC6-69D8-31D3-8084-5A80A32CB748> /usr/lib/system/libcommonCrypto.dylib
    0x7fff86761000 -     0x7fff8677dff7  libsystem_malloc.dylib (53.1.1) <19BCC257-5717-3502-A71F-95D65AFA861B> /usr/lib/system/libsystem_malloc.dylib
    0x7fff86789000 -     0x7fff86791fff  libsystem_platform.dylib (63) <64E34079-D712-3D66-9CE2-418624A5C040> /usr/lib/system/libsystem_platform.dylib
    0x7fff86792000 -     0x7fff867affff  libsystem_kernel.dylib (2782.20.48) <EAFD7BD0-0C30-3E7D-9528-F9916BA0167C> /usr/lib/system/libsystem_kernel.dylib
    0x7fff867c6000 -     0x7fff867c8fff  libquarantine.dylib (76.20.1) <7AF90041-2768-378A-925A-D83161863642> /usr/lib/system/libquarantine.dylib
    0x7fff867d8000 -     0x7fff867d9ff3  libSystem.B.dylib (1213) <CCEC13A5-D0D9-31C5-B0B0-1C564B4A20A6> /usr/lib/libSystem.B.dylib
    0x7fff867f8000 -     0x7fff869ddff7  libicucore.A.dylib (531.48) <3CD34752-B1F9-31D2-865D-B5B0F0BE3111> /usr/lib/libicucore.A.dylib
    0x7fff875e5000 -     0x7fff875ecff7  libcompiler_rt.dylib (35) <BF8FC133-EE10-3DA6-9B90-92039E28678F> /usr/lib/system/libcompiler_rt.dylib
    0x7fff87b8e000 -     0x7fff87c04fe7  libcorecrypto.dylib (233.1.2) <E1789801-3985-3949-B736-6B3378873301> /usr/lib/system/libcorecrypto.dylib
    0x7fff88457000 -     0x7fff88468fff  libsystem_coretls.dylib (35.20.2) <6084A531-2523-39F8-B030-811FA1A32FB5> /usr/lib/system/libsystem_coretls.dylib
    0x7fff88469000 -     0x7fff8846bfff  libsystem_sandbox.dylib (358.20.5) <4CF77128-6BE0-3958-B646-707FA9CE61B2> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff889e9000 -     0x7fff88a2fff7  libauto.dylib (186) <A260789B-D4D8-316A-9490-254767B8A5F1> /usr/lib/libauto.dylib
    0x7fff88bfd000 -     0x7fff88bfffff  libsystem_configuration.dylib (699.1.5) <20F3B077-179D-3CB0-A3C1-C8602D53B4DB> /usr/lib/system/libsystem_configuration.dylib
    0x7fff88cac000 -     0x7fff88d38ff7  libsystem_c.dylib (1044.10.1) <86FBED7A-F2C8-3591-AD6F-486DD57E6B6A> /usr/lib/system/libsystem_c.dylib
    0x7fff8a1b5000 -     0x7fff8a1beff7  libsystem_notify.dylib (133.1.1) <61147800-F320-3DAA-850C-BADF33855F29> /usr/lib/system/libsystem_notify.dylib
    0x7fff8a1c4000 -     0x7fff8a1eeff7  libdispatch.dylib (442.1.4) <502CF32B-669B-3709-8862-08188225E4F0> /usr/lib/system/libdispatch.dylib
    0x7fff8a7f0000 -     0x7fff8a828fff  libsystem_network.dylib (412.20.3) <589A5F67-BE2A-3245-A181-0ECC9B53EB00> /usr/lib/system/libsystem_network.dylib
    0x7fff8ab5d000 -     0x7fff8ab85fff  libxpc.dylib (559.20.9) <D35D0DB2-D7BD-3BE4-8378-062BFE545E1D> /usr/lib/system/libxpc.dylib
    0x7fff8b0fe000 -     0x7fff8b102fff  libcache.dylib (69) <45E9A2E7-99C4-36B2-BEE3-0C4E11614AD1> /usr/lib/system/libcache.dylib
    0x7fff8b6f1000 -     0x7fff8b6f4ff7  libdyld.dylib (353.2.1) <9EACCA38-291D-38CC-811F-7E9D1451E2D3> /usr/lib/system/libdyld.dylib
    0x7fff8b743000 -     0x7fff8b74cfff  libsystem_pthread.dylib (105.10.1) <3103AA7F-3BAE-3673-9649-47FFD7E15C97> /usr/lib/system/libsystem_pthread.dylib
    0x7fff8b784000 -     0x7fff8bb1cff7  com.apple.CoreFoundation (6.9 - 1153.18) <5C0892B8-9691-341F-9279-CA3A74D59AA0> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff8bc17000 -     0x7fff8bc18fff  libDiagnosticMessagesClient.dylib (100) <2EE8E436-5CDC-34C5-9959-5BA218D507FB> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff8bc19000 -     0x7fff8bc21ffb  libcopyfile.dylib (118.1.2) <0C68D3A6-ACDD-3EF3-991A-CC82C32AB836> /usr/lib/system/libcopyfile.dylib
    0x7fff8bd85000 -     0x7fff8bd9bff7  libsystem_asl.dylib (267) <F153AC5B-0542-356E-88C8-20A62CA704E2> /usr/lib/system/libsystem_asl.dylib
    0x7fff8bd9c000 -     0x7fff8bda2ff7  libsystem_networkextension.dylib (167.1.10) <29AB225B-D7FB-30ED-9600-65D44B9A9442> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff8c1e0000 -     0x7fff8c1e6fff  libsystem_trace.dylib (72.20.1) <840F5301-B55A-3078-90B9-FEFFD6CD741A> /usr/lib/system/libsystem_trace.dylib
    0x7fff8c361000 -     0x7fff8c3b5fff  libc++.1.dylib (120) <1B9530FD-989B-3174-BB1C-BDC159501710> /usr/lib/libc++.1.dylib
    0x7fff8eb63000 -     0x7fff8eb64fff  libsystem_secinit.dylib (18) <581DAD0F-6B63-3A48-B63B-917AF799ABAA> /usr/lib/system/libsystem_secinit.dylib
    0x7fff8f0f0000 -     0x7fff8f0f8fff  libsystem_dnssd.dylib (561.1.1) <62B70ECA-E40D-3C63-896E-7F00EC386DDB> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff8f13d000 -     0x7fff8f13dff7  libkeymgr.dylib (28) <77845842-DE70-3CC5-BD01-C3D14227CED5> /usr/lib/system/libkeymgr.dylib
    0x7fff8f191000 -     0x7fff8f192ffb  libremovefile.dylib (35) <3485B5F4-6CE8-3C62-8DFD-8736ED6E8531> /usr/lib/system/libremovefile.dylib
    0x7fff900b0000 -     0x7fff900dbfff  libc++abi.dylib (125) <88A22A0F-87C6-3002-BFBA-AC0F2808B8B9> /usr/lib/libc++abi.dylib
    0x7fff908df000 -     0x7fff908e0ff7  libsystem_blocks.dylib (65) <9615D10A-FCA7-3BE4-AA1A-1B195DACE1A1> /usr/lib/system/libsystem_blocks.dylib
    0x7fff90f54000 -     0x7fff90f59ff7  libunwind.dylib (35.3) <BE7E51A0-B6EA-3A54-9CCA-9D88F683A6D6> /usr/lib/system/libunwind.dylib
    0x7fff9127d000 -     0x7fff9127dff7  libunc.dylib (29) <5676F7EA-C1DF-329F-B006-D2C3022B7D70> /usr/lib/system/libunc.dylib

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 3
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 11645119
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=88.5M resident=95.8M(108%) swapped_out_or_unallocated=16777216.0T(19884320751616%)
Writable regions: Total=281.2M written=31.7M(11%) resident=162.4M(58%) swapped_out=0K(0%) unallocated=118.7M(42%)
 
REGION TYPE                      VIRTUAL
===========                      =======
Kernel Alloc Once                     4K
MALLOC                            216.6M
MALLOC (admin)                       16K
STACK GUARD                           4K
Stack                              64.0M
VM_ALLOCATE                          12K
__DATA                             1476K
__LINKEDIT                         71.9M
__TEXT                             16.6M
__UNICODE                           552K
shared memory                         4K
===========                      =======
TOTAL                             371.1M

Updated by ko1 (Koichi Sasada) over 9 years ago

Thank you.

I updated a patch.

Index: insns.def
===================================================================
--- insns.def	(revision 50914)
+++ insns.def	(working copy)
@@ -914,6 +914,8 @@
 (VALUE val)
 {
     VALUE klass;
+    VALUE class_iseq_val = class_iseq->self;
+    rb_iseq_t *orig_class_iseq = NULL;
     rb_vm_defineclass_type_t type = VM_DEFINECLASS_TYPE(flags);
 
     switch (type) {
@@ -963,7 +965,18 @@
       case VM_DEFINECLASS_TYPE_SINGLETON_CLASS:
 	/* val is dummy.  classdef returns class scope value */
 	/* super is dummy */
-	klass = rb_singleton_class(cbase);
+	{
+	    klass = rb_singleton_class(cbase);
+
+	    /* Copy iseq to duplicate cref_stack place.
+	     * This is ad-hoc solution for [Bug #10871].
+	     * and this does not solve more complicated source code with singleton class.
+	     * If you need to solve everything, use Ruby 2.3 and later.
+	     */
+	    orig_class_iseq = class_iseq;
+	    class_iseq_val = rb_iseq_clone(class_iseq->self, cbase);
+	    GetISeqPtr(class_iseq_val, class_iseq);
+	}
 	break;
       case VM_DEFINECLASS_TYPE_MODULE:
 	/* val is dummy.  classdef returns class scope value */
@@ -992,6 +1005,9 @@
     }
 
     COPY_CREF(class_iseq->cref_stack, vm_cref_push(th, klass, NOEX_PUBLIC, NULL));
+    if (orig_class_iseq) {
+	COPY_CREF(orig_class_iseq->cref_stack, vm_cref_push(th, klass, NOEX_PUBLIC, NULL));
+    }
 
     /* enter scope */
     vm_push_frame(th, class_iseq, VM_FRAME_MAGIC_CLASS,
@@ -998,6 +1014,9 @@
 		  klass, 0, VM_ENVVAL_BLOCK_PTR(GET_BLOCK_PTR()),
 		  class_iseq->iseq_encoded, GET_SP(),
 		  class_iseq->local_size, 0, class_iseq->stack_max);
+
+    RB_GC_GUARD(class_iseq_val);
+
     RESTORE_REGS();
     NEXT_INSN();
 }

Updated by nagachika (Tomoyuki Chikanaga) over 9 years ago

ko1 san, thank you for updated patch. I confirmed that make check && make test-rubyspec passed with it.
But, I don't have confidence about the importance of this workaround. It might introduces another regression. I want to deliberate upon this patch with caution. I'll apply it after the next patch release and call for users to validation on ruby_2_2 HEAD.

Updated by nagachika (Tomoyuki Chikanaga) over 9 years ago

Hi,

I pushed a branch containing ko1's patch onto https://github.com/nagachika/ruby/tree/ruby_2_2_singleton_class_threadsafe.
Please test your applications & libraries with it.

Regards,

Actions #14

Updated by nagachika (Tomoyuki Chikanaga) about 9 years ago

  • Status changed from Open to Closed

Applied in changeset backport22:r51673.


  • insns.def (defineclass): introduce an ad-hoc patch to avoid
    an issue reported on [Bug #10871].

    This patch does not fix completely. For example, method definition
    in a block (like 1.times{def ...; end}) still causes same issue.
    To solve all, we need a huge patch and it seems difficult for
    stable branch.

    Use Ruby 2.3 and later to solve this issue completely.
    (See [Bug #10943])

Actions #15

Updated by nagachika (Tomoyuki Chikanaga) about 9 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: DONE

Hello,

I've applied ko1's workaround patch for this issue to ruby_2_2 branch at r51673.
I'm worried about the wrong side effects of this patch.
Please test on ruby_2_2 branch HEAD.
If you use rbenv/ruby-build, you can install ruby_2_2 HEAD via

rbenv install 2.2.0-dev

Regards,

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0