hobodave has quit [Quit: Computer has gone to sleep.]
mdedetrich has joined #jruby
bb010g has joined #jruby
bb010g has joined #jruby
bb010g has quit [Changing host]
n00bdev has joined #jruby
<n00bdev> does processing 3.0.1 work with 9.0.4.0 only or 9.0.3.0 works also?
skade has quit [Quit: Computer has gone to sleep.]
<n00bdev> where do i get the sketchbook path?
tcrawley is now known as tcrawley-away
Aethenelle has quit [Quit: Aethenelle]
tjohnson has quit [Quit: Connection closed for inactivity]
lopex has quit [Ping timeout: 240 seconds]
lopex has joined #jruby
robbyoconnor has quit [Ping timeout: 256 seconds]
bjfish2 has quit [Quit: bjfish2]
AntKnee has quit [Quit: Connection closed for inactivity]
camlow325 has quit [Ping timeout: 256 seconds]
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bb010g has quit [Quit: Connection closed for inactivity]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 255 seconds]
_whitelogger has joined #jruby
nateberkopec has quit [Quit: Leaving...]
mdedetrich has joined #jruby
n00bdev has quit [Remote host closed the connection]
nateberkopec has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
nateberkopec has quit [Ping timeout: 240 seconds]
nateberkopec has joined #jruby
nateberkopec has quit [Ping timeout: 240 seconds]
kares has joined #jruby
yfeldblum has quit [Ping timeout: 260 seconds]
guilleiguaran__ has quit [Ping timeout: 240 seconds]
skade has joined #jruby
guilleiguaran__ has joined #jruby
rsim has joined #jruby
robbyoconnor has joined #jruby
nateberkopec has joined #jruby
camlow325 has joined #jruby
camlow325 has quit [Client Quit]
nateberkopec has quit [Ping timeout: 256 seconds]
yfeldblum has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
rsim has quit [Ping timeout: 240 seconds]
skade has quit [Quit: Computer has gone to sleep.]
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nateberkopec has joined #jruby
nateberkopec has quit [Client Quit]
n00bdev has joined #jruby
<GitHub69> [jruby-openssl] kares pushed 1 new commit to master: http://git.io/v0SZ0
<GitHub69> jruby-openssl/master 5a1575a kares: disable backtrace generation for wait non-block errors (use an empty array)...
skade has joined #jruby
blinsay_ has quit [Remote host closed the connection]
skade has quit [Ping timeout: 240 seconds]
n00bdev has quit []
<travis-ci> jruby/jruby-openssl (master:5a1575a by kares): The build is still failing. (https://travis-ci.org/jruby/jruby-openssl/builds/97387757)
kstuart has joined #jruby
yfeldblum has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby
yfeldblum has quit [Ping timeout: 260 seconds]
donV has joined #jruby
pawnbox has joined #jruby
skade has joined #jruby
blaxter has joined #jruby
brauliobo has joined #jruby
sdogruyol has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
blaxter has quit [Ping timeout: 255 seconds]
Scorchin has quit [Ping timeout: 255 seconds]
brauliobo_ has joined #jruby
brauliobo has quit [Ping timeout: 255 seconds]
guilleiguaran__ has quit [Ping timeout: 240 seconds]
Scorchin has joined #jruby
fidothe has quit [Ping timeout: 260 seconds]
fidothe has joined #jruby
Scorchin has quit [Ping timeout: 255 seconds]
blaxter has joined #jruby
Scorchin has joined #jruby
guilleiguaran__ has joined #jruby
fidothe has quit [Ping timeout: 255 seconds]
Scorchin has quit [Ping timeout: 240 seconds]
fidothe has joined #jruby
knowtheory has quit [Ping timeout: 255 seconds]
Scorchin has joined #jruby
fidothe has quit [Ping timeout: 255 seconds]
aemadrid has quit [Ping timeout: 255 seconds]
pawnbox has joined #jruby
bruceadams has quit [Ping timeout: 255 seconds]
Scorchin has quit [Ping timeout: 260 seconds]
guilleiguaran__ has quit [Ping timeout: 260 seconds]
andrewvc has quit [Ping timeout: 250 seconds]
flavorjones has quit [Ping timeout: 250 seconds]
pawnbox_ has joined #jruby
pawnbox has quit [Read error: No route to host]
vtunka has joined #jruby
pawnbox_ has quit [Remote host closed the connection]
pawnbox has joined #jruby
yfeldblum has joined #jruby
pawnbox has quit [Ping timeout: 246 seconds]
Scorchin has joined #jruby
flavorjones has joined #jruby
bruceadams has joined #jruby
knowtheory has joined #jruby
fidothe has joined #jruby
kith has joined #jruby
andrewvc has joined #jruby
kith_ has quit [Ping timeout: 250 seconds]
aemadrid has joined #jruby
guilleiguaran__ has joined #jruby
drbobbeaty has joined #jruby
sdogruyol has quit [Remote host closed the connection]
mdedetrich has joined #jruby
brauliobo has joined #jruby
brauliobo_ has quit [Ping timeout: 256 seconds]
kstuart has quit [Quit: WeeChat 1.3]
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mdedetrich has quit [Quit: Textual IRC Client: www.textualapp.com]
yfeldblum has quit [Ping timeout: 265 seconds]
yfeldblu_ has joined #jruby
donV has quit [Read error: No route to host]
donV has joined #jruby
sdogruyol has joined #jruby
sdogruyol has quit [Ping timeout: 246 seconds]
skade has quit [Quit: Computer has gone to sleep.]
brauliobo has quit [Read error: Connection reset by peer]
brauliobo has joined #jruby
bbrowning_away is now known as bbrowning
vtunka has quit [Quit: Leaving]
yfeldblu_ has quit [Remote host closed the connection]
yfeldblum has joined #jruby
brauliobo has quit [Read error: Connection reset by peer]
brauliobo has joined #jruby
guilleiguaran__ has quit [Ping timeout: 240 seconds]
pitr-ch has joined #jruby
shellac has joined #jruby
<GitHub89> [jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/v09Kv
<GitHub89> jruby/truffle-head 7e10607 Chris Seaton: [Truffle] Update version.
knowtheory has quit [Ping timeout: 255 seconds]
bbrowning is now known as bbrowning_away
sdogruyol has joined #jruby
bruceadams has quit [Ping timeout: 240 seconds]
aemadrid has quit [Ping timeout: 260 seconds]
fidothe has quit [Ping timeout: 240 seconds]
Scorchin has quit [Ping timeout: 246 seconds]
andrewvc has quit [Ping timeout: 260 seconds]
flavorjones has quit [Ping timeout: 260 seconds]
drbobbeaty has joined #jruby
andrewvc has joined #jruby
flavorjones has joined #jruby
aemadrid has joined #jruby
skade has joined #jruby
<travis-ci> jruby/jruby (truffle-head:7e10607 by Chris Seaton): The build was broken. (https://travis-ci.org/jruby/jruby/builds/97428246)
fidothe has joined #jruby
sdogruyol has left #jruby ["Leaving..."]
aemadrid has quit [Ping timeout: 240 seconds]
andrewvc has quit [Ping timeout: 240 seconds]
kstuart has joined #jruby
flavorjones has quit [Ping timeout: 255 seconds]
<GitHub60> [jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/v09yC
<GitHub60> jruby/truffle-head 4489a0a Chris Seaton: [Truffle] Temporarily ignore new TCK tests.
knowtheory has joined #jruby
aemadrid has joined #jruby
vtunka has joined #jruby
aemadrid has quit [Read error: Connection reset by peer]
knowtheory has quit [Ping timeout: 240 seconds]
fidothe has quit [Ping timeout: 240 seconds]
andrewvc has joined #jruby
flavorjones has joined #jruby
aemadrid has joined #jruby
knowtheory has joined #jruby
balo has quit [Remote host closed the connection]
lance|afk is now known as lanceball
fidothe has joined #jruby
Scorchin has joined #jruby
<travis-ci> jruby/jruby (truffle-head:4489a0a by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/97432404)
yfeldblum has quit [Ping timeout: 260 seconds]
<headius> subbu: running into some args problems in full interp that are not related to my stuff
bruceadams has joined #jruby
balo has joined #jruby
guilleiguaran__ has joined #jruby
<headius> lambda preamble stuff seems to be missing...missing arity checking, too much unboxing
blaxter has quit [Quit: foo]
<headius> woah
<headius> "git checkout -" switches to the last branch you were on, like "cd -" switches to last dir
<GitHub29> [jruby] headius pushed 9 new commits to master: http://git.io/v0HJR
<GitHub29> jruby/master 9d4d585 Charles Oliver Nutter: Disable full build and JIT when threshold < 0.
<GitHub29> jruby/master 1a8b8d0 Charles Oliver Nutter: Save and restore visibility from binding's frame.
<GitHub29> jruby/master 5b15e64 Charles Oliver Nutter: Fix order of UpdateBlock and PushBlockBinding.
fidothe has quit []
fidothe has joined #jruby
Scorchin has quit []
Scorchin has joined #jruby
aemadrid has quit []
aemadrid has joined #jruby
rsim has joined #jruby
guilleiguaran__ has quit []
guilleiguaran__ has joined #jruby
knowtheory has quit []
knowtheory has joined #jruby
bruceadams has quit []
bruceadams has joined #jruby
flavorjones has quit []
flavorjones has joined #jruby
knowtheory_ has joined #jruby
bruceadams_ has joined #jruby
flavorjones_ has joined #jruby
arturaz has joined #jruby
andrewvc has quit []
andrewvc has joined #jruby
arturaz has quit [Ping timeout: 240 seconds]
andrewvc_ has joined #jruby
andrewvc has quit [Client Quit]
andrewvc_ is now known as andrewvc
bbrowning_away is now known as bbrowning
arturaz has joined #jruby
andrewvc_ has joined #jruby
<travis-ci> jruby/jruby (master:a3a8783 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/97441148)
arturaz has quit [Ping timeout: 272 seconds]
tcrawley-away is now known as tcrawley
Aethenelle has joined #jruby
Aethenelle has quit [Read error: Connection reset by peer]
Aethenelle has joined #jruby
Aethenelle has quit [Client Quit]
Aethenelle has joined #jruby
lanceball is now known as lance|afk
skade has quit [Quit: Computer has gone to sleep.]
donV has quit [Quit: donV]
skade has joined #jruby
nateberkopec has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
pawnbox has joined #jruby
andrewvc_ has quit []
bruceadams_ has quit []
knowtheory_ has quit []
flavorjones_ has quit []
<travis-ci> kares/jruby (master:8547ad3 by kares): The build has errored. (https://travis-ci.org/kares/jruby/builds/97454808)
vtunka has quit [Quit: Leaving]
donV has joined #jruby
Aethenelle has quit [Read error: Connection reset by peer]
brauliobo has quit [Read error: No route to host]
brauliobo has joined #jruby
thedarkone2 has joined #jruby
<subbu> headius, good morning.
<subbu> just logging in and saw your email.
lance|afk is now known as lanceball
<subbu> perhaps, the best thing is to turn off block acp on master till we fix these other issues. i think i got fooled about tests passing because of how they run.
<subbu> anyway, ping me when you are here and we can chat more.
<headius> subbu: hi there
<headius> I'm around
<headius> I can do that...I'm going to temporarily add a property so we can continue to work on it without rebuilding to go back and forth
<subbu> yes, thanks ... and can you also push all your fixes too?
<subbu> so, reg. lambda .. what is the problem you see with passing info via ThreadContext?
e_dub has quit [Quit: Leaving]
<headius> all my fixes are pushed now
<headius> subbu: well there may not be a problem if it can do the lambda args logic properly
<headius> but right now it doesn't do the lambda args logic *before* yieldDirect, and then it resets the type to normal so it can't do it inside the IR either
<headius> so one or the other has to change
<subbu> okay .. i think this was meant to happen in the prepareArgs logic .. so, obviously something is broken then.
<headius> simple difference to follow...if you don't yieldDirect, it goes through doYield and possibly doYieldLambda before it gets to commonYield
<headius> where the direct path goes straight in after resetting block type
<subbu> but, does it not hit the prepareArgs logic in one of the *BlockArg* instruction?
vtunka has joined #jruby
<subbu> nice .. you fixed a bunch of things and a race condition as well. :)
e_dub has joined #jruby
skade has joined #jruby
<headius> it hits prepareArgs but that checks block type
<headius> and by then it has been changed
<headius> or at least that's the current theory
<GitHub180> [jruby] eregon closed issue #3544: [Truffle] Symbol to_proc issue http://git.io/v0M9f
<GitHub132> [jruby] eregon pushed 3 new commits to master: http://git.io/v0QO7
<GitHub132> jruby/master 5525b4f Benoit Daloze: [Truffle] Hash#map should yield a single elemet: a [key, value] pair....
<GitHub132> jruby/master f73f4bb Benoit Daloze: [Truffle] Simpler way to get the number of bits of int/long.
<GitHub132> jruby/master 9a260de Benoit Daloze: [Truffle] Also use the yieldPair helper in Hash#each.
edub has joined #jruby
<subbu> hmm ... ok. let me look at the test case you provided.
vtunka has quit [Read error: Connection reset by peer]
<headius> at least for the jit it would not be hard to pass the type all the way through rather than tracking it in the Block or in TC, because I'm already passing it
skade has quit [Read error: Connection reset by peer]
<headius> I had to add it to a few signatures already to get the tiering to transfer properly
skade has joined #jruby
nirvdrum has joined #jruby
<subbu> the canCallDirect() is a nice fix. I didn't like the old version I had.
<headius> yeah, a bit of general cleanup
skade has quit [Ping timeout: 246 seconds]
<subbu> headius, i think i know what isgoing on ..
<subbu> i am assuming that lambdas are always called, not yielded to.
<subbu> but, that is not the right assumption.
<subbu> if you see yieldDirect sets block type to NORMAL always.
<headius> that fits what I'm seeing
<headius> a lambda can be unproc'ed and yielded to, as in this case
<headius> and so it loses lambda type
<headius> but still needs to act like a lambda
<subbu> so, i am missing some ruby semantics here.
bjfish2 has joined #jruby
brauliobo has quit [Read error: No route to host]
<subbu> So in: (1..10).each_slice(3, &lambda {|a, *| ary << a})
<headius> yeah
<subbu> it is always a lambda, but the & converts it into a proc .. but it always behaves like a lambda?
<headius> yeah
<subbu> what happens to breaks and non-local returns inside that?
skade has joined #jruby
<subbu> are we handling it correctly?
<headius> good question :-)
<headius> I wouldn't expect that to change from lambda semantics
<headius> but I'm not sure
<headius> it would be really weird
shellac has quit [Quit: Ex-Chat]
<subbu> but, it is happening here with args.
nirvdrum has quit [Remote host closed the connection]
<subbu> so, either it behaves like a lambda in all scenarios or not in all scenarios.
brauliobo has joined #jruby
<headius> well that's the thing, I think it is supposed to behave like lambda here too
<headius> it's supposed to pass [1,2,3] for a, not destructure it like it would for a normal block
<subbu> right.
<headius> that logic happens in doYieldLambda
<subbu> so, my qn. is where is that information available.
<headius> normally
<subbu> that this is a lambda.
<subbu> not a normal proc.
<headius> hmm
<subbu> in general .. where is the information available about whether the block we are entering is a lambda or not?
<headius> well once it turns into a lambda, perhaps Block.type?
<headius> but args processing still goes to ThreadContext
<headius> which we reset
<headius> ahh
<headius> so there's two types in flight?
<subbu> anyway, i guess my qn. is: context.setCurrentBlockType(Block.Type.NORMAL); .. unconditionally is broken.
<headius> Block.type should remain lambda in this case
<headius> subbu: I think it is
<headius> because before that point it's LAMBDA
<headius> hmm
<headius> actually I don't know
<headius> it it might be pro
<subbu> ok .. so, the qn. is it even necessary to set that field on thread context.
<headius> proc
<headius> hmm
<subbu> since block is being passed everywhere now.
<subbu> why is block.type not sufficient?
<headius> it may not be
<headius> necessary
<headius> but prepareArgs checks both
<subbu> right.
<headius> if context type == PROC and block type == LAMBDA, do the lambda args logic
<subbu> if block.type has all the info we need, then, we are set.
<headius> I guess I don't remember
<subbu> this has always been confusing to me :)
<headius> me too
<headius> as we have it now there's sort of a "called as" type and a "defined as" type
<subbu> so, i thought block.type didn't have all the info and passedin that extra field .. but now we determine that it is broken anyway.
vtunka has joined #jruby
<headius> originally we didn't propagate Block all the way through
<subbu> so, maybe try using block.type in prepareArgs instead of the thread contex tinfo?
<headius> into BlockBody
<headius> yeah ok, I can try that
<subbu> the qn. is if it will break something else ..i guess we'll know :)
<headius> I suspect context is not necessary anymore because the non-direct path never uses it
<headius> or at least it doesn't seem to
<headius> it has its own args logic and knows the actual block type
<subbu> headius, hold on .. so one more thing besides lambda .. and these are proc.calls()
<subbu> proc.call() and block.yield() behave different wrt arg processing, don't they?
temporal_ has joined #jruby
<headius> they behave differently on the call side
<headius> but I think the args are handled as the natural type of the block
<headius> so a normal block that's turned into a proc still would decompose those args above
<headius> if it turns into a lambda, both do lambda
<headius> I'm hoping here :-)
<subbu> ok .. so, i think the thread context field is still needed to determine whether we came via proc. or a block.
<subbu> lambda is unconditionally the block.type info
<headius> prepareBlockArgsInternal was created for the IR prepare args yes?
<headius> which only happens in the direct case?
<subbu> yes
<headius> so really the context type is "called as" and perhaps should be a new enum of CALL and YIELD
<subbu> sure.
<headius> and call type + block type tells us everything
<headius> but we'll cross that bridge if necessary
<subbu> think so.
temporalfox has quit [Ping timeout: 265 seconds]
<headius> for now I'm removing the isProc check in prepareArgs
<headius> so if it's a lambda it just does lambda, regardless of how it was called
<headius> ok that's closer
<headius> the full interp case is still broken because my handover logic is wrong
<headius> but compiled works
skade has quit [Ping timeout: 272 seconds]
<headius> full interp is messsed up because I'm passing off to direct logic *after* lambda args logic has fired
<headius> so lambda args logic fires twice
<headius> sigh
<headius> the simpler -> full tier handoff is pretty screwy
<headius> it happens too deep in block logic
<headius> I'll see how this looks for testing before I proceed
nirvdrum has joined #jruby
skade has joined #jruby
camlow325 has joined #jruby
<subbu> if lambda .. it bypasses all the arg prepare? or is there any arg prepare involved for lambda yields?
<subbu> this block business is tricky as is and it doesn't help that i go months without looking at ruby code and forget some of this stuff :)
<headius> mm yeah
<headius> I just removed the isProcCall in my version
<headius> tests are running...fewer failures but there's still a couple
<headius> this is test:mri:jit
<headius> ahh it's not arity-checking
<headius> that's at least two of the failures so far
<subbu> ha ha .. how did this happen.
<subbu> [subbu@earth ir] jruby -X-C -Xjit.threshold=0 /tmp/lambda.rb
<subbu> [[1, 2, 3], [1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
<subbu> the duplication there.
<headius> yeah that's the double lambda arg'ifying
<headius> because full doesn't get build until inside commonYield
<headius> but the args have already been mangled by then
<headius> so they get mangled twice
<subbu> ah, ok. so lifecyle screwed up.
<headius> right
<headius> only affects the first value because subsequent yields just go direct
<subbu> right.
<headius> yeah this is looking better but not 100%
donV has quit [Read error: Connection reset by peer]
<subbu> i have been itching to clean up this area of code for a long time .. but clearly still ways to go.
<subbu> i celebrated prematurely :)
<headius> well it's sure close
<subbu> but, i like: "so really the context type is "called as" and perhaps should be a new enum of CALL and YIELD"
<headius> I only got like 10F with this part broken
<headius> our of the whole MRI suite
<subbu> better than overloading with the proc/normal block type.
<headius> yeah indeed
<headius> if that turns out to be necessary, anyway
<headius> I will try your patch next and see how it looks
<headius> this is a long suite
<subbu> hopefully those 10f are not the edge cases that bring back more complexity :)
<subbu> i am going to be afk for 30 mins.
<headius> ok
donV has joined #jruby
brauliobo has quit [Read error: No route to host]
brauliobo_ has joined #jruby
hobodave has joined #jruby
<headius> I think arity-checking for lambda is simply missing in the direct form
<travis-ci> jruby/jruby (master:9a260de by Benoit Daloze): The build has errored. (https://travis-ci.org/jruby/jruby/builds/97475207)
skade has quit [Quit: Computer has gone to sleep.]
<headius> ok five total F/E now
<headius> two are missing arity checks
camlow32_ has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
<headius> subbu: testing your version now
lanceball is now known as lance|afk
<headius> many more failures with your version of the patch
brauliobo_ has quit [Ping timeout: 240 seconds]
kares has quit [Quit: hali-hoo!]
<subbu> back.
<subbu> headius, ah, ok. never mind my patch then. :) Anyway, looks like you have better clarity on what is going on now .. or at least you are much less confused than me .. so, I'll let you figure it out ;-) .. but I can talk about any IR pieces and why it is the way it is.
<headius> well, I'm closer anyway :-)
nirvdrum has quit [Remote host closed the connection]
nirvdrum has joined #jruby
camlow32_ has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
kknight has joined #jruby
vtunka has quit [Quit: Leaving]
brauliobo_ has joined #jruby
kknight has quit [Remote host closed the connection]
hobodave has quit [Quit: Computer has gone to sleep.]
pglombardo has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
brauliobo_ has quit [Ping timeout: 265 seconds]
drbobbeaty has quit [Read error: Connection reset by peer]
drbobbeaty has joined #jruby
nirvdrum has quit [Remote host closed the connection]
nirvdrum has joined #jruby
nirvdrum has quit [Remote host closed the connection]
nirvdrum has joined #jruby
nateberkopec has quit [Quit: Linkinus - http://linkinus.com]
hobodave has joined #jruby
subbu has quit [Ping timeout: 250 seconds]
subbu has joined #jruby
lance|afk is now known as lanceball
hobodave has quit [Quit: Computer has gone to sleep.]
<headius> subbu: hmm, this problem is a bit tricky
<headius> ary.each(&lambda{})
<headius> the current IR compile compiles that to do no arg processing at all
<subbu> ok ..
<headius> so I have nowhere to check arity
<subbu> oh .. i see.
<subbu> i suppose we need a PrepareNoBlockArgInstr :)
<headius> that's a thought
<subbu> which will be a no-op for non-lambdas.
<headius> I'll see if I can get that in
<subbu> k
<headius> the two arity failures I have right now are both no-arg lambdas
<subbu> what a pain ... i was so thrilled at the fact that for no-arg all that overhead cleanly disappears.
<subbu> technically this would just be a check in bytecode .. so not too big of a deal.
<subbu> anyway, for later .. i had a thought I wanted to explore .. which is to have 2 versions of blocks .. lambda version and a non-lambda version. and compile the lambda-version on demand (unless it is explicitly created as a lambda).
<headius> yeah I had a similar thought earlier today too
<subbu> that will eliminate the handle-break-and-non-local-returns-in-lambda instructions for blocks too.
<headius> similar to how I'm jitting method bodies to have a fixed arity version and an "any arity" version
hobodave has joined #jruby
<headius> I still ponder if there's a better way to structure IR to represent multiple entry points into a method
<headius> so then it would just be two paths that phi back to a common body, but they have their own preambles
<subbu> yes, we haven't resolved that yet ..
<headius> some of these things could live on the block types too
<headius> so in runtime we'd call block.type.prepareArgs(...)
<headius> JVM would monomorphize the differences between lambda, proc, normal
<subbu> they could .. but there are a couple reasons i moved them into IR ..
<headius> I'm just thinking in terms of eliminating these "do everything" paths
<subbu> one is for scenarios like single arg, fixed args, no arg, the code is simple and doesn't go through the do everything prepare args
<headius> anything that can be split by type should be split earlier and not constantly check type again
<subbu> and the other is inlining.
<headius> sure
<subbu> by having the arg preparation logic .. inlining will work as long as an equivalent inlining replacement method is added like every other instructions.
<subbu> no special code or logic required.
<subbu> the idea for creating these prepare-arg-instrs was actually to have specialized simplified arg logic.
<headius> I just mean if we had prepareFixedBlockArgs, prepareBlockArgs, prepareNoBlockArgs live on Block.Type.LAMBDA, it would inline based on block type into the jitted code
<headius> rather than calling through do-everything versions in IRRuntimeHElpers
<headius> I don't think it would change the structure of IR
<headius> just how the JVM sees those instrs operating from jitted code
<subbu> i see. ok.
<subbu> got it now.
<headius> so there'd be at least two versions of each living on the Type classes
<headius> anyway...get it working first :-)
<subbu> that could work.
<subbu> yes, i think once we have ths working, we will be able to start tweaking and specializing more.
<subbu> lunch time
subbu is now known as subbu|lunch
rsim has quit [Quit: Leaving.]
n00bdev has joined #jruby
<headius> I'm pretty excited to try getting stuff to inline through block methods by generating duplicate JVM bytecode and letting hotspot do it
<headius> it should be possible...and then we can see how it compares to doing our own inlining
<headius> ok, PrepareNoBlockArgs is working
temporal_ has quit [Read error: Connection reset by peer]
brauliobo_ has joined #jruby
temporalfox has joined #jruby
subbu|lunch is now known as subbu
<subbu> headius, yes, that was the impetus for starting on this work .. i figured by separating out the paths and eliminating the intermediate layers, hotspot might be able to inline through the jruby runtime as well.
<subbu> besides it simplifying our runtime and also enabling other opts.
<subbu> so, curious how that all pans out in reality.
xardion_ has joined #jruby
xardion has quit [Ping timeout: 255 seconds]
<n00bdev> can anyone here explain what include_package does?
<n00bdev> does it scan the currenwhole directory for a file?
<n00bdev> im looking at some legacy code and cannot find the file that is included in the include_package
<headius> subbu: hotspot won't specialize through methods like each, but if they're in IR we have two routes to specializing them ourselves
<headius> n00bdev: it sets up a const_missing hook that lazily tries to load classes from that package
<headius> you give it a Java package name
<n00bdev> okay that makes sense
<n00bdev> but where does it loook for the java package?
<subbu> headius, k
<headius> n00bdev: in the currently-loaded jars, either in Java's CLASSPATH, JRuby's additional $CLASSPATH, or any jars that have been required
<headius> basically any jars that the JVM or JRuby have loaded
<n00bdev> is there a way to load those?
<n00bdev> ive been tasked to upgrade from processing2 to 3
<n00bdev> and the app crashes because it cant load processing.video
<headius> crashes how
<n00bdev> when i do k9 run somesketh.rb, the console throws the error
<n00bdev> no such file to load -- video
<n00bdev> the include package uses processing.video
<GitHub150> [jruby] vassilios opened issue #3545: java.lang.NullPointerException when using for loops http://git.io/v05L4
<headius> hmm
<headius> n00bdev: that looks like a require that fails, rather than an include_package
<headius> like require 'video' somewhere
<n00bdev> oh?
<headius> can you gist the full output somewhere?
<headius> subbu: with current set of tweaks I am down to just two failures
<subbu> \o/
<headius> and one other that seems unrelated...
<headius> almost done with this run though
<headius> I'll push what I have so you can see
<headius> so close!
yfeldblum has joined #jruby
<headius> subbu: ok of the remaining issues only one appears to be related to arg processing
<headius> I'll push what I have
<GitHub84> [jruby] cheald opened pull request #3546: String#new throws an unknown kwarg exception if passed an unknown option (ruby-2.3...mri_string_behavior) http://git.io/v05YS
<headius> subbu: ok...remaining oddity is this
<GitHub10> [jruby] headius pushed 3 new commits to master: http://git.io/v05OX
<GitHub10> jruby/master f424394 Charles Oliver Nutter: Get lambda arg juggling and arity-checking working in direct.
<GitHub10> jruby/master 27e6a64 Charles Oliver Nutter: Add logic for "no args" block arg prep, for lambda arity check.
<GitHub10> jruby/master 5a64d06 Charles Oliver Nutter: Make a few helpers private and mark some others Interp+JIT.
<headius> $ jruby -e 'lambda {|r,| p r}.call([], *[])'
<headius> nil
<headius> should be []
<headius> works in simple interp
<headius> seems like it may be special a "call" + "lambda" situation
<headius> so probably broken by my removing the proc checks
<headius> n00bdev: yeah looks like a require...what's at that line?
<headius> perhaps some library moved
<n00bdev> line 1?
<n00bdev> oh it says load_library
<n00bdev> is load_library another lazy loading method for libraries within directory?
<subbu> headius, sorry in a meeting .. will be here after that.
<n00bdev> i think
<n00bdev> its the processing libraries for video and sound
<n00bdev> thats what the load_library is doing
<headius> n00bdev: so I'm guessing they moved a .rb file for "video" in the modified version
<headius> sorry I can't be more help than that without a way to reproduce it, but I suspect it's simple a restructuring of ruby-processing that jruby-art hasn't updated for
<headius> or something along those lines
<n00bdev> hmm ok
<headius> I don't know the relationship between these libraries
<n00bdev> theres another library load for :minim
<headius> subbu: no worries, I think I have it
bbrowning has quit [Read error: Connection reset by peer]
<n00bdev> its weird cause i googled what minim was and theres repo for it, but the installtion never asks to download this repo
bbrowning has joined #jruby
auxbuss has joined #jruby
auxbuss has quit [Client Quit]
drbobbeaty has quit [Read error: Connection reset by peer]
drbobbeaty has joined #jruby
<GitHub20> [jruby] bjfish pushed 1 new commit to master: http://git.io/v05lF
<GitHub20> jruby/master 4579df0 Brandon Fish: [Truffle] Add rake from stdlib
donV has quit [Read error: Connection reset by peer]
donV has joined #jruby
<chrisseaton> bjfish2: we think rake should work if etc and open3 are implemented, but nobody's actually tried it yet
<chrisseaton> and we don't even know if etc and open3 are on a critical path
brauliobo_ has quit [Read error: No route to host]
brauliobo has joined #jruby
<bjfish2> chrisseaton most of the rake MRI tests appear to pass, also a basic Rakefile looks like it works too
<chrisseaton> wow that's good
<chrisseaton> it's been really hard to test gems so far as we haven't been able to run 'rake test', but maybe we can
<bjfish2> that was my goal, I wanted to just cd into rails and run “rake test”, it looks like it’s close, I think the gems needed to get added to the LOAD_PATH automatically somehow still
<chrisseaton> bjfish2: ActiveSupport is like 99%, but it's been a lot of work getting from 90% I think
<chrisseaton> bjfish2: do you know about the jruby+truffle tool?
<bjfish2> chrisseaton no I don’t know about that tool yet
<chrisseaton> lib/ruby/truffle/jruby+truffle/README.md
<chrisseaton> this has been helping us workaround rake so far
tcrawley is now known as tcrawley-away
<bjfish2> thanks, i’ll try using that, BTW some of the gem commands work now, gem list, help, etc
<chrisseaton> bjfish2: wow
<chrisseaton> bjfish2: the main blocker for RubyGems is openssl
tcrawley-away is now known as tcrawley
hobodave has quit [Quit: Computer has gone to sleep.]
hobodave has joined #jruby
<nirvdrum> chrisseaton: Being able to load from disk would be a good way to start.
<lopex> headius: please do
<GitHub125> [jruby] headius pushed 1 new commit to master: http://git.io/v05zB
<GitHub125> jruby/master 583558a Charles Oliver Nutter: Shift proc/lambda logic here for ->(a,){p a}.call([], *[]) => []
<headius> subbu: I'm calling it a day but here's one of two remaining issues
<headius> def make_binding; local1 = 1; lambda { return binding }.call; end; def foo; p eval('local1', make_binding); p eval 'local1'; end; foo
<headius> the second eval should NameError. Something about the return in the lambda is causing it to not pop its scope...so some GEB issue with return in block
<headius> I have not investigated beyond discovering that handleBreakAndReturnsInLambda does *not* fire
<lopex> headius: (jcodings release)
<headius> lopex: no problem...master is ready to go?
<lopex> headius: yeah, I guess
<headius> YOU GUESS?
<headius> I/we will need to update unicode tables from MRI once they release 2.3 too
<lopex> headius: yes I'm sure!
<headius> ok :-)
<headius> pushing momentarily
<lopex> headius: apparently dummy encoding loading triggered exception that's been immediately swallowed
<headius> oh I see
<lopex> headius: no dark matter by any means since those re singletons anyways
<headius> sure...good to eliminate anyway
<headius> every drop helps
<lopex> headius: it was looking at the DUMMY field whenever dummy was beeing tried to load
<headius> ugh
<headius> enebo hasn't been using the release plugin
<lopex> headius: and for some reason he didnt change the jruby dep last time
<lopex> it wouldnt compile jruby though :)
<lopex> headius: joni also has some fixes
<headius> ok
GitHub39 has joined #jruby
<GitHub39> [jcodings] headius pushed 1 new commit to master: http://git.io/v05gX
<GitHub39> jcodings/master c693a34 Charles Oliver Nutter: Fix version to 1.0.15-SNAPSHOT. ENEBO
GitHub39 has left #jruby [#jruby]
<subbu> headius, so, how many failures / errors left?
<lopex> headius: thank you
<lopex> headius: do those unicode table scripts work still ?
<headius> they worked in the last year
<headius> against 2.2
GitHub38 has joined #jruby
<GitHub38> [jcodings] headius pushed 1 new commit to master: http://git.io/v052f
<GitHub38> jcodings/master b18cc66 Charles Oliver Nutter: [maven-release-plugin] prepare release jcodings-1.0.15
GitHub38 has left #jruby [#jruby]
GitHub181 has joined #jruby
<GitHub181> [jcodings] headius tagged jcodings-1.0.15 at c0ac8bd: http://git.io/v052U
GitHub181 has left #jruby [#jruby]
GitHub145 has joined #jruby
<GitHub145> [jcodings] headius pushed 1 new commit to master: http://git.io/v052T
<GitHub145> jcodings/master e88b7e3 Charles Oliver Nutter: [maven-release-plugin] prepare for next development iteration
GitHub145 has left #jruby [#jruby]
<lopex> headius: I remember you changing generated java files
<lopex> so beware :)
<lopex> wrt dummies as well afair
<headius> subbu: just two... here's the other one
<headius> TestRegexp#test_uninitialized [/Users/headius/projects/jruby/test/mri/ruby/test_regexp.rb:856]:
<headius> TypeError expected but nothing was raised.
<headius> it may be a similar scoping issue but I haven't even looked at it
yfeldblum has quit [Ping timeout: 240 seconds]
<headius> lopex: I'll review changes for sure
<subbu> k
<GitHub199> [jruby] nirvdrum pushed 1 new commit to truffle-head: http://git.io/v052a
<GitHub199> jruby/truffle-head bfbfd04 Kevin Menard: [Truffle] Rolled back the truffle version....
n00bdev has quit [Remote host closed the connection]
<lopex> if that's a manual change it will be overwritten
<headius> ahh I see
subbu is now known as subbu|away
<lopex> the scripts need to be updated
<lopex> I'll look at it tomorrow
<headius> lopex: I updated https://github.com/jruby/jruby/issues/3479 with a checkbox to make sure that commit doesn't get wiped out
<headius> under Regexp/String
<lopex> yes sir
temporalfox has quit [Read error: Connection reset by peer]
temporalfox has joined #jruby
subbu|away is now known as subbu
lanceball is now known as lance|afk
bbrowning is now known as bbrowning_away
tcrawley is now known as tcrawley-away
<travis-ci> jruby/jruby (master:4579df0 by Brandon Fish): The build has errored. (https://travis-ci.org/jruby/jruby/builds/97541229)
hobodave has quit [Quit: Computer has gone to sleep.]
kstuart has quit [Quit: WeeChat 1.3]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yfeldblum has joined #jruby
hobodave has joined #jruby
pglombardo has quit [Ping timeout: 246 seconds]
camlow325 has quit [Ping timeout: 272 seconds]
<GitHub159> [jruby] bjfish pushed 1 new commit to master: http://git.io/v0dvF
<GitHub159> jruby/master 19b5591 Brandon Fish: [Truffle] Add basic sprintf octal support
<GitHub140> [jruby] bjfish pushed 1 new commit to master: http://git.io/v0dfC
<GitHub140> jruby/master 1c0c1fd Brandon Fish: [Truffle] Formatting, fix tabs to spaces
brauliobo has quit [Remote host closed the connection]
brauliobo has joined #jruby
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
hobodave has quit [Quit: Computer has gone to sleep.]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
yfeldblum has quit [Ping timeout: 240 seconds]
brauliobo has quit [Remote host closed the connection]
camlow325 has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
brauliobo has joined #jruby
<travis-ci> jruby/jruby (master:19b5591 by Brandon Fish): The build has errored. (https://travis-ci.org/jruby/jruby/builds/97566044)
camlow325 has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
brauliobo has quit [Remote host closed the connection]
e_dub has quit [Quit: ZZZzzz…]