nirvdrum has joined #jruby
lucasb has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #jruby
KeyJoo has joined #jruby
KeyJoo has quit [Quit: KeyJoo]
nirvdrum has quit [Ping timeout: 276 seconds]
KeyJoo has joined #jruby
Joufflu has joined #jruby
Joufflu has quit [Remote host closed the connection]
rusk has joined #jruby
nirvdrum has joined #jruby
nirvdrum has quit [Ping timeout: 268 seconds]
drbobbeaty has joined #jruby
nirvdrum has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nirvdrum has quit [Ping timeout: 264 seconds]
nirvdrum has joined #jruby
shellac has joined #jruby
nirvdrum has quit [Ping timeout: 240 seconds]
drbobbeaty has joined #jruby
nirvdrum has joined #jruby
lucasb has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:3ca86ee by kares): The build is still failing. https://travis-ci.org/jruby/jruby/builds/601786900 [248 min 50 sec]
subbu is now known as subbu|away
<headius[m]> ugh, sometimes Java I just wanna smack you upside the head
<headius[m]> java.nio.Buffer is abstract but its sole constructor is package-private
<headius[m]> how does it serve Java developers to prevent them from implementing Buffer
<headius[m]> woot, missed optimization in ahorek's unpack1...it was still allocating the array and then not using it
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:6f78f04 by Charles Oliver Nutter): The build is still failing. https://travis-ci.org/jruby/jruby/builds/601816609 [193 min 21 sec]
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:6f78f04 by Charles Oliver Nutter): The build is still failing. https://travis-ci.org/jruby/jruby/builds/601816609 [209 min 12 sec]
travis-ci has left #jruby [#jruby]
<headius[m]> strange, I just got this running test:mri locally:
<headius[m]> woot, with that tweak we appear to be consistently fastest or matching TR on the unpack scenarios from ahorek
<headius[m]> and this could get better
<headius[m]> I aborted my attempt to replace ByteBuffer wrapper with a ByteListCursor that just maintains position, but that would reduce the size of allocated objects quite a bit (ByteBuffer has a half-dozen fields)
subbu|away is now known as subbu
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:cc0d952 by Charles Oliver Nutter): The build is still failing. https://travis-ci.org/jruby/jruby/builds/601844874 [205 min 26 sec]
<headius[m]> kares: around?
<headius[m]> looking into your Fixnum#== indy thing
<headius[m]> I fixed something similar recently
KeyJoo has quit [Quit: KeyJoo]
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
KeyJoo has joined #jruby
shellac has quit [Ping timeout: 276 seconds]
subbu is now known as subbu|lunch
<headius[m]> kares: enebo: review plz: https://github.com/jruby/jruby/pull/5940
subbu|lunch is now known as subbu
<enebo[m]> headius: looks good and I appreciate that logging. I wonder if we can figure out a reasonable way to test via logging in the future
<headius[m]> yeah I'd like the logging to be more integral to indy binding as well, so it can't break if someone happens to delete or move a line of code
<headius[m]> in general I'd like all indy binding to be more declarative than it is now
<headius[m]> give me a ruling on that second PR too please
<headius[m]> I've got a thread mutex PR coming shortly that fixes two 9.2.9 issues
KeyJoo has quit [Quit: KeyJoo]
<headius[m]> ok with any luck I've got both of those 9.2.9 mutex/condition issues fixed up without too much trouble
<headius[m]> fwiw that original logging was incorrectly saying we bound it directly even when we did not
<enebo> sneaky sneaky
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:80b914b by kares): The build is still failing. https://travis-ci.org/jruby/jruby/builds/601973017 [221 min 12 sec]
travis-ci has left #jruby [#jruby]
<enebo[m]> headius: that is some weird shit...The scenario that is
<headius[m]> I'm getting that class cast exception I mention above in CI too
<headius[m]> have not traced to see what commit caused it but it's not me
<headius[m]> I mean it's not me today
<enebo[m]> well this has to be from me...but why isn't this always failing
<headius[m]> it isn't?
<enebo[m]> seriously wtf I was green on this I swear
<headius[m]> tell it to the judge
<enebo[m]> ok well I will fix it. I should be happy it is consistent
<enebo[m]> I am very confused right now though :P
<headius[m]> what's it from?
<enebo[m]> I see the error
<enebo[m]> some test no doubt does to_str -> nil which will just return nil here
<enebo[m]> I did not read 2 methods down to notice this
<headius[m]> ahh ok
<enebo[m]> and tbh I always forget about the coercion wrinkle
<headius[m]> ok I have a conundrum
<headius[m]> I think it's a problem of racing thread status and unlocking
<headius[m]> the old logic would unlock, mark sleeping, and then proceed to sleep
<headius[m]> the new logic marks sleeping, unlocks, and then proceeds to sleep (by virtue of using lock.newCondition().await() from JDK)
<enebo[m]> hey do subtypes of String in MRI really still marked as T_STRING?
<headius[m]> so this and the spec immediately after it fail now because I can't mark sleep within await
<enebo[m]> Seems like they can't
<headius[m]> yeah T_* is the native type
<headius[m]> the struct
<enebo[m]> yeah so class Foo < String will still be T_STRING?
<headius[m]> I'm 96% sure of that
<enebo[m]> ok well then blerg
<headius[m]> it's like our RubyString
<enebo[m]> out checkStringType has some mild incompatibility
<headius[m]> 🤯
<enebo[m]> it may be that the capture struct via RTYPEDATA ends up erroring out when to_str returns nil
<headius[m]> ah yeah I think that's not supposed to happen
<enebo[m]> I guess I will look at the specific case
<headius[m]> I mean it's supposed to TypeError if it returns nil or something, yeah?
<headius[m]> like to_str is not allowed to return non-String
<enebo[m]> I obviously can and probably will fix it at this one site because 9.2.9 but I need to understand this
<enebo[m]> yeah I would say it should but I could with 0% confidence say if I change our checkStringType to do this we would not have something odd happen
victori has quit [Quit: ZNC 1.7.5 - https://znc.in]
<headius[m]> I an not sure how to handle this beyond moving to actual thread status
victori has joined #jruby
<headius[m]> I can't mark thread as sleeping using our mechanism from within the condition.await call
<headius[m]> and I can't sleep on the condition without the lock still being active, so I can't unlock, mark sleep, and then await
<headius[m]> we have put this off for a while...maybe 9.2.10 needs to start using actual JVM thread status for Ruby thread status
<enebo[m]> so from an impact perspective what does the current state of things mean for existing users
<headius[m]> TBH I'm not sure there's not a race at the JDK level, but the logic I see unlocks and then parks
<headius[m]> I guess I could impl Condition myself but yuck
<headius[m]> ok so for current users, if they see that thread is sleeping they know the mutex is unlocked
<headius[m]> with the change, if the thread is sleeping it may still have the mutex for a short time
<headius[m]> like nanoseconds short time
<headius[m]> the spec fails because it explicitly tests if the mutex is locked immediately after sleep state is set
<headius[m]> the problem with the current state is that the sleep doesn't actually sleep on the mutex, it sleeps on some other lock
<headius[m]> which interferes with concurrency that expects it to be sleeping on the mutex
<headius[m]> implementing the condition logic myself would not be ideal...have to juggle thread states and LockSupport.park and such
<headius[m]> and properly unpark thread and mark it alive if interrupted
<enebo[m]> I am more wondering in terms of ruby-concurrent or something where someone has already written stuff around mutexes which may hit some problem
<enebo[m]> and I think at this point we should consider which version of this is least problematic
victori has quit [Quit: ZNC 1.7.5 - https://znc.in]
<enebo[m]> 9.2.8 was changed logic so leave it there. Do new fix which has this wrinkle or go back to 9.2.7
victori has joined #jruby
<headius[m]> hmmm
<headius[m]> yeah
<headius[m]> I don't know
<headius[m]> I'm trying a quick hack to use actual thread status and see if it fixes this narrow case
<headius[m]> I think the current situation is not acceptable fwiw
<headius[m]> I did fix the mutex interrupt exception thing, that seems to be ok
<headius[m]> but the condition sleep issue is the one I'm stuck on right now
<headius[m]> sigh I think I'm going to have to just impl condition.await myself
victori has quit [Quit: ZNC 1.7.5 - https://znc.in]
victori has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:4122fcb by Thomas E. Enebo): The build was fixed. https://travis-ci.org/jruby/jruby/builds/602010589 [212 min 49 sec]
<enebo[m]> lol jruby -r date -e 'Date._strptime "ddd", nil'
nirvdrum has quit [Ping timeout: 252 seconds]
<enebo[m]> ok so I guess I will be auditing all of these after all
victori has quit [Quit: ZNC 1.7.5 - https://znc.in]
victori has joined #jruby
victori_ has joined #jruby
victori has quit [Ping timeout: 265 seconds]
<headius[m]> Nice
<headius[m]> Add specs
<enebo[m]> mixed usage all around...I will have to audit in MRI each use and see wtf it should be doing here
victori has joined #jruby
victori_ has quit [Ping timeout: 276 seconds]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]