havenwood has joined #jruby
subbu has quit [Ping timeout: 265 seconds]
multibot_ has quit [Remote host closed the connection]
multibot_ has joined #jruby
brettporter has joined #jruby
havenwood has quit [Remote host closed the connection]
havenwood has joined #jruby
ghadishayban has quit [Ping timeout: 272 seconds]
digitalextremist has quit [Ping timeout: 255 seconds]
decentrality has joined #jruby
decentrality has quit [Client Quit]
marr has quit [Ping timeout: 272 seconds]
elia has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub> jruby/master 04a3de8 Chris Seaton: Implement the offset part of detailed source sections....
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/JOMJpg
phrinx has joined #jruby
ghadishayban has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:04a3de8 by Chris Seaton): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/39115750)
travis-ci has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 4 new commits to truffle-head: http://git.io/mKj22A
<JRubyGithub> jruby/truffle-head e3a4dcd Chris Seaton: Merge branch 'master' into truffle-head...
<JRubyGithub> jruby/truffle-head 96892f7 Chris Seaton: [Truffle] Use LoopNode for begin-end-while.
<JRubyGithub> jruby/truffle-head 3a6d15a Chris Seaton: [Truffle] Remove loop-counts-through-blocks.
JRubyGithub has left #jruby [#jruby]
ludyte has quit [Quit: ludyte]
ludyte has joined #jruby
robbyoconnor has joined #jruby
robbyoconnor has quit [Read error: Connection reset by peer]
colinsurprenant has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:04a3de8 by Chris Seaton): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/39115750)
travis-ci has left #jruby [#jruby]
r0bby_ has joined #jruby
bryancp has joined #jruby
<bryancp> Haven’t used jruby for a bit — does the latest released version support keyword arguments?
<bryancp> nm I see the —2.0 flag now
ghadishayban has quit [Ping timeout: 256 seconds]
pgokeeffe has joined #jruby
zorak8 has joined #jruby
subbu has joined #jruby
r0bby_ is now known as robbyoconnor
pgokeeffe has quit [Quit: pgokeeffe]
havenwood has quit []
pgokeeffe has joined #jruby
robbyoconnor has quit [Ping timeout: 258 seconds]
brettporter has quit [Ping timeout: 245 seconds]
zorak8 has quit [Ping timeout: 240 seconds]
johnsonch_afk is now known as johnsonch
pgokeeffe has quit [Quit: pgokeeffe]
diegoviola has quit [Remote host closed the connection]
havenwood has joined #jruby
pgokeeffe has joined #jruby
yfeldblum has quit [Remote host closed the connection]
pgokeeffe has quit [Quit: pgokeeffe]
yfeldblum has joined #jruby
yfeldblu_ has joined #jruby
yfeldbl__ has joined #jruby
yfeldblum has quit [Ping timeout: 255 seconds]
yfeldblu_ has quit [Ping timeout: 240 seconds]
yfeldbl__ has quit [Ping timeout: 258 seconds]
subbu has quit [Ping timeout: 255 seconds]
ludyte_ has joined #jruby
ludyte has quit [Read error: Connection reset by peer]
brettporter has joined #jruby
havenwood has quit [Remote host closed the connection]
johnsonch is now known as johnsonch_afk
yfeldblum has joined #jruby
cajone has left #jruby [#jruby]
iamjarvo has joined #jruby
jruby687 has quit [Ping timeout: 246 seconds]
robbyoconnor has joined #jruby
noop has joined #jruby
tlarevo has joined #jruby
robbyoconnor has quit [Ping timeout: 240 seconds]
yfeldblu_ has joined #jruby
yfeldblum has quit [Ping timeout: 245 seconds]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
robbyoconnor has joined #jruby
robbyoconnor has quit [Client Quit]
Hobogrammer has quit [Read error: Connection reset by peer]
Hobogrammer has joined #jruby
yfeldblum has joined #jruby
yfeldblu_ has quit [Ping timeout: 255 seconds]
ludyte has quit [Quit: ludyte]
phrinx has quit [Remote host closed the connection]
avsej has quit [Quit: Quit]
avsej has joined #jruby
dumdedum has joined #jruby
brettporter has quit [Remote host closed the connection]
avsej has quit [Quit: Quit]
avsej has joined #jruby
mister_solo has joined #jruby
Usuario has joined #jruby
Usuario is now known as obs
mister_solo has quit [Ping timeout: 245 seconds]
JohnBat26 has joined #jruby
thsig_ has joined #jruby
brettporter has joined #jruby
thsig has quit [Ping timeout: 265 seconds]
tlarevo_ has joined #jruby
tlarevo has quit [Ping timeout: 255 seconds]
mister_solo has joined #jruby
Hobogrammer has quit [Ping timeout: 272 seconds]
brettporter has quit []
ephemerian has joined #jruby
marr has joined #jruby
benlovell has joined #jruby
elia has joined #jruby
skade has joined #jruby
postmodern has quit [Quit: Leaving]
mister_solo has quit [Ping timeout: 258 seconds]
mister_solo has joined #jruby
vtunka has joined #jruby
thsig_ has quit [Remote host closed the connection]
thsig has joined #jruby
benlovell has quit [Ping timeout: 260 seconds]
avsej has quit [Quit: Quit]
avsej has joined #jruby
kith_ is now known as kith
mccraig_ is now known as mccraig
benlovell has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
thsig_ has joined #jruby
erikhatcher has joined #jruby
thsig has quit [Ping timeout: 255 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/cXVVPg
<JRubyGithub> jruby/master d3fc61d Benoit Daloze: [Truffle] Reorder logically CoreMethod fields order and document argsAsArray.
<JRubyGithub> jruby/master 575275f Benoit Daloze: [Truffle] Finish cleanup: optional = 0 is redundant.
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian pushed 1 new commit to redefine-uri-classloader-meaning: http://git.io/pWe7nA
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/redefine-uri-classloader-meaning 1bc0673 Christian Meier: added osgi test without inlining the dependencies
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:575275f by Benoit Daloze): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39141004)
travis-ci has left #jruby [#jruby]
Fofrik has joined #jruby
benlovell has quit [Ping timeout: 244 seconds]
benlovell has joined #jruby
mister_solo has quit [Read error: Connection reset by peer]
mister_solo has joined #jruby
mister_solo has quit [Ping timeout: 244 seconds]
skade has joined #jruby
tcrawley-away is now known as tcrawley
elux has quit [Quit: Leaving...]
bbrowning has joined #jruby
mister_solo has joined #jruby
JohnBat26 has quit [Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
thsig_ has quit [Remote host closed the connection]
elux has joined #jruby
thsig has joined #jruby
ludyte has joined #jruby
benlovell has quit [Ping timeout: 260 seconds]
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
JohnBat26 has joined #jruby
elia has quit [Quit: (IRC Client: textualapp.com)]
elia has joined #jruby
tlarevo_ has quit [Ping timeout: 245 seconds]
ludyte has quit [Quit: ludyte]
subbu has joined #jruby
tlarevo has joined #jruby
johnsonch_afk is now known as johnsonch
zorak8 has joined #jruby
iamjarvo has joined #jruby
ludyte has joined #jruby
iamjarvo has quit [Client Quit]
etehtsea has joined #jruby
benlovell has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
lance|afk is now known as lanceball
zorak8 has quit [Ping timeout: 272 seconds]
havenwood has joined #jruby
subbu has quit [Ping timeout: 265 seconds]
tenderlove has joined #jruby
calavera has joined #jruby
enebo has joined #jruby
<headius> g'day
vtunka has quit [Quit: Leaving]
<headius> chrisseaton: I think we've had those JUnit tests run in parallel from time to time to speed up -Ptest, but I'm not sure what it's set to now
<headius> I believe when we did that they ran in separate processes, though
colinsurprenant has joined #jruby
vtunka has joined #jruby
vtunka has quit [Client Quit]
vtunka has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
viking has joined #jruby
oblutak has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
bbrowning is now known as bbrowning_away
benlovell has quit [Ping timeout: 272 seconds]
tlarevo has quit [Remote host closed the connection]
elia has quit [Ping timeout: 255 seconds]
e_dub has joined #jruby
benlovell has joined #jruby
elia has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/PCaPgA
<JRubyGithub> jruby/master 45a2a56 Benoit Daloze: [Truffle] Reorder ProcNodes: constructor first.
<JRubyGithub> jruby/master fa42a02 Benoit Daloze: [Truffle] Have a try at implementing Proc#binding....
JRubyGithub has left #jruby [#jruby]
vtunka has quit [Quit: Leaving]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
skade has joined #jruby
colinsurprenant has joined #jruby
subbu has joined #jruby
deobalds has joined #jruby
colinsurprenant has quit [Client Quit]
thsig has quit [Remote host closed the connection]
thsig has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:fa42a02 by Benoit Daloze): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39159012)
travis-ci has left #jruby [#jruby]
colinsurprenant has joined #jruby
thsig has quit [Read error: Connection reset by peer]
thsig_ has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/cgFUTw
<JRubyGithub> jruby/master 8dab723 Chris Seaton: [Truffle] During warmup some benchmarks become metamorphic until splitting, so need to explicitly transfer.
JRubyGithub has left #jruby [#jruby]
calavera has joined #jruby
<headius> chrisseaton: hey, interested in your thoughts on a known problem: call sites rooting temporary objects
<headius> e.g. a singleton object method cached at a call site will keep that object alive forever... unlike non-singleton object methods, which will only keep that class alive
<headius> could be avoided by having call sites be a weak reference, but that obviously means traversing a weak reference every time (along with the many other reasons weak references can get messy)
<chrisseaton> won't that just reference the singleton class
<headius> we have opted to just not fix it, and have it be a known side effect of method caching that singleton objects may stick
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 3 new commits to master: http://git.io/dwUUCg
<JRubyGithub> jruby/master be557da Thomas E. Enebo: Make frame requirement calculation a small method in ACP
<JRubyGithub> jruby/master 9d24f55 Thomas E. Enebo: Register end block to toplevel scope so JIT can know it exists
<JRubyGithub> jruby/master 0961f2d Thomas E. Enebo: For methods and other scopes do not mandatorily not allow ACP to run on them...
JRubyGithub has left #jruby [#jruby]
<headius> the singleton class holds a reference back to the object
<chrisseaton> ah yeah
<chrisseaton> is it a memory leak problem, or are people expecting objects to disappear from weak references, ObjectSpace and finalisers and things?
<headius> we tried to make that connection weak once, but we ended up with a bunch of methods in flight that no longer had an "attached" object
<headius> the latter... it's not really an unbounded leak, since it will only retain as many objects as there are live call sites
<headius> that's another reason we haven't prioritized researching a fix
<chrisseaton> ah well if it's the latter, tell people that GC guarantees you nothing ever and to get used to it - not even MRI guarantees that :)
<headius> sounds about like our official policy on the matter
<enebo> heh
<headius> it might be worth looking at having the class reference stored in the call site be weak *only* when that class reference is to a singleton class
<headius> that would mean singleton methods require weakref traversal at call sites, but singletons usually trigger heavy invalidation anyway and don't cache well
<enebo> And of course we need to use that policy for IR tmporary variables pinning objects unless we introduce a pass to nil out temp vars after they are no longer referenced
iamjarvo has joined #jruby
<headius> enebo: yeah, that will be an interesting one...old JIT and old interpreter likely had the same issues though
<headius> local variable in Java that holds a reference to something it shouldn't...same effect
<headius> those are all over the AST interpreter
<enebo> headius: well AST interp probably did not have it since everything was a function call with a return from a function
<chrisseaton> one option is deopt-alot - Graal does this - deoptimize and clear call sites every now and again
<enebo> headius: we did have living nodes hold some values so I concede a little bit of it
<chrisseaton> good for the case where your setup code uses on call site cache, but never again
<chrisseaton> Truffle doesn't use it yet though
<headius> chrisseaton: yeah, I have been thinking about how to productively do periodic flushing
<headius> one of the indy smalltalk impls does a periodic flush
<chrisseaton> had a thread on a timer, deoptimsie everything, clear all caches, start going again - not great in the middle of a request though
<headius> could also track all call sites currently holding references to weakrefs and only periodically flush those
<headius> it gets messy every way though
<headius> er, holding references to singleton objects
elia has quit [Quit: (IRC Client: textualapp.com)]
elia has joined #jruby
<chrisseaton> we could have a chaos monkey - randomly deoptimising methods and resetting call sites - but not all at once, just one at a time here and there
<chrisseaton> would be very probabilistic (so guarantees nothing, just like the GC)
<chrisseaton> at least we're not in Jython's position with ref count semantics
ivan\ has joined #jruby
iamjarvo has quit [Read error: Connection reset by peer]
iamjarvo has joined #jruby
<headius> chrisseaton: eesh, don't remind me
<headius> pretty sure they just punt on it though
<headius> is the truffle python doing ref counting?
<chrisseaton> no, Java GC semantics
vtunka has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:8dab723 by Chris Seaton): The build failed. (http://travis-ci.org/jruby/jruby/builds/39161682)
travis-ci has left #jruby [#jruby]
deobalds has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/9i-d-Q
<JRubyGithub> jruby/master 47cf427 Thomas E. Enebo: Remove some tags for passing specs
<JRubyGithub> jruby/master 1813ecc Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/lgzspQ
<JRubyGithub> jruby/master fa759ef Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/D_3Oag
<JRubyGithub> jruby/master 85422a6 Thomas E. Enebo: Undelete specs when I meant to delete tags
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/VZBYKw
<JRubyGithub> jruby/master cd1950a Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/KAVeKg
<JRubyGithub> jruby/master 2d0f5c6 Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/89gdFA
<JRubyGithub> jruby/master 07b574a Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/IHJGKw
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/master 0923471 Thomas E. Enebo: Remove some tags for passing specs
jimbaker has joined #jruby
bbrowning_away is now known as bbrowning
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/etQLPw
<JRubyGithub> jruby/master 94f5a28 Thomas E. Enebo: no such spec file we are tagging against?
JRubyGithub has left #jruby [#jruby]
tenderlove has quit [Quit: Leaving...]
havenwood has quit [Ping timeout: 246 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/5Qx5Cg
<JRubyGithub> jruby/master e6758ed Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
<enebo> aaarrrgg :)
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/WjIbmQ
<JRubyGithub> jruby/master b1ea6f4 Thomas E. Enebo: Blurry eyed bad commit
<JRubyGithub> jruby/master 08163ed Thomas E. Enebo: Remove some tags for passing specs
JRubyGithub has left #jruby [#jruby]
colinsurprenant has quit [Quit: colinsurprenant]
havenwood has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/4xDNnA
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/master 1da0013 Thomas E. Enebo: Remove some tags for passing specs
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
JRubyGithub has joined #jruby
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/master 3776633 Thomas E. Enebo: Remove some tags for passing specs
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/DxGpPA
<chrisseaton> enebo: you're just trying to get your commits stats up on GitHub :)
<enebo> chrisseaton: I want to be able to revert a single file if anything breaks on Travis
<chrisseaton> also stop making it harder for me to match JRuby's RubySpace language score :)
<enebo> chrisseaton: It has already paid off since I accidentally removed spec files :)
<enebo> chrisseaton: ;)
tenderlove has joined #jruby
<enebo> chrisseaton: I think the rubyopt warnings can be easily solved by adding a flag to our argument processor saying where we got the option
<enebo> chrisseaton: Meaning I don’t think this really need to be a pedantic option so much as a small change to out argumentprocessor
<chrisseaton> i'd be happy to do that - but I was going on a bug where I think hiro said they didn't want that behaviour
<chrisseaton> as in handling --help in RUBYOPT was what was wanted
<enebo> chrisseaton: well is asarih can specify which ones specifically we can at least fix all the other ones…but what do they do on MRI?
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<chrisseaton> --help in RUBYOPT is an error on MRI
diegoviola has joined #jruby
ludyte has quit [Quit: ludyte]
<enebo> chrisseaton: I would like to know how this is used in travis. asarih will perhaps explain why when he is around.
<chrisseaton> looking for the bug now
benlovell has quit [Ping timeout: 258 seconds]
<asarih> what's the problem?
obs has quit [Quit: Leaving]
<chrisseaton> this is what I was going on https://jira.codehaus.org/browse/JRUBY-5000
<chrisseaton> the conclusion was we wanted to support --help in RUBYOPT, so instead of changing the behaviour that's why I included the strict option
<enebo> asarih: sorry I thought this was recent
<enebo> chrisseaton: so we can certainly support it. It was more whether we want to go through the trouble
<enebo> chrisseaton: I don’t quite read that we want it supported from this issue though. More we did not want to take the time to fix it
<chrisseaton> I'm happy to do that if it's ok
<enebo> chrisseaton: yeah that would be great since you would kill two birds with one stone
<enebo> of our remaining 61 failing tags that is about 20 of them
colinsurprenant has joined #jruby
ahadding1 has joined #jruby
<chrisseaton> ok - it's on my todo list
avsej_ has joined #jruby
avsej has quit [Ping timeout: 255 seconds]
avsej_ is now known as avsej
mkristian has joined #jruby
<headius> enebo: I modified InterpretedIRMethod to only JIT IRMethod instances, and with that change every method successfully JITs running rspec with threshold=0
<headius> I'm not sure if it's valuable to JIT non-method bodies (other than blocks) but we can revisit that later if we like
<enebo> headius: ah yeah I did not check to see where that was ahppeneing
<headius> ahh you saw the cast errors?
<enebo> headius: yeah I do not remember the exact reason for doubling down on using interpretedIRMethod for non methods but it was probably just easier to implement
<headius> yeah... InterpretedIRMethod is really just a vessel
<enebo> headius: I did not but I knew last week when I saw no debug info
<headius> it may be the only DynamicMethod for all IR soon
<enebo> headius: I corrected that problem (debugging) by moving the debug above JIT check
colinsurprenant has quit [Quit: colinsurprenant]
phrinx has joined #jruby
ludyte has joined #jruby
<headius> ok
colinsurprenant has joined #jruby
JohnBat26 has quit [Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
<headius> new caching logic is working
<headius> red/black looks like 1-1.2s now...checking 1.7 JIT now
<headius> also getting an allocation profile to see how it looks
<headius> enebo: I realized just now that IR to IR calls can support fixed arity up to maximum of Java arg list
<headius> they're all stitched together using handles anyway (JVM6 will need work here)
<enebo> headius: how many methods do you want on that class :)
<headius> if we can get multiple arities, red/black will improve a lot...there's several hot methods with one optional
<enebo> headius: you mean optional
<headius> enebo: well, I mean if we have fixed arity method with 5 params, it will not have to box for ruby to ruby calls
<headius> pretty sure that will "just work" right now
<headius> that along with optional arg entry points and a ton of methods will do no boxing at all
<headius> (arg list)
<enebo> headius: in pre-kwargs world like 98% of all methods had an arity of 5 or less
<enebo> headius: well I am not against it :)
<enebo> headius: optional seems very desirable even without supporting high arities
<headius> yeah for sure
Hobogrammer has joined #jruby
<headius> it's just nice that the 0-3 limitation is starting to melt away
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/h78nrQ
<JRubyGithub> jruby/master 5b57945 Benoit Daloze: [Truffle] Define Kernel#p in Ruby.
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/fkL3Eg
<JRubyGithub> jruby/master f765750 Thomas E. Enebo: Unbreak ast by removing ir pass listing in help
<JRubyGithub> jruby/master 088e62c Thomas E. Enebo: Support the highly desired $-0
JRubyGithub has left #jruby [#jruby]
<headius> yeah, it just works... def foo(a, b, c, d) emits a JVM bytecode method with four actual args (in addition to runtime support stuff)
vtunka has quit [Quit: Leaving]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:8dab723 by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39161682)
travis-ci has left #jruby [#jruby]
<subbu> headius, enebo what do you need from me this week? anything i should work on?
<enebo> subbu: I am hoping nirvdrum comes online soon :)
<enebo> subbu: I tested his test case and it now passes
<enebo> subbu: You could fix Range and Regexp :)
zorak8 has joined #jruby
<subbu> k
yfeldblum has quit [Ping timeout: 258 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/zkS5KQ
<JRubyGithub> jruby/master 11205fa Charles Oliver Nutter: More improvement and refactoring of indy binding....
JRubyGithub has left #jruby [#jruby]
<headius> that should be getting a bit more realistic for perf measurements
<headius> it won't build endless PICs or churn on volatile sites forever now
zorak8 has quit [Ping timeout: 244 seconds]
ephemerian has quit [Quit: Leaving.]
<enebo> I killed about the last 30 jobs so we can get a recent ci build
nirvdrum has joined #jruby
<enebo> Most were me spec tag removing
elux has quit [Quit: Leaving...]
zorak8 has joined #jruby
iamjarvo has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
colinsurprenant has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
<headius> enebo: ok
<headius> I think there's a commit tag you can use to keep it from running
<enebo> headius: yeah there is but I did not think of doing that
<headius> asarih: [skipci] or something right?
calavera has joined #jruby
<asarih> headius: [skip ci] or [ci skip]
colinsurprenant has quit [Client Quit]
colinsurprenant has joined #jruby
avsej has quit [Quit: Quit]
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
<headius> asarih: thanks :-)
<headius> enebo: so...at the moment, jitted code gets bound to a DynamicMethod by using method handles, regardless of whether indy is enabled
<headius> mostly because I don't have reasonable method pointers other than handles
<headius> I could try to *generate* handle objects on JVM6, which leads to all the -X+C slowdown because of classloading
<headius> I may try just using reflection at first to see how big the impact is
<headius> I imagine it won't be great
<enebo> headius: well ultimately it may mean trying to balance between statup, warmup, and eventual performance
<enebo> headius: which feels untenable
<enebo> :)
<headius> I know
<headius> I wonder if it would be possible to make an API-compatible java.lang.invoke that works on 6
<headius> obviously no invokedynamic bytecode, but the rest of the plumbing seems doable
zorak8 has quit [Ping timeout: 272 seconds]
<chrisseaton> do you guys want to spend your time back porting invoke to Java 6?
<enebo> chrisseaton: well we need reasonable warmup in the next couple of months
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/imYRIA
<JRubyGithub> jruby/master 75c938b Benoit Daloze: [Truffle] Make an option for Proc#binding.
JRubyGithub has left #jruby [#jruby]
zorak8 has joined #jruby
<enebo> lunch
zorak8 has quit [Max SendQ exceeded]
zorak8 has joined #jruby
zorak8 has quit [Max SendQ exceeded]
zorak8 has joined #jruby
mister_solo has quit [Ping timeout: 255 seconds]
<headius> chrisseaton: warmup is one problem, android is another
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Hobogrammer has quit [Ping timeout: 255 seconds]
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
robbyoconnor has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
skade has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/ccAGLg
<JRubyGithub> jruby/master ebc3eb8 Benoit Daloze: [Truffle] Disable Proc#binding for PE tests since it breaks a couple of them for now.
<JRubyGithub> jruby/master 6f416d8 Benoit Daloze: Revert "[Truffle] Tag a couple of failing PE tests."...
JRubyGithub has left #jruby [#jruby]
subbu is now known as subbu|lunch
calavera has joined #jruby
colinsurprenant has joined #jruby
mkristian has quit [Ping timeout: 272 seconds]
tlarevo has joined #jruby
avsej has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39174228)
elia has quit [Quit: Computer has gone to sleep.]
benlovell has joined #jruby
mkristian has joined #jruby
lanceball is now known as lance|afk
benlovell has quit [Ping timeout: 265 seconds]
iamjarvo has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
mkristian has quit [Quit: bye]
bbrowning has quit [Remote host closed the connection]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
mister_solo has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<enebo> chrisseaton: you did not remove from spec/truffle/tags when you fixed that issue?
dumdedum has quit [Ping timeout: 245 seconds]
<enebo> chrisseaton: Didn’t it fix it for truffle at the same time?
balo has quit [Quit: leaving]
<headius> enebo, subbu|lunch: methods with resolved super don't appear to optimize frame/scope away
<enebo> headius: probably because we only have a single flag uses_super
<enebo> headius: perhaps we don’t need that for resolved super
<headius> that's what I'm guessing
<enebo> Offhand I do not see why not
<headius> frame should not be needed for resolved and additionally scope should not be needed for non-zsuper, I think?
<enebo> headius: I think so. Definitely cannot be removed for zsuper
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
etehtsea has quit [Ping timeout: 255 seconds]
<enebo> headius: A non-zsuper has it’s arguments in the call itself so I think it is more whether you are pulling those variables from outer scopes
<enebo> headius: but if you are then I think that will prevent the binding from going away
<headius> enebo: that should be outside the call anyway
<headius> loads and stores
<headius> zsuper might be loads and stores now too, I don't remember if subbu|lunch went that far
<enebo> headius: yeah I largely am looking at code with loads and stores
<enebo> without
<headius> I'm looking at IRScope.resetState and I see it set flags that seem strange
<headius> trying to figure out who might be setting the zsuper flag
tlarevo has quit [Remote host closed the connection]
<headius> that's the flag we have... for zsuper
<enebo> Let me generate non load/store IR for nested super
<chrisseaton> New Truffle blog post on C extensions: http://www.chrisseaton.com/rubytruffle/cext/
<headius> I guess I see it clear the same flag in computeScopeFlags
<headius> hmm
<enebo> ZSuperInstr does
<enebo> in compuireScopeFlags
<enebo> chrisseaton: I asked a question about your tags above too
lance|afk is now known as lanceball
<chrisseaton> enebo: I'd already removed them as we were running specs with the strict option, but thanks for the reminder
<enebo> chrisseaton: ah ok
<byteit101> JRuby is clearly doing something strange with JavaCV, my ruby code calling openCV works always, but java .class works never, and java .jar works only if ruby has called openCV.
<byteit101> stacktraces are also in that url
<byteit101> anyone know what is happening?
<headius> chrisseaton: maybe I should have reviewed this, but Rubinius has to do almost all the same tricks to make Array and String internals accessible from C
calavera has joined #jruby
<headius> e.g. copying data back and forth, duplicating content in native heap and managed heap
<chrisseaton> oh didn't know they actually did copying
<chrisseaton> post a comment :)
<headius> they have to...they don't have pinning and lifecycles of object handles will cross GC boundaries
<enebo> byteit101: If I had to guess Mat is trying to load something else not in your classpath
<enebo> byteit101: try ‘java_import “theclass”’ and see if you get a better error
<enebo> byteit101: I think java_import for some reason has a more detailed error
<byteit101> yea, except it works *after* jruby has called it
<enebo> byteit101: nice to see you btw :)
<byteit101> indeed, I also made some fixes to jrubyfx recently
<byteit101> supports j8 now
<enebo> byteit101: great
<enebo> chrisseaton: Did I see an earlier version of this blog post?
<enebo> chrisseaton: It feels like I read this already
<enebo> chrisseaton: Out of all the stuff you guys have done the thing which has blown my mind the most is the C interpreter :)
<chrisseaton> enebo: we sent out the Modularity paper draft a month or more ago
<enebo> chrisseaton: It is one of the more unintuitive solutions to the non-inlining issue (at least to me)
<headius> chrisseaton: FYI, tweets that start with @ only go to that person and people who follow you both
<chrisseaton> oh bollocks
<headius> that's why people will insert a space or . before a leading handle
<enebo> I mean it make sense but it I never ever thought of it as a solution
<byteit101> enebo: java_import has no effect
<brixen> Rubinius pins Strings
<brixen> we could pin Arrays as well, but don't at the moment
<headius> brixen: so as long as the handle is alive, that string cannot be moved, yes?
<headius> by the GC, that is
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius> brixen: thanks for clarifying...what's the lifecycle of handles + pinning in that case? Can a String stay pinned even after C ext call returns to Ruby?
<headius> chrisseaton: FWIW, JVM accessors for array elements (which I believe we use in our C ext stuff) *can* pin, but I'm not sure if they do on most current JVMs
<chrisseaton> if you've allocated on the heap, you've already lost for a lot of the benchmarks
<enebo> We also lost because we go through JNI :)
<headius> well, I make no claims that JNI could ever be efficient for C ext
<headius> and that's probably the biggest reason we ditched C ext support
<byteit101> enebo: interesting. java_import 'org.bytedeco.javacpp.opencv_core$Mat' results in same error as java, but simply putting the reference `org.bytedeco.javacpp.opencv_core::Mat` (w/o backticks) works and fixes it just like java
subbu|lunch is now known as subbu
<enebo> byteit101: I guess technically $ is an internal encoding thing
<byteit101> ?
ludyte has left #jruby [#jruby]
<byteit101> opencv_core is a class with "public static class Mat" inside it
<enebo> byteit101: internally the class is named that but in Java and Ruby we cannot refer to an inner class with a $
<enebo> at a lang-level
<byteit101> yes, well, it can't find it with . or :: inside a string
<byteit101> NameError: cannot load Java class org.bytedeco.javacpp.opencv_core.Mat
<byteit101> vs
<byteit101> NameError: cannot link Java class org.bytedeco.javacpp.opencv_core$Mat, probable missing dependency: org.bytedeco.javacpp.opencv_core$Mat.allocate()V
<byteit101> which is the same error as java get
<subbu> headius, enebo i am lazy to read the scrollback now .. so, will let you two figure it out .. have to also focus on some parsoid things.
<headius> subbu: yeah I'm on it, just FYI
<enebo> byteit101: I think using :: makes sense and . does not but the string form probably does not split on :: which is a bug
<byteit101> NameError: cannot load Java class org.bytedeco.javacpp.opencv_core::Mat
<byteit101> yea
<byteit101> want me to report that as an issue?
<enebo> byteit101: yes please
<enebo> byteit101: I also believe this code is in core/src/main/ruby/* so you may even be able to fix if that tickles your fancy
pietr0 has joined #jruby
<byteit101> cool, though I think my jruby source is > 1 year out of date so I may need to pull :D
<byteit101> any idea on why the const ref can fix the java and jruby errors loading the jni class?
benlovell has joined #jruby
<enebo> byteit101: I predict you fix :: on the string form and it will do the same thing
<enebo> byteit101: It is probably classforname on the opencv_core::Mat as a single name
<byteit101> I don't, thats a seperate bug
<byteit101> because simply calling my java class (Java::Test.new) causes the error
<byteit101> and adding a reference to Mat in jruby fixes it
balo has joined #jruby
<byteit101> which is weird
<byteit101> this is about commenting out line #17 in the rb file
<subbu> nirvdrum, can you test on latest master? i would like to take a shot at fixing any issues you have with super if they are still around.
<subbu> going offline for the next 15 mins.
<enebo> byteit101: yeah I am unsure unless this is some classloader thing
<byteit101> commented out it never works, uncommented it works in jars
<byteit101> Thats what I though it might be as jruby modifies the classloaders, but I don't know enough about CL's to say for sure
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
subbu has quit [Ping timeout: 265 seconds]
benlovell has quit [Ping timeout: 272 seconds]
cajone has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
<headius> are we doing all cancelled builds today, or is travis choking?
<enebo> headius: It choked on the last one I cancelled
<enebo> headius: resource not available sort of issues
<headius> strange
<headius> ok
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
iamjarvo has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
erikhatcher has quit [Quit: erikhatcher]
zorak8 has quit [Ping timeout: 256 seconds]
subbu has joined #jruby
bbrowning has joined #jruby
johnmuhl has quit [Ping timeout: 272 seconds]
johnmuhl_ has joined #jruby
Fofrik has quit [Ping timeout: 244 seconds]
locks has quit [Ping timeout: 244 seconds]
mjc_ has quit [Ping timeout: 272 seconds]
lopex has quit [Ping timeout: 272 seconds]
<headius> bleh, I need to step debug ACP to find this
<headius> I have no idea why it's adding frame and scope
amdprophet has quit [Ping timeout: 272 seconds]
locks_ has joined #jruby
<subbu> headius, is it happening in interp mode as well?
mjc_ has joined #jruby
Fofrik has joined #jruby
amdprophet has joined #jruby
lopex has joined #jruby
imperator has joined #jruby
<byteit101> enebo: it boils down to a JavaUtilities.get_proxy_class('org.bytedeco.javacpp.opencv_core::Mat') call which gets into the guts of jruby fast. Should I just replace :: with $ in the java_import (impl ruby) or the get_proxy_class (impl java) or lower?
<headius> subbu: checking
<byteit101> the actual conversion is in javasupport, which looks to be called by everything
<headius> subbu: yes
<subbu> so should be simpler to debug in interpreter land.
<enebo> byteit101: You could do it on Ruby side we do not document get_proxy_class but if it receives a Ruby string it basically just does a Class.forName
yfeldblum has quit [Ping timeout: 245 seconds]
skade has quit [Quit: Computer has gone to sleep.]
<byteit101> ok, yea i figured that out after several layers of abstraction
<byteit101> :)
<enebo> byteit101: It would be a starting point anyways. I see lots of consumers of that internally so perhaps we go sleuthing after you make a PR
<enebo> byteit101: My only other thought is that ‘org::bytedeco::javacpp::opencv_core… is valid
<enebo> byteit101: I don’t think we want to try every permutation
<byteit101> sub(/::/, "$") ?
<byteit101> that way only $ can be replaced ?
<enebo> byteit101: but do we do n tries?
<byteit101> tries?
<enebo> org$bytedeco$javacpp .. or org.bytecodeco$javacpp …
<byteit101> oh, no
<byteit101> not in the code I saw
<enebo> byteit101: I guess I am realizing :: and . create some ambiguity
<byteit101> oh
<byteit101> oh!
<enebo> but you can have innner classes in inner classes
<enebo> I guess it could try n times from the back
<enebo> forward references are ‘.’ initially and rear references are ‘$’
<enebo> Start with all ‘.’ then all but last ‘$’ then all but last two as ‘$'
<byteit101> yea, though I always though java_import was java-style syntax
<enebo> byteit101: well we could do that too
<enebo> byteit101: If it is a string we just punt and ‘::’ won’t work
<byteit101> hence I didn't realize what you were talking about with gsub("::",".")
<enebo> byteit101: If it is not possible then I guess we could then just throw an error
<enebo> byteit101: with a helpful message
<enebo> byteit101: I was thinking about it from the angle of it working anyways
<headius> enebo, subbu: Ok...it looks like super instructions all get a %block argument even if there isn't one
<enebo> byteit101: but with multiple tries this seems icky
<headius> that's causing it to full deopt
<byteit101> I did like the idea of making it slightly more consistent with :: => $ only
<byteit101> but I agree with your ick
<headius> maybe that check on CallBase should just go away?
<headius> we have other checks for closures in lexical scope
* subbu is busy with deploys. back later.
<enebo> headius: I don’t think we can remove it unless you know the method the super is in cannot have an implicit block
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<enebo> headius: A super can pass the block through…we could possibly not use block(0:0) and use an actual temp
<headius> hmm
<headius> but only zsuper does it without explicitly passing something, right?
<headius> or have I forgotten super's crazy semantics?
<headius> actually no, that still shouldn't matter for this because it's still not a block in this lexical scope
<enebo> headius: I was referring to the implicit nature of blocks overall. I guess in that sense we do pass it around internally
<headius> it's from some other scope
<enebo> headius: yeah so perhaps I am wrong. Maybe it can be eliminated. I am confused on %block’s role in analysis. I know for inlining it is important since we can have mutliple blocks in play in that scenario
<enebo> each one needs to be renamed and kept track of
<headius> this check basically just says if there's ANY block passed to a call, deopt
<headius> even if it's not a literal block
<headius> and supers all get a block param regardless of containing method
<headius> so....
<enebo> yeah so implicit block we just pass down to super anyways I think
<enebo> or to any call for that matter
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
<headius> I need to confirm that super behavior though
pietr0 has quit [Quit: pietr0]
<headius> ok, so implicit block does pass through
<headius> but that shouldn't affect this unless it's a literal block in the same scope
<headius> which we have other checks for...
postmodern has joined #jruby
<enebo> headius: btw I was wrestling with what I suspect was the same external behavior. ACP removed binding but the recv_closure was still there
<headius> yeah, recv_closure needs to DCE away
<enebo> headius: the %block is not just for execution (in fact it isn’t directly used)
<enebo> headius: like the inlining example we need to track blocks in case mutltiple are in play in the fully inlined method
<enebo> headius: in that case we cannot assume implicit block but we still need the instr for analysus
<headius> sure
<headius> that's all fine
<headius> but this check doesn't make sense as written, since it would wrongly flag foo(&block) as needing caller scope
<enebo> ACP has complicated things a little bit
<enebo> It needs a binding I think to store the block since block is alloc’d like a lvar
<enebo> I think it is alloc’d like that because a yield in a closure has visibility to it directly
<enebo> Hmm I don’t dare mention the name I want to because I don’t want to distract him during a deploy :)
pietr0 has joined #jruby
noop has quit [Ping timeout: 244 seconds]
<headius> well my naive fix got the scope and frame to go away, but then ended up with a NoVarDynamicScope error
<enebo> headius: you would need to make it not emit the recv_closure next
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:11205fa by Charles Oliver Nutter): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/39174228)
travis-ci has left #jruby [#jruby]
<enebo> headius: in debug output if you see it have (0:1) or syntax like that is refers to depth/offset which means binding
<enebo> So you probably see %block(0:0) = recv_closure as third instr of that method
<headius> yes, 0:0
<headius> if it's a literal closure, after linearization I should see WrappedIRClosure as the operand, right?
<headius> I need to change this logic to only deopt for literal blocks, not blocks passed in other ways like &block
<enebo> wrappedirclosure is for a lexical closure
<headius> right
<headius> that's the deopt case
<enebo> what is?
robbyoconnor has quit [Ping timeout: 265 seconds]
<enebo> we are talking about receiving a closure to the method
<enebo> so we we a live Block instance and store it into a variable of some kind
<enebo> oh shit…hahaha…Something was confusing me with -S ast —ir and I just realized what it is
<enebo> I am seeing every method print out as broken
<enebo> It is storing variables away but has no binding push
<headius> eh?
<enebo> but in prepareForInterpretation we add ACP in an if statement
<headius> hmmm
<enebo> So ast program does not know that and prints it out without that pass
zorak8 has joined #jruby
<enebo> not really related to what you are talking about but I cannot see what it is actually doing because AST no longer works correctly
<enebo> I guess I can run these and generate the output with debug on
<headius> I'm trying an instanceof check on the closure operand... if it's WrappedIRClosure I trigger deopt
<headius> but I'm worried about WrappedIRClosure getting loaded into an intermediate temp var
<enebo> for which instr?
<headius> in CallBase
<enebo> on the callsite site not the definition side
<nirvdrum> subbu: Today is rough. I'll give master a look tomorrow.
<headius> weird...ALMOST everything works, but I get two failures in rubyspec: Java::JavaLang::ClassCastException: org.jruby.RubyClass cannot be cast to org.jruby.runtime.Block
<headius> enebo: yes, call site side...it's the calls (supers) that are causing deopt unnecessarily
<headius> any call that passes a block arg through would deopt with the current code, though
<headius> not just supers
subbu has quit [Quit: Ex-Chat]
<enebo> jruby -X-C -Xdebug.parser=true -Xir.debug=true -e 'def foo(&b); 1; end; a = proc {}; foo &a'
johnmuhl_ has quit [Ping timeout: 244 seconds]
chrisseaton has quit [Ping timeout: 244 seconds]
<enebo> headius: I am not sure exactly I am following what you are trying to do but I will point this case &a will just contain an IRubyObject whereas a foo {} would contain a WrappedIRClosure
johnmuhl_ has joined #jruby
Scorchin has quit [Ping timeout: 244 seconds]
<headius> hmm
<enebo> (IRubyObject == variable accessed)
<headius> enebo: that cause would deopt for the proc {} call
<headius> &b block passing should never cause deopt
<enebo> well here let me show you something and perhaps we can change it
<headius> ok
subbu has joined #jruby
Scorchin has joined #jruby
chrisseaton has joined #jruby
<enebo> headius: The def for the foo above generates this:
<enebo> b(0:0) = recv_closure
<enebo> %block(0:1) = copy(b(0:0))
<headius> ok
<headius> none of that should cause deopt
<headius> but call(... %block) does
<headius> and should not
<enebo> headius: What I am wondering is whether load store pass is convering block to a temp
iamjarvo has joined #jruby
<headius> hmm
<enebo> %t_b_2 = recv_closure
<enebo> %t_%block_3 = copy(%t_b_2)
<enebo> yeah it does rename the block
<headius> enebo: def foo; bar(&b); end deopts
<headius> that's what I'm trying to fix, because it's affecting all supers since they implicitly pass block through
<enebo> yeah I see
<headius> but my patch causes two failures...weird ones, like it doesn't know where to load the block from anymore
<headius> I can show you what I have
guilleiguaran___ has quit [Ping timeout: 272 seconds]
<enebo> aktgiygg
<enebo> err although foo(&b) will just be a Variable operand and not a WrappedIRClosure
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/Pud9Kw
<JRubyGithub> jruby/master 8e91b8a Charles Oliver Nutter: Add monomorphic fail path for instance and class super.
<JRubyGithub> jruby/master 1ace488 Charles Oliver Nutter: Add indy binding/caching to instance supers.
JRubyGithub has left #jruby [#jruby]
<headius> enebo: that last commit adds indy dispatch to InstanceSuper
<enebo> headius: So perhaps you can reverse the test
<headius> enebo: right...the deopt needs to happen only if we're passing a literal closure
<enebo> If closure operand is not one then it is passed by variable and not literal
guilleiguaran___ has joined #jruby
<headius> do I have any guarantee a WrappedIRClosure won't be instantiated into a variable?
<enebo> headius: but you are talking about the method that callsite is in right?
<headius> yes...it shouldn't deopt
<enebo> headius: the parent method/scope is deopting
<enebo> headius: it is possible that callsite is not doing the deopt
<headius> it is
<headius> my patch removes the deopt
<headius> all it does is remove the unconditional closure != null check
<enebo> well it is possible something else is not deopting?
<enebo> you just removed one case which would make it deopt perhaps?
<headius> that's certainly possible...the case that fails is a yield that takes a block, I think
<headius> hmmm
<enebo> When I look at load store for this method I see https://gist.github.com/enebo/f7c90482aad06c1cd2cb
<headius> woah
<headius> hmm
<headius> enebo: right, and when I do it with my patch, it's all optimized like I expect
<enebo> so I guess saving the scope is perhaps the issue. I am trying to think why we would be worried about something picking up a binding
<enebo> but I think the store_lvar is probably the issue for binding even with your change
<headius> something still thinks it has a scope
<headius> perhaps
<enebo> So as a result of calling bar with a passed in variable-based (&b) closure do we really need to save those vars?
<subbu> i am done.
pietr0 has quit [Quit: pietr0]
<enebo> can something really get access from them or is this just being too conservative
<enebo> subbu: def foo(&b); bar(&b); end
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<headius> enebo: there's no need to deopt anything there, I'm 99% sure
<enebo> This is not all passes applied but it does not eliminate the scope
pietr0 has joined #jruby
<enebo> subbu: headius realized if it is a variable for closure and not a lexical one it should not deopt
<enebo> subbu: but I am guessing either load/stores make it deopt after he tries to make callbase smarter about closure argument
<enebo> subbu: Maybe related question we must be able to run ACP multiple times? Or does interp and JIT run it exactly once at the end?
<enebo> headius: 99%…I like those odds
<subbu> acp cannot run multiple time.
<enebo> …yet
<enebo> :)
<subbu> well, once you add a push/pop binding, you dont need to add it again.
<subbu> unless you want to remove all of those and rerun the pass .. not sure why you would want to.
<enebo> subbu: unless you apply a pass which removes the reason you added those instrs in the first place
<headius> I'm getting this behavior running threshold=0
<subbu> yup.
<enebo> subbu: I guess I don’t either since I was going to say inlining but that would be a new method
<headius> I feel like I'm not communicating something well
<subbu> makes sense.
<enebo> headius: Did my description sound right?
<headius> parsing
<headius> enebo: after my fix, it does not deopt...but a yield somewhere in a spec blows up trying to find its block
<headius> in the interpreter
<headius> hmm
<enebo> heh
<headius> shoot, I bet that's it
<enebo> headius: ok that is different
<headius> it's removing the scope but not doing local var load/store
<enebo> yield is using it implicitly
<enebo> in that case it cannot deopt
<headius> getting IR for the broken case
<enebo> since a lexical closure is trying to access it
<enebo> more importantly how can push_binding not exist if the scope has load/stores in it?
<enebo> Seems a little more primal to me
<headius> ok, both failures are the same thing
cprice_ has joined #jruby
cprice_ is now known as cprice404
<subbu> headius, enebo you probably already know this .. but when for scope foo in that example above, here is what I see: For scope:INSTANCE_METHOD foo[-e:0], escaped binding? true; require frame? true; require binding? true
<subbu> binding is reported as escaped.
<subbu> something in callbase perhaps?
<enebo> subbu: heh
<enebo> subbu: that was what Charlie changed
<subbu> ah, ok .. i should git up and also read your conversation then :)
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:2c54178 by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39175787)
travis-ci has left #jruby [#jruby]
<headius> subbu: the escaped flag appears to get cleared on first calculation and it isn't false
<headius> but require binding and require frame both have a chech like if (closure != null) deopt
<headius> check
<headius> that's not sufficient since block-pass args don't need to cause deopt
<headius> or rather, it's excessive
<subbu> ok. got it.
<subbu> makes sense. but, you are saying that the fix is breaking something else?
<enebo> headius: some of your returns say return true but do you actually modify the scope?
<enebo> headius: perhaps you just need to return false there
<headius> yeah the fix breaks a yield loading its block
<headius> something strange
<headius> look at my gist above, it shows the sole spec that fails spec:ruby:fast
<enebo> headius: true means scope got updated and needs to be recalculated
<headius> plus my patch against master
<headius> enebo: hmmm
<headius> the existing code just returns true, though
<headius> which returns do you mean?
<enebo> computeScopeFlags on CallBase
<enebo> I might not be looking at this right because I am staring at the diff
<enebo> headius: perhaps I am misreading the diff…Applying it might help
<headius> this will trigger the failure: spec/mspec/bin/mspec run -G "properly expands" spec/ruby/core/hash/each_spec.rb
<headius> Java::JavaLang::ClassCastException: org.jruby.RubyClass cannot be cast to org.jruby.runtime.Block
<headius> org.jruby.ir.runtime.IRRuntimeHelpers.yield(IRRuntimeHelpers.java:414)
<headius> getting IR now
purplefox has quit [Ping timeout: 240 seconds]
bbrowning is now known as bbrowning_away
<subbu> headius, cannot build with the patch
<subbu> java.lang.NoSuchMethodError: org.jruby.ir.runtime.IRRuntimeHelpers.classSuperSplatArgs(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/RubyModule;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;[Z)Lorg/jruby/runtime/builtin/IRubyObject;
<enebo> headius: run with -Xir.debug=true and watch the instr which explodes
<enebo> headius: I noticed that debug is still not printing for script bodies themselves but I bet it is not happening in JIT in a script body
<enebo> headius: oh well it is in interp it should print out fine then
<headius> added IR to gist
<headius> subbu: oops, let me fix that patch
subbu has quit [Quit: Ex-Chat]
<enebo> wow
<headius> hmm
subbu has joined #jruby
<enebo> recv_closure got nuked or the depth is wrong
<subbu> crappy wifi here ...
<subbu> java.lang.NoSuchMethodError: org.jruby.ir.runtime.IRRuntimeHelpers.classSuperSplatArgs(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/RubyModule;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;[Z)Lorg/jruby/runtime/builtin/IRubyObject;
<subbu> headius, i cannot build with the diff patch.
<enebo> subbu: I was thinking about debugging IR and it would be nice if we stored enums for reason why a flag was toggled
<enebo> subbu: possible even a full object
johnsonch is now known as johnsonch_afk
johnsonch_afk is now known as johnsonch
<headius> subbu: run with indy and that won't happen
<headius> but this affects interpreter anyway
<headius> I removed a method JVM6 needed
<subbu> ah, ok.
<enebo> subbu: we could print out pass and instr/oper or some other info so we know why some flag was marked
<headius> testing that this rebuilds and then I will update patch
johnsonch is now known as johnsonch_afk
<subbu> headius, ok .. i can copy that code outside the mspec harness and run it directly .. the failure is reproduced.
yopp has joined #jruby
skade has joined #jruby
|jemc| has joined #jruby
<chrisseaton> yopp: cast aside your preconceptions about C code, and think of it as a language like any other - an if statement in C is very much like one in Ruby
<chrisseaton> yopp: and we run it very much like we do Ruby
benlovell has joined #jruby
<yopp> so basically instead of AOT compilation, you will, uh, interprete C?
<headius> block(0:0)
<byteit101> enebo: so do you think I should add "::" -> "$" and make java_import with strings slightly more rubyish, or leave it $ only as a "I am importing this java reference into ruby, and that is how the jvm specifies it"
<headius> it should be at least two deep, right?
<chrisseaton> yopp: yeah, and if we are interpreting both C and Ruby, we can interpret them together, and the division between Ruby and C becomes irrelevant
<byteit101> enebo: https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby only talks about non-string version of java_import
<headius> wait no...just one
<yopp> crazy :D
<yopp> chrisseaton, but sound veeeeery niiiiice
<yopp> •sounds
<headius> I bet receive_closure logic is not getting fixed when we optimize leaf scope away
<headius> oh, but if scope goes away, it *should* be at depth zero
<enebo> byteit101: I think it should be documented as saying this is Java calling format but we can probably look for ‘::’ in code and generate a better error message since I don’t think that is allowable in classname
<yopp> because having backtrace to C code is sounds a-w-e-s-o-m-e
<byteit101> ok
<chrisseaton> yopp: yeah - we've had that idea - both C extension and Ruby code in one unified backtrace
<subbu> headius, enebo https://gist.github.com/subbuss/410389b8a4b4be1dce1d is the reduced code.
<chrisseaton> yopp: maybe with all the local variables from both languages shown as well
<yopp> chrisseaton, but what about platform specific stuff? If we have shitty driver, with platform-specific intstructions, then what?
<headius> yopp: plus performance and allocation profiling, step debugging through C code...
<enebo> headius: yeah either depth is wrong it should be (1:0) or something removed a recv_closure from the block
<yopp> headius, yeayeayea!
<headius> pretty exciting stuff
<chrisseaton> yopp: it's unlikely to work for all code - but it can also call compiled native code if you have it - so you can call into your database driver or your Qt library, or your Win32 API or whatever
<enebo> I am confused about this error case I thought the optimization only worked if not a lexical closure
<|jemc|> chrisseaton: so you would parse c calls to code you don't have source for as FFI calls?
<headius> optimize dynamic scope pass removes dynscope from closure if it's a leaf
<chrisseaton> |jemc|: yeah, and the FFI is very fast as the JIT knows about C calls
<headius> and then fixes up scope load/store to have depth - 1
<enebo> headius: yeah fixes the depth
<chrisseaton> FFI is a great use case - no wrapper or configuration layer - write a line of inline C to include the header and make the call
purplefox has joined #jruby
<|jemc|> chrisseaton: attractive indeed
benlovell has quit [Ping timeout: 265 seconds]
<headius> hmmm
<chrisseaton> |jemc| yopp will you be at RubyConf?
<headius> enebo: I'll try to get the IR for the surrounding body
<headius> there's so much dumped out
<yopp> nope, I don't have US visa :|
<|jemc|> chrisseaton: nope, unfortunately I can't get away
Aethenelle has joined #jruby
<|jemc|> but I'll be sure to follow your progress :)
<chrisseaton> ah right - we'll I'll try to get around to some more EU conferences and show it off
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/QK3R7Q
<JRubyGithub> jruby/master 5e7fd54 Subramanya Sastry: Suppress verbose output in interpreter loop
JRubyGithub has left #jruby [#jruby]
<Aethenelle> chrisseaton: waiting for a plane right now... saw your blog post about C ext on truffle/jruby... have you tried running cFFI under that implementation?
<headius> enebo: I think that's it...surrounding scope does not have a recv_closure here
<enebo> haha
<headius> so never allocates slot for the block and it's getting used for something else
<enebo> laughing at subbu not like that extra output :)
<chrisseaton> Aethenelle: no I haven't - we didn't evaluate the FFI either - maybe we should do
<yopp> chrisseaton, ping me when you will ge to EU :) I'd like to meet with you
<chrisseaton> Aethenelle: are there any major gems using FFI?
calavera has joined #jruby
<headius> 0mq bindings
<headius> that's one I know is in active use
<Aethenelle> chrisseaton: I don't know off hand... most that I knew of switched to native Java for jruby support... I know I use it at work whenever I have to deal with a native lib but that's because I'm usually writing throwaway code.
<headius> Aethenelle: hate to ask about this, but what's the status of prepend PR now?
<headius> we have about two weeks before preview
<|jemc|> headius; chrisseaton: 0mq bindings are actually my use case :)
<headius> nice
<chrisseaton> I'll take a look at them
<chrisseaton> headius: will there be a freeze at some point?
<|jemc|> although I may end up moving to the czmq bindings instead
<enebo> subbu: You realize this works if you replace Class.new with HashDB < Hash?
<enebo> subbu: I just made up a class name
<Aethenelle> headius: what's wrong w/ asking about it? It needs some more work... I'll push the current work (i had to start w/ a fresh branch)... I'm dealing w/ a inf look in unresolved/instanceSuper right now but it shouldn't be too bad to fix from here...
<headius> chrisseaton: probably talk about that after rubyconf, but e.g. truffle stuff that won't be done anyway doesn't have to freeze
<headius> Aethenelle: ok...I have a better understanding of the super instructions now that JIT is "done" so once you update I'll try to help
pietr0 has quit [Quit: pietr0]
mister_solo has quit [Ping timeout: 265 seconds]
<Aethenelle> headius: I think one of the recent pushes also broke some of my already working impl (probably a bad rebase) but I'll circle back to that once I get the right one working...
<headius> hmmm ok
<headius> JIT was pretty fluxxy for a few weeks
<enebo> byteit101: thanks
<Aethenelle> I've got a 4hr flight coming up in a bit so I'll be able to concentrate on it pretty well for a while...
<enebo> headius: take a gander at #2075 and see if there is a problem not allowing :: into java_import ‘im_a_string’
<headius> enebo: ok
<headius> I'm kinda stuck on this IR thing
<subbu> headius, enebo so, this is the problem there ...
<headius> master should work fine but if we can fix this a bunch more methods will eliminate scope/frame
<subbu> the surrounding scope 'each' receves a block implicilty.
<Aethenelle> yeah... the IR stuff seems to have caused a regression in my super handling... one sec and I'll push the new code...
tcrawley is now known as tcrawley-away
<subbu> the super passes it along implicitly as well.
|jemc| has left #jruby ["WeeChat 1.0.1"]
<subbu> so, unresolved super shoudl also force a binding push.
<headius> byteit101: do you have an example that caused this?
<headius> java_import "java::lang::System" or something?
<headius> enebo: I see no problem with it...just curious why this is necessary
<enebo> headius: he had an issue with an inner class not working and wanted to use $
<headius> perhaps because Class#name for a Java class returns the :: version
<headius> ohh
<enebo> headius: so then we decided to make :: convert to $
<Aethenelle> have you looked at findImplementation ? it's a bit of wonky code that is sensitive to frame changes.
<enebo> headius: but then that is ambiguous
<headius> so like if you do MyClass::MyInner in java_import
<enebo> headius: and would lead to potentially n Class.forName tries
<headius> right, I see
<enebo> headius: but the fact is we expect a Class.forName valid String in java_import when it is a string
<headius> error is better than 2*n combinations of :: to $
<headius> yeah maybe generalize this to only allow . and valid Java identifier characters
<headius> as on java.lang.Character
<byteit101> can do
<enebo> headius: well I am not sure we can package namespace past one nesting so n-1 combos max
<subbu> there is nothing that pass along blocks implicitly besides unresolved super, i think.
<subbu> so, with that fix, you should get this going again.
subbu has quit [Quit: Ex-Chat]
<enebo> NOOOOESSS
<enebo> subbu come back :)
<headius> I think that was the tech equivalent of a microphone drop
<enebo> I want to blow his mind
<headius> it should work now. BOOM, I'M OUT!
<enebo> talking to him on IM but I think he is going home since wifi there sucks
<headius> ok, so I can certainly make unresolved trigger binding
<headius> I already have it triggering frame
<enebo> That works
<headius> if that fixes this, awesome
<enebo> headius: yeah no more Class.new ever :)
lanceball is now known as lance|afk
<enebo> headius: but I find it interesting that a hard class scope prevents the bug
<headius> enebo: I couldn't get it to fail at command line either...somethign weird about how mspec is running that code or something
<enebo> headius: oh I can get subbu’s repro to fail
<headius> let me try subbu's suggestion and see if it works
<enebo> Run that snippet
<enebo> It should fail
<enebo> but then run mine and it passes
elia has joined #jruby
<enebo> Only difference is the extra closure
<headius> hmm
<enebo> which is interesting no?
<headius> ok yeah
<headius> !m
<headius> oop
subbu has joined #jruby
<headius> yeah something about it being in a Class.new block confuses things
<headius> oh!
<headius> Class.new do probably makes all the supers in there become Unresolved
iamjarvo has joined #jruby
<headius> otherwise they're resolved and work fine because they aren't going to scope for the block
<enebo> headius: well it is definitely unresolvable
<headius> right, that's the difference
<subbu> headius, enebo i am about to head home so i dont keep dropping off the internet every 15 odd mins.
<headius> and subbu's suggestion works
<subbu> but, i pasted some stuff above. let me repaste since it may not have come through.
<headius> subbu: adding binding to UnresolvedSuper fixes the error
<subbu> ah, or maybe you got it.
<subbu> alright, heading home. back online in 15 again.
<headius> I don't think it should need to get block from binding in this case, though
<headius> we can fix that later though
<headius> unresolved doesn't affect most common supers
<headius> Aethenelle: ok
<headius> Aethenelle: so this will fail, yes?
<Aethenelle> yes, test_prepend fails w/ a stask overflow all other MRI tests pass so far (for some weird reason)
<Aethenelle> *module tests that is...
<headius> ok
<headius> enebo: I'll run tests and push this if it's good
<headius> resolved super calls are 4x faster than 1.7 in a simple test
<headius> they optimize like any call now
<enebo> headius: I would expect them to behave like a call
<enebo> hah yeah
<headius> yeah
<headius> inlining, arity-fixing, all good
<Aethenelle> rubyspec has two failures in module tests. Module#prepend throws a NoMethodError when there is no more superclass and Module#prepend prepends multiple modules in the right order
<headius> one of these things will turn out to be our perf dark matter
<enebo> DARK MATTER
yfeldblum has joined #jruby
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:2c54178 by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39175787)
purplefox has quit [Ping timeout: 250 seconds]
<Aethenelle> one of the rubyspec problems is equivalance testing iirc.
subbu has quit [Ping timeout: 255 seconds]
Aethenelle has quit [Quit: Aethenelle]
zorak8 has quit [Ping timeout: 258 seconds]
thsig has joined #jruby
thsig_ has quit [Ping timeout: 245 seconds]
Fofrik has quit [Quit: Connection closed for inactivity]
zorak8 has joined #jruby
Aethenelle has joined #jruby
<headius> Aethenelle: how so?
<Aethenelle> lemme check the backlog real fast
<Aethenelle> ahh... one sec...
<Aethenelle> Module#prepend prepends multiple modules in the right order FAILED
<Aethenelle> Expected [:c, :m1]
<Aethenelle> to equal [:c, :m2, :m1]
<Aethenelle> .... nvm....
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Aethenelle> i already fixed some of that in test_prepemd_module_ancestors in the MRI test suite yesterday
subbu has joined #jruby
<Aethenelle> too much code w/out enough sleep...
<byteit101> enebo: I have a one liner to do the trick, though its rather long line. How long should I make the lines?
johnsonch_afk is now known as johnsonch
Aethenelle has quit [Client Quit]
<enebo> byteit101: I don’t know if we ever came up with a guideline on ruby side so we are probably more closer to 80 columns
<enebo> byteit101: but for Java we are 110
<byteit101> I'll wrap this then :) 249
<enebo> byteit101: no doubt multiiple variables will make it easier to read as well :)
oblutak has left #jruby [#jruby]
<byteit101> yea, I'll submit this later as I have to run now
colinsurprenant has quit [Quit: colinsurprenant]
havenwood has quit [Remote host closed the connection]
colinsurprenant has joined #jruby
mister_solo has joined #jruby
colinsurprenant has quit [Client Quit]
havenwood has joined #jruby
elia has quit [Ping timeout: 272 seconds]
elia has joined #jruby
Aethenelle has joined #jruby
<Aethenelle> cool... I can still reach the airport wifi from the plane while we're boarding...
elia has quit [Read error: Connection reset by peer]
elia has joined #jruby
<Aethenelle> byteit101: if it's the kind of one liner I tend to write, you should probably use do ... end if possible instead of {}...
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/BKnoIg
<JRubyGithub> jruby/master cd6c331 Charles Oliver Nutter: Indy binding for class super plus opto for scopes around super....
JRubyGithub has left #jruby [#jruby]
<headius> enebo, subbu: it's in
johnsonch is now known as johnsonch_afk
<enebo> headius: coolio
<headius> resolved supers won't deopt and will bind directly now
<headius> check that one off the JIT to-do list
elia has quit [Read error: Connection reset by peer]
<enebo> headius: no doubt this will help rails quite a bit
<subbu> k
<headius> I think I might try to do simple arity-splitting for small optional arg lists
<enebo> headius: they have pretty long super chains and I think most are resolvable
<headius> if they're resolvable that will be great
<headius> oops
elia has joined #jruby
<headius> compile error :-(
mister_solo has quit [Ping timeout: 260 seconds]
viking has quit [Remote host closed the connection]
<enebo> FIX IT
<headius> I guess
benlovell has joined #jruby
<headius> fixed
<headius> I was going to make this refactoring anyway
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/wcQvbA
<JRubyGithub> jruby/master a0a91cf Charles Oliver Nutter: Bifurcate super call sites.
JRubyGithub has left #jruby [#jruby]
<enebo> yay
<headius> funny thing, structuring my indy logic using OO is better than doing all as a bunch of procedures and structs
pietr0 has joined #jruby
<enebo> yay
<headius> all call sites share 90% of their indy logic now
_elia has joined #jruby
<headius> I shall remain sane as a result
Aethenelle has quit [Quit: Aethenelle]
elia has quit [Ping timeout: 250 seconds]
benlovell has quit [Ping timeout: 255 seconds]
<headius> wow
<headius> either I'm doing something wrong, or red/black warms up faster and executes faster on master
<headius> it's at least on par, which is fantastic considering the JIT is so young
<headius> exciting times
elia has joined #jruby
_elia has quit [Ping timeout: 265 seconds]
_elia has joined #jruby
elia has quit [Ping timeout: 258 seconds]
e_dub has quit [Quit: ZZZzzz…]
<lopex> numbers!
<subbu> headius, not true for me on java 7
elia has joined #jruby
_elia has quit [Read error: Connection reset by peer]
thsig has quit [Remote host closed the connection]
elia has quit [Ping timeout: 245 seconds]
elia has joined #jruby
zorak8 has quit [Ping timeout: 265 seconds]
nirvdrum has quit [Ping timeout: 265 seconds]
<imperator> so, truffle gonna make it into jruby?
<lopex> it already has
<enebo> imperator: It is already in JRuby as a backend
<imperator> oh? cool
thsig has joined #jruby
iamjarvo has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
mister_solo has joined #jruby
<chrisseaton> imperator: don't get too excited - you won't be able to use it for anything real for a while
<enebo> chrisseaton: no shit…implement param of rand :)
<enebo> chrisseaton: I kid but I was just trying to invoke bench/bench_red_black.rb
<enebo> param 1 of rand
<chrisseaton> I'll add red/black and see how it goes
<chrisseaton> which one are you using?
<enebo> bench/bench_red_black.rb in our repo
elia has quit [Ping timeout: 256 seconds]
<enebo> chrisseaton: It will be exciting when you guys can run some of these scripts without mods. I will try and do comparisons when I can and give feedback if something is bad (or good)
_elia has joined #jruby
<chrisseaton> for every new benchmark there's always some new slight variation of a core library method we need - I wouldn't say we need mods though - we modify Truffle, not the benchmarks
<enebo> chrisseaton: oh I am remembering back I thought to when you did change some things to for loops?
mister_solo has quit [Ping timeout: 256 seconds]
thsig has quit [Ping timeout: 245 seconds]
<chrisseaton> don't think so - must have been something else
<enebo> ok
<chrisseaton> but what I should get running is the benchmark gem
<chrisseaton> library, not gem
<enebo> chrisseaton: yeah can you load gems yet?
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:75c938b by Benoit Daloze): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39176743)
travis-ci has left #jruby [#jruby]
<chrisseaton> nope
<chrisseaton> i've never really looked into it
marr has quit [Ping timeout: 265 seconds]
<chrisseaton> I did some fancy stuff for C extensions, to automatically execute extconf.rb and work out what C files and flags are needed for a gem
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo> chrisseaton: One step at a time but you will not get many outside users playing if you cannot run rake and rubygems
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<enebo> chrisseaton: I would argue probably rspec as well since most people will switch to truffle build and run specs on their project
_elia has quit [Quit: Computer has gone to sleep.]
<chrisseaton> we might set a goal on sinatra - and do everything needed to run that
<enebo> err and Bundler :)
<chrisseaton> Sinatra is a lot simpler than Rails, right?
elia has joined #jruby
<enebo> chrisseaton: yeah
zorak8 has joined #jruby
locks_ is now known as locks
<chrisseaton> now we have eregon on the team we're making faster progress (I'm still part time)
zeroecco has joined #jruby
iamjarvo has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to truffle-head: http://git.io/kIuUtw
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/truffle-head 97f8152 Chris Seaton: Merge branch 'master' into truffle-head
e_dub has joined #jruby
thsig has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
travis-ci has joined #jruby
travis-ci has left #jruby [#jruby]
<travis-ci> jruby/jruby (master:6f416d8 by Benoit Daloze): The build has errored. (http://travis-ci.org/jruby/jruby/builds/39178931)
colinsurprenant has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
bbrowning has joined #jruby
pietr0 has quit [Quit: pietr0]
enebo has quit [Quit: enebo]
bbrowning_away has quit [Ping timeout: 265 seconds]
<subbu> chrisseaton, where is the ruby code for the psd and chunky<something> benchmarks? i want to see what IR is doing on them.
marr has joined #jruby
imperator has quit [Quit: Valete!]
benlovell has joined #jruby