tenderlove has quit [Remote host closed the connection]
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/RQnV5Q
<JRubyGithub>
jruby/master 6793854 Chris Seaton: [Truffle] Remove some abstractions that don't seem to compile well, and fix some other compilation problems.
<headius>
anyone who wants to help exclude the 400 failures with new stdlib, or help implement those features....rock on
anaeem___ has quit [Remote host closed the connection]
<headius>
I've got refinements in progress...MRI's code is deep juju
anaeem1 has joined #jruby
imperator has quit [Quit: Valete!]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
robbyoconnor has joined #jruby
tenderlove has joined #jruby
noop has joined #jruby
tenderlove has quit [Ping timeout: 260 seconds]
deobalds has joined #jruby
deobalds has quit [Remote host closed the connection]
postmodern has quit [Quit: Leaving]
yfeldblum has quit [Ping timeout: 265 seconds]
diegoviola has quit [Quit: WeeChat 1.0.1]
ephemerian has joined #jruby
benlovell has joined #jruby
rsim has joined #jruby
benlovell has quit [Read error: Connection reset by peer]
benlovell has joined #jruby
pchalupa has joined #jruby
etehtsea has joined #jruby
havenwood has quit [Remote host closed the connection]
dumdedum has joined #jruby
mister_solo has joined #jruby
iamjarvo has joined #jruby
mister_solo has quit [Ping timeout: 265 seconds]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
drbobbeaty has joined #jruby
rsim1 has joined #jruby
rsim2 has joined #jruby
rsim has quit [Ping timeout: 265 seconds]
rsim1 has quit [Ping timeout: 265 seconds]
marr has joined #jruby
elia has joined #jruby
elia has quit [Client Quit]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
drbobbeaty has joined #jruby
elia has joined #jruby
drbobbeaty has quit [Client Quit]
rsim has joined #jruby
deobalds has joined #jruby
Vezz has joined #jruby
rsim2 has quit [Ping timeout: 265 seconds]
elia has quit [Quit: Computer has gone to sleep.]
mister_solo has joined #jruby
elia has joined #jruby
Hobogrammer has quit [Ping timeout: 260 seconds]
tlarevo_ has joined #jruby
tlarevo has quit [Ping timeout: 272 seconds]
<Antiarc>
headius: Is there an outstanding list of features to be implemented somewhere? I feel I know enough Java to contribute, and would love to poke in my spare time.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] jrubyci pushed 3 new commits to master: http://git.io/fZAERw
<headius>
that would reduce the size of emitted bytecode too
anaeem1 has joined #jruby
diegovio1 has joined #jruby
diegovio1 is now known as dviola
<headius>
test/unit certainly tries to pretty things up, doesn't it
ludyte has joined #jruby
cprice404 has quit [Quit: Konversation terminated!]
benlovell has joined #jruby
<enebo>
headius: This is purely for interpreter and the idea is expressions are functions so we can eliminate intermediate use of temps
<subbu>
enebo, headius, although i wasn't thinking o fbytecode there .. for right now, this is just interpreter-centered .. and very quick hacky experiment to see what potential there is to see if thi sis a direciton worth pursuing.
<headius>
sounds good
<enebo>
headius: but if we go this direction then we can really go crazy on specialized types like plusFixnumOperand
<headius>
I'm going to be spending today excluding and filing issues for new MRI test failures
<enebo>
I think this is more of an idea for later than the next 2-3 weeks past exploring potential. We have interpreter data fairly well isolated at this point. In fact, the realization we clone instrs was the motivation to re-examine the idea of expr chains
<headius>
heh
<headius>
test/unit has special lines of code to filter out JRuby and Rubinius internals
<headius>
I may ask him to remove the lines for us
<headius>
filters out .java, which then removes the actual core methods from the trace
<enebo>
headius: hmm
<enebo>
headius: did we request that a long time ago maybe?
<headius>
I don't think so
tenderlove has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] jrubyci pushed 1 new commit to master: http://git.io/DXOe6g
<JRubyGithub>
jruby/master 0852a31 Chris Seaton: [Truffle] Add fannkuch regression test.
JRubyGithub has left #jruby [#jruby]
e_dub has quit [Quit: ZZZzzz…]
ludyte has quit [Quit: ludyte]
<subbu>
headius, enebo i leave for india nov 9th .. so, i have something like 10-15 hours of jruby hacking left between now and then.
<headius>
how long you staying?
<subbu>
what are the areas i should focus on for enabling the preview before rubyconf?
<headius>
hmm
<subbu>
i am gone till dec 12, but i will be working from there as well. i don't get that much vacation :)
<enebo>
subbu: So my hope is to isolate nirvdrums super bug and find any other IR bugs but I was thinking you might want to review your FIXMEs through the code and look for problems
<headius>
well I started working on refinements last night...that might require a new instr but unsure
<headius>
yeah outstanding bugs and fixmes for sure
<enebo>
we know all potentially refined callsites as parse time
<enebo>
We don’t know if they will actually call a refined method though right?
<headius>
right...the way I think I'll compile this is that it remains a normal CallNode in AST, but during IR building (or maybe in a pass) it checks if the scope might have refinements and changes the calls to refined calls
<enebo>
headius: we can make a flag CONTAINS_REFINEMENTS maybe on each affected scope
<subbu>
i dont know much about refinements, but if this info is knowable statically, and semantics are different, it makes sense doing at IR build time.
<headius>
the alternative would be a new RefinedCallNode and the parser just switches to that after it sees "using" in a parent scope
<headius>
enebo: yeah, that will have to happen
<headius>
I have been kinda lightly porting the MRI code to get a feel for it, but it quickly drops into gnarly internals
havenwood has joined #jruby
<enebo>
headius: well it will only need to happen if we don’t mark all calls with some new refined_call instr I think
<headius>
subbu: refinements basically mean you have to check StaticScope/cref to see if the target class has any overlays
<headius>
enebo: hmmmm
<headius>
well without a flag on the call or a separate call, we have to check scope for refinements flag every time
<headius>
now that's not impossible, and in indy logic it may not even matter
nirvdrum has joined #jruby
<headius>
but in interpreter it will be a boolean field read and check every call
<headius>
maybe not enough to worry about
<mberg>
Contrats on merging 2.2 stdlib. :)
<headius>
mberg: yeah, took a bit of massaging :-) we also merged MRI trunk tests, so I'm excluding new failures until we can impl them
<headius>
enebo: I have a general idea of how to implement it in my head
<enebo>
So I am wondering about this at two seperate levels too. Can we ever statically determine that any callsite is going to be refined. I think the answer to that is no. So all callsites need to know whether they need to do this check. One way is to ask the scope if the callsite is special. The second is to make the callsite special
<headius>
it may not be much of a perf hit in indy either...one extra switchpoint ideally
<headius>
we cannot know if a call site is refined, but we can know if it is not refined
zorak8 has joined #jruby
<enebo>
but only in scopes which are refined (lexically determined) do we need to potentially pay the cost right?
<enebo>
headius: yeah
<enebo>
headius: it is only maybe refined if what my last sentence says is true right?
<headius>
any call without a "using" in an ancestor scope will never be refined
<headius>
any call with a using in an ancestors scope has potential to get refined
<subbu>
and ancestor is lexical ancestor?
<headius>
yes
<headius>
the using logic in MRI explicitly prevents calling it within a method body or against non-self
<subbu>
ok. right scope is lexical, module is inheritance .. i mix them up sometimes.
<enebo>
yeah so closure scopes lexically contained might also be refined calls
<headius>
you have to call it in a script or module body, as "using X"
<headius>
yeah all the way down from the using scope
<enebo>
oh actually perhaps all descendant scopes
blinsay has quit [Quit: peeze]
<subbu>
in that case, it seems like you will benefit from a specialized instr (or a flag on call-instr if that is sufficient).
<headius>
flag is sufficient for JIT...I can compile it differently
<enebo>
subbu: for him it is the same since he can generate different bytecode either way
<headius>
but it adds another branch to interp
<headius>
heh
<headius>
yeah, what he said
<subbu>
ok ..
iamjarvo has joined #jruby
<enebo>
subbu: for interp it makes all calls check a flag
<subbu>
right.
<headius>
we could do it that way for now if it's easier
<enebo>
subbu: so we probably would be better off with a new instr
<headius>
IRBuilder would check the incoming scope and parent scopes for refined flag
<headius>
and build the calls accordingly
<headius>
parser will set flag on scope when it sees a self call to "using" that's the right form
<subbu>
enebo, ok, you should tackle that .. i dont have the time for it now. as you two said, i'll audit the code for all the zillion fixmes i've added and try to clean up some of them.
<enebo>
subbu: ok
mister_solo has quit [Ping timeout: 256 seconds]
anaeem1 has quit [Remote host closed the connection]
<subbu>
alright, i'm going to tune out of this channel for now.
<enebo>
headius: yeah I think each new scope once top scope is marked as USES_REFINEMENTS marks itself and then all buildCall sort of builder things will make RefinedCallInstr
anaeem1 has joined #jruby
<enebo>
I wonder if anyone has thought about freezing a refinement so that these do not need to do this double invalidation check
zorak8 has quit [Ping timeout: 245 seconds]
blinsay_ has joined #jruby
blinsay_ is now known as blinsay
yfeldblum has joined #jruby
blinsay has quit [Changing host]
blinsay has joined #jruby
<enebo>
headius: I totally don’t remember how {z,}super works with refinements
<enebo>
headius: I am guessing they should go down refined hierarchy?
<rtyler>
I'm trying to understand more about generics code with JRuby
<rtyler>
I understand the problems going from Java back out into JRuby, but is it not possible to inform the Java-based code to create a generic type properly from JRuby?
bbrowning_away is now known as bbrowning
<headius>
there's no such thing
<headius>
well wait
<headius>
a *type*?
<headius>
you can do that with java_signature and such
<headius>
rtyler: what are you trying to accomplish exactly?
calavera has joined #jruby
<rtyler>
I need to interact with a Java class, which can be constructed with generics on what kinds of types its methods will accept
<headius>
enebo: going to switch travis to run spec:ruby:fast
<headius>
Scala has reified generics, though...so I'm unsure if there's something special you'd have to do to instantiate a generic type
<headius>
enebo: woohoo
<enebo>
so if we are really just using EC2 instance for static page hosting we should definitely get off this sooner than later
<lopex>
headius: scala has erasure just as java
<enebo>
I think jrubyconf.com/jrubyconfeu and jruby.org are three sites hosted
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to update_stdlib: http://git.io/h10LrA
<JRubyGithub>
jruby/update_stdlib 9dcc637 Charles Oliver Nutter: assert_raise takes a list of exception types now.
JRubyGithub has left #jruby [#jruby]
<headius>
enebo: ahh, so we'd need to deal with those other sites too
<enebo>
headius: and I had already tweeted it being back up
<enebo>
:)
<enebo>
headius: possibly
<headius>
what the heck is at jrubyconf.com
<enebo>
well whatever our site was called for US conf
<headius>
seems to be redirected to someone's wordpress
<headius>
oh, .org
<rtyler>
I've been wondering about steam mops actually!
<headius>
no, that doesnt' work either
<headius>
I guess there's no jrubyconf site at the moment
<enebo>
HAHAHA
<enebo>
Appropriate somehow
<rtyler>
headius: I suppose at the heart of my problem, is that I have a string of binary data in Ruby land, and I need to get that into Java unmolested
<rtyler>
I'm seeing an extra byte get added somewhere when it comes out the other side of kafka
<headius>
how are you passing it across?
<rtyler>
java.lang.String, since I can't get a byte[] into this stupid scala code
<headius>
String#to_java_bytes should get you a copy
<headius>
is it string data?
<headius>
if it's binary data, encoding to String will certainly wreck it
<JRubyGithub>
jruby/master 5a8ee14 Benoit Daloze: [Truffle] Get rid of superfluous #=== and #eql? definitions....
JRubyGithub has left #jruby [#jruby]
yfeldblum has quit [Ping timeout: 255 seconds]
<tenderlove>
headius: ya, those line number tests. I just tested the actual value to make sure the binding was set up and working. I don't think the actual number matters
<headius>
no problem
<headius>
I just removed first line and removed assert from second
<headius>
it will be committed as soon as I struggle through git log --pretty once and for all :-)
<headius>
I'm close...just can't get it to insert tabs before the content
benlovell has quit [Ping timeout: 255 seconds]
havenwood has joined #jruby
zeroecco has joined #jruby
tcrawley is now known as tcrawley-away
<eregon>
headius: I have a script for changelog from commit message if you want ;)
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
eregon: sure!
<headius>
this is what I came up with: TZ=jst git log --pretty=format:$'%cd %an <%ae>%n%n%B' --date=local -1 | ruby -n -e '$i ||= 0; puts "#{$i>1?"\t":""}#{$_}"; $i+=1'
<eregon>
looks funny and totally unreadable I like it :)
bbrowning is now known as bbrowning_away
<headius>
I will should remove more whitespace
<eregon>
but it's definitely a good use of git format
<headius>
yeah, format wasn't quite up to the task of adding tabs, but it got me the rest of the way
<eregon>
I don't have my script at work, will send it to you in like 30 min
<headius>
ok
lanceball is now known as lance|afk
calavera has joined #jruby
anaeem1 has quit [Remote host closed the connection]
<headius>
I tried to set up a post-commit hook but the recursion because of commit --amend is troublesome
<Antiarc>
headius: last night you mentioned a bunch of new stdlib features that needed work - where would I find those? The test suites seem to generally pass
<headius>
look on my branch, update_stdlib
<Antiarc>
Oh, cool
<Antiarc>
Will do!
<headius>
I haven't merged yet because of the failures...make sure you clean build because I moved a bunch of stuff around
rsim has joined #jruby
<Antiarc>
will do!
yipdw has joined #jruby
yipdw has joined #jruby
<Antiarc>
I feel pretty confident with the general gist of the internals now, would love to contribute :)
<Antiarc>
So I'll poke at it!
erikhatcher has quit [Quit: erikhatcher]
<eregon>
headius: argh, yeah that might be problematic, though there should be a way to do it properly
<headius>
Antiarc: yeah that would be awesome! tons of the failures are just bug fixes we don't have or small changes to existing code
<eregon>
headius: it might enough to check if contents changed or not since it's supposed to be idempotent
tenderlove has quit [Quit: Leaving...]
tenderlove has joined #jruby
<enebo>
nirvdrum: Is it possible any code you depend on uses Module#prepend?
anaeem1_ has joined #jruby
<headius>
enebo: like, conditionally?
josh-k has joined #jruby
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo>
headius: well I notice in mocha 3 tests fails which use prepend
zeroecco has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pietr0 has joined #jruby
<nirvdrum>
enebo: I could get you access to the repo if you didn't have a moral objection to keeping it private.
<nirvdrum>
I'm debating whether I want to open source the whole thing. It'd be kind of a pain in the neck, but we'd have that mythical open source Rails app that works with JRuby to test against.
<enebo>
nirvdrum: well it would be helpful to put prints to isolate which module is looping
<enebo>
nirvdrum: I mean I could ask you to put them all in too :)
<enebo>
Amazing how many modules are injected into DateTime and Time objects by Mocha
<enebo>
but I cannot get mocha by itself to fail on 9000
<enebo>
nirvdrum: Looking for your bug makes me feel a lot better about how compatible we are
<enebo>
nirvdrum: barring some missing 2.2+2.1 methods
<headius>
tenderlove: ah-ha...seems the parser is inserting tags for ! and !!
BobFunk has quit [Read error: Connection reset by peer]
BobFunk has joined #jruby
<nirvdrum>
enebo: Well, trick-or-treating is going to be starting soon here. So I won't be able to instrument until later.
<nirvdrum>
But, if you want access, send me your bitbucket account and we can work it out. I won't even make you sign an NDA.
<enebo>
nirvdrum: ok I will need to see if I can even log into bitbucket (aka hopefully 1password has that info)
<nirvdrum>
And then since it's a full app, you'd need postgres and redis installed for it to even start.
<nirvdrum>
I do have a Vagrantfile, so you could go that way too.
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to master: http://git.io/QqVTTQ
<JRubyGithub>
jruby/master ca51c78 Chris Seaton: [Truffle] Tidy up the yield dispatch nodes a bit.
JRubyGithub has left #jruby [#jruby]
drbobbeaty has joined #jruby
havenwood has quit []
josh-k_ has quit [Remote host closed the connection]
<chrisseaton>
lopex: are you there?
<lopex>
chrisseaton: hello there
<chrisseaton>
you asked ages ago about how much Truffle runtime shares with JRuby's runtime - the answer is not a massive amount at the moment. The implementation techniques are very different and the differences reach quite deep into the runtime.
<chrisseaton>
we're going to look at sharing more, but plan to do this when we have all of the Ruby language working - later this year
<chrisseaton>
and we're also looking at using Rubinius's core library as we find it easier to optimise Ruby code than we do Java
<chrisseaton>
big parts of JRuby we use now and are very thankful not to have to implement include the parser transcoding
<chrisseaton>
parser *and* transcoding
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]