Skip to content
Commits on May 13, 2012
  1. Update 1.9 tags

    committed May 13, 2012
Commits on May 12, 2012
  1. Merge pull request #1715 from caiquanqing/master

    Fix an issue that Marshal cannot unmarshal from an IO stream in 1.9 mode
    committed May 12, 2012
  2. @caiquanqing

    Add a spec for marshal.load to unmarshal through StringIO stream into

    spec/ruby/core/marshal/shared/load.rb, according to Ryo Onodera's
    suggestion.
    caiquanqing committed May 12, 2012
  3. @caiquanqing
  4. Merge pull request #1719 from carlosgaldino/float-comparison

    Float comparison
    Ryo Onodera committed May 12, 2012
  5. @ryoqun

    Improve concurrent performance by cache locality

    There is a bottle neck in SharedState::check_gc_p. It is called from all Ruby
    threads and always writes to memory. That invalidates CPU cache and thus,
    everything is slowed down.
    
    Actually writing isn't always necessary in this case. It is only when the GC
    flag is set. And that situation is unlikely.
    
    This commit removes the bottle neck by avoiding writing. Then, each CPU core
    runs at their full speed, not hampered by slow memory fetching due to cache
    invalidation.
    
    check_gc_p is heavily called under concurrently-executed tight loops (happen
    sometime in the real word, are excised often by people interested in Rubinius's
    promised concurrency)
    
    After this commit, each concurrent thread executes a specially synthesized test
    code as roughly fast as a single thread. This doesn't indicate that Rubinius
    executes Ruby code purely proportional to the number of CPU cores. However it
    does that Rubinius runs its core vm and has a potential to run Ruby code at the
    speed.
    
    Hello true concurrency :)
    
    I measured performance as follows.
    
    BEFORE THIS COMMIT:
    1 thread:
     #<Thread:0x1c id=3 run>: 1.677862 seconds for looping 100000000 times
     #<Thread:0x1c id=3 run>: 1.681874 seconds for looping 100000000 times
     #<Thread:0x1c id=3 run>: 1.682204 seconds for looping 100000000 times
     #<Thread:0x1c id=3 run>: 1.672264 seconds for looping 100000000 times
    
    2 threads:
     #<Thread:0x1c id=4 run>: 4.340247 seconds for looping 100000000 times
     #<Thread:0x24 id=3 run>: 4.443239 seconds for looping 100000000 times
     #<Thread:0x1c id=4 run>: 4.338425 seconds for looping 100000000 times
     #<Thread:0x24 id=3 run>: 4.465941 seconds for looping 100000000 times
    
    AFTER THIS COMMIT:
    1 thread:
     #<Thread:0x10 id=3 run>: 1.645313 seconds for looping 100000000 times
     #<Thread:0x10 id=3 run>: 1.640116 seconds for looping 100000000 times
     #<Thread:0x10 id=3 run>: 1.641852 seconds for looping 100000000 times
     #<Thread:0x10 id=3 run>: 1.647724 seconds for looping 100000000 times
    
    2 threads:
     #<Thread:0x10 id=4 run>: 1.764503 seconds for looping 100000000 times
     #<Thread:0x18 id=3 run>: 1.697629 seconds for looping 100000000 times
     #<Thread:0x10 id=4 run>: 1.715689 seconds for looping 100000000 times
     #<Thread:0x10 id=4 run>: 1.702426 seconds for looping 100000000 times
    
    TEST CODE:
    loop_count = 100_000_000
    threads = 2
    threads.times.collect do
      Thread.new do
        loop do
          time = Time.now
          i = loop_count
          i -= 1 until i.zero?
          puts "#{Thread.current}: #{Time.now - time} seconds for looping " +
               "#{loop_count} times"
        end
      end
    end.each(&:join)
    ryoqun committed May 12, 2012
  6. @carlosgaldino
  7. @carlosgaldino
  8. @brixen
  9. @brixen
  10. @brixen
  11. @brixen
Commits on May 11, 2012
  1. @ryoqun
  2. @ryoqun
  3. @ryoqun

    Remove trailing white spaces

    ryoqun committed May 9, 2012
  4. @ryoqun
  5. @abyx

    Merge pull request #1714 from dubek/time_with_rational_offest_for_19

    Time accepts a Rational offset
    abyx committed May 11, 2012
Commits on May 10, 2012
  1. @ryoqun
  2. @dubek

    Time utc_offset can be Rational

    dubek committed May 10, 2012
  3. @dubek
Commits on May 9, 2012
  1. @IPGlider
  2. @dbussink
  3. @arthurschreiber

    Merge pull request #1711 from r-stu31/spec_splat_orarray

    Add a test case for a splat of 'obj || []'.
    arthurschreiber committed May 9, 2012
  4. @r-stu31

    Tag failing splat spec.

    r-stu31 committed May 9, 2012
  5. @r-stu31

    Add a test case for a splat of 'obj || []'. This is currently failing…

    … under Rubinius.
    r-stu31 committed with rudolf May 9, 2012
Commits on May 8, 2012
  1. @jc00ke

    Merge pull request #1709 from troessner/master

    BasicObject includes itself in its list of constants.
    jc00ke committed May 8, 2012
  2. @jc00ke

    Hex letters should be downcased

    This came up when fixing a bug in MagLev
    MagLev/maglev@78e9025
    jc00ke committed May 8, 2012
  3. @troessner
  4. @troessner
  5. @ileitch
  6. @jfirebaugh
  7. @ileitch

    A misplaced retry statement raising a SyntaxError is a 1.9 feature, a…

    …nd not specific to Fiber#new.
    ileitch committed May 7, 2012
Commits on May 7, 2012
  1. @jfirebaugh

    Tag failing specs

    jfirebaugh committed May 7, 2012
  2. @jfirebaugh
  3. @jfirebaugh

    Remove Open3.popen3 tags

    jfirebaugh committed May 7, 2012
Something went wrong with that request. Please try again.