Project

General

Profile

Actions

Bug #10871

closed

Sclass thread unsafe due to CREF sharing

Added by evanphx (Evan Phoenix) about 10 years ago. Updated over 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) about 10 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) about 10 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) about 10 years ago

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

Actions #4

Updated by ko1 (Koichi Sasada) about 10 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) almost 10 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) almost 10 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) almost 10 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) almost 10 years ago

  • Assignee set to ko1 (Koichi Sasada)

Updated by ko1 (Koichi Sasada) almost 10 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) almost 10 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) almost 10 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) almost 10 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) over 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) over 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