deobalds has joined #jruby
Antiarc has quit [Read error: Connection reset by peer]
Antiarc has joined #jruby
deobalds_ has joined #jruby
deobalds has quit [Ping timeout: 240 seconds]
deobalds_ is now known as deobalds
deobalds has quit [Quit: Computer has gone to sleep.]
deobalds has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
slyphon has quit [Quit: I REGRET NOTHiiiiiiiiiinnnngggg….]
claudiuinberlin has joined #jruby
rdubya has quit [Ping timeout: 276 seconds]
deobalds has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
drbobbeaty has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
deobalds has joined #jruby
Puffball has quit [Read error: Connection reset by peer]
deobalds has quit [Quit: Computer has gone to sleep.]
phlebas has joined #jruby
<GitHub14> [jruby] kares pushed 5 new commits to master: https://git.io/f4F0u
<GitHub14> jruby/master 99a13a8 kares: [refactor] split getline internal into 2 methods...
<GitHub14> jruby/master 16ecc3c kares: lets use AssertionError on unexpected outcomes...
<GitHub14> jruby/master adccc0c kares: [refactor] cleanup and review RubyIO internals...
rdubya has joined #jruby
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
drbobbeaty has joined #jruby
jrafanie has joined #jruby
claudiuinberlin has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<GitHub43> [jruby] kares closed pull request #5205: review (cleanup) boot -> standard JRuby extension loading (master...ji-lazy-pp2) https://git.io/vhCOd
<GitHub191> [jruby] kares pushed 1 new commit to master: https://git.io/f4F2e
<GitHub191> jruby/master 459262a Karol Bucek: Merge pull request #5205 from jruby/ji-lazy-pp2...
<GitHub94> [jruby] kares deleted ji-lazy-pp2 at 4ad609e: https://git.io/f4F2J
<GitHub169> [jruby] kares opened issue #5233: jruby (ext) loading left-overs to consider https://git.io/f4FV3
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
claudiuinberlin has joined #jruby
claudiuinberlin has quit [Ping timeout: 260 seconds]
jrafanie has joined #jruby
deobalds has joined #jruby
<travis-ci> jruby/jruby (master:459262a by Karol Bucek): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/397748740)
<travis-ci> jruby/jruby (master:39d1ba3 by kares): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/397735051)
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
deobalds has joined #jruby
nelsnelson has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Antiarc has quit [Ping timeout: 276 seconds]
Antiarc has joined #jruby
nelsnelson has joined #jruby
nels has joined #jruby
nelsnelson has quit [Ping timeout: 265 seconds]
deobalds has quit [Quit: Computer has gone to sleep.]
slyphon has joined #jruby
<Antiarc> kares: thanks for that manticore catch! 👍
claudiuinberlin has joined #jruby
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<GitHub166> [jruby] headius created exact_math (+1 new commit): https://git.io/f4b1y
<GitHub166> jruby/exact_math 14f00d7 Charles Oliver Nutter: Use Java 8 Math.*Exact methods for intrinsic overflow checks.
<headius> lopex: hey I looked briefly at this: https://github.com/jruby/jruby/issues/5218
<headius> it looks like there's a few options not handled in the case mapping stuff, I'm wondering if that was newer bits or just something you didn't get to
<headius> specifically there's a check in their case map options function for arg0 == :ascii and then it does things differently
<lopex> headius: I think it's post 2.5
<headius> ultimately I believe the problem is that when we do non-7bit case mapping we are not recalculating CR, so I can just add that, but the logic doesn't match MRI trunk
<lopex> headius: we should match 2.5
<lopex> or ther eis a bug
<lopex> headius: yes that's the case
<headius> ok that's what I figured...unsure if these specs are intended for 2.5 or after
<lopex> yeah
<headius> nirvdrum: apparently you wrote these specs...are they based on 2.5 behavior or 2.6?
<headius> upcase, downcase, CR checking
<headius> if it's 2.6 we would not want to fix this in 9.2
<headius> I mean we should not have invalid CR but we don't have to match MMRI
<headius> line for line
<headius> if ((flags & Config.CASE_ASCII_ONLY) != 0) {
<headius> I do see that in our caseMap function
<lopex> headius: yeah, I guess we dont update the cr when downcasing sharp s to ss for example
<lopex> so cr can change
<lopex> from valid to 7bit
<headius> right
<lopex> but that shouldnt be visible actually
<lopex> headius: I'll look at it
<headius> ok sure
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<lopex> headius: we talked with ChrisBr about open addressing and one idea came up
<lopex> headius: like caching the hash in bucket array
<lopex> but it would have to be boxed Integer unfortunately
<lopex> headius: and for linear hash we could use triples
<GitHub79> [jruby] headius closed issue #5201: [9.2.0.0] uninitialized constant FileUtils::EISDIR https://git.io/vhYZe
<lopex> like [key, value, hash]
<lopex> flattened
<headius> a three-elt object would be smaller than an array for that
<lopex> headius: but having boxed integers there somewhat defeats the purpose
<lopex> headius: you have any idea ?
<headius> I have not followed the changes so far
<headius> so the best option we have not does not use RubyHashEntry except as an intermediate holder for certain logic
<lopex> well, it shouldnt use it anyways
<lopex> just two arrays
<lopex> we dont want that entries
<lopex> at all
<headius> so the issue is that we have one Object[] array that's supposed to encode all the appropriate data at offet N, N+1, N+2
nelsnelson has joined #jruby
<lopex> yes
<headius> we'd like to cache hash there but Java is dum
<lopex> headius: and triples for linear
<lopex> [key, value, hash, key, value, hash, ..]
<headius> ok right
nels has quit [Ping timeout: 240 seconds]
<headius> yeah I don't know :-\
<lopex> well, but that boxed int bothers me
<headius> oh yeah
<lopex> it will introduce indirection
<headius> it bothers me too
<headius> we can't work around that with anything standard array-wise
<headius> so I guess two thoughts come to mind
<headius> * small hashes are far more common than big ones and more important to be compact and fast...so they could use a specialized (possibly generated) object to store N entries
<lopex> right
<lopex> like with ivars
<headius> * large hashes already have different algorithms because linear search etc are not going to work, so then it's a question of whether the cost of saving those Integer are worse than recalculating
<headius> right like ivars
<lopex> but then we want to minimize the cost of checking the storage mode
<headius> I have a growing need for a general object specialization library
<headius> working right now on finally reifying all ivars, as well as evolving objects as new ivars come in
<headius> it's ahrd
<headius> hard
<headius> I wonder
<headius> if we know all objects will right-size eventually maybe the early ones that don't know how many ivars they have should just allocate the var-holding array right away and avoid all the volatility and lazy construction
<headius> anyway that's separate
<headius> lopex: tag-along array?
<headius> it's another indirection but still could be cheaper than storing the Integer
<headius> so we have both Object[] and int[]
<lopex> headius: oh you mean keeping key index in that int[]
<headius> yeah
<lopex> ?
<headius> well I mean storing whatever you're worried about being Integer
<headius> hash I thought
<headius> so you'd get key at obj_ary[N] and value at obj_ary[N+1] and hash at hash_ary[N]
<lopex> Iforgot if mri caches that hash
<lopex> headius: well, there's another thing
<lopex> headius: no we have very dens Hash
<headius> anyway those are the two options I can think of since we can't do heterogeneous arrays
<lopex> headius: if decrease the load fasctos
<lopex> *factor
<lopex> then we worry less about collisions
<lopex> and then we dont need to cache tha hash
<lopex> so that's another thought
<lopex> headius: I dont see mri keeping the hash there
<lopex> oh it does in st_table_entry
<headius> do we know what straight-line perf impact MRI had from this move?
<headius> I mean...they almost never accept something that slows down, but on average they may have accepted slower fetch...maybe?
<headius> ChrisBr: you around?
<headius> we should chat so I am sure I'm on the same page
<lopex> headius: it does cache the hash
<headius> ok
nelsnelson has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<headius> so then the int[] seems like it's the lowest-cost for arbitrary-sized hashes with ivar-like generated data structs for specific smaller sizes
<lopex> yeah, sounds like the best option
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby
<headius> huh
<headius> stounds like that stoffie issue
<headius> -t
<travis-ci> jruby/jruby (exact_math:14f00d7 by Charles Oliver Nutter): The build passed. (https://travis-ci.org/jruby/jruby/builds/397998346)
<GitHub140> [jruby] headius pushed 1 new commit to setlike: https://git.io/f4bSu
<GitHub56> [jruby] headius merged exact_math into master: https://git.io/f4bSg
<GitHub140> jruby/setlike dee13d7 Charles Oliver Nutter: asdfasd
<GitHub147> [jruby] headius deleted exact_math at 14f00d7: https://git.io/f4bS2
<headius> ugh what the
<GitHub138> [jruby] headius force-pushed setlike from dee13d7 to 9f86e0e: https://git.io/f4bSp
drbobbeaty has joined #jruby
<headius> ugh this signal debate
<GitHub101> [jruby] headius deleted new_reify_classes at 39a76a3: https://git.io/f4bHl
<headius> ok here we go...new ivar reification scheme under way
<GitHub0> [jruby] headius created reification from setlike (+0 new commits): https://git.io/f4bH8
<headius> gah
<headius> my git fu is failing me today
<GitHub7> [jruby] headius force-pushed reification from 9f86e0e to 14f00d7: https://git.io/f4bH8
pjenvey has left #jruby ["WeeChat 1.8"]
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby