whitingjr has quit [Ping timeout: 246 seconds]
whitingjr has joined #jruby
_whitelogger has joined #jruby
shellac has joined #jruby
ilbelkyr has quit [Remote host closed the connection]
ilbelkyr has joined #jruby
whitingjr has quit [Ping timeout: 248 seconds]
whitingjr has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
whitingjr has quit [Ping timeout: 258 seconds]
whitingjr has joined #jruby
whitingjr has quit [Quit: Leaving.]
whitingjr has joined #jruby
rusk has quit [Remote host closed the connection]
whitingjr has quit [Ping timeout: 272 seconds]
rusk has joined #jruby
whitingjr has joined #jruby
whitingjr has quit [Client Quit]
whitingjr has joined #jruby
whitingjr has quit [Quit: Leaving.]
<headius[m]> kares: what did you update in https://github.com/jruby/jruby/issues/5119
<headius[m]> I'm updating a couple other items in there
whitingjr has joined #jruby
lucasb has joined #jruby
whitingjr has quit [Quit: Leaving.]
whitingjr has joined #jruby
<headius[m]> whitingjr: hey there
<headius[m]> I'm back from a trip, could maybe pair with you on trying to fix that thing today
rusk has quit [Remote host closed the connection]
shellac has joined #jruby
<kares[m]> headius: "support Java 8 date-time APIs (to_java) with Ruby types - Time/Date/DateTime"
<kares[m]> that has been shipped and we even had some bug reports that are fixed/shipped
<headius[m]> oh righto, good all
<headius[m]> call
<kares[m]> there was some block dispatch improvements, wasn;t there?
xardion has quit [Remote host closed the connection]
<headius[m]> nothing to the extent I intended with that item
<headius[m]> I'd consider it done if block dispatches could inline but they don't yet
<headius[m]> so many things we don't do
xardion has joined #jruby
byteit101_ has joined #jruby
<enebo[m]> Also if I fix inliner to always be on some blocks will start inlining and remove the dispatch costs altogether
whitingjr has quit [Quit: Leaving.]
<byteit101_> I see talk of releasing 9.2.8, and I was wondering if the other half of my windows native IO changes will make it in? the jnr-enxio half was merged about a month ago, but https://github.com/jruby/jruby/pull/5774 hasn't been yet, and I was curious if it would be included in time for 9.2.8?
<headius[m]> aha, could do!
<headius[m]> I had not returned to it because I was struggling with load/require work, but we are punting that to .9
<headius[m]> I think I got halfway through merging stuff for jnr and got yanked away
<headius[m]> or something shiny crossed my path
<headius[m]> neat
<headius[m]> ```
<headius[m]> oops
<headius[m]> vs
<headius[m]> definitely cutting out the middle man
<headius[m]> pushed to send_site branch if someone wants to look at it...no indy logic yet but that should be similar and allow sends to inline to the target method
<headius[m]> indy stack trace should show block$-e calling directly to method$blah
<headius[m]> fun stuff
<headius[m]> enebo: quick experiment disabling specializations in indy sites didn't seem to have much impact
<headius[m]> but the simple caching is still doing some MH adaptations
<headius[m]> indy call sites are set up to only have one "invoke" that's varargs, assuming that specialization will bind a straight-through path... if we went with a simple site for indy we'd want to arity-split to avoid the adaptations
<headius[m]> this might be slightly faster than specializing but it's making all jitted calls pass through IRubyObject[]
<headius[m]> even if it's not necessary
<enebo[m]> headius: you mean peak performance did not change much or warmup did not?
<headius[m]> I was just testing gem list, which has pretty visible variation depending on indy
<headius[m]> fuzzy gains of maybe 5 percent but it's noisy
<headius[m]> versus full-on indy opto
<enebo[m]> ah yeah on 8 -Xcompile.invokedynamic is a huge spike over not supplying that
<headius[m]> good news is that I did not see a big hit for interp + indy
<headius[m]> byteit101_: ok your turn
<headius[m]> byteit101_: I forget, was this something you needed in a real app?
<headius[m]> this is a pretty localized change so it's likely safe for 9.2.8 but I was curious
travis-ci has joined #jruby
<travis-ci> jruby/jruby (send_site:813a6b4 by Charles Oliver Nutter): The build passed. https://travis-ci.org/jruby/jruby/builds/566560889 [207 min 10 sec]
travis-ci has left #jruby [#jruby]
<headius[m]> well that's unexpected
<headius[m]> I don't usually get that kind of crap right the first time
<headius[m]> aha
<headius[m]> well it's merged
<byteit101_> *yes is relative. I don't need it, but I wanted to be able to upstream the serial port working with blocking IO, and I only deploy my serial app on linux
<headius[m]> yeah I remember now, serial port fiddling
<headius[m]> give master a shot and verify when you can
<byteit101_> Yup. Sweet, there is more changes on the winio branch that I didn't want to PR as it depended on that PR
<headius[m]> yeah cool we can take those on now
<headius[m]> I am stuck without a Windows instance at the moment because macos has totally hosed my vbox somehow
<headius[m]> some security issues on recent mojave update
<byteit101_> Fun :-P
<headius[m]> tried everything...I'm just going to bite the bullet and finally set up a dual boot
<headius[m]> if you can piece together some PRs that aren't too huge we'll evaluate
<headius[m]> windows native IO is so bad right now it seems like wecan only improve
<byteit101_> can create one real quick from that branch
<headius[m]> ok I'll let travis chew on that for a bit
shellac has quit [Ping timeout: 248 seconds]
subbu is now known as subbu|away
<headius[m]> byteit101_: one review note about gracefully falling back if native support is disabled
<headius[m]> we haven't been perfect about keeping that mode working well but I'd like to not make it worse
<headius[m]> enebo: you should have a look at that too
shellac has joined #jruby
<byteit101_> Sure, how can I detect that?
<kares[m]> yay, a SendCallSite ... was just thinking about that the other day :)
<kares[m]> definitely will take a look
<headius[m]> we have a kinda-sorta working respond_to site I'd like to make better too
<headius[m]> I'm dubious on method_missing optimization but that's out there as well
<kares[m]> nope isn;t but I have smt on that end
<headius[m]> respond_to is a mess because of respond_to_missing? and all that BS
<kares[m]> at the call-site level
<kares[m]> yeah respond_to is
<kares[m]> but mm wasn't so bad ... initial testing showed its fine
<headius[m]> byteit101_: POSIX.isNative
<headius[m]> for these purposes anyway
<headius[m]> you can also check Options.NATIVE_ENABLED
<headius[m]> that's more general
<kares[m]> need to take a look at that work of mine for next 9.2 maybe ;)
<kares[m]> .9
<headius[m]> yeah right now mm doesn't cache anything in any site
<headius[m]> it could cache mm and that would gain us...I'm not sure what exactly
<headius[m]> high-speed dispatch to a megamorphic method
<kares[m]> well I think I might have a real-worl use-case to test that out
<headius[m]> real-world cases are sorely needed here
<kares[m]> celluloid app - tons of method-missing
<headius[m]> I started poking at send because optcarrot uses send for almost all machine instructions
<headius[m]> which is about as far from a real-world case as you can get
<kares[m]> basically every method-call is a mm dispatch
<headius[m]> ah and it never plugs that hole
<headius[m]> rails for example does a pretty good job of plugging the holes so mm is not on hot path
<headius[m]> (or so I believe)
<kares[m]> yep except a few classes
<headius[m]> it used to do a lot more
<byteit101_> headius[m]: cool, I'll update the PR this evening then with that check
<headius[m]> I mean a lot more mm hot path
<kares[m]> like some AS::TimeWithZone or smt related
<headius[m]> byteit101_: obviously the cases you're interested in don't have to work with non-native fallback but ideally other stuff wouldn't break
<headius[m]> that hard instantiation of msvcrt library was my concern
<headius[m]> it will bust in clinit on boot
<headius[m]> kares: I can't say I've seen mm on profiles, but it's hard to tell
<kares[m]> yeah I am sure its very minor in a typical Rails app these days
<headius[m]> I seem to remember sinatra having some reflective dispatch paths though
<headius[m]> have to look into that maybe
<kares[m]> but if the change is simple enough and not invasive it might be worth caching mm
<headius[m]> I'd love to sit down for a week on some sinatra and roda apps and see how tight we can make them
<kares[m]> at least o skip the lookup
<headius[m]> yeah
<headius[m]> it shouldn't be too hard
<headius[m]> I don't think it has to do any respond_to_missing? checks...once you actually dispatch it either goes to a method or it goes to mm
<headius[m]> if you want to see a template for what the indy send site would look like check out how I'm binding Class#new
<headius[m]> it uses a second call site for the initialize lookup
<headius[m]> the whole thing inlines though
<headius[m]> so the general version of this would just stack up a few sites for each incoming symbol, up to some limit
<headius[m]> rather than just the one site for initialize
<headius[m]> I'd like to try to revisit dynalink too
<kares[m]> how do you know that the whole piece inlines, what do you use that for?
<headius[m]> so instantiating any object with SomeClass.new inlines all the way to the initialize
<headius[m]> without that the object can never be elided by escape analysis etc
<headius[m]> new + initialize usually is stable for a given class
<kares[m]> ah - okay, reading the method I understand your language ;)
<headius[m]> indy's pretty powerful when you get the right pieces in place
shellac has quit [Quit: Computer has gone to sleep.]
byteit101_ has left #jruby [#jruby]
<headius[m]> kares: if you want to review some other indy stuff, I have largely finished https://github.com/jruby/jruby/pull/5536
<headius[m]> all global variables become MutableCallSite internally, which eliminates races and missing volatility as in the current nonsense impl
<headius[m]> I'm pushing the last piece now, which gracefully falls back on a volatile read/write when any global is being updated too much
<headius[m]> oh wtf j9
<headius[m]> bug in fold?
<headius[m]> it obviously works fine on hotspot
lucasb has quit [Quit: Connection closed for inactivity]
<headius[m]> sigh
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (string_freeze_spec:49287eb by Charles Oliver Nutter): The build passed. https://travis-ci.org/jruby/jruby/builds/566689737 [201 min 56 sec]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (string_freeze_spec:49287eb by Charles Oliver Nutter): The build passed. https://travis-ci.org/jruby/jruby/builds/566689737 [218 min 0 sec]
travis-ci has left #jruby [#jruby]
kiwi_45 has joined #jruby
kiwi_45 has quit [Ping timeout: 272 seconds]