_whitelogger has joined #jruby
aqd has quit [Ping timeout: 272 seconds]
_whitelogger has joined #jruby
_whitelogger has joined #jruby
Puffball has joined #jruby
Nikolay_ has joined #jruby
drbobbeaty has quit [Ping timeout: 240 seconds]
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
Nikolay_ has quit [Ping timeout: 256 seconds]
aqd_ has joined #jruby
drbobbeaty has joined #jruby
lucasb has joined #jruby
<headius> kares: I have not seen it since and only saw it on CI
<headius> the * characters make that build a bit noisy now though
<kares> np if you remove them - just wanted to see progress to not give the impression that its stucked
<kares> what is the hold up with 9.2.6 any eta?
<kares> asking since I will need the 'less' thread sync issue in a release
<kares> its blocking an update and since 9.1.17 doesn't have it either ...
<enebo> kares: I was hoping to see a new rb-inotify come out but I think we can release today since there is a work around (user older rb-inotify for now)
<enebo> kares: but that issue with rb-inotify will make all rails users see big stack traces at the end of every rails command they run
<enebo> kares: actually maybe we should wait until Monday since kristian has not looked at tokari.io thing. I don't think there is any issue but those have been failing a while so for I know this finalization stuff we changed could effect those jobs
<enebo> especially since they have embedding use cases in them
<headius> kares: hey we need to discuss builtins
<headius> it seems pretty solid now in my testing and I confirmed bootsnap works properly
<headius> you had concerns?
<enebo> headius: I did not see anything major and kares seems to have more opinion on it
lucasb has quit [Quit: Connection closed for inactivity]
<headius> enebo: I expect we'll look at a 9.2.7 around end of month anyway
<headius> ideally three releases (including 9.2.6) before RailsConf
<enebo> headius: yeah maybe a tad sooner if alll the issues get ticked off
<enebo> headius: but we need to do a rails test pass so we maybe will find more significant issues too
<headius> could do more than 3 but you and I both have kaigi (probably)
<enebo> yep
<headius> enebo: you are ok with no_builtins in 9.2.6 then
<enebo> I don't really expect basic Rails 6 greening work to extend past Feb
<enebo> headius: no I think 9.2.7 is fine
<headius> oh well ok then
<headius> what is left for 9.2.6?
<enebo> nothing
<enebo> which is why I don't want to add anything
<enebo> the monday is to just make sure kristian does not notice anything with finalization and hopefully rb-inotify puts out a release by then
<enebo> so we are well into 9.2.7 work already
<enebo> ignore that ProcNew is a bad name now too
<enebo> we can change that name later I guess
<enebo> In retrospect I should have PRd this since we force a frame for proc() but there is no other way to fix this
<headius> I thought we had decided not to support this years ago
<enebo> ruby stdlib uses it
<headius> it's nothing new
<headius> and it doesn't need to
<enebo> no true
<enebo> so we can revert and maintain that delta in our stdlib copy
xardion has quit [Remote host closed the connection]
<enebo> unless you want to try and push this back to MRI as stdlib change
<enebo> I suspect someone "likes" (p = proc) vs (p = Proc.new)
<headius> I want to push back
<headius> this is an accidental feature and I think there are others who would llike to see it go away
<headius> and this piece of code should be &proc anyway
<headius> I suspect it was written because that was a syntax
<enebo> oh it was an accident
<enebo> I will revert this
<enebo> headius: yeah I find it weird that it was not that
<enebo> headius: had it been code we owned that was my inclination
<enebo> but I don't like maintaining deltas and we don't constantly sync stdlib so upstream was not appealing
<enebo> :)
xardion has joined #jruby
<headius> I'll just fix it in MRI
<headius> this is trivial
<enebo> there are 4 uses
<headius> yah I just noticed
<headius> thanks I can apply that to MRI
<enebo> pushed to master as well for us
<headius> omg MRI doesn't manually update a changelog anymore
<headius> that was like the biggest barrier to me actually contributing
<headius> enebo: we could make that proc error better
<headius> MRI doesn't raise there so it's all ours
<enebo> headius: true
<enebo> headius: I don't know how crazy I want to get since in this case we could even suggest &p but just a simple (consider using Proc.new)
<headius> enebo: if (CommonByteLists.PROC.equals(fcallNode.getName().getBytes()))
<headius> that shouldn't be needed
<headius> reads = BLOCK causes "proc" to get added to the global list of frame-reading methods
<headius> you reverted it anyway but all you needed was the annotation part
<enebo> headius: yeah I guess I should have realized that but I did not look more at how that field was used
<enebo> I guess it is just for the reads/writes lists
<headius> I really want to rework the binder generation
<headius> or get full indy solved
<headius> it could do so much more, even to the point of passing arbitrary frame data through for reads
<headius> killing the need for the frame in many more places
<enebo> we need proper warmup bench to help us make this determination
<headius> I tested yesterday...AppCDS speeds up full-indy binding but it's still slower than generated
<headius> I need to test the binding with generated populators
<headius> it may be able to pre-generate all the handles
<headius> enebo: I have the commit ready to go for MRI but my local copy isn't set up with svn access
<headius> finally
<headius> enebo: committed to our fork and to MRI trunk
aqd_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<headius> enebo: just noticed this while working on lazy warning backtrace: https://github.com/jruby/jruby/issues/5597
<headius> wrong type of warning for me to test, since it uses the AST directly, but it's obviously broken
aqd has joined #jruby
<enebo> headius: oh interesting yeah I do recall something with warning/warn we changed a couple of months ago
<enebo> some of that was from weirdness in how MRI warned in END blocks?
<enebo> I can look a lttle bit after lunch...
<headius> enebo: I have the warning partial trace change ready to go
<headius> enebo: in that case it looks like the FixnumNode at that point has a source position with a null file
<enebo> headius: yeah our Main/Ruby.parse paths depend on null in some ways and not others. A bit messy so I think when we changed impl of warn/warning something broke
<enebo> I somewhat feel like "-e" should be the file to parse so that is confusing
<headius> I was annoyed that my warning fix helped so little and then I tried bumping up the size of the stack
<headius> 100k iterations of a 100-deep stack triggering a warning takes 28s on Java 8, 3.2s on Java 11
<headius> and 100 is pretty modest
<headius> that's 100 ruby frames
<enebo> is there a comparison with full frame processing?
<headius> oh, and compiled to JVM bytecode...so it might be even worse in interpreter
<headius> enebo: that's the 28s
<headius> it has to dump the full Java trace just to dig out one Ruby stack element
<enebo> oh you mean 8 because it does not have lazy processing
<headius> right
<enebo> ok
<enebo> well that seems impressive
<enebo> if you drop it to like 20 does it get a lot lower?
<enebo> I am not suggesting it but I am wondering how much better it can get
<headius> enebo: objection to push to master?
<headius> drop what to 20?
<enebo> max frames
<headius> oh well the difference with only one level (warning-triggered method called in the main benchmark loop) is about 15-20% faster
<headius> the deeper it gets from there just increases the time on 8 and stays the same on 9+
<headius> can you think of anywhere else we need to use stack walking to just get nearest element?
<headius> I feel like there's another case I'm forgetting
<enebo> hmm
<enebo> I don't know I don't think so
<headius> I did Kernel#__dir__ and internal warnings tested with [].index(1){}
<headius> no idea how common __dir__ is in any hot path code
lucasb has joined #jruby
<headius> FWIW it's still much slower than MRI because they have the caller stack frame in hand
<headius> I need to profile to see whether we can trim more off that
subbu is now known as subbu|lunch
<headius> enebo: remaining overhead mostly seems to be within the stack walking API...at least judging by allocations
<headius> might be possible to trim it down by more direct usage of the API
<headius> you ok with this on master then?
<headius> stream API itself is creating a lot of this garbage 😳
<enebo> java.io?
<enebo> DARK MATTER
<enebo> or you mean lambdas?
<headius> the stack walking API uses Java 8 streams
<headius> which apparently still have a lot of object churn internally
<headius> I did have to run this against 10 because there's no jmc builds for 11 yet
<headius> so they may have improved this in 11
subbu|lunch is now known as subbu
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
lucasb has quit [Quit: Connection closed for inactivity]
7YSABQWJY has joined #jruby
<7YSABQWJY> jruby/jruby (master:d3905ae by Charles Oliver Nutter): The build was broken. https://travis-ci.org/jruby/jruby/builds/490274259 [172 min 45 sec]
7YSABQWJY has left #jruby [#jruby]
<headius> hmm
<headius> subsequent build succeeded, I've informed jeremyevans
drbobbeaty has joined #jruby