Permalink
Commits on Feb 26, 2013
  1. Create global constants for common encodings

    dbussink committed Feb 26, 2013
    The lookup for these constants is a small improvement, but it was
    showing up in profiles as spending significant time in the lookuptable
    for these constants.
  2. Make debugging of global serial bumping easier

    dbussink committed Feb 26, 2013
    This gives us an option to see where the global serial is increased, to
    find for example cases where this causes constant lookup caches to
    invalidate.
  3. Add support for JIT'ing primitive fallback code

    dbussink committed Feb 26, 2013
    We setup specializations for code with a primitive just like regular
    methods, but don't replace the executor. We use the special
    primitive_failed executor to check whether we have jitted versions and
    run them. If we would replace the default executor, we would end up with
    infinite recursion.
Commits on Feb 25, 2013
  1. Cleanup weakrefs before handling finalizers

    dbussink committed Feb 25, 2013
    If weakrefs are kept alive because of finalizers, this means that people
    can access finalized objects if they use finalizers. This shouldn't
    happen and can cause problems, for example with therubyracer.
    
    This problem occured with therubyracer which resulted in an exception
    with the message "Data object has already been freed" because it
    expects the object to be usable if it can be referenced through a
    weakref.
  2. If a parent call frame is jitted, compile the method from there

    dbussink committed Feb 25, 2013
    Improves the new Richards benchmark with the following numbers:
    
    Before:
    === bin/rbx ===
            #main(10000)       76.1 (±3.9%) i/s -        384 in   5.057462s
    
    After:
    === bin/rbx ===
            #main(10000)      109.7 (±4.6%) i/s -        552 in   5.041215s
  3. Remove global lock for LLVM state

    dbussink committed Feb 25, 2013
    This uses a lock on the shared state so we don't have a global lock
    there. Also switches to a spinlock for this case.
  4. Added Richards benchmark

    hosiawak committed Feb 25, 2013
  5. Merge pull request #2176 from ryoqun/spec-shared-style

    dbussink committed Feb 25, 2013
    Fix coding style for :shared
  6. Fix coding style for :shared

    ryoqun committed Feb 25, 2013
  7. Merge pull request #2175 from ryoqun/push-ivar-pretty

    dbussink committed Feb 25, 2013
    Show literals for push_ivar in bytecode printer
  8. Merge pull request #2174 from brainopia/patch-1

    dbussink committed Feb 25, 2013
    Fix typos in proc specs
  9. Fix typos in proc specs

    brainopia committed Feb 25, 2013
  10. Merge pull request #2173 from ryoqun/lambda-method

    dbussink committed Feb 25, 2013
    Don't change a given proc to lambda when shouldn't
  11. Use immediate class as specialization type

    dbussink committed Feb 25, 2013
    We also use the direct class for inline caches, so we want to use this
    consistently. This also makes it easier to improve check_serial so the
    JIT can create a better version of that. Another advantage is that this
    makes it easier to create direct jumps to specialized functions in the
    JIT.
  12. Remove a passing tag

    ryoqun committed Feb 24, 2013
  13. Add an explanation

    ryoqun committed Feb 24, 2013
Commits on Feb 24, 2013
  1. Merge pull request #2170 from brainopia/support_private_hash

    dbussink committed Feb 24, 2013
    Add and fix specs for Hash keys with private hash method
  2. Don't inline calls for not often called methods

    dbussink committed Feb 24, 2013
    This changes the JIT so we don't inline methods that aren't often
    called, allowing for more room in JIT'ted code for methods that are
    often called.
    
    It also changes to keep track of compiling explicitly instead of
    (ab)using the call_count for that. Resetting the call count had other
    effects such as disabling that method for future jitting that has
    adverse effects.
    
    On my system this shaves off around 1 - 2 seconds of a CI run.
Commits on Feb 23, 2013
  1. Merge pull request #2171 from brainopia/require_date_from_time

    davorb committed Feb 23, 2013
    Require date when time is required
  2. Merge pull request #2169 from tsion/proc-argument-error

    dbussink committed Feb 23, 2013
    Use CompiledCode name in Proc/BlockEnvironment ArgumentErrors
Commits on Feb 21, 2013
  1. Updated notification email. [ci skip]

    brixen committed Feb 21, 2013
    This email has filters for all projects so using it instead.
  2. More CI tags updates.

    brixen committed Feb 21, 2013