commit just to save working reading in scope headers
Account for self operand in getSimplifiedOperand
BuildLambda was not really simplifying its operands
More decoding.  Committing lots o stuff including debugging output
Loading persisted IR but crashing on execution
Much hackage on decoding debugging
Gets a bit further on decoding
Introduce {One,Two}OperandBranchInstr to fix ordering in getOperands and to remove if/null checks
Refactor Date#<=>(Date): use the pattern described in [ruby-core:58498]

* http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/58498
* We still depend on compareTo() returning -1,0 or 1, maybe we should probably check if not lesser or higher
Update RubyGems to 2.2.0.
[IR] Clean up ToAryInstr

* Got rid of the useless dontToAryArrays flag in ToAryInstr
  I think I added it to support inlining of closures, when
  YieldInstr is converted to ToAryInstr. However, that code needs
  some fixing anyway, and it is better to fix it rather than
  hack up ToAryInstr.

* No change in rubyspec results in IR mode.
* Closes #1184 undefined method `__ruby_object' for interface implementation
* Use #equals instead of == to compare the method name String objects since == will return false if the String objects have the same content, but are different instances.
* Closes #1184 undefined method `__ruby_object' for interface implementation
* Use #equals instead of == to compare the method name String objects since == will return false if the String objects have the same content, but are different instances.
Invalidate last SP before bailing out to dummy. Fixes #1375.
Merge remote-tracking branch 'origin/jruby-1_7'
Happy New Year!
Regression spec for #1375.
Regression spec for #1375.
Improve pre-frozen string logic with a deduplication cache.

This commit brings our "str".freeze compiler optimization in line
with MRI by using a global deduplication cache to provide for even
more sharing across literals. The cache is both weak-keyed and
weak-valued and just maps from an arbitrary RubyString to the
pre-frozen cached version of that RubyString.

Note that the logic for deduplication is synchronized against the
JRuby runtime. This will impact concurrent loads that repeatedly
ping the cache, but uses in this commit all cache the value
locally and only hit the dedup cache once. This potential
concurrency bottleneck may need to be addressed in the future.
Implement deduplication of literal hash string keys.

Because we know that string keys are immediately duplicated and
frozen we can use our freeze-dup cache of strings in the compiler
whenever we see a literal hash with literal string keys. This
avoids the overhead of duplicating and freezing literal strings
repeatedly, for a roughly 4x performance speedup on a 5-element
literal hash with literal string keys. In addition, this commit
modifies the normal freeze-dup process in Hash to use the dedup
cache added in 926ca89.

This commit may introduce contention since the process of freeze-
duping string keys now must pass through the synchronized dedup
logic from 926ca89. We may need to reexamine that logic, or not
use it in the hash key string insertion freeze-duping.