<headius>
bascule: depends how many issues we're talking, but usually we'd prefer smaller single issues so we can fix things individually
<headius>
big bang bug can sit there forever
<headius>
big bug with checkboxes is a bit better but checkboxes have no issue tracker process connected to them
<headius>
chrisseaton: why did you have to fork the parser?
<headius>
bascule: sockets need a lot of work...I started on some of that and a new contributor has been working through my branch and his improvements to get things better
<headius>
a lot of the missing pieces related to nonblocking
Puffball has quit [Ping timeout: 240 seconds]
Puffball has joined #jruby
<headius>
chrisseaton: hey I was wondering about getting accurate microbenchmarks...seems like we need more to avoid any impl eliminating useless work
<headius>
maybe there's a way to force an optimization barrier
<headius>
the ropes results look fantastic for cases I'd expect them to be, like anything that requires a lot more copying
<headius>
but the benchmark results for "hello".size don't make any sense...in every impl, that should just be returning byte size, and yet the ropes version is significantly faster
<headius>
I didn't get to see nirvdrum's actual talk so maybe he explained that
<headius>
ropes version is significantly faster than even the non-ropes RString
<headius>
anyway, the results definitely make a strong case for ropes in JRuby classic too, if the deficiencies don't hurt too much
<headius>
nirvdrum: nicely done
<headius>
I didn't mean to sound so negative...those results were the only ones that were really unexpected for me
<headius>
the gains in concat and append are obvious
<headius>
bascule: let's work through the issues...I'm sure we can make it work right
<headius>
it will be a much better test suite for nonblocking than we have today too
pawnbox has quit [Ping timeout: 276 seconds]
<bascule>
nice
<bascule>
also, like I said earlier, 2.2 is still full of wonkiness too :|
Puffball has quit [Ping timeout: 244 seconds]
Puffball has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 265 seconds]
claudiuinberlin has joined #jruby
prasunanand has joined #jruby
pawnbox has joined #jruby
_whitelogger has joined #jruby
donV has joined #jruby
_whitelogger has joined #jruby
dling has quit []
<GitHub148>
[jruby] headius opened pull request #4144: Remove the last of NativeException's influence. (master...kill_nativeexception) https://git.io/vi02H
ale has quit [Remote host closed the connection]
ale has joined #jruby
donValentin has joined #jruby
donV has quit [Ping timeout: 244 seconds]
donValentin has quit [Read error: Connection reset by peer]
_ko1 has joined #jruby
donV has joined #jruby
donV has quit [Ping timeout: 265 seconds]
dling has joined #jruby
<chrisseaton>
headius: we want to try generating our own AST nodes directly - I'm going to keep everything as mergable as possible
<chrisseaton>
"hello".size is zero allocation for ropes with escape analysis
<chrisseaton>
I know you share the bytes in that case, but you still allocate a ByteList and maybe that doesn't get escape analysed away
donV has joined #jruby
<chrisseaton>
and without ropes can you see that the length is a constant or do you still have to read it from some object?
donV has quit [Quit: donV]
donV has joined #jruby
donV has quit [Client Quit]
<chrisseaton>
the length in a ByteList isn't even a constant to begin with
dling` has joined #jruby
dling has quit [Ping timeout: 276 seconds]
johnsonch is now known as johnsonch_afk
pilhuhn has joined #jruby
pilhuhn has quit [Changing host]
pilhuhn has joined #jruby
dling has joined #jruby
dling` has quit [Read error: Connection reset by peer]
claudiuinberlin has quit [Remote host closed the connection]
claudiuinberlin has joined #jruby
bbrowning has quit [Ping timeout: 255 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pilhuhn has quit [Quit: Leaving...]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
claudiuinberlin has quit [Remote host closed the connection]
<GitHub2>
jruby/master 42a0ea3 Charles Oliver Nutter: Unused import.
<GitHub2>
jruby/master 52c80b7 Charles Oliver Nutter: Use better impl that does not box keys.
<headius>
chrisseaton: "hello".size is zero allocation for JRuby classic too
<headius>
and I meant a = "hello"; benchmark a bunch of a.size
<chrisseaton>
ah ok
<headius>
it was mentioned in nirvdrum's talk with ropes being 17x faster than either rstring or RubyString
<headius>
that doesn't really make sense ot me
<headius>
to
<chrisseaton>
Have you looked at the assembly?
<headius>
he didn't push that bench anywhere so I don't want to guess
<headius>
just a slide in his talk
<headius>
like I mentioned...I didn't get it in context so I have no idea what he said for that slide
<headius>
it just seemed very unlikely that it would be 17x faster than both JRuby class and JT without ropes
<headius>
classic
<headius>
oh sorry, I guess it's not 17x faster than JT+RString
<headius>
must have been thinking of another slide
<headius>
chrisseaton: if the bench9000 "sample" body was just "A.size" with A = "hello", would that accurately bench size?
<headius>
I forget if bench9000 has some sort of barrier around the sample body to keep it from just folding away
<headius>
e.g. in this case it could easily see A as a constant and just put 5 as a constant value for the expression, which isn't really accurate unless you've got a lot of code repeatedly getting the size of a constant string
<headius>
anyway, I'll have a chat with nirvdrum when he's back...there's probably a simple explanation :-)
thedarkone2 has joined #jruby
prasunanand has quit [Ping timeout: 265 seconds]
<bascule>
headius: did you see the GSoC wrap-up post on ropes?
<bascule>
that's the one that will work with the iPhone 7 without a dongle, lol
<headius>
nice that it's in Apple's store :-)
<bascule>
heh
dinfueh__ has joined #jruby
dinfuehr_ has quit [Ping timeout: 244 seconds]
<bruceadams>
"Magstripe reader in the box" which is not shown in any photos. I'm pretty sure that's the one that plugs into a headphone jack. (Brick and mortar stores I've seen using Square all use iPads, which still have a headphone jack for the magstripe reader.)
donV has joined #jruby
<headius>
bruceadams: ugh...what a mess
nicksieger has joined #jruby
<chrisseaton>
Surely those things are already obsolete due to chip and pin and contactless - nobody swipes magnetic stripes any more do they?
<bascule>
in the US, all the time...
<bascule>
chip cards are newfangled to us
pawnbox has quit [Remote host closed the connection]
<chrisseaton>
Since contactless came in even chip and pin feels archaic!
<bascule>
heh yeah
<chrisseaton>
'Sorry we don't have contactless' 'Argh I have to jam my card in this machine like an idiot'
<bascule>
the protocol is certainly much more advanced
<bascule>
faster and supports contactless payments
nicksieger has quit [Remote host closed the connection]
nicksieger has joined #jruby
pawnbox has joined #jruby
<headius>
the US never adopts technology until it becomes too economically painful to not adopt it
pawnbox has quit [Ping timeout: 240 seconds]
<bascule>
also the US has some odd customs regarding how we do payments in e.g. restaurants, which I can only assume are tied into the weird way we do tipping
<bruceadams>
My bank reissued a card to me late last year--with no chip! I was stunned. Several other cards I have made a point of sending me a new one with a chip, even if the old one had not yet expired.
<bascule>
where in other countries if you're at a restaurant your server will bring you a payment terminal so you can enter your PIN to complete a transaction, in the US the server briefly steals your card, goes to the payment terminal for you, then gives you back your card and receipt
<chrisseaton>
I guess that lets them read the three numbers on the back and buy anything they want online!
<bascule>
:D
<bascule>
yeah it's... rather silly
<chrisseaton>
We don't let them touch the card any more, with the terminals
nicksieger has quit [Remote host closed the connection]
<chrisseaton>
I think Visa is a big JRuby user by the way
nicksieger has joined #jruby
<bascule>
for v.me?
<chrisseaton>
Met some of them at a bay area meetup
<headius>
yeah I know about that one
<chrisseaton>
That sounds familiar
<headius>
they have at least one big app on JRuby
<bascule>
yeah v.me is a Rails app, I think
<bascule>
or was
<bascule>
haven't touched it in years
<headius>
JRuby is like an iceberg...we only see the 10% of users that poke their head about the surface
nicksieger has quit [Remote host closed the connection]
pawnbox has joined #jruby
<chrisseaton>
Someone wrote a whole paper about doing something with JRuby+Truffle and never once though 'I might say hi to these guys and ask them some questions'
<bascule>
I'm trying to support the String outbufs for e.g. read_nonblock (on top of which I'm building all the other I/O ops)
<bascule>
but what sort of capacity (or encoding or other nonsense) a String has seems somewhat mysterious
pawnbox has joined #jruby
pawnbox_ has joined #jruby
<GitHub123>
[jruby] chrisseaton pushed 1 new commit to truffle-head: https://git.io/viEko
<GitHub123>
jruby/truffle-head 9ca4877 Chris Seaton: [Truffle] Not sure why I set this up the way I did - GraalVM should be the main benchmark platform.
pawnbox has quit [Ping timeout: 244 seconds]
pawnbox_ has quit [Ping timeout: 240 seconds]
drbobbeaty has joined #jruby
donV has quit [Quit: donV]
<GitHub34>
[jruby] presidentbeef opened issue #4145: Can't use `require_relative` with a path beginning with `lib` in a jar...on Linux https://git.io/viEIc
<GitHub145>
[jruby] chrisseaton pushed 2 new commits to truffle-head: https://git.io/viELT
<GitHub145>
jruby/truffle-head 553b5c1 Chris Seaton: Revert "[Truffle] Use Array#{max,min} from rubinius"...
<GitHub145>
jruby/truffle-head 56ef6b9 Chris Seaton: [Truffle] Run with GraalVM release while we figure out weird benchmarks.