Permalink
Commits on Jan 17, 2013
Commits on Jan 9, 2013
Commits on Jan 7, 2013
  1. enable ext/gdbm

    Watson1978 committed Jan 7, 2013
  2. update rdoc in ext/gdbm

    Watson1978 committed Jan 7, 2013
  3. fix type in ext/gdbm

    Watson1978 committed Jan 7, 2013
Commits on Jan 4, 2013
Commits on Jan 3, 2013
  1. Remove unused static selector from complex.c

    If it is needed, we can use selCmp from id.h instead.
    ferrous26 committed Jan 3, 2013
  2. [fix #174] use rb_vm_call instead of rb_funcall to avoid an issue #17…

    …4 and improve a performance slightly
    Watson1978 committed Jan 3, 2013
Commits on Jan 2, 2013
  1. fix a bug in MatchData where it causes a crash due to an assertion wh…

    …en calls a method with uninitialized MatchData object
    
    EX)
    ----
    MatchData.allocate.regexp
    Watson1978 committed Jan 2, 2013
Commits on Dec 30, 2012
  1. improve a performance in String#== and String#eql?

    When the length of the string does not match, it will not need to invoke a memcmp().
    
    * before
              user     system      total        real
    ==    0.230000   0.000000   0.230000 (  0.233827)
    eql?  0.230000   0.000000   0.230000 (  0.227859)
    
    * after
                user     system      total        real
    ==     0.020000   0.000000   0.020000 (  0.014583)
    eql?   0.010000   0.000000   0.010000 (  0.015350)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "abc" * 100
    str1 = str * 100
    str2 = str * 200
    
    Benchmark.bm(4) do |x|
      x.report "==" do
        100000.times do
          str1 == str2
        end
      end
    
      x.report "eql?" do
        100000.times do
          str1.eql? str2
        end
      end
    end
    Watson1978 committed Dec 30, 2012
  2. improve a performance in String#+

    it reserves a heap area to store a concatenated string because it is slow to resize a heap.
    
    * before
          user     system      total        real
      0.390000   0.230000   0.620000 (  0.608497)
    
    * after
          user     system      total        real
      0.330000   0.050000   0.380000 (  0.380267)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "abc" * 100
    str1 = str * 100
    str2 = str * 200
    
    Benchmark.bm do |x|
      x.report do
        10000.times do
          str1 + str2
        end
      end
    end
    Watson1978 committed Dec 30, 2012
Commits on Dec 29, 2012
  1. improve a performance in String#delete

    * before
                 user     system      total        real
    delete   0.960000   0.010000   0.970000 (  0.968533)
    
    * after
                 user     system      total        real
    delete   0.200000   0.000000   0.200000 (  0.185961)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "hoge abc" * 100
    
    Benchmark.bm(7) do |x|
      x.report "delete" do
        10000.times do
          str.delete("abc")
        end
      end
    end
    Watson1978 committed Dec 29, 2012
  2. improve a performance in String#index when string is ascii code range

    * before
                 user     system      total        real
    one      0.320000   0.000000   0.320000 (  0.312905)
    small    4.330000   0.000000   4.330000 (  4.336463)
    
    * after
                 user     system      total        real
    one      0.340000   0.000000   0.340000 (  0.331335)
    small    1.330000   0.000000   1.330000 (  1.328736)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "hoge" * 10000 + "\n"
    
    Benchmark.bm(7) do |x|
      x.report "one" do
        10000.times do
          str.index("\n")
        end
      end
    
      x.report "small" do
        10000.times do
          str.index("hoge\n")
        end
      end
    end
    Watson1978 committed Dec 29, 2012
Commits on Dec 28, 2012
  1. improve a performance in String#index(pattern) when passed one charac…

    …ter as pattern
    
    * before
                 user     system      total        real
    index    3.190000   0.000000   3.190000 (  3.195554)
    
    * after
                 user     system      total        real
    index    0.300000   0.000000   0.300000 (  0.296230)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "hoge" * 10000 + "\n"
    
    Benchmark.bm(7) do |x|
      x.report "index" do
        10000.times do
          str.index("\n")
        end
      end
    end
    Watson1978 committed Dec 28, 2012
  2. refactor

    Watson1978 committed Dec 28, 2012
  3. improve a performance slightly in str_each_uchar32_starting_from() wh…

    …en string is only ascii code range
    
    * before
    Rehearsal ------------------------------------------
    []=      4.250000   0.000000   4.250000 (  4.255847)
    index    3.800000   0.010000   3.810000 (  3.797601)
    --------------------------------- total: 8.060000sec
    
                 user     system      total        real
    []=      4.260000   0.010000   4.270000 (  4.253540)
    index    3.800000   0.010000   3.810000 (  3.798211)
    
    * after
    Rehearsal ------------------------------------------
    []=      3.670000   0.010000   3.680000 (  3.669379)
    index    3.190000   0.000000   3.190000 (  3.195554)
    --------------------------------- total: 6.870000sec
    
                 user     system      total        real
    []=      3.680000   0.010000   3.690000 (  3.679104)
    index    3.200000   0.010000   3.210000 (  3.199752)
    
    Test Code:
    ----
    require 'benchmark'
    
    str = "hoge" * 10000 + "\n"
    
    Benchmark.bmbm(7) do |x|
      x.report "[]=" do
        10000.times do
          str2 = str.dup
          str2["hoge\n"] = "foo"
        end
      end
    
      x.report "index" do
        10000.times do
          str.index("\n")
        end
      end
    
    end
    Watson1978 committed Dec 28, 2012
Commits on Dec 25, 2012
Commits on Dec 14, 2012
  1. Expose missing C API functions for time.c

    Since time.c was updated several months ago we can
    now expose these functions that are part of the
    current C API for MRI.
    ferrous26 committed Dec 14, 2012
Commits on Dec 12, 2012
  1. Update RubyGems with latest 1.8.x patches

    Probably the last easy update to RubyGems, next
    will be the 2.0 stuff; though we need to get
    psych working on MacRuby first, and probably also
    update zlib.
    ferrous26 committed Dec 12, 2012
Commits on Dec 2, 2012
  1. Import CRuby change to explicitly ignore GCC extension warning

    In my case, I have a C extension where I compile with
    the -Werror option. The MacRuby ruby.h header generated
    this warning as a result:
    
    /Users/mrada/Library/Frameworks/MacRuby.framework/Versions/0.13/usr/include/ruby-1.9.2/ruby/st.h:69: warning: type of bit-field ‘num_entries’ is a GCC extension
    ferrous26 committed Dec 2, 2012
Commits on Nov 27, 2012
Commits on Nov 23, 2012
  1. [fix #172] fix the Range#each where does not accept the range object …

    …when create it with object which has to_str method as begin of range
    Watson1978 committed Nov 23, 2012
Commits on Nov 9, 2012
Commits on Oct 5, 2012
  1. [fix #153] fix a bug which fails looking up method when call super fr…

    …om block in #define_method
    Watson1978 committed Oct 5, 2012
Commits on Oct 2, 2012
  1. Make installer setup Xcode integration as root

    Apparently the inherited user was not root.
    ferrous26 committed Oct 2, 2012
  2. Log postflight script exit code

    It seems that the Xcode integration script is not running when called
    from the installer. Adding some debug info will help diagnose the issue.
    ferrous26 committed Oct 2, 2012
Commits on Sep 29, 2012
  1. Fix symlink generation when installing using the DESTDIR option

    Most notably the nightly builds were getting messed up because the
    symlinks for the bin scripts were pointing to a directory that did
    not exist on most systems.
    ferrous26 committed Sep 29, 2012
  2. Make ruby_deploy cleanup .rb files properly when using --compile

    Reported by Robert Rice on the MacRuby developers mailing list September 28, 2012.
    ferrous26 committed Sep 29, 2012