Skip to content
Branch: global-cache
Commits on Mar 20, 2012
  1. Remove unneeded DISPATCH from goto instructions

    ryoqun committed Mar 20, 2012
    When generating instruction_implementations.cpp from instructions.def, every
    instructions are appended with the DISPATCH macro. Thus, it's not needed for
    goto instructions to explicitly call DISPATH.
  2. Remove Object#__fixnum__

    jfirebaugh committed Mar 11, 2012
    Its only use was the compiler transform that dbussink
    just generalized.
Commits on Mar 19, 2012
  1. Improve compiler transform for coercions

    dbussink committed Mar 19, 2012
    This inserts a type check in the calling method so the check is much
    cheaper for the common case when we don't need to coerce the value.
  2. Merge pull request rubinius#1624 from fxn/master

    ileitch committed Mar 19, 2012
    Let Module#const_defined? check Object in 1.9 if search_parents is true
Commits on Mar 18, 2012
  1. Change DNS matcher to allow underscores. Caused failing specs if you'…

    subwindow committed Mar 18, 2012
    …ve got certain things in your hosts file
  2. Add rb_obj_encoding to C-API

    dbussink committed Mar 18, 2012
  3. Add spec for rb_obj_encoding

    dbussink committed Mar 18, 2012
  4. Split the actual execution of the coerction into separate methods

    dbussink committed Mar 18, 2012
    This makes them nicer to the JIT, which can now better inline the first
    step where just the type is checked. Since the common case is that we
    don't have to coerce, this makes it cheaper for those cases. The
    complete methods often use exceptions which makes it harder to inline.
    This improves performance, for example for Array#dup:
    === bin/rbx ===
             dup strings  3492520.3 (±3.8%) i/s -   17446494 in   5.003134s (cycle=123734)
             dup numbers  3471273.3 (±4.4%) i/s -   17330250 in   5.003426s (cycle=165050)
    === bin/rbx ===
             dup strings  3664231.1 (±1.6%) i/s -   18353628 in   5.010230s (cycle=124011)
             dup numbers  3656536.5 (±3.9%) i/s -   18368316 in   5.032562s (cycle=173286)
    We probably still want to look into making the coercion checks cheaper,
    since they have quite an impact still.
  5. Use Rubinius::Type.infect instead of manual tainting / untrusting

    dbussink committed Mar 18, 2012
    Also shows we don't need separate Array#inspect methods for 1.8 and 1.9
Commits on Mar 17, 2012
  1. Cleaning up whitespace

    subwindow committed Mar 17, 2012
  2. Merge pull request rubinius#1617 from subwindow/ruby_19_fetch_keyerror

    dbussink committed Mar 17, 2012
    Fix for Ruby 1.9 Hash#fetch to raise KeyError when no key exists
  3. Make sure we raise exceptions when there are \0 characters in a string

    dbussink committed Mar 17, 2012
    We need to be conservative here and raise an exception when we have \0
    characters in the strings passed to methods such as Process#exec and
  4. Guard string for null bytes

    dbussink committed Mar 17, 2012
You can’t perform that action at this time.