Permalink
Commits on Dec 7, 2012
Commits on Dec 6, 2012
Commits on Dec 5, 2012
Commits on Dec 2, 2012
Commits on Dec 1, 2012
Commits on Nov 30, 2012
  1. Improve performance of Fixnum / Float case

    dbussink committed Nov 30, 2012
    The slowness of this case really showed in the benchmarks of the
    previous commit. This change improves it a lot.
    
    Benchmarks
    
    Before:
    
    === bin/rbx ===
    Fixnum / Fixnum => Fixnum
                         29537345.3 (±4.6%) i/s -  147317067 in   5.000582s (cycle=207197)
    Fixnum / Bignum => Fixnum
                          3047918.1 (±4.3%) i/s -   15215079 in   5.001627s (cycle=163603)
    Fixnum / Float => Float
                           718033.1 (±1.2%) i/s -    3613038 in   5.032528s (cycle=46321)
    
    After:
    
    === bin/rbx ===
    Fixnum / Fixnum => Fixnum
                         29195695.3 (±3.6%) i/s -  145885818 in   5.003754s (cycle=223067)
    Fixnum / Bignum => Fixnum
                          3114276.4 (±3.4%) i/s -   15702263 in   5.048494s (cycle=161879)
    Fixnum / Float => Float
                         15513110.3 (±2.9%) i/s -   77558080 in   5.003963s (cycle=285140)
  2. Teach the JIT about fixnum_div and fixnum_mod

    dbussink committed Nov 30, 2012
    The JIT now knows about these primitives. We only have an optimized
    version for the case where both arguments are non negative, where the
    semantics of division are the same for C / machine code and Ruby.
    
    Benchmarks
    
    Before:
    
    === bin/rbx ===
    Fixnum / Fixnum => Fixnum
                         20107655.8 (±2.8%) i/s -  100587036 in   5.006519s (cycle=201982)
    Fixnum / Bignum => Fixnum
                          3162968.2 (±1.8%) i/s -   15852256 in   5.013464s (cycle=141538)
    Fixnum / Float => Float
                           717959.5 (±1.7%) i/s -    3632104 in   5.060508s (cycle=45976)
    
    === bin/rbx ===
    Fixnum % Fixnum => Fixnum
                        18813711.0 (±1.9%) i/s -   94043780 in   5.000567s (cycle=204443)
    Fixnum % Bignum => Fixnum
                         2717041.6 (±2.0%) i/s -   13695336 in   5.042541s (cycle=134268)
    Fixnum % Float => Float
                        12421966.6 (±2.4%) i/s -   62129025 in   5.004790s (cycle=276129)
    
    After:
    
    === bin/rbx ===
    Fixnum / Fixnum => Fixnum
                         28664392.0 (±7.0%) i/s -  142374720 in   4.998395s (cycle=220736)
    Fixnum / Bignum => Fixnum
                          3072905.7 (±2.2%) i/s -   15458226 in   5.032969s (cycle=157737)
    Fixnum / Float => Float
                           730467.0 (±3.4%) i/s -    3682348 in   5.047618s (cycle=46612)
    
    === bin/rbx ===
    Fixnum % Fixnum => Fixnum
                        29326307.6 (±3.5%) i/s -  146445445 in   5.000831s (cycle=208315)
    Fixnum % Bignum => Fixnum
                         2667568.3 (±1.9%) i/s -   13332110 in   4.999839s (cycle=140338)
    Fixnum % Float => Float
                        13014242.1 (±3.4%) i/s -   65100113 in   5.009206s (cycle=259363)
  3. When closing a popen pipe, child might already have exited

    dbussink committed Nov 30, 2012
    In the Puma tests a server is spawned with IO.popen and in the teardown
    it explicitly uses a waitpid() when shutting down. This means when
    IO#close tries to do that too, it throws an error.
    
    In this case, we can ignore the error if the child has already
    disappeared.
  4. Add IO.popen spec for when child has exited and has been waited for

    dbussink committed Nov 30, 2012
    Extract from the Puma specs
Commits on Nov 29, 2012
  1. Throw TypeError on invalid service

    dbussink committed Nov 29, 2012
    Fixes #2060
Commits on Nov 28, 2012
  1. Include stddef for NULL

    dbussink committed Nov 28, 2012
  2. Setup new unwinds structure that allows dynamic growth

    dbussink committed Nov 25, 2012
    We allocate a small static space for unwinds and allow for growth
    instead of large static sized area. The size of the small space is based
    currently on CI runs that have enough head room with a size of 4.
    
    This reduces the size of a call frame in the interpreter by around 180
    bytes.
  3. Setup thread local scratchpad for unwind info

    dbussink committed Nov 25, 2012
    This way we don't have to allocate space for it at the top for each
    jitted method, so we save on stack space allocated.
  4. Add rb_ary_concat

    dbussink committed Nov 28, 2012
  5. Add spec for rb_ary_concat

    dbussink committed Nov 28, 2012
  6. Add rb_sourcefile and rb_sourceline

    dbussink committed Nov 28, 2012
    Fixes #1988
  7. Add myself to AUTHORS

    IPGlider committed Nov 28, 2012
Commits on Nov 27, 2012
  1. Implement rb_thread_create

    dbussink committed Nov 27, 2012
    This uses a macro so we can setup the original filename and function
    name properly. This makes sure they end up in backtraces.
    
    Fixes #2000
  2. Add rb_syserr_fail

    dbussink committed Nov 27, 2012