akp has quit [Ping timeout: 264 seconds]
<headius> yeah, API design was not wmeissner's strongest area but he was a wizard when it came to managed/unmanaged integration
<chrisseaton> I'm going round in circles in factories here
<chrisseaton> I can't see where the actual native function is created
<chrisseaton> That's for going down into native, not coming back up, I think
<chrisseaton> As it talks about rearranging JNI args into native ones
<headius> yeah
<chrisseaton> Ah some of this might actually be in JFFI
<headius> ah yeah, the plumbing might be
<GitHub79> [jruby] headius pushed 1 new commit to master: https://git.io/vPUTK
<GitHub79> jruby/master b429f5c Charles Oliver Nutter: Update JNR dependencies to latest.
<GitHub49> [jruby] headius pushed 1 new commit to master: https://git.io/vPUTb
<GitHub170> [jruby] headius closed issue #3817: IO#seek and tell do not properly handle offsets larger than int32 https://git.io/vwck2
<GitHub49> jruby/master d9090c3 Charles Oliver Nutter: Use lseekLong to get lseek return value. Fixes #3817.
<chrisseaton> So libffi creates the native trampoline, and this is the C code that is called in the callback, that calls back into JNI https://github.com/jnr/jffi/blob/master/jni/jffi/ClosureMagazine.c#L239
<chrisseaton> And here is the actual trampoline https://github.com/libffi/libffi/blob/master/src/aarch64/ffi.c#L765
<GitHub87> [jruby] chrisseaton pushed 2 new commits to truffle-head: https://git.io/vPUkw
<GitHub87> jruby/truffle-head 1b19ba4 Chris Seaton: [Truffle] Test cexts with --no-argon2
<GitHub87> jruby/truffle-head 4b5ec26 Chris Seaton: [Truffle] Update Truffle.
<headius> ok
<headius> much lower than I expected then
<chrisseaton> But it means it's being maintained as part of ffi which is good
<chrisseaton> libffi I mean
<chrisseaton> I'm not sure what I'd do if these lower parts of JNR suddenly stop working on some OS update or something
<GitHub22> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://git.io/vPUIv
<GitHub22> jruby/truffle-head 779460d Chris Seaton: [Truffle] Can't build offline with unreleased Truffle.
camlow325 has quit [Quit: WeeChat 1.5]
Aethenelle has quit [Quit: Aethenelle]
<travis-ci> jruby/jruby (master:b429f5c by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163575999)
<GitHub106> [jruby] chrisseaton pushed 2 new commits to truffle-head: https://git.io/vPUtt
<GitHub106> jruby/truffle-head a19181f Chris Seaton: [Truffle] Update JVMCI.
<GitHub106> jruby/truffle-head 427fc50 Chris Seaton: [Truffle] Ignore testPropertiesInteropMessage in the TCK for now.
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
<travis-ci> jruby/jruby (master:d9090c3 by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163576808)
akp has joined #jruby
<travis-ci> jruby/jruby (truffle-head:1b19ba4 by Chris Seaton): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163578517)
<travis-ci> jruby/jruby (truffle-head:779460d by Chris Seaton): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163579725)
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
samuelkadolph has quit [Quit: Quitting]
deobalds has joined #jruby
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
yfeldblu_ has joined #jruby
yfeldblum has quit [Ping timeout: 272 seconds]
deverly has quit [Ping timeout: 264 seconds]
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
pawnbox has joined #jruby
akp has quit [Remote host closed the connection]
deobalds has quit [Quit: Computer has gone to sleep.]
<GitHub165> [jruby] cheister opened pull request #4187: Fix Java::JavaLangReflect::GenericSignatureFormatError when reflecting reified annotation values (master...fix-generic-signature-format-error) https://git.io/vPUG1
deverly has joined #jruby
<GitHub109> [jruby] bjfish pushed 1 new commit to truffle-module-deprecate-constant: https://git.io/vPUZC
<GitHub109> jruby/truffle-module-deprecate-constant 6ab74ed Brandon Fish: [Truffle] Module#deprecate_constant add profiles/boundaries to Lookup nodes
deverly has quit [Ping timeout: 264 seconds]
deobalds has joined #jruby
pawnbox has quit [Remote host closed the connection]
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
tenderlove has quit [Changing host]
tenderlove has joined #jruby
yfeldblu_ has quit [Remote host closed the connection]
<GitHub179> [jruby] presidentbeef opened issue #4188: `require_relative` does not work inside a jar on Windows https://git.io/vPU83
thedarkone2 has quit [Quit: thedarkone2]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
pawnbox has quit [Remote host closed the connection]
yfeldblum has quit [Remote host closed the connection]
yfeldblu_ has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
jensnockert has joined #jruby
deverly has joined #jruby
claudiuinberlin has joined #jruby
jensnockert has quit [Ping timeout: 240 seconds]
deverly has quit [Ping timeout: 264 seconds]
jensnockert has joined #jruby
jensnockert has quit [Ping timeout: 276 seconds]
vali has joined #jruby
<travis-ci> etehtsea/jruby (tcpserver-sysaccept:8cf9fd4 by Konstantin Shabanov): The build failed. (https://travis-ci.org/etehtsea/jruby/builds/163627270)
knu has quit [Quit: Reboot...]
knu has joined #jruby
jensnockert has joined #jruby
<travis-ci> etehtsea/jruby (tcpserver-sysaccept:8cf9fd4 by Konstantin Shabanov): The build failed. (https://travis-ci.org/etehtsea/jruby/builds/163627270)
pil-afk is now known as pilhuhn
jensnockert has quit [Ping timeout: 244 seconds]
jensnockert has joined #jruby
<travis-ci> etehtsea/jruby (tcpserver-sysaccept:8cf9fd4 by Konstantin Shabanov): The build failed. (https://travis-ci.org/etehtsea/jruby/builds/163627270)
<GitHub0> [jruby] etehtsea opened pull request #4189: Implement TCPServer#sysaccept (master...tcpserver-sysaccept) https://git.io/vPUV7
pawnbox has quit [Remote host closed the connection]
jensnockert has quit [Remote host closed the connection]
blaxter has joined #jruby
jensnockert has joined #jruby
pawnbox has joined #jruby
yfeldblu_ has quit [Ping timeout: 272 seconds]
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
drbobbeaty has joined #jruby
deverly has joined #jruby
shellac has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
blaxter has quit [Quit: foo]
jensnockert has quit [Remote host closed the connection]
halorgium has quit [K-Lined]
jensnockert has joined #jruby
<travis-ci> etehtsea/jruby (tcpserver-sysaccept:8435a4a by Konstantin Shabanov): The build is still failing. (https://travis-ci.org/etehtsea/jruby/builds/163641952)
<GitHub60> [jruby] etehtsea opened pull request #4190: TCPServer#accept_nonblock improvement (master...tcpserver-acceptnonblock) https://git.io/vPU19
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
vali has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
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 is now known as pil-afk
pawnbox has quit [Remote host closed the connection]
<travis-ci> etehtsea/jruby (tcpserver-acceptnonblock:867a9c1 by Konstantin Shabanov): The build failed. (https://travis-ci.org/etehtsea/jruby/builds/163652533)
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
deverly has quit [Ping timeout: 264 seconds]
<GitHub152> [jruby] zoras opened issue #4191: sshkit error while deploying with jruby-9.1.5.0 https://git.io/vPUx4
drbobbeaty has joined #jruby
bbrowning_away is now known as bbrowning
pawnbox_ has joined #jruby
pawnbox_ has quit [Remote host closed the connection]
pil-afk is now known as pilhuhn
shellac has quit [Quit: Computer has gone to sleep.]
tcrawley-away is now known as tcrawley
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
claudiuinberlin has quit [Remote host closed the connection]
vali has joined #jruby
pawnbox has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
vali has joined #jruby
vali has quit [Client Quit]
vali has joined #jruby
deverly has joined #jruby
lance|afk is now known as lanceball
deverly has quit [Ping timeout: 272 seconds]
deobalds has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
claudiuinberlin has joined #jruby
vali has joined #jruby
claudiuinberlin has quit [Ping timeout: 240 seconds]
deobalds has quit [Quit: Computer has gone to sleep.]
claudiuinberlin has joined #jruby
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
deverly has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
akp has joined #jruby
<GitHub36> [jruby] mulvaney opened issue #4192: gem install fails on Solaris 10 https://git.io/vPTsP
deverly has quit [Ping timeout: 264 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
enebo has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
deverly has joined #jruby
pawnbox has quit [Remote host closed the connection]
deverly has quit [Ping timeout: 264 seconds]
pawnbox has joined #jruby
shellac has joined #jruby
deverly has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
pawnbox has quit [Remote host closed the connection]
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 276 seconds]
deverly has quit [Ping timeout: 264 seconds]
nicksieger has joined #jruby
jensnockert has quit [Ping timeout: 272 seconds]
jensnock_ has joined #jruby
pawnbox_ has joined #jruby
halorgium has joined #jruby
deverly has joined #jruby
pawnbox_ has quit [Ping timeout: 272 seconds]
nicksieger has quit [Read error: Connection reset by peer]
jensnock_ has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
jensnockert has joined #jruby
jensnockert has quit [Read error: Connection reset by peer]
deverly has joined #jruby
jensnockert has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
vali has joined #jruby
vali has quit [Client Quit]
electrical is now known as fibre
fibre is now known as electrical
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
pawnbox has joined #jruby
Aethenelle has joined #jruby
vali has joined #jruby
jensnockert has quit [Ping timeout: 264 seconds]
thedarkone2 has joined #jruby
jensnockert has joined #jruby
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
akp has quit [Remote host closed the connection]
nicksieger has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
pawnbox has quit [Remote host closed the connection]
<GitHub81> [jruby] bjfish pushed 1 new commit to truffle-module-deprecate-constant: https://git.io/vPT12
<GitHub81> jruby/truffle-module-deprecate-constant dc20ea8 Brandon Fish: [Truffle] Module#deprecate_constant move profiles to uncached nodes
pawnbox has joined #jruby
Aethenelle has quit [Ping timeout: 264 seconds]
Aethenelle has joined #jruby
shellac has quit [Ping timeout: 276 seconds]
claudiuinberlin has quit []
nicksieger has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
nicksieger has joined #jruby
akp has joined #jruby
akp has quit [Remote host closed the connection]
akp has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
nicksieg_ has joined #jruby
nicksieg_ has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
<GitHub164> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/vPTQX
<GitHub164> jruby/truffle-head 8b406d5 Benoit Daloze: [Truffle] Fix a few issues detected by FindBugs.
jensnockert has quit [Ping timeout: 264 seconds]
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
pilhuhn is now known as pil-afk
AckZ has joined #jruby
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
<travis-ci> jruby/jruby (truffle-head:8b406d5 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163772151)
nicksieger has joined #jruby
cprice has quit [Read error: Connection reset by peer]
cprice has joined #jruby
deverly has joined #jruby
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
cprice is now known as cprice404
deverly has quit [Remote host closed the connection]
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
cprice404 has quit [Quit: Konversation terminated!]
cprice404 has joined #jruby
cprice has joined #jruby
cprice404 has quit [Client Quit]
cprice is now known as cprice404
cremes has joined #jruby
vali has joined #jruby
vali has quit [Client Quit]
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
nicksieg_ has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
nicksieg_ has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
rcvalle has joined #jruby
pil-afk is now known as pilhuhn
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
nicksieger has quit [Remote host closed the connection]
claudiuinberlin has joined #jruby
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
nicksieger has joined #jruby
prasunanand has quit [Ping timeout: 244 seconds]
<GitHub93> [jruby] headius pushed 1 new commit to master: https://git.io/vPkt9
<GitHub93> jruby/master cc79119 Charles Oliver Nutter: Fix altered behavior for UNIXServer#accept_nonblock....
nicksieger has quit [Ping timeout: 265 seconds]
nicksieger has joined #jruby
prasunanand has joined #jruby
deverly has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
<GitHub190> [jruby] eregon closed pull request #4179: [Truffle] Module#deprecate_constant (truffle-head...truffle-module-deprecate-constant) https://git.io/vixs5
<GitHub172> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/vPkOJ
<GitHub172> jruby/truffle-head 439882b Benoit Daloze: Merge pull request #4179 from jruby/truffle-module-deprecate-constant...
<GitHub57> [jruby] eregon deleted truffle-module-deprecate-constant at dc20ea8: https://git.io/vPkOT
deverly has quit [Ping timeout: 264 seconds]
vali has joined #jruby
<GitHub82> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://git.io/vPkOb
<GitHub82> jruby/truffle-head 2d40fd5 Chris Seaton: [Truffle] Check out test port before running integration or gem tests.
nicksieger has quit [Remote host closed the connection]
claudiuinberlin has quit [Remote host closed the connection]
nicksieger has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
deverly has joined #jruby
subbu is now known as subbu|lunch
vali has joined #jruby
nicksieger has quit [Remote host closed the connection]
deverly has quit [Ping timeout: 264 seconds]
<travis-ci> jruby/jruby (master:cc79119 by Charles Oliver Nutter): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/163801053)
claudiuinberlin has joined #jruby
<travis-ci> jruby/jruby (master:cc79119 by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/163801053)
<travis-ci> jruby/jruby (truffle-head:439882b by Benoit Daloze): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/163807068)
deathy has quit [Ping timeout: 252 seconds]
deathy has joined #jruby
vali has quit [Remote host closed the connection]
vali has joined #jruby
snim2_ has quit [Ping timeout: 252 seconds]
hoodow_ has joined #jruby
hoodow_ has quit [Changing host]
hoodow_ has joined #jruby
snim2_ has joined #jruby
chrisseaton_ has joined #jruby
zacts has quit [Ping timeout: 252 seconds]
hoodow has quit [Ping timeout: 252 seconds]
chrisseaton has quit [Ping timeout: 252 seconds]
byteit101_ has quit [Read error: Connection reset by peer]
chrisseaton_ is now known as chrisseaton
byteit101 has joined #jruby
deverly has joined #jruby
claudiuinberlin has quit []
pawnbox has quit [Remote host closed the connection]
deverly has quit [Ping timeout: 264 seconds]
nicksieger has joined #jruby
nicksieger has quit [Remote host closed the connection]
nicksieger has joined #jruby
snim2_ has quit [Ping timeout: 272 seconds]
subbu|lunch is now known as subbu
Puffball has quit [Remote host closed the connection]
snim2_ has joined #jruby
<GitHub127> jruby/master 2356837 Charles Oliver Nutter: Spec for IO#seek > 2^32....
<GitHub127> [jruby] headius pushed 1 new commit to master: https://git.io/vPk0A
nicksieger has quit [Remote host closed the connection]
nicksieger has joined #jruby
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
olle has joined #jruby
nicksieger has quit [Remote host closed the connection]
vali has joined #jruby
kares has quit [Ping timeout: 252 seconds]
kares_ has joined #jruby
nicksieger has joined #jruby
nicksieger has quit [Ping timeout: 272 seconds]
vali has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
balo_ is now known as balo
bbrowning is now known as bbrowning_away
balo is now known as Guest3612
Guest3612 is now known as balo_
snim2_ has quit [Ping timeout: 272 seconds]
lanceball is now known as lance|afk
snim2_ has joined #jruby
Puffball has joined #jruby
<travis-ci> jruby/jruby (master:2356837 by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163831968)
mberg has joined #jruby
nicksieger has joined #jruby
nicksieg_ has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
Puffball_ has joined #jruby
nicksieg_ has quit [Read error: Connection reset by peer]
Puffball has quit [Ping timeout: 264 seconds]
nicksieger has joined #jruby
nicksieger has quit [Read error: Connection reset by peer]
nicksieg_ has joined #jruby
<lopex> nirvdrum: hey, just read the backlog, cool to even try to backport ropes for jruby classic
nicksieg_ has quit [Read error: Connection reset by peer]
akp_ has joined #jruby
<headius> yeah I don't see why we couldn't give it a try
deverly has joined #jruby
<lopex> headius: the ropes ?
<headius> yeah
<lopex> I think it's the road to go given Kevin's numbers and experience
<lopex> the pathological cases could be treated separately wrt impl wise
akp has quit [Ping timeout: 244 seconds]
deverly has quit [Remote host closed the connection]
<lopex> unless the morphisms will kill you
<lopex> or, I'm so behind the schedule it;s not longer an issue
deverly has joined #jruby
<lopex> but the erb numbers convinced me immediately
nicksieger has joined #jruby
<lopex> that's the most common case
<lopex> headius: but hey can it go even further, like you have a tree built by erb
akp_ has quit [Ping timeout: 272 seconds]
<lopex> headius: and then lazily serialize it to IO
<lopex> headius: could it be done given ruby intermediate code
<headius> well that's one small issue...nobody uses erb
<lopex> ?
<headius> the other templating frameworks already do something rope-like internally
<headius> erubis etc
<lopex> headius: but I can find a number of similar code usages
<lopex> real wolrd
<headius> yeah it will still help many cases
<lopex> sure, now everybody just append fearing +
<lopex> *appends
<lopex> we have 2016 and still no general adaptive data structures
<lopex> that's sad
<lopex> computer science is in still
<lopex> and still abstraction leakages everywhere you can imagine
Aethenelle has quit [Quit: Aethenelle]
deverly has quit [Ping timeout: 264 seconds]
<lopex> headius: also, the rope flattening case is somewhat similar to re-cow issue we discussed years ago
<lopex> since once you have a rope (in a session for example)
<lopex> it will become read only one right ?
<lopex> the you should flattend it
<headius> yeah that makes sense
tcrawley is now known as tcrawley-away
<lopex> there might be profiling constraints like it's being arefed alot
<lopex> headius: ^^
<headius> right, if you see a lot of random access that could be a trigger to flaten
<lopex> but that's quite a lot of profiling info required that to happen
<lopex> efficiently
<travis-ci> jruby/jruby (master:2356837 by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/163831968)
<lopex> yeah, just as Kevin said it was lack of familarity with the structure
<lopex> *of
<lopex> to shift the thoughts
Puffball has joined #jruby
Puffball_ has quit [Ping timeout: 272 seconds]
<nirvdrum> Uh oh. Looks like I need to scroll back.
<lopex> the regexp thing will be much trickier
nicksieger has quit [Read error: Connection reset by peer]
nicksieger has joined #jruby
<nirvdrum> I'm not sure no one uses ERB: https://github.com/search?l=ruby&q=require+%27erb%27&type=Code&utf8=%E2%9C%93 (not the best query, but close enough).
<nirvdrum> Outside of Rails, I'm not familiar with anyone using erubis.
<nirvdrum> Granted, slim does collect string fragments into an array and then join the array.
<lopex> and also, that's the case to actually use erv
<lopex> *erb
<lopex> why would you care given runtime makes it fast right ?
<nirvdrum> Well, with something like slim, you're not really bound by STring#concat performance.
<nirvdrum> Which is the point headius was making.
<lopex> nirvdrum: but slim might change the strategy given ruby runtime if it;s worth
<lopex> ppl will go adter it
<lopex> *after
<lopex> nirvdrum: why ? wrt concat
yfeldblum has joined #jruby
<nirvdrum> Because it simply doesn't call it.
<lopex> I'm a heavy slim user but I only server static outputs so I dont really care
<nirvdrum> It does something like: buf = []; buf << '<head>'; buf << '<title>'; ...; buf.join("\n")
<lopex> yes
<lopex> nirvdrum: remember how ruby's String#join works ?
<lopex> it first scans for to_str
<lopex> just to guess the length of that joined buffer ahead
<nirvdrum> Yes. But even if it's slow, it's called once rather than once per fragment.
<lopex> right
<nirvdrum> But, I still think there's a lot of legitimate ERB usages out there.
<nirvdrum> Web was just the easiest thing to talk about.
<nirvdrum> I can't recall if that came up in the Q&A or just Twitter.
<lopex> nirvdrum: er +
<nirvdrum> I've been meaning to look at AsciiDoctor more.
<lopex> nirvdrum: I'm all sold for _
rcvalle has quit [Quit: rcvalle]
<lopex> and then make it lazily to IO
<nirvdrum> But I came back, was jetlagged and backlogged, then my sister's wedding, and then I caught a cold.
<lopex> nirvdrum: never ever materialize the whole thing
<lopex> nirvdrum: you think it;s doable ?
yfeldblum has quit [Remote host closed the connection]
<lopex> given PE
<nirvdrum> Well, JRuby needs to run on more than just Graal. I'm not sure to what degree HotSpot and Graal will differ.
<lopex> hmm, you have an output (like rack)
<lopex> the question is if that output must me and object
<lopex> or, well, a + b + c >> socket
<nirvdrum> I do believe a less radical move like storing clen in ByteList could yield some nice benefits without being as disruptive. Additionally, I'm a strong advocate of doing away with lazy code range scans. But, both require more work in RubyString.
<lopex> that the situation right ?
<nirvdrum> Tersely, I can model just about any string operation as an application of concat and substring. It might not be pretty, but the rules are simple and values propagate nicely.
<nirvdrum> Sorry, I didn't quite follow the question.
<lopex> PE should reassure nobody sees intermmediate "whole" string inbetween
yfeldblu_ has joined #jruby
<lopex> let's assume we have a deeply nested rope to be sent over a socket
<lopex> given ruby apis
<nirvdrum> In the a + b + c case, we can either flatten the byte[] when called for or we can walk the tree and just use the array that we have.
<nirvdrum> There are trade-offs.
<lopex> nirvdrum: can you end up lazily walking the rope and writing to IO ?
<nirvdrum> If you need the byte[] multiple times, building it up once and then storing it at the root could be advantageous.
<nirvdrum> Walking the tree avoids duplicated byte copies.
<lopex> the my point
<lopex> yes
<nirvdrum> Yes. We do both depending on the operation.
<nirvdrum> It's heuristic-based where the heuristic is really my best guess.
<nirvdrum> But it could naturally be smarter than that.
<lopex> so ideally you'll never flattend the rope
<lopex> in those cases
<nirvdrum> Yes.
<lopex> coool
<nirvdrum> In others, you may want to flatten.
<lopex> nirvdrum: hats off
<nirvdrum> I do have a third case that I need to work out more.
<lopex> nirvdrum: oh, since you're here, the case we discused with headius
<nirvdrum> I think I mentioned it in the talk. I don't really recall. I have a byte[] reference in every node, even non-leaves. So, the nodes are really idempotent, not strictly immutable.
<lopex> nirvdrum: once you have a stable (like in asession rope)
<nirvdrum> But if the byte[] is written twice, it'd get the same results, so I'm okay with that.
<lopex> nirvdrum: then you'd lke to flattend it right ?
<nirvdrum> The problem with that cache is it still keeps the subtree around because child references are final.
<lopex> nirvdrum: yeah, I watched the whole thing
<nirvdrum> I haven't yet looked at the implications of relaxing that.
<lopex> nirvdrum: it was really cool
<lopex> yeah
<nirvdrum> Immediately, your thread-safety guarantee is gone.
<lopex> sure
<lopex> nirvdrum: clojure has some really cool persistent trees
<lopex> and really performant ones
<lopex> same for vectors
<lopex> and maps
<nirvdrum> So, I think really you want to transition the node type at that point. And that requires a rethinking of it.
<nirvdrum> TDB.
<lopex> the index bit packing is briliant
<lopex> and jvm has intrinsics that can help
<lopex> like the popcout etc
<lopex> *popcount
<nirvdrum> The "string as a binary blob" case is still problematic. So, ropes aren't a panacea.
<lopex> yeah
<nirvdrum> I do think it helps bridge the gap between strings being mutable, but never modified, so they're effectively immutable.
<lopex> nirvdrum: so virtualize ?
nicksieger has quit [Remote host closed the connection]
<lopex> meaning change represnetation
<nirvdrum> And based on the RubyKaigi Q&A, immutable strings will not be the default in Ruby 3.
<nirvdrum> They don't want to pull a Python 3.
<lopex> oh
<lopex> hah
<nirvdrum> Apparently uptake on that magic comment has been fairly low.
<nirvdrum> And they're using that as a proxy vote.
<lopex> python2/python3 is still like 50/50 ?
Aethenelle has joined #jruby
<nirvdrum> I don't know what the split is.
<nirvdrum> Both sides are substantial.
<nirvdrum> bbiab. Dinner time.
<lopex> very unlike ruby
<lopex> but hey
<lopex> you have graal and truffle and having []= is an issue ?
<lopex> well
<lopex> [Fixnum]=
<lopex> I wonder if one could apply some deep learning wrt runtime profiles
<lopex> the quick way might be to scan the sources (given limited ability to type propagate in ruby)
<lopex> chrisseaton: but you've been looking at ruby corpus right ?
<lopex> nirvdrum: I think ultimately we need real wolrd numbers for that []= thingy, one could optimize it in so many different means so we just need data ?
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<lopex> every datastructure obviously has pathological caes
<lopex> but if one could pick up ones from the corpus (like interweaving substrings and []= in aloop would that make it easier ?)
<lopex> chrisseaton: ^^
<lopex> it doesnt have to be 100% reliable too
<lopex> also the heuristices can be fed from the corpus
<lopex> oh well, that' the whole point :{
<lopex> enebo: !!
olle has quit [Ping timeout: 272 seconds]
<nirvdrum> lopex: I think we can do a close enough approximation just by looking at I/O boundaries, using a local, private ByteList, and then promoting to a rope once stable.
<nirvdrum> That's probably an oversimplification.
<lopex> nirvdrum: but I thought you might really aggressively speculate on those
<lopex> like
<lopex> in rack you have "def write response ..."
<lopex> thats the boundary right ?
<nirvdrum> I mean reading.
<lopex> oh I meant writing :P
<nirvdrum> Writing really shouldn't need to worry about []=
<nirvdrum> But, yeah, there's a lot of work left here.
<lopex> right
<lopex> yeah, given usage
<lopex> yeah, since you pull a steam you;re goin to experience []= in cases
<lopex> right
<lopex> the blind short sighted thing is to depot to another structure
<lopex> but I gather you;ve been through that
<nirvdrum> I really haven't looked at it.
<lopex> wrt writes on input from IO ?
<nirvdrum> Just getting all the other string specs passing was a large enough effort.
<lopex> oh hmm, isnt that the definition "writes on input on IO"
<lopex> wrt problem
<lopex> nirvdrum: anyways, the ropes are supercool, and you were right wrt familiarity issue
<lopex> nirvdrum: sure we all know what trees are
<lopex> just the usage
<nirvdrum> What I was saying in the talk is if you do something like "\x00" * 1024 and then rewrite each byte, one at a time, that's going to build up a massive tree.
<nirvdrum> And you incur the overhead of a node to represent what amounts to a single btye.
yfeldblu_ has quit [Remote host closed the connection]
Aethenelle has quit [Ping timeout: 244 seconds]
<lopex> sure
<nirvdrum> My point on the familiarity issue was more that Ruby strings are very similar to C strings. So, if that's all you've interacted with for the past 20 - 30 years, then seeing this tree is going to completely throw off your internal sense of how long operations should take.
<lopex> nirvdrum: wrt repeatnode right ?
<lopex> nirvdrum: the familiarity issue , as I understood was ( nobody gets what rope are) and really nobody gets it
<lopex> nirvdrum: it's the very thing you were asked about from the audiance
<lopex> nirvdrum: event from Ko1
<nirvdrum> That's part of it. I was just saying that a downside to adopting them is there's a lot of tribal knowledge around how strings perform currently.
<nirvdrum> You have things like the fast-ruby project telling people what methods they should be using.
<nirvdrum> And if you use ropes, you turn all of that upside down.
<lopex> sure
<lopex> yeah, you make a revolution
<nirvdrum> Even if ropes are better, you may have to retrain your engineers on how to reason about things *shrug*
<nirvdrum> I guess having run a couple businesses, that's a risk I'd want to know about.
<lopex> nirvdrum: dunny
<lopex> nirvdrum: hey yourre entrepreneur
<lopex> I'm not
<lopex> nirvdrum: what I found weird is their negative response wrt ropes
<lopex> them bein ko1 etc
<lopex> enebo: !!
<lopex> shite I'm dominating the channel
<lopex> nirvdrum: somewhat it seems to be a political decision whether ropes etc
<lopex> nirvdrum: I dont care
<lopex> I'm all for it
<nirvdrum> I think I misunderstood his question.
<nirvdrum> tenderlove was explaining a bit more to me later.
<lopex> like ?
<nirvdrum> I think he was saying MRI has very long string methods and was wondering how ropes help with that, if at all.
<nirvdrum> Whereas during the Q&A I thought he was asking how big the ropes code is.
<lopex> I have no idea
<lopex> probably would good
<lopex> nirvdrum: doesnt make sens
<lopex> nirvdrum: yea, I watched the thing
<lopex> nobrained
<lopex> nirvdrum: lie they are scared of anythung new
<lopex> *like
<lopex> who cares
<lopex> "new need to run ruby code fast'
<lopex> that's tje point
<lopex> nirvdrum: but it might be lkie i was affraid of ropes
<lopex> *like
<lopex> who cares
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
deverly has joined #jruby
deverly has quit [Ping timeout: 264 seconds]
drbobbeaty has joined #jruby
yfeldblum has joined #jruby
yfeldblum has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby