Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 21, 2012
  1. Update guard to 2.0

  2. Add empty #prepended method

    Developer can implement that method and put the logic in method
  3. Don't prepend module twice

  4. Update attach_before method.

    Method attach_before should remember last parent. Without this we can
    use prepend only once.
Commits on Aug 9, 2012
  1. Update specs for Module#prepend

    Use ruby guard. Test only for ruby => 2.0
  2. Add helpers for labeled modules

Commits on Aug 3, 2012
  1. Add simple spec for ruby prepend

Commits on Aug 2, 2012
  1. @dbussink
  2. @dbussink
  3. @dbussink

    Ensure we're seeing an actual class here to prevent race condition

    dbussink authored
    It can happen that the inline cache changed since we got the request to
    JIT it. Therefore guard that we're actually seeing a proper class here
    so we fallback to regular sends in that case.
  4. @dbussink

    Add fallback to send after a configurable number of overflows

    dbussink authored
    If the inline cache overflows too often, we don't use uncommon exit
    anymore, but fallback to a regular send. This helps performance for
    megamorphic call sites that keep seeing new types and are best off when
    falling back to a regular method send.
  5. @dbussink
  6. @dbussink
  7. @dbussink
  8. @dbussink
  9. @dbussink
  10. @dbussink

    Remove seen_classes since same functionality is already provided

    dbussink authored
    The multiple method cache entries already provide the same information.
    Since we already track those, we can remove the seen_classes since it
    basically just duplicates functionality.
  11. @dbussink

    Make sure to return after setting the entry

    dbussink authored
    We were filling all the entries with a pointer to the exact same method
    cache entry which is of course not very smart and actually defeats the
    fact that the jit can optimize this properly.
  12. @dbussink

    Only JIT with a single cache

    dbussink authored
  13. @dbussink

    Add polymorphic call site caches with up to 3 entries

    dbussink authored
    Instead of keeping on the most recent call cached, we keep the last
    three that have happened. In case of overflow it always updates the
    latest entry. In the future we would want a smarter eviction algorithm
    to handle this.
  14. @brixen
  15. @chuckremes
  16. @chuckremes
  17. @brixen

    Added ffi-1.1.3 stub gem.

    brixen authored
  18. @brixen

    Fixed ffi-1.0.11 stub gem.

    brixen authored
  19. @brixen

    Moved code to correct files.

    brixen authored
  20. @brixen

    Use consistent PrimitiveFailure exception messages.

    brixen authored
    Primitives can fail at any time, even during VM boot where the backtrace can
    be primitive or possibly missing. The following format of the PrimitiveFailure
    exception message provides all necessary information to index directly to the
    Ruby method and then to the primitive implementation:
      "[module scope]::class_name[.#]method_name primitive failed"
    This is the minimum required exception message. If there exists only a single
    possible cause of failure, that can be appended to, but does not replace,
    the basic exception message.
  21. @dbussink

    Cache the default_external and default_internal encoding

    dbussink authored
    This happens quite a lot, especially since 27e43a6 which caused CI runs
    for 1.9 mode to run at least 30 seconds longer on my system locally. We
    use undefined here as the default value and as the marker to reset the
    value, since nil can be a valid value here and in that case we don't
    want to look it up each time either.
    The ontology change was needed, because otherwise undefined was not the
    correct value yet when the encodings were initialized.
  22. @dbussink
Something went wrong with that request. Please try again.