jrafanie has joined #jruby
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
slyphon has joined #jruby
jrafanie has joined #jruby
rawra has joined #jruby
rawra has quit [Ping timeout: 240 seconds]
Antiarc has quit [Read error: Connection reset by peer]
Puffball has quit [Quit: Puffball]
projectodd-ci has joined #jruby
Antiarc has joined #jruby
jrafanie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
deobalds has joined #jruby
slyphon_ has joined #jruby
slyphon has quit [Ping timeout: 240 seconds]
slyphon_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bga57 has quit [Quit: Leaving.]
bga57 has joined #jruby
Puffball has joined #jruby
<GitHub42> [jruby] kares pushed 5 new commits to master: https://git.io/f45mZ
<GitHub42> jruby/master fd5e938 kares: [refactor] simplify and split part of String#each_line impl
<GitHub42> jruby/master a58a0c9 kares: [refactor] minor - use startWith char arg helper
<GitHub42> jruby/master 1e55ac8 kares: [refactor] to a string case; use char startWith helpers
deobalds has quit [Quit: Computer has gone to sleep.]
claudiuinberlin has joined #jruby
deobalds has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
rawra has joined #jruby
rawra has quit [Client Quit]
drbobbeaty has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
deobalds has joined #jruby
drbobbeaty has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
<lopex> kares: I wonder if we could get rid of that wantarray somehow
deobalds has joined #jruby
<GitHub129> [jruby] eregon opened pull request #5232: Update specs (master...update-specs) https://git.io/f45bI
jrafanie has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
<eregon> headius, enebo: is there a way to remove this " [exec] " prefix as done by maven on every line when running specs?
<eregon> It's quite annoying for copy/paste and wasting some horizontal space
<eregon> I'd like to simplify to just run `mspec` directly in CI, or have a tiny wrapper if needed, not the full Maven world :D
slyphon has joined #jruby
<eregon> How do you guys run specs? Using Maven?
<eregon> I do: bin/jruby spec/mspec/bin/mspec run -Gfails -Gcritical -Gslow spec/ruby/core/thread/backtrace_spec.rb
slyphon_ has joined #jruby
slyphon has quit [Ping timeout: 256 seconds]
claudiuinberlin has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
slyphon_ has quit [Remote host closed the connection]
slyphon has joined #jruby
<enebo> eregon: yeah I don't know but it would be nice to strip it off
<enebo> eregon: I guess if we pipe you could sed/awk/whatever and regexp them away
claudiuinberlin has joined #jruby
<GitHub180> [jruby-openssl] bbozo opened issue #168: TLS1.2 enforcement pains & JRuby, particularly hurting for TLS_RSA_WITH_AES_256_CBC_SHA256 https://git.io/f4dIE
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
slyphon has quit [Remote host closed the connection]
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
<eregon> enebo: how do you run specs locally?
<GitHub157> [jruby] eregon pushed 4 new commits to master: https://git.io/f4dmo
<GitHub157> jruby/master 3f04c76 Benoit Daloze: Update to ruby/spec@98c7d74
<GitHub157> jruby/master cd2b347 Benoit Daloze: Update to ruby/mspec@7074b56
<GitHub157> jruby/master 800cd05 Benoit Daloze: Add tags for failing specs
<GitHub19> [jruby] eregon closed pull request #5232: Update specs (master...update-specs) https://git.io/f45bI
mbj has joined #jruby
claudiuinberlin has joined #jruby
claudiuinberlin has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
claudiuinberlin has joined #jruby
slyphon has joined #jruby
<ChrisBr> headius: just saw your comment! Great your back, I hope you had awesome vacations :)
<ChrisBr> regarding your comment: For the linear search approach one thing we could try is to store the hash value for a quick comparision when fetching. Atm we only store the key and value! However, this would increase array size again
<lopex> ChrisBr: hya
<lopex> ChrisBr: but can you store that hash in even indexes in the bucket array ?
<lopex> or add, whatever
<lopex> *odd
<lopex> ChrisBr: oh disregard that
<ChrisBr> currently we only have one array which holds key and value
<ChrisBr> so we would need three array positions for every entry
<lopex> and then we could interleave indexes with hashes right ?
<ChrisBr> how you mean? As we only store key and value and the moment, we need to check the object for equal when fetching which is probably quite slower than hash comparision
<lopex> ChrisBr: using boxed Integers in interleaved arrays wouldnt be worth en effort I guess
<ChrisBr> not sure how much difference it would make...
<ChrisBr> but still wondering why the linear search and open adressing is still slower than master
<lopex> ChrisBr: I'm just pursuing an idea where you can store hash values in odd indexes
<lopex> ChrisBr: on what threshold ?
<lopex> wrt that linear search ?
<ChrisBr> 8
<ChrisBr> 0-7 elemnts is linear search
<ChrisBr> after that open addressing
<lopex> with hashvalues cached ?
<ChrisBr> nope, never cached at the moment
<lopex> what key objects ?
<lopex> then you pay the cost of calling hash mostly
<lopex> I think ?
<ChrisBr> maybe :/
<lopex> ChrisBr: for strings or symbols ?
<ChrisBr> my benchmark?
<lopex> wrt the bench
<lopex> yeah
<ChrisBr> mostly integers at the moment
<lopex> hash is megamorphic
<lopex> in this case cashing it wuld help greatly
<lopex> *would
<ChrisBr> Hm!
<ChrisBr> but would also mean to increase the array / object size
<ChrisBr> but guess we have to try that out ...
<lopex> ChrisBr: hmm, for linear case, I'd try to cache the hashes as java.lang.Long in odd indexes
<ChrisBr> lopex: in odd index I already store the value
<lopex> or even, whatever
<lopex> ah
<ChrisBr> even stores the key ;)
<ChrisBr> so I need a third position or introduce an object again ..
<lopex> ChrisBr: so maybe even use triples ?
<lopex> doesn sound hard
<ChrisBr> yeah right
<lopex> but only for linear for now
<lopex> after that everything gets rejiggered right ?
<ChrisBr> you think doesn't improve for open addressing?
<lopex> no idea
<ChrisBr> yep, every resize needs to rehash
<lopex> yeah, I think quite stringly now that given rare collisions we might try not to cache the hash
<lopex> so have a bigger array ight ?
<lopex> ChrisBr: I guess it was a mistake on my part for Hash since it is quite dense now
<lopex> ChrisBr: a full hash might have like 5 collisions per bucket
<lopex> bit it deasnt really matter for ruby until we begin calling ruby "hash"
<lopex> oh well
<lopex> hence the hash cache
<lopex> oh we might pay big time equals though
<ChrisBr> yeah
<lopex> ChrisBr: so after your change we could see really big improvements anyways
<ChrisBr> I hope so :)
<ChrisBr> ok, so I will try to implement a hash cache for the linear search approach
<lopex> the caches will be boxed but maybe worth trying
<lopex> so tempting to use unsafe
<lopex> ChrisBr: on the bad side those boxed longs wont fit long cache (if there is any)
<ChrisBr> lopex: why they are boxed?
<ChrisBr> hash is an int, no?
<lopex> ChrisBr: oh, wait
<ChrisBr> grml, but the array holds only objects ...
<lopex> ChrisBr: I thought you want to store that in a bin array which is IRubyObject right ?
<lopex> yes
<ChrisBr> yup
<ChrisBr> forgot about that
<lopex> for Integer the cache is -127 to 128
<lopex> but that's futile
<lopex> hash values should vary greatly
<lopex> but still
<lopex> hmm
<lopex> there's a few things in play
<lopex> locality - good
<lopex> index checks - no idea (might be easier for hotspot to optimize if it's in the same array ?)
<lopex> indirection (good? no idea since it depends on that index checking (bounds))
<lopex> er
<lopex> wait
<lopex> the indirection might be better actually
slyphon has quit [Remote host closed the connection]
<ChrisBr> which kind of indirection you mean?
<lopex> like array[array2[...]]
slyphon has joined #jruby
<ChrisBr> hm
<ChrisBr> so you mean having three arrays: values, keys, hashes ?
<lopex> ChrisBr: that's the case with another bin
<ChrisBr> instead of storing everything in the same array
<lopex> ChrisBr: I'm not for that for now
<ChrisBr> ok
<lopex> but yeah
<lopex> no idea about how it will be optimized
<ChrisBr> k
<lopex> but the general rules are
<lopex> having less indirection is good
<lopex> locality is good
<lopex> ChrisBr: not sure what does hotspot do to eliminate bounds checks for this case
<lopex> but for example
<lopex> if you have an arbitrary a[i]
<lopex> the runtime will always check the boundaries
<lopex> but if you do that in a loop
<lopex> then given constrant stride (and maybe other assumptions) hotspot will only check array boundaries outside the loop
<lopex> that the most straight forward scenarios
<lopex> the more advanced ones include nested loops
<lopex> but it's all the same play
<lopex> ChrisBr: if that does any sense what I'mn saying
<lopex> ChrisBr: the problem is that array size is also a runtime thing
<ChrisBr> more or less :) Coming from ruby world so Java is still mystery for me sometimes :/
<lopex> ChrisBr: imagine a simplistic scenario
<lopex> int []a = new int[3]; int b = a[0];
<lopex> the size is known here up front right
<lopex> the array cannot change in between
<ChrisBr> right
<lopex> those two assumptions allow you to eliminate bounds checking when you do [a]
<lopex> er a[0]
<lopex> but most likely the allocation is too far behind any access to that array
<lopex> so the optimizer has a hard job firguring it out
<lopex> er, too far ahead I meant wrt allocation
<lopex> so then you can speculate
<lopex> given this callsite I always saw an array of size 6
<lopex> and down the calls this knowledge can have tremendous implications
<lopex> ChrisBr: I'm also not an expert on this so take it with a grain of salt
<ChrisBr> hm! Well, for the linear search we can also fix the size to 24 (3 * 8) because only for the first allocation we will use the linear search! After that we use hashing and the array can grow
<lopex> ChrisBr: that's what your code does, then the optimizer might beserve it
<lopex> ChrisBr: on jrubytruffle you could actually help that optimizer in your code
<lopex> er, I meant observe
<lopex> enebo: again I show you this https://pl-pl.facebook.com/BrowarGaraz/
<lopex> enebo: that no jokes anymore
mbj has quit [Quit: leaving]
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
<kares> lopex: katowice ... in that case did I miss you at gee-con Krakow :) ?
<lopex> kares: when's that ?
<lopex> kares: hiya btw
<kares> heya ... was in may
<kares> 9-11
<lopex> kares: I'm the worst possible attendee since I'm unofficiallhy in prison
<lopex> enebo: ^^
<kares> lopex: w00t serious?
<lopex> kares: no :P
<lopex> well, not in prison
<kares> well at least I did not miss you there ... that is reassuring :)
<enebo> I think lopex is a brain in a jar somewhere...although I have seen a picture of him biking in the past
<kares> hopefulyl next time around
<lopex> enebo: +1
<enebo> lopex: I hope they can repair your body
<enebo> lopex: was that your brothers brewery?
<lopex> enebo: imagine what it's made of
<kares> very good beer in poland - certainly not dissapointing
<lopex> enebo: did you see garage link ?
<kares> too much czech import :) drop it!
<lopex> :D
<lopex> enebo: take it
<enebo> lopex: you want me to take note and buy this beer when I can find it?
<enebo> lopex: or any beer from them I mean
<lopex> enebo: I'll let you know
<lopex> enebo: ok, you cant buy this bee yet
<lopex> beeer
<enebo> beeeer
<lopex> enebo: this will be some goood mony though
<lopex> enebo: but we have strict laws for that
<lopex> enebo: I have considered it
<lopex> enebo: so
<enebo> lopex: for what?
<lopex> enebo: enabling the brewery to be able to sell for money
<enebo> lopex: sell beer for money from the brewery?
<lopex> enebo: hard
<lopex> yes
<enebo> lopex: so they are trying to change the laws about that or it is just hard for individual breweries to get permit?
<lopex> enebo: doable and custrly
<lopex> enebo: I didnt say about changing laws ?
<enebo> lopex: I just have no idea why you sent me the link
<enebo> lopex: only posts I translated just talked about attending beer events
<lopex> haha
<lopex> enebo: doh
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby
slyphon has quit [Remote host closed the connection]
slyphon has joined #jruby