Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 15, 2012
  1. @Watson1978

    should not raise an exception, so implement vm_fast_mod(). fix #1471

    Watson1978 authored
    The modulo between the Fixnum/Float is improved the performance by this patch.
    
    * before
          user     system      total        real
      1.000000   0.000000   1.000000 (  1.000743)
      1.030000   0.000000   1.030000 (  1.030479)
      1.090000   0.000000   1.090000 (  1.097021)
    
    * after
          user     system      total        real
      0.570000   0.000000   0.570000 (  0.577238)
      1.040000   0.000000   1.040000 (  1.031634)
      0.540000   0.000000   0.540000 (  0.539968)
    
    Test Script:
    ----
    require 'benchmark'
    
    Benchmark.bm do |x|
      x.report do
        10_000_000.times do
          42 % 1
        end
      end
    
      x.report do
        10_000_000.times do
          42 % 1.0
        end
      end
    
      x.report do
        10_000_000.times do
          42.0 % 1.0
        end
      end
    end
Commits on Apr 23, 2012
  1. @ferrous26
Commits on Jun 16, 2011
  1. @takaokouji

    fixed below.

    takaokouji authored
    (fixes #1285 and #1292)
    
    however, this changes has regresion that does not support alias eval, instance_eval, module_eval and class_eval.
    
    ---
    Squashed commit of the following:
    
    commit 5da9a951b2e483753b2bab0929037af2d3c30b23
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 15 20:49:45 2011 +0900
    
        fixed memory error in Binding#dup, Binding#clone.
        removed fails tag for spec/frozen/tags/macruby/core/binding/clone_tags.txt and spec/frozen/tags/macruby/core/binding/dup_tags.txt.
    
    commit f03f4a48869978764f7d92c5fb556f0dec003c50
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 15 20:19:26 2011 +0900
    
        fixed memory leak in proc + outer_stack.
        fixed segv with RBO.
    
    commit e0bd18a4225f1f16f7a967d89cbbd063fb2b4a9c
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Sat Jun 4 00:49:22 2011 +0900
    
        passed failed test in test_vm/block.rb below.
        ---
        assert ':ok', %{
          proc do
            def proc_caller(&b) b.call end
            def enclosing_method
              proc_caller { return :ok }
              :nok
            end
            p enclosing_method
          end.call
        }
    
        raise TypeError below.
        ---
        1.instance_eval "def f; end"
        1.instance_eval { def f; end }
    
    commit 87657c9de4df385319e4729b3a8c30c15b823a72
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Fri Jun 3 22:36:29 2011 +0900
    
        added fails tags, because segfault on BigDecimal with raise exception.
    
    commit 3ff39e9fa36758f69ce2faded063c066e3abf3c8
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Fri Jun 3 22:31:33 2011 +0900
    
        reset current_class, outer_stack and current_outer in rb_vm_aot_feature_load().
    
    commit da2dfc2c48ad668b5898a233c8585d7cdfea4596
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Fri Jun 3 22:30:43 2011 +0900
    
        added initialize outer_stack.
    
    commit 0638482e0c91584d9a6ef981066bb0f1292fe5f3
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Fri Jun 3 22:30:22 2011 +0900
    
        fixed segfault on rubyspec.
    
    commit 66c81e720c55641453a543d90691c541d7ffa3a9
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 23:20:47 2011 +0900
    
        reset outer_stack when loading rbo.
    
    commit 55beb0c2922839210215938a1c9462ffab639b7c
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 19:24:34 2011 +0900
    
        removed outer_mask from RoxorCompiler, because It is not used now.
    
    commit ccbb5b390bebe3849904921210201d5ccd2e52c8
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 18:51:11 2011 +0900
    
        fixed bug, retain outer_stack in RoxorVM copy constructer and release outer_stack in RoxorVM destructer.
    
    commit e78a418480d41fdaffb6962dd5b386ddb7769892
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 17:22:34 2011 +0900
    
        fixed bug, defined?(<expected constants>)
    
    commit bdfde05de4cf1b7777894383afd1fb1c1aa80827
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 14:44:07 2011 +0900
    
        implemented Binding#dup and Binding#clone.
    
    commit 227017b27d2ce39692f10b51b95d20f3f4097dbf
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 14:27:26 2011 +0900
    
        removed rb_vm_set_outer() and rb_vm_get_outer().
        because does not use original outer now.
    
    commit 3c11376eb514301a2474693a8e4cd893e0dab833
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Thu Jun 2 11:46:18 2011 +0900
    
        fixed segfault on defined?(CONSTANT) in method below.
        ---
        class A
          CONST = 42
          def f
            p(defined? CONST)
          end
        end
        GC.start # GC [A] outer_stack
    
        A.new.f # before SEGV
    
    commit 96cf97a5a6315d684297685fc05d95c223dd4949
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 23:19:51 2011 +0900
    
        occurs TypeError exception below. This is CRuby spec. (like above)
        ---
        1.instance_eval "class A; end"
    
    commit a51d5415c9d6ef1532a0f2a4b1cd37d9b0c9afa8
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 23:07:05 2011 +0900
    
        occurs TypeError exception below. This is CRuby spec.
        ---
        1.instance_eval "A = 10"
    
    commit 6a55eac0bec96de075e648683298cae1ec40d50f
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 22:00:29 2011 +0900
    
        fixed memory leak below. (but MacRuby has memory leak calling eval with string now)
        ---
        Array.class_eval <<-EOS
          def f
          end
        EOS
    
    commit b1aa927a45085305a317a7fbc96212582e12c0b7
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 16:38:16 2011 +0900
    
        does not push outer in eval.
    
    commit 4f8696d7c095cbc311b8f3a1e5f7af37c2f1de2b
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 16:11:22 2011 +0900
    
        fixed bug below.
        ---
        module M1
          B = 42
          module M2
            eval("B") # before uninitialized constant M1::M2::B (NameError), after none.
          end
        end
    
    commit ba3b3110139003b970c207e8c68ec9591fd36cad
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 15:06:40 2011 +0900
    
        fixed memory leak below.
        ---
        loop do
          1.instance_eval do
            42
          end
        end
    
    commit c0b3bbf22383a1fd9689698a6b2df4801a851bfc
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 14:41:08 2011 +0900
    
        Revert "removed rb_vm_outer_t.pushed_by_eval struct member. it use detecting current class on cRuby, but MacRuby has rb_vm_t.current_class."
    
        This reverts commit 5f6cf8fd924a07553e59a474d508274e2ec2b275.
    
    commit 1446c62436ba5fc7a9d71dc929fc84278778f718
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 14:40:54 2011 +0900
    
        Revert "fixed bug below."
    
        This reverts commit 3531dfc0c48af2b610946159a5f621db52d42b4e.
    
    commit d297f371b9d4fd3ebf03fb1534e9bcbb80f524ce
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 14:37:15 2011 +0900
    
        fixed bug below.
        ---
        class EvalSpecs
          class A
            def c
              eval "class C; end"
            end
          end
        end
    
        EvalSpecs::A.new.c
    
        p EvalSpecs::A::C.name #=> "EvalSpecs::A::C"
    
    commit 7f0595b4d23a0494949bf7c23b11a0e007f5e25b
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 13:40:16 2011 +0900
    
        removed rb_vm_outer_t.pushed_by_eval struct member. it use detecting current class on cRuby, but MacRuby has rb_vm_t.current_class.
    
    commit dad53ecafda46ebe7c08a8836260c577df805503
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 13:24:23 2011 +0900
    
        fixed memory leak like below.
        ---
        class A
          Module.nesting
        end
    
    commit a3e956ba4681d16686178fe5f8b93eaae9d89e28
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Wed Jun 1 02:08:26 2011 +0900
    
        fixed memory leak when run below.
        ---
        loop do
          class A
          end
        end
    
    commit d40229a6dfc92571803e858310cf7bb5fdbf3f3d
    Author: Kouji Takao <kouji@takao7.net>
    Date:   Sun May 29 21:10:54 2011 +0900
    
        Revert "fixed displays "reference count underflow" message (fixes #1284)" and "fixed RoxorVM::pop_outer() leaks memory. (fixes #1267)"
    
        This reverts commit 3b4d10e and 68ac3fc.
Commits on Jun 1, 2011
  1. @lrz

    fix a bug when retrieving the special <dollar-sign>38 variable would …

    lrz authored
    …collide with the backquote ascii character, instead we now separately compile special codes and indices
Commits on May 18, 2011
  1. @takaokouji

    fixed RoxorVM::pop_outer() leaks memory. (fixes #1267)

    takaokouji authored
    This changes included many things. See below.
    
    (1) fixed memory leak below.
    1.instance_eval { 42 }
    
    But did not below.
    1.instance_eval "42"
    
    I think currently MacRuby occurs memory leak in eval().
    
    (2) occurs TypeError exception below. This is CRuby spec.
    1.instance_eval "A = 10"
    
    (3) occurs TypeError exception below. This is CRuby spec. (like above)
    1.instance_eval "class A; end"
    
    (4) passed failed test in test_vm/block.rb below.
    assert ':ok', %{
      proc do
        def proc_caller(&b) b.call end
        def enclosing_method
          proc_caller { return :ok }
          :nok
        end
        p enclosing_method
      end.call
    }
    
    (5) removed outer_mask in RoxorCompiler
    Because It is not used now.
    
    (6) supported alias eval, instance_eval, module_eval and class_eval.
    
    (7) set, push and pop outer_stack in runtime.
    
    (8) removed rb_vm_set_outer() and rb_vm_get_outer().
    because does not use original outer now.
    
    (9) implemented Binding#dup and Binding#clone.
Commits on May 14, 2011
  1. @lrz
Commits on May 4, 2011
  1. @takaokouji

    fixed break, next and redo with ensure block, fixed codes below.

    takaokouji authored
    1)
    1.times { begin; break; ensure; p 42; end }
    
    2)
    i=0; while i<1; begin; break; ensure; p 42; end; end
    
    3)
    i=0; while true; begin; break if i>0; i=1; redo; ensure; p 42; end; end
    
    4)
    def f(&proc) p :ok; end; f(&nil)
Commits on Apr 24, 2011
  1. @takaokouji
Commits on Apr 16, 2011
  1. @lrz
Commits on Mar 11, 2011
  1. now depend on revision 127367 of branch LLVM 2.9

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5272 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Mar 10, 2011
  1. better tco disable check

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5270 23306eb0-4c56-4727-a40e-e92c0eb68959
  2. add support for llvm 2.9, test it by passing CFLAGS=-D__SUPPORT_LLVM_…

    Laurent Sansonetti authored
    …29__ to rake
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5269 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Feb 22, 2011
  1. fix lexical const lookup bugs inside modules defined using the :: not…

    Laurent Sansonetti authored
    …ation + attach necessary dwarf metadata to const lookup primitive calls in order for const_missing to properly appear in backtraces
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5236 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jan 28, 2011
  1. fix a bug in the compilation of the 'next' expression which would not…

    Laurent Sansonetti authored
    … honor ensure blocks
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5201 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jan 15, 2011
  1. update copyrights to 2011

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5168 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jan 14, 2011
  1. fix the compilation of C blocks closures to not use a global variable…

    Laurent Sansonetti authored
    … to store/load the Proc object to call, but instead retrieve a reference to it from the block literal argument
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5163 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Dec 16, 2010
  1. fix a bug where calling a method defined with #define_method with a b…

    Laurent Sansonetti authored
    …lock accepting a splat argument (arity -2) would crash
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@5037 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Nov 5, 2010
  1. add support for C-style arrays (from/to Ruby)

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4882 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Oct 28, 2010
  1. add implementation of MRI rb_call_super() method (note: untested)

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4844 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Sep 29, 2010
  1. add basic support for __method__ and __callee__

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4559 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Sep 28, 2010
  1. when calculating a backtrace path from a -e script, omit the current …

    Laurent Sansonetti authored
    …directory
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4547 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Sep 22, 2010
  1. issue write barriers when storing objects into Binding slots (this sh…

    Laurent Sansonetti authored
    …ould fix most of the macirb crashers)
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4533 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Sep 8, 2010
  1. support for C-level blocks (note: this requires a not-yet-released Br…

    Laurent Sansonetti authored
    …idgeSupport with special annotations for blocks)
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4495 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Aug 28, 2010
  1. optimizing symetric masgns

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4476 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 25, 2010
  1. aot: precompiling BridgeSupport metadata (work in progress)

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4272 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 20, 2010
  1. aot: when preparing methods, also pre-compile objc stubs (currently, …

    Laurent Sansonetti authored
    …only generic ones)
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4255 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 16, 2010
  1. started to trim out the static library

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4224 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 12, 2010
  1. follow new llvm changes + no more rtti

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4219 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 10, 2010
  1. removing unnecessary state variables

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4216 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 9, 2010
  1. now interpreting potential cold paths (work in progress)

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4213 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 7, 2010
  1. moving more primitives to the kernel

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4211 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 5, 2010
  1. moving the dispatcher bits into the kernel + misc fixes/cleanup

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4208 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on Jun 1, 2010
  1. per-vm method cache + misc fixes/improvements

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4181 23306eb0-4c56-4727-a40e-e92c0eb68959
Commits on May 24, 2010
  1. reduce usage of std::vector

    Laurent Sansonetti authored
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4137 23306eb0-4c56-4727-a40e-e92c0eb68959
  2. now compile some of the VM primitives into bitcode that will be added…

    Laurent Sansonetti authored
    … to the default compilation module and later inlined
    
    git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@4136 23306eb0-4c56-4727-a40e-e92c0eb68959
Something went wrong with that request. Please try again.