Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: unbound-method…
Commits on Mar 25, 2013
Commits on Mar 24, 2013
  1. @YorickPeterse

    Cleaned up code for retrieving method parameters.

    YorickPeterse authored
    The use of Array#map would require the use of Array#compact to get rid of
    NilClass values in the parameters collection. An easier (and probably a bit
    faster way) of doing this is to simply use Array#each and push values into
    another Array.
    Signed-off-by: Yorick Peterse <>
  2. @YorickPeterse

    Tests for correctly retrieving block arguments.

    YorickPeterse authored
    Signed-off-by: Yorick Peterse <>
  3. @YorickPeterse

    Fix for retrieving UnboundMethod parameters.

    YorickPeterse authored
    Before this commit the code tasked with retrieving method parameters would
    produce incorrect results. For example, take the following method definition:
        def example(number, &block)
          another_number = 20
    This would lead to the following output:
        [[:req, :number], [:block, :block], [:block, :another_number]]
    This was caused due to everything that remains (after processing other argument
    types) being assigned as block arguments.
    This patch fixes this issue by keeping track of the index of the block argument
    and comparing this to the list of local variables similar to how splat
    arguments are handled.
    Signed-off-by: Yorick Peterse <>
Commits on Mar 23, 2013
  1. @carlosgaldino

    Fix typos.

    carlosgaldino authored
  2. @carlosgaldino
  3. @carlosgaldino
  4. @brixen

    Fixed Range#last for 1.9.

    brixen authored
  5. @brixen
  6. @brixen
Commits on Mar 22, 2013
  1. @dbussink

    Setup type guards for reading and writing ivars

    dbussink authored
    We must ensure that the self object we see is actually of the same class
    that we optimized for. These types can be different, for example for
    subclasses of a certain class that might end up with a different memory
    layout for variables.
  2. @dbussink
Commits on Mar 21, 2013
  1. @brixen

    Regen'd website.

    brixen authored
  2. Merge pull request #2216 from ryoqun/oprofile-blog-post-final

    Add a blog post for profiling JIT-ted code with OProfile
  3. @dbussink
  4. @dbussink
  5. @dbussink

    Remove unused extra_ field

    dbussink authored
  6. @dbussink

    Allow for compiled blocks to also have a receiver class

    dbussink authored
    Before the additional data was either a block environment or a receiver
    class, but having a receiver class is also useful for compiling blocks.
    This matters for example for inlining instance variable reads if just a
    block is compiled.
    Improves benchmark/tiers/0/bm_vm1_ivar.rb significantly:
    === bin/rbx ===
      ivar read 58492061.6 (±3.0%) i/s -  289205872 in   4.948913s
       ivar set 41165744.5 (±2.6%) i/s -  204915000 in   4.982051s
    === bin/rbx ===
      ivar read 266371814.2 (±5.6%) i/s - 1283690000 in   4.836606s
       ivar set 224551559.4 (±4.0%) i/s - 1110346272 in   4.953298s
  7. @dbussink

    Setup self class for block based on creator info

    dbussink authored
    This allows the JIT to inline ivar reads inside inlined blocks, for
    example in cases like this:
    def foo
      ary.each {|e| e == @bar }
  8. @dbussink

    Print class name we read ivar from in JIT debugging

    dbussink authored
    Make it easier to see what the class is we guard the ivar read against.
  9. @dbussink
  10. @brixen
Commits on Mar 20, 2013
  1. @brixen
  2. @dbussink

    Remove exports for symbols that are available for libc_nonshared

    dbussink authored
    Apperently on RHEL / CentOS 5.9 this breaks the compile since these
    symbols are exported there. Also checked against Ubuntu and the symbols
    are available there too.
    Fixes #2217
  3. Merge pull request #2218 from adzankich/io19_typo

    Robert Gleeson authored
    Fix typo in io19.rb
  4. @zankich

    Fix typo

    zankich authored
  5. @brixen

    Regen'd website.

    brixen authored
  6. @brixen

    Blog post: PDX Summit Recap.

    brixen authored
  7. @dbussink
  8. @dbussink

    Use a special update method for updating GC references in inline caches

    dbussink authored
    Problem here was that using assign() also resets the hit counters,
    leading to wrong heuristics on whether a method is called often or not.
    In certain cases this could lead to hot methods not being inlined.
  9. @dbussink

    Compiled code only needs to be on stack if internalized

    dbussink authored
    We only need to mark this as on stack when internalizing, since only
    internalize could cause a lock and needs the compiled code object to be
  10. @dbussink

    Remove unused Ruby Agent side

    dbussink authored
    We don't have anything of this at the Ruby side atm, so removing it for
    now. We should see how we want to handle this in the future and set it
    up properly.
    Fixes the hang mentioned in #2197
  11. @dbussink
Something went wrong with that request. Please try again.