ur5us has quit [Ping timeout: 260 seconds]
ur5us has joined #jruby
ur5us has quit [Ping timeout: 256 seconds]
ur5us has joined #jruby
ur5us has quit [Ping timeout: 256 seconds]
ebarrett has joined #jruby
ur5us has joined #jruby
drbobbeaty has joined #jruby
ur5us has quit [Ping timeout: 256 seconds]
nirvdrum has joined #jruby
drbobbeaty has quit [Ping timeout: 256 seconds]
simi[m] has joined #jruby
bga57 has quit [Ping timeout: 272 seconds]
bga57 has joined #jruby
bga57 has quit [Ping timeout: 246 seconds]
bga57 has joined #jruby
JohnPhillips3141 has joined #jruby
JohnPhillips3141 has quit [Remote host closed the connection]
JohnPhillips3141 has joined #jruby
subbu is now known as subbu|lunch
drbobbeaty has joined #jruby
mistergibson has joined #jruby
subbu|lunch is now known as subbu
ur5us has joined #jruby
nirvdrum has quit [Ping timeout: 264 seconds]
JohnPhillips3141 has quit [Remote host closed the connection]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<chrisseaton[m]> Hello. I'm looking at general ideas around Ruby boxing. Why do you disable the unboxing pass by default? Does it have some drawbacks?
bga57 has quit [Ping timeout: 256 seconds]
<headius[m]> it doesn't deopt
mistergibson has quit [Quit: Leaving]
bga57 has joined #jruby
<chrisseaton[m]> Ah the old problem of not being able to read real JVM local variables easily.
<headius[m]> well, mostly we just have never implemented deopt at the bytecode level
<headius[m]> Nashorn did it, and we know how to do it, but it has not been a priority
<chrisseaton[m]> Yeah their deoptimisation exceptions I remember
<headius[m]> enebo, kares: this is my new favorite fix for the JDK classloader bug, let me know how you feel about it: https://github.com/jruby/jruby/pull/6273
<headius[m]> chrisseaton: we'll do it if forced to, but with the continued improvements in escape analysis and value types I'm hoping we won't have to
<chrisseaton[m]> It also turns basic operators into simple arithmetic instructions in the IR though, so I guess it must also relieve pressure on the JVM's inliner.
<headius[m]> I'm sure it does
<headius[m]> however simple operators would need to be padded with range checks or use Math.*exact calls which adds much of that pressure back
<headius[m]> not to mention the deopt exception handling and frame reconstitution logic, which would be a large blob of code that's (ideally) only used in rare cases
<chrisseaton[m]> I think the exact calls can be substituted during graph building, so aren't too bad
<headius[m]> a hybrid approach I've considered is to use a small carrier object that holds both the native long bits and an object reference