Permalink
Switch branches/tags
Commits on Oct 18, 2017
  1. Fixes related to jcodings UTF-8 length updates.

    headius committed Jul 31, 2017
    * Update jcodings to get typo fix (failed to recognize highest
      upper bound).
    * Fix some locations using jcodings without error checking.
    * Modify one place that consumers expect to raise errors until it
      can be updated for return codes (StringSupport.codeLength).
    
    This should fix recent regressions, but we may see new errors pop
    up in places that are not checking these return codes, if I missed
    them in my audit.
    
    Jcodings is moving toward error codes for at least the methods
    with MRI equivalents, so EncodingException will soon be defunct
    (or replaced by something equivalent in JRuby proper).
  2. Coverage changes for 2.4. #4293

    headius committed Jun 26, 2017
  3. [2.4] Fixes for Numeric recursion guard logic in ec800e6.

    headius committed Jun 27, 2017
    * coerceBin should not recursion check
    * RubyFixnum's old override of quo is deleted
    
    For #4293.
  4. Exclude test using RubyVM. #4823

    headius committed Oct 18, 2017
  5. Cleanup.

    headius committed Oct 18, 2017
  6. Overflow cases for ** from MRI #13242.

    headius committed Oct 18, 2017
    See https://bugs.ruby-lang.org/issues/13242
    
    Note that this does not appear to let us pass the related test,
    which runs for a long time (>1min on my machine) to eventually
    produce a Rational instead of infinity.
Commits on Oct 12, 2017
  1. Fixes to reduce access warnings on Java 9.

    headius committed Oct 12, 2017
    * Our own trySetAccessible that only works on fully-open modules.
      This will evolve to use module visibility more accurately.
    * Move inaccessible fields in FilenoUtil to inner class, to make
      their use lazier.
    * Add a flag on by default that assumes 0,1,2 for stdio when JRuby
      is the "main" for this JVM. Avoids the need to reflectively dig
      out the descriptor on Java 9.
Commits on Oct 11, 2017
Commits on Oct 10, 2017
  1. Merge pull request #4812 from jruby/jruby-9.1-with-lje-and-eqq

    headius committed Oct 10, 2017
    Backport LocalJumpError and EQQ fixes from 9.2
  2. Simplify case/when eqq logic and enlist in normal invocation.

    headius committed Aug 9, 2017
    Most case/when will have neither an undefined case value (for bare
    case statements) nor multiple values for a given when (splatted)
    so in those cases we can simply do a plain eqq call + isTrue. The
    unusual cases will still go to the old isEQQ logic, so there may
    be value in optimizing that path later.
    
    The main logic in isEQQ is the processing of a splatted array of
    when values in sequence, and a small bit of logic that simply
    checks truthiness of the when value for a bare case statement.
    
    This change reduces the bytecode for all case/when, and by more
    than half for the typical form. It also allows the === call to be
    optimized with invokedynamic like a normal call.
  3. Final tweaks to LJE break fixes.

    headius committed Jun 28, 2017
    * Add literal closure method to IR closure-accepting interface
    * Replace double boolean in JIT code with enum
    * Check for null in non-local return logic