Commits on Jul 5, 2012
  1. - FreeBSD's sys/sysctl.h exposes the 'struct thread' definition

    stass committed Jul 5, 2012
      which conflicts with the rubinius one.  Fix build by redefining
      it for the duration of the include file processing.
Commits on Jul 2, 2012
  1. Make sure to checkpoint while waiting for the world to stop

    dbussink committed Jul 2, 2012
    This prevents a deadlock when another thread was trying to stop the
    world while the environment is trying to shut down.
  2. Merge pull request #1791 from ryoqun/rb-str-new-cstr

    dbussink committed Jul 2, 2012
    Correctly spec rb_str_new_cstr as 1.9-only CAPI
  3. Correctly spec rb_str_new_cstr as 1.9-only CAPI

    ryoqun committed Jul 2, 2012
    Currently, rb_str_new_cstr is spec'ed as a function available under both 1.8
    CAPI and 1.9 CAPI in spec/ruby/optional/capi/ext/rubyspec.h. This is not true.
    As a version guard is correctly used in spec/ruby/optional/capi/string_spec.rb,
    it is only declared under 1.9 CAPI, not under 1.8 CAPI.
    In 1.8 mode, rb_str_new_cstr specs are only compiled, not run, thanks to the
    version guard. So, there is no spec failures. However, this commit suppresses
    the following warning from clang:
      spec/ruby/optional/capi/ext/string_spec.c:165:12: warning:
        implicit declaration of function 'rb_str_new_cstr' is invalid in C99
          return rb_str_new_cstr(NULL);
      1 warning generated.
    Also, #undefs aren't needed in spec/ruby/optional/capi/ext/mri.h, because
    rb_str_new_cstr is now correctly declared only in 1.9 CAPI.
Commits on Jul 1, 2012
  1. Fix Autoload handling by properly reusing the current scope

    dbussink committed Jul 1, 2012
    In the Autoload parts in the VM we now do the lookup again so it's much
    easier to do it with the correct current scope and we follow the same
    lookup mechanisms as a normal constant lookup.
    For this we modify the Helpers for const_get so it can filter a result
    so the autoload is filtered and the real class or a class with the same
    name higher in the hierarchy is returned.
Commits on Jun 30, 2012
  1. Add tags for failing specs

    dbussink committed Jun 30, 2012
  2. Revert "Use the referring scope for lookup in Autoload"

    dbussink committed Jun 30, 2012
    This reverts commit 2106625.
    This has more consequences that take a lot more effort to fix. If we
    want to fix this behavior we probably have to review how autoload works
    and change it more invasively.
  3. Use the referring scope for lookup in Autoload

    dbussink committed Jun 30, 2012
    This fixes cases where this scope is different from the scope where the
    autoload is defined.
Commits on Jun 29, 2012
  1. Merge pull request #1789 from voxik/simplify-mkmf

    rue committed Jun 29, 2012
    Remove unnecessary CAPI version check from mkmf.rb's.
  2. Simplify mkmf.rb.

    voxik committed Jun 29, 2012
    There is no need to check for CAPI version in mkmf.rb, since Rubinius already
    loaded mkmf.rb from version dependent location.
Commits on Jun 28, 2012
  1. Fix wrong conditional

    dbussink committed Jun 28, 2012
  2. No need for explicit state flag

    dbussink committed Jun 28, 2012
    In the SignalHandler we also don't use an explicit flag to keep track of
    whether a thread is running so don't do it here either for consistency.
  3. Properly lock around signal handler thread

    dbussink committed Jun 28, 2012
    This problem could cause multiple signal handling threads. When multiple
    threads were exec'ing, they would all request starting and stopping the
    signal thread. Because we weren't locking this properly, it could happen
    that two signal threads were starting which causes all kinds of other
    problems such as deadlocking.
  4. Fix deadlock when running exec() from multiple threads

    dbussink committed Jun 28, 2012
    When multiple threads would be running sub processes with for example
    backticks, they could deadlock. The guard makes sure we mark the
    before_exec handling as gc independent so we don't deadlock.
Commits on Jun 27, 2012
  1. Updated CI tags.

    brixen committed Jun 27, 2012
  2. Load rubygems in 2.0 mode.

    brixen committed Jun 27, 2012
  3. Fixed Zlib issue on 1.9.

    brixen committed Jun 27, 2012
    The fix for 1.9 works in 1.8 mode as well because
    1. the test should have used ?0
    2. there is no need to convert an integer to a string for #<<
    But I'm splitting the files anyway because there are encoding
    related changes needed for 1.9.
  4. Update CI tags for 2.0 mode.

    brixen committed Jun 26, 2012
Commits on Jun 26, 2012
  1. Fixed booting 2.0 mode.

    brixen committed Jun 26, 2012
  2. Avoid handling signal twice in Process.kill specs.

    brixen committed Jun 26, 2012
    The Mutex added in 5718738 fixes the race condition but loses the ability to
    ensure that the signal handler only runs once. Once the mutex unlocks, the
    handler code can interrupt the code implementing Process.exit! and print
    'signaled' again.  We first lock the mutex, then check the flag. This ensures
    there is no race and the correct value of the flag is always seen. The flag
    itself ensures the handler only runs once.
  3. Try adding Agent to CI again.

    brixen committed Jun 26, 2012
Commits on Jun 24, 2012
  1. Revert "Make Hash#each_item private"

    carlosgaldino committed Jun 24, 2012
    This reverts commit ad0ff8d.
    As @brixen and @evanphx suggested on #1730 we should use #each_item
    where it was used before.