pawnbox has joined #jruby
zacts has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
tcrawley is now known as tcrawley-away
zacts has quit [Read error: Connection reset by peer]
johnsonch_afk is now known as johnsonch
coderhs has joined #jruby
pawnbox has joined #jruby
johnsonch is now known as johnsonch_afk
pawnbox has quit [Ping timeout: 258 seconds]
pawnbox has joined #jruby
coderhs has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
coderhs has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
prasunanand has joined #jruby
coderhs has quit [Ping timeout: 250 seconds]
skade has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
thedarkone2 has quit [Quit: thedarkone2]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
raeoks has joined #jruby
blaxter has joined #jruby
raeoks has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
raeoks has joined #jruby
donV has joined #jruby
anaeem1_ has joined #jruby
anaeem1_ has quit [Remote host closed the connection]
pil-afk is now known as pilhuhn
claudiuinberlin has joined #jruby
prasunanand has quit [Remote host closed the connection]
yfeldblum has quit [Remote host closed the connection]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
vtunka has joined #jruby
yfeldblum has joined #jruby
donV has quit [Quit: donV]
<GitHub57> [jruby] eregon pushed 1 new commit to master: https://git.io/v6s9Z
<GitHub57> jruby/master 2d0e3ce Benoit Daloze: Use a fixture for common code in #spawn specs
pilhuhn is now known as pil-afk
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
<travis-ci> jruby/jruby (master:2d0e3ce by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/150573469)
pil-afk is now known as pilhuhn
<GitHub184> [jruby] eregon pushed 1 new commit to master: https://git.io/v6GfW
<GitHub184> jruby/master 25045eb Benoit Daloze: Add missing fixture
pilhuhn is now known as pil-afk
blaxter has quit [Remote host closed the connection]
blaxter has joined #jruby
jimbaker has quit [Ping timeout: 276 seconds]
jimbaker has joined #jruby
jimbaker has quit [Changing host]
jimbaker has joined #jruby
blaxter has quit [Quit: foo]
<travis-ci> jruby/jruby (master:25045eb by Benoit Daloze): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/150602162)
jimbaker has quit [Ping timeout: 265 seconds]
jimbaker has joined #jruby
jimbaker has quit [Changing host]
jimbaker has joined #jruby
bbrowning has joined #jruby
<GitHub145> [jruby] eregon pushed 1 new commit to master: https://git.io/v6GqT
<GitHub145> jruby/master 945e20a Benoit Daloze: [Truffle] Add tags for a few CI-specific failures.
pil-afk is now known as pilhuhn
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
prasunanand has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
raeoks has quit [Quit: Textual IRC Client: www.textualapp.com]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
lance|afk is now known as lanceball
enebo has joined #jruby
vtunka has quit [Quit: Leaving]
blaxter has joined #jruby
blaxter has quit [Client Quit]
vtunka has joined #jruby
camlow325 has joined #jruby
<GitHub160> [jruby] enebo closed pull request #4052: Partially fix set_trace_func line numbers (master...partially-fix-set-trace-func-line-numbers) https://git.io/v6OFL
<GitHub64> [jruby] enebo pushed 3 new commits to master: https://git.io/v6G2F
<GitHub64> jruby/master 3948b0d Ivo Anjo: Add line numbers before adding LINE and CALL trace instructions...
<GitHub64> jruby/master ca33dd0 Ivo Anjo: Add FIXME and link to issue 4051 to RETURN and END trace instructions...
<GitHub64> jruby/master fe34564 Thomas E Enebo: Merge pull request #4052 from ivoanjo/partially-fix-set-trace-func-line-numbers...
bbrowning has quit [Ping timeout: 244 seconds]
bbrowning has joined #jruby
thedarkone2 has joined #jruby
vtunka has quit [Quit: Leaving]
<GitHub58> [jruby] enebo pushed 1 new commit to master: https://git.io/v6GKn
<GitHub58> jruby/master 44a2aa6 Thomas E. Enebo: Change from 'top' to 'main' on backtrace generation since MRI has used 'main' since at least 1.9.3
johnsonch_afk is now known as johnsonch
zacts has joined #jruby
pilhuhn is now known as pil-afk
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
mberg is now known as Galt
<GitHub157> [jruby] eregon pushed 1 new commit to master: https://git.io/v6Gym
<GitHub157> jruby/master c6f24d2 Benoit Daloze: [Truffle] JT: support jt test fast [...] -t ruby
zacts has quit [Quit: WeeChat 1.4]
camlow325 has quit [Quit: WeeChat 1.5]
camlow325 has joined #jruby
bbrowning is now known as bbrowning_away
claudiuinberlin has quit []
johnsonch is now known as johnsonch_afk
<travis-ci> jruby/jruby (master:44a2aa6 by Thomas E. Enebo): The build was broken. (https://travis-ci.org/jruby/jruby/builds/150665155)
zacts has joined #jruby
bbrowning_away is now known as bbrowning
<headius> g'day
<headius> eregon: +1
<headius> yopp: ok thanks, can you add that to the bug for posterity?
thedarkone2 has quit [Quit: thedarkone2]
<GitHub77> [jruby] eregon pushed 2 new commits to master: https://git.io/v6Gbq
<GitHub77> jruby/master cf29ea9 Benoit Daloze: Squashed 'spec/mspec/' changes from 55caa7c..88e734a...
<GitHub77> jruby/master 27270e3 Benoit Daloze: Merge MSpec commit 'cf29ea97c6a9e2420fbe8106632659155e18dfbf'
coderhs has joined #jruby
<headius> yay, my debugging output in the partial EA phase is working
rcvalle has joined #jruby
coderhs has quit [Quit: Page closed]
rsim has joined #jruby
<headius> no PEA changes for HotSpotMethod<loop.RUBY$method$foo$1
<headius> boo
<headius> now to figure out why :-\
zacts has quit [Ping timeout: 276 seconds]
zacts has joined #jruby
claudiuinberlin has joined #jruby
johnsonch_afk is now known as johnsonch
<travis-ci> jruby/jruby (master:27270e3 by Benoit Daloze): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/150695372)
<nirvdrum> headius: There's a gitter channel for Graal, BTW.
<headius> ahh, nice
<nirvdrum> graalvm/graal-core
<headius> I hope I'm not going to be ignored because I'm not trying to optimize truffle
<nirvdrum> I doubt that. If graal is slower than C2, that's treated as a bug.
<headius> and if it's the same as C2 I'm not satisfied either
<nirvdrum> I think the idea has parallels to how JRuby compares to MRI. It should be faster by default and if it's slower anywhere, that's a bug.
<headius> a numeric loop that fully inlines should be able to elide fixnum allocations
<nirvdrum> Ahh, I didn't see Thomas had replied already.
thedarkone2 has joined #jruby
<headius> mmm
<enebo> hey imagine if graal actually like indy as a tech :)
<headius> well I guess I just don't see why we couldn't be competitive, at least for small stuff, if Graal is doing what it should
claudiuinberlin has quit [Remote host closed the connection]
claudiuinberlin has joined #jruby
subbu is now known as subbu|lunch
<headius> nirvdrum: what's the easiest way for me to get the ideal graph for a given method?
<headius> hmmm, IGV tries to start and then just disappears
<enebo> headius: you can supposedly add a filter for method in IGV itself
<headius> yeah just trying to figure out the right flags to actually get output right now
<enebo> headius: I don’t know how graal connects to port of IGV offhand but you probably figured that out?
<headius> I can't even start igv
<headius> it does splash screen and then stops
<enebo> headius: I downloaded my copy
<headius> yeah from where?
<enebo> headius: If you did too then that might be your mistake
<headius> I grabbed "latest development build", pointed at my JDK, and got this far
<enebo> headius: it is part of graal as a fork
<enebo> headius: I think :)
<headius> I went there
<enebo> headius: yeah that is probably out of date version
<enebo> (the one I am using fwiw)
<enebo> but I think they ship with it in graal-core
<headius> hmm ok
<enebo> “@enebo There is a copy in upstream hotspot and graal.”
<headius> you got yours from above link and it worked?
<enebo> headius: in addition to the one we downloaded
<enebo> headius: so you cannot get it to load at all?
<thedarkone2> headius: `mx igv` in the "proper" graal-core & friends checkout folder
<headius> oh...it downloads it
<thedarkone2> that's how I used to use it
<headius> thanks
<enebo> headius: yeah if you want to look at graal use their fork but I can load this with 8u92 no problem
<enebo> bin/idealgraphvisualizer
<headius> weird...it just bails for me
<headius> mx igv works
<enebo> headius: which 8 you using?
<headius> u92
<enebo> ok :)
<thedarkone2> without running your example that ticket, graal's PEA is not going to handle that case, it a is control-flow merge at the end of that loop, and that is game over for PEA
<headius> so graal's EA can't handle a phi either?
<thedarkone2> AFAIK nope
<headius> how is it any better than hotspot's then?
<nirvdrum> Sorry, just catching up.
<nirvdrum> IGV is part of graal-core.
<nirvdrum> I usually just start it up from there.
<nirvdrum> You do need the "mx" build utility though. Then it's just "mx igv" from that directory.
<headius> I'll let you continue to catch up :-)
<nirvdrum> Heh.
<headius> I have it working with mx igv already
chrisarc1nd has joined #jruby
knu_ has joined #jruby
yosafbridge` has joined #jruby
kwando has joined #jruby
knu has quit [*.net *.split]
yosafbridge has quit [*.net *.split]
chrisarcand has quit [*.net *.split]
kwando_ has quit [*.net *.split]
<nirvdrum> headius: So you're still trying to figure out how to filter a particular method?
<headius> seems to indicate that it can PEA for loops by merging the virtual states
<thedarkone2> headius: with "simple" if() {new A()} else { new B()} it used be game over
<headius> nirvdrum: well, just trying to get any ideal graph out next
<headius> I have PEA limited to the method in question right now and want to get ideal graph for it
<thedarkone2> meaning: Object a; if() {a=new A()} else { a=new B()}
<nirvdrum> I thought enebo added something for you guys.
<nirvdrum> I think the connection code we use is in Truffle. Let me see if there's a way to do this otherwise.
<thedarkone2> headius: for dumping it used to be -J-G:Dump=
<thedarkone2> that would dump everything
<headius> nirvdrum: he was working on using ideal graph for our IR
<headius> I'm looking at actual graal graphs
<nirvdrum> Gotcha.
<headius> or at least, I'm trying to :-)
<thedarkone2> headius: however with your example, if Graal did some kind of loop peeling while having special knowledge of that a "peel" allocation is the same as the on in the loop, it might work (don't know if I'm not talking nonsence…)
<headius> what I'm reading in this paper tells me it should be able to merge states entering a phi and if all objects are virtual they'll stay virtual
<thedarkone2> academia vs practice? :)
claudiuinberlin has quit [Remote host closed the connection]
<headius> thedarkone2: that's certainly possible
<headius> I'll be very disappointed if this partial escape analysis can't even handle a loop though
johnsonch is now known as johnsonch_afk
zacts has quit [Quit: WeeChat 1.4]
pil-afk is now known as pilhuhn
<nirvdrum> headius: I'm trying to track down someone with more experience here.
<headius> I should ask in gitter too
<headius> just trying to get familiar with these flags myself
<headius> nirvdrum: do you know how to get igv to actually listen to the port?
<nirvdrum> Chris is at some conference, a couple people are on vacation, some of the Europeans have undoubtedly just called it quits for the day.
<headius> maybe it does it by default but none of the flags seem to make anything output anywhere
<nirvdrum> It should listen by default. What I was looking for was a command-line option to feed the data in.
<headius> yeah
<headius> PrintIdealGraph=true apparently isn't enough
<headius> it does seem to be listening
<thedarkone2> what about -Dgraal.Dump per github's graal-core readme?
<headius> I'll try that
<headius> well I mean I will try it again...I'm already passing -Dgraal.Dump=loop.RUBY$method$foo$1
<headius> maybe that pattern is not working
<headius> ahhh ok
<headius> just set the property...not to something specific
<headius> I can haz graph
<thedarkone2> I bet u can haz a lot of graphz
<nirvdrum> Ahh, yeah. I think that one is for phases. There's a separate filter for methods.
johnsonch_afk is now known as johnsonch
<headius> IGV has improved since I used it years ago...not sure how to read all this yet
<nirvdrum> My general rule of thumb is any node that is red is bad.
<thedarkone2> re: phases vs methods, that actually makes sense
<thedarkone2> nirvdrum: rofl
<headius> the final phase of this does start to match what I see in assembly
__hudson__ has joined #jruby
<headius> nirvdrum: when I select a graph, is it what is coming in or going out?
<nirvdrum> headius: -Dgraal.MethodFilter= is what you want, I think.
<nirvdrum> It should be the result of processing in that phase.
<headius> ok
* nirvdrum really hopes he's not wrong.
<nirvdrum> That's how I've understood it. But I've also generally been less concerned about individual phases.
claudiuinberlin has joined #jruby
<GitHub98> [jruby] kares opened pull request #4054: RubyEnumerator implements java.util.Iterator (master...test-ji-enumerator) https://git.io/v6ZlG
yfeldblum has joined #jruby
subbu|lunch is now known as subbu
<headius> nirvdrum: well I'm concerned about exactly one phase right now :-) thanks for the help
<nirvdrum> I need to beef up on more of this. I've just recently started looking more at the ASM ouput and lowering phases.
<GitHub164> [jruby] enebo pushed 1 new commit to master: https://git.io/v6Z4t
<GitHub164> jruby/master 7cdf0a8 Thomas E. Enebo: Fixes #4051 Wrong line numbers in Kernel#caller inside set_trace_func...
<GitHub140> [jruby] enebo closed issue #4051: Wrong line numbers in Kernel#caller inside set_trace_func (with code to reproduce) https://git.io/v6OSW
rsim has quit [Quit: Leaving.]
pilhuhn is now known as pil-afk
pil-afk is now known as pil-zzZZzz
<nirvdrum> headius: So it was MethodFilter :-)
<headius> yeah ^5
<nirvdrum> I've never seen that before. I just had to go look it up.
<eregon> enebo: FWIW there is a compilation error on latest master (some node implementing DefNode does not implement the new method)
<enebo> eregon: DOH
<enebo> eregon: weird though
<enebo> eregon: thanks I see the problem. I swear I did a full recompile but I guess not
cremes has quit [Ping timeout: 240 seconds]
<GitHub198> [jruby] enebo pushed 1 new commit to master: https://git.io/v6Zgp
<GitHub198> jruby/master 2898b4b Thomas E. Enebo: Make us compile again
<eregon> yeah maven just ate it without a word..., but my Eclipse complained
<eregon> thedarkone2: in your if a/b example, the stamp of the phi is just Object, that's difficult to EA since the size is unknown
<enebo> eregon: are you still merging from our spec commits over to spec?
<enebo> eregon: I will add three specs to Array#max :)
<eregon> yeah, about every month or so
<eregon> :)
<eregon> thedarkone2: but indeed there are some limitations, like I had a pixel allocated in a while loop and due to variable hoisting (the pixel var exists until the end of the method) it did prevent EA.
<eregon> Interestingly, using a block to iterate "fixes" it in that EA works for the pixel :)
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
claudiuinberlin has quit []
<thedarkone2> eregon: yeah, var liveness is difficult with dynamic langs in truffle :), can't eliminate a "long dead" var in case of deopt
<GitHub171> [jruby] enebo pushed 1 new commit to master: https://git.io/v6Zap
<GitHub171> jruby/master 1112205 Thomas E. Enebo: Fix AAIOBE on zero-element array for Array#max
<eregon> yeah, exactly. But nevertheless it's possible to handle these cases, might just be expensive to see the variable is never used later, or that only the last iteration value escapes and that one needs to be materialized
yfeldblum has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby
<eregon> an AAIOBE is a Argh (damn) Array Index Out of Bounds Exception? :D
<enebo> eregon: hahaha yeah I put in a bonus A
<enebo> eregon: except A is for Arrgh but more like a pirate
cremes has joined #jruby
<thedarkone2> I think there is also an opt phases ordering problem, ie PEA is run before graal is able to prove that for e.g. there is no deopt potential in the nodes that lie on controlflow path before the frame goes out of scope
<travis-ci> jruby/jruby (master:7cdf0a8 by Thomas E. Enebo): The build has errored. (https://travis-ci.org/jruby/jruby/builds/150741866)
bbrowning is now known as bbrowning_away
<enebo> eregon: this single file has been marked as tab delimited somehow in intellij
<enebo> eregon: any other file and it uses spaces
<enebo> eregon: so I am guessing it noticed tabs and asked me but I was not paying attention
<enebo> eregon: but now I don’t know how to toggle back
<enebo> I guess I will fix with emacs and never visit this file again :)
<eregon> maybe intellij will ask again when the ratio of spaces is high enough? :P
<enebo> eregon: there cannot be too many tabs in there :)
<enebo> holy crap
<enebo> itr is all tabs
<enebo> what is going on :)
<enebo> and has had like 10 different authors
<eregon> :D
<GitHub187> [jruby] enebo pushed 1 new commit to master: https://git.io/v6ZoB
<GitHub187> jruby/master 85d6f0d Thomas E. Enebo: [noci] Kill all the tabs in this file???
<enebo> I guess I should commend intellij for preserving convention of the individual file
<GitHub57> [jruby] enebo pushed 1 new commit to master: https://git.io/v6ZKo
<GitHub57> jruby/master 1e8c65a Thomas E. Enebo: Spec out Array#max a tiny bit
<enebo> eregon: ^ I could have done more but it is amazing to see how underspecified something so old can be
<eregon> Array#max is pretty new though
<enebo> oh yeah it is from 2.3 isn’t it
<eregon> or wait I'm confusing with the new opt for Array#max
<enebo> it was only enumerable before
<enebo> hmm
<eregon> yeah, exactly
<eregon> we could copy or share spec from there :)
<eregon> more specs but not so readable
<enebo> eregon: I totally see why the shared specs exist but I hate reading them
<eregon> it's probably good to have an example with at least 3 values for Array#ax, knowing jruby packed array are 1-2 elements :p
<eregon> yeah, in this case it's just be much simpler to copy
<enebo> eregon: I get leery about adding impl-specific stuff
<eregon> indeed, but it's definitely good to cover those cases
johnsonch is now known as johnsonch_afk
<chrisseaton> is headius still here?
lanceball is now known as lance|afk
<headius> chrisseaton: hey
<headius> yeah, talking in graal gitter
<chrisseaton> ah I'll go there then
<headius> we found a couple nice discoveries that improved my loop bench 8x
<headius> not bad for a day's work
<chrisseaton> which phase are you looking at?
<chrisseaton> GitHub needs an IGV viewer built in
<enebo> chrisseaton: when you say java integration do you mean our JRuby JI or just ability to call into java?
<chrisseaton> ability to call into Java, but I'm open to making it work exactly like yours if I can
<enebo> chrisseaton: like can I -e ‘java.lang.System.get_property(“foo”)’
<chrisseaton> Stuff like that could already work with modest effort, yeah
<enebo> chrisseaton: yeah since ~50% of all JRuby users depend on our APIs I think it is pretty important :)
<enebo> chrisseaton: ok thanks for the clarification. I thought Thomas meant ours vs a general mechanism
<chrisseaton> I don't have any urgent examples though - openssl and nokogiri for C cexts are urgent - what can I use to motivate myself to do Java interop?
<headius> that's not JI
<headius> JI is writing just Ruby code to call an arbitrary Java library
<enebo> chrisseaton: we just get a lot of people scripting into Java libraries. I talked to two groups within the U of MN who intergrate into a Java PDF library
<headius> eregon's implementation of date.rb, date/format.rb stuff is an example of JI
<enebo> chrisseaton: this is nearly 1/2 the reason people use JRuby
<chrisseaton> What's not JI? The examples for cexts? Yeah I'm just giving them examples of why I'm working on something else - I need examples like date.rb to have something to work towards
<headius> ok
<enebo> chrisseaton: sure
<headius> so yeah, date is one in JRuby proper
<headius> but there's scads of library wrappers out there for JI
<travis-ci> jruby/jruby (master:2898b4b by Thomas E. Enebo): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/150755011)
<enebo> chrisseaton: shoes might be a good correctness one
<headius> and beyond that untold numbers of people that just pull in a Java library and start calling it
<headius> shoes would be good
<chrisseaton> I saw one for Asciidoctor - but it was just JRuby as a library, rather than Ruby -> Java
<enebo> chrisseaton: kares may have some opinions too
<enebo> chrisseaton: maybe logstash
<chrisseaton> Do you care about Java -> Ruby as much as well?
<enebo> chrisseaton: their plugins I think call into Java
<enebo> chrisseaton: I think that one will be truly trivial
<headius> chrisseaton: yes...JRuby objects can implement Ruby interfaces
<enebo> chrisseaton: we have ScriptingContainer API
<headius> er, Java interfaces
<enebo> that too
<headius> so if you do class Foo; include JavaInterface; end, the resulting object actually is a JavaInterface
<headius> we generate a real class for it
<enebo> become_java too
<chrisseaton> We have stuff for that interface use case in the Truffle interop API, but we don't have it wired up
<enebo> bi-direction type coercion
<headius> chrisseaton: this is wrapped with a proxy I believe?
<chrisseaton> Yeah
<headius> in our case there's no proxy...the Ruby object is passed directly to Java
<headius> Java objects must get a thin wrapper while they live in Ruby space
<chrisseaton> We can't subclass our objects at the moment
<headius> with a combination of ivar packing and interface impl, a Ruby object can look like a normal Java object with normal fields
<headius> and a default constructor
<headius> our JI goes very deep
<enebo> I am dropping off but chrisseaton if you need some help getting into JRuby JI features I will be around tomorrow and every day after that :)
<chrisseaton> I'm in Cambridge all week at a summer school on metaprogramming
<chrisseaton> Playing an academic talking about monads again
<enebo> ok well we are available as resources as you need them
enebo has quit [Quit: enebo]
<headius> I'm encouraged by our results today
<headius> two tweaks and JRuby+indy is 8x faster on a simple loop, and 50% faster on the other benchmarks I tested
<headius> maybe this JVM thing isn't so bad after all
<headius> :-D
<headius> and in the loop case, that's also 8x faster than C2
vmarcetic has joined #jruby
vmarcetic has quit [Client Quit]
tcrawley-away is now known as tcrawley
tcrawley is now known as tcrawley-away
<travis-ci> jruby/jruby (master:1112205 by Thomas E. Enebo): The build has errored. (https://travis-ci.org/jruby/jruby/builds/150757840)
zacts has joined #jruby