<JRubyGithub>
[jruby] lucasallan pushed 1 new commit to master: http://git.io/xD6k
<JRubyGithub>
jruby/master ee6c4a9 Lucas Allan Amorim: [Truffle] - String#downcase! raises a RuntimeError when self is frozen
JRubyGithub has left #jruby [#jruby]
viking has joined #jruby
aadam21 has joined #jruby
elux has joined #jruby
iamjarvo has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
iamjarvo has quit [Client Quit]
mitchellhenke has joined #jruby
enebo has joined #jruby
mitchellhenke has quit [Quit: Computer has gone to sleep.]
kfpratt has joined #jruby
anaeem1_ has joined #jruby
lucasallan has quit []
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] lucasallan pushed 1 new commit to master: http://git.io/xDQA
<JRubyGithub>
jruby/master 4eb0045 Lucas Allan Amorim: [Truffle] - Adding tags for String#capitalize! and String#downcase! back - until I can figure out the reason we're getting failing specs
<headius>
I'm concerned it's a flaw in how we optimize local vars in the presence of a closure
<enebo>
headius: This prints nil for y vs master which prints 2
imperator has joined #jruby
<subbu>
what did i break? :)
<enebo>
headius: so still a bug somewhere
<enebo>
subbu: I think you fixed something
<headius>
ok
<enebo>
subbu: or my refactoring did but I vot on you
<headius>
I'm going to walk away from these failures for the moment then
<subbu>
yes, anything fixed is becuase of me and anything broken is because of you.
<enebo>
hah
<enebo>
so true
<headius>
seems legit
e_dub has joined #jruby
<subbu>
but, headius so, that snippet fails in master?
jamo_ has quit [Ping timeout: 265 seconds]
<subbu>
will verify later in the aft to make sure it is not something more serious than just whatever fixed it in the branch.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] pedroandrade opened pull request #2646: [Truffle] - String#capitalize! returns nil when no changes are made (master...truffle_string_capitalize_return_nil) http://git.io/xy4e
JRubyGithub has left #jruby [#jruby]
<headius>
subbu: yes, fails on master
<headius>
z never sees the updated value from the Hash closure
anaeem1 has quit [Remote host closed the connection]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 2 new commits to master: http://git.io/xy4H
<JRubyGithub>
jruby/master cabfe20 Pedro Andrade: [Truffle] - String#capitalize! returns nil when no changes are made
<JRubyGithub>
jruby/master 55eb4f6 Chris Seaton: Merge pull request #2646 from pedroandrade/truffle_string_capitalize_return_nil...
JRubyGithub has left #jruby [#jruby]
anaeem1 has joined #jruby
anaeem1 has quit [Ping timeout: 264 seconds]
<headius>
enebo: btw, I just ran mvn -pl core and it's 12s
<headius>
not under ten, but doesn't seem so bad to me
<enebo>
headius: yeah I am typically 12-14s for that
<enebo>
headius: ‘mvn’ is about 2 minutes now
<headius>
we just need to break it up into more modules so they can build in parallel :-D
<enebo>
headius: if we could launch in dev without shading we could probably have build about 7-8s for core
<headius>
yeah
<headius>
probably
camlow325 has joined #jruby
calavera has joined #jruby
<subbu>
enebo, headius i suspect it is a lva bug .. that is present in both master and the branch.
<subbu>
have to wait till the evening.
<subbu>
meeting time here.
<headius>
np
<headius>
enebo: I patched up a few of those unnecessary warnings btw
<headius>
test:mri is much quieter now
jamo_ has joined #jruby
<enebo>
headius: ah great…so is lines deprecated or not?
<headius>
lines is supposed to only return an array, not an enumerator and not block iteration...the problem was that our lines impl is using Enumerator to create that array, and it created the Enumerator to call lines, which it then called with a block...
anaeem1_ has joined #jruby
<headius>
I just modified it to create that intermeduate Enumerator against each_lines
<headius>
there were also some new coersion warnings in Numeric and Comparable that were displaying too frequently
<headius>
those are fixed too
dinfuehr has joined #jruby
anaeem1_ has quit [Remote host closed the connection]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
iamjarvo has joined #jruby
iamjarvo has quit [Client Quit]
pitr-ch has quit [Quit: Leaving]
<headius>
ah-ha
<headius>
kcode of EUC also uses same value as the none flag
<headius>
enebo: kcode can't possibly still be a thing in 2.2, can it?
<imperator>
headius, don't think i can help you with rb_warn
<imperator>
i don't know how to get around that
<headius>
well an impl in JRuby could just call it from Ruby
<enebo>
headius: I know they have this is not useful anymore warnings
<headius>
you need it just for the line number?
<enebo>
headius: but is it used internally somehow? :)
etehtsea has joined #jruby
etehtsea has quit [Max SendQ exceeded]
<headius>
enebo: I don't know
<headius>
I hope not
<enebo>
of course we might still be using it is some weird way
elia has quit [Quit: Computer has gone to sleep.]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
<headius>
if removing it from the regexp options stuff doesn't break any tests, I'm going with it
<headius>
looks pretty good so far
<enebo>
headius: cool
camlow325 has joined #jruby
<headius>
down to 3F4E
<headius>
I'm not sure how to fix these: Java::JavaLang::ClassCastException: org.jruby.ir.operands.TemporaryLocalReplacementVariable cannot be cast to org.jruby.ir.operands.DepthCloneable
<headius>
enebo, subbu: this is three of the errors, happening in tests of super within BEGIN, END, and at_exit
<enebo>
headius: yeah just for now in IRBuilder.adjustScopeDepth add an elseif for that type and don’t clone it
<headius>
ok
<enebo>
headius: BEGIN/END is sharing same scope as parent so that templocalreplacement will not need adjustment
<enebo>
headius: Although I am somewhat unsure how IRBuilder is getting this to begin with…I fear it may be our cloneInstrs cloning closure scopes
<enebo>
headius: I guess I am saying it might fix it but there is probably something else wrong..OTOH we already have bugs on nested scopes in BEGIN/END blocks
<headius>
does the fact that this is only happening in JIT shed any light?
<headius>
it's weird because it's happening in IRBuilder instead of in a pass
camlow325 has quit [Remote host closed the connection]
<subbu>
headius, what is 3f4e?
<headius>
subbu: 3 failures 4 errors running test:mri with JIT
<enebo>
headius: well I find it weird it is JIT’ing at all tbh
<headius>
I'm getting it green
<headius>
enebo: it isn't
<subbu>
ok.
<headius>
it's happening in IRBuilder
<enebo>
BEGIN/END are not meant to JIT right now at least
<enebo>
yeah
<headius>
but it only fails in test:mri:jit
imperator has quit [Quit: Valete!]
<enebo>
headius: yeah I need to verify this but I think it is because BEGIN/END share parent scope and that has JIT’d
<headius>
they would be inside method bodies for testing, so that makes sense
<enebo>
headius: so it is using same variables as parent which end up somehow containing the vars in question
<headius>
so it is building a BEGIN closure after optimization passes have run on parent
<enebo>
headius: but in JIT you also JIT script bodies too right?
<enebo>
well in JIT I think you immediate compile IRScript right?
<headius>
anything that goes into InterpretedIRMethod
<headius>
I'm not sure IRScript does
<enebo>
oh only for main script file
<enebo>
but for tests testing BEGIN it is a new run right?
<headius>
I'll find the test, but I expect it's a def test_something with a BEGIN in it
<enebo>
ok well unless it is digging out to hard non-closure/eval scope then that is weird to me
<enebo>
headius: is there a smallish repo I can paste into hypernugget?
<headius>
yeah it's basically doing eval "BEGIN {super}" inside a closure inside a method
<headius>
I will get you one
<enebo>
omgz
camlow325 has joined #jruby
<enebo>
yeah that’s right this is only a zsuper thing
<enebo>
headius: So zsuper walks every scope and looks for call args and saves them
<enebo>
headius: so in this case it is going all the way past the eval and trying to call zsuper with the methods args
<enebo>
headius: and the method has already JIT’d but more importantly ran passes which replaced the lvar with a tempreplacedlvar
<headius>
sounds complicated
<headius>
your hack seems to work
e_dub has quit [Quit: e_dub]
<enebo>
headius: So I am unsure what I said above will really work for all cases if you have something like def foo; eval “proc {|a| BEGIN {super}}”; end
camlow325 has quit [Remote host closed the connection]
<enebo>
headius: because not the BEGIN will get confused by intermediary scope where that templocal var does not exist
<enebo>
not=now
<enebo>
headius: but as I said both BEGIN and END have some bugs with nested closures so perhaps we deal with that later
<enebo>
headius: the reason why we build up this list of potential call args is because don’t know until run time whether one of the closures is a define_method or not
<headius>
it's a horrific case in this test
<headius>
are all lexical bodies lazily compiled now?
<enebo>
headius: no
<enebo>
headius: I wanted to but I realized we had too many dependencies on global analysis where a method wants to examine all nested closures
<headius>
ok, your hack didn't work
<enebo>
headius: but subbu is looking to remove these deps and probably end up with more conservative passes
<headius>
it pushed the CCE somewhere else
<enebo>
headius: but if we can kill that need then closures can be completely lazily built
<headius>
should be enough to get the backtrace tests working with JIT anyway
<headius>
then I can mark another big 9k TODO off my list
<chrisseaton>
headius: why don't you use MRI-style by default?
momomomomo has quit [Quit: momomomomo]
bbrowning is now known as bbrowning_away
subbu is now known as subbu|afk
<headius>
because we prefer the other
<headius>
it still renders MRI style for "caller" and friends
<headius>
since people parse those
<dcolebatch>
Hey guys - dumb question, but where is JRUBY_VERSION derived from? I have a server with jruby-1.7.18 installed, but it's reporting at 1.7.13 with "ruby -v" and JRUBY_VERSION in irb...
<headius>
dcolebatch: that's compiled into JRuby, so if you're seeing 1.7.13 you're running 1.7.13
<headius>
or whatever you're running is picking up a 1.7.13 install
<headius>
so rvm must put the version it expects in your IRB prompt, but then JRUBY_HOME picked up an older one
<dcolebatch>
I'm glad bbrowning missed that gaf
<headius>
hah
<headius>
it would be impossible to have JRUBY_VERSION not match the currently running version, so I knew there had to be something wrong
<headius>
it's statically compiled into the binary
<dcolebatch>
Yeah, thanks for confirming that. I'm hoping that this is the problem behind something more serious
<dcolebatch>
It's a good one, java.lang.NoSuchMethodError: pacer_minus_model.core.getSymbol0(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/RubySymbol;
<dcolebatch>
I think it's probably because our pacer-model library was compiled with jruby-1.7.18 and torquebox is running 1.7.13
<headius>
enebo: test:jruby:jit passes, I'm going to add it to travis
<headius>
I will do a run through rubyspec with JIT and if I finish that I'll start looking into AOT and too-big-method support
<headius>
then we're done with 9k
<headius>
SRSLY
<dcolebatch>
^^ we're all eagerly waiting :)
<headius>
yeah, home stretch
* nirvdrum
readies the "Mission Accomplished" banner
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to master: http://git.io/x9h8
<JRubyGithub>
jruby/master c81d9e1 Charles Oliver Nutter: Fix up backtrace generation....
<JRubyGithub>
jruby/master 8899ea8 Charles Oliver Nutter: Add test:jruby:jit to travis, because it's GREEN!
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
It'll be a glorious day.
<headius>
hah, indeed
<headius>
enebo: actually perhaps rubyspec isn't useful right now, since we don't JIT block bodies independently
<headius>
all that would JIT are the fixtures
<headius>
or any one-off methods in the specs
<enebo>
headius: yeah perhaps so
<headius>
I'll check it anyway
<headius>
yeah, it all passed
<headius>
add it or not?
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
<dcolebatch>
headius: That was my problem - application was compiled on 1.7.18; Once torquebox was configured to use 1.7.18 too, app boots. Thanks again!
<headius>
dcolebatch: excellent!
triple_b_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
x1337807x has joined #jruby
subbu|afk is now known as subbu
<headius>
enebo: I'm going to change gears for the rest of the day and poke at AOT a bit
<headius>
if you think we should include spec:jit now let me know
<enebo>
headius: so what is your AOT plan?
<enebo>
headius: Make persistence work again?
<headius>
well that's worth discussing...persistence was my first thought
<headius>
I'm debating making AOT not emit .class unless you use --javac stuff
<enebo>
headius: yeah I think if you do you should work on hypernugget
<headius>
yeah I will do that
<enebo>
but I guess it probably does not matter that much we can merge results too
<headius>
I need to think about what AOT means now
<headius>
it never really produced usable .class files other than MAYBE as a main class
<headius>
I'm not sure AOT needs to be a pre2 blocker either
<headius>
almost nobody uses it
<enebo>
headius: yeah agreed
<enebo>
headius: I sort of wish AOT had a decoupling between compiled code and how it loads
temporalfox has joined #jruby
<enebo>
headius: Class.forName(“aot”) obviously need load logic to work
<enebo>
headius: but new Aot(); maybe is not connected to a runtime directly
triple_b has joined #jruby
<enebo>
headius: in either case I lobby for embedding IR persistence as a bytearray(s) in the .class file and loading that to make IRScope
<enebo>
headius: we have talked before but the nice thing is it magically solves the big method problem since it will just fall back to interp if it can't
triple_b has quit [Client Quit]
<kfpratt>
Has anyone run into a problem where when trying to install bundler using "gem install bundler". I'm on MacOSX and jruby-9.0.0.0.pre1 and I used rvm to install. I'm getting: http://pastebin.com/L69kpcyn
<headius>
enebo: I struggled mightily to make .class AOT compilation meaningful, but it just never was
<headius>
if you want obfuscation you'll get that with persisted IR anyway
<enebo>
headius: yeah exactly
<headius>
if you want a usable Java class, well we've never done that
<headius>
but yeah, either way persistence is the thing to fix
<headius>
AOT *could* precompile to JVM bytecode, but I don't see the value anymore
<enebo>
headius: I don’t either since it limits the eventual potential
<headius>
Android notwithstanding, and it will need a LOT of other work to support 9k
<headius>
at least to support any compiled anything
<enebo>
headius: as an IR format it can take advantage of advances in our JIT
<headius>
right
<headius>
going to bytecode immediately will require us to be conservative and probably never reoptimize
triple_b has joined #jruby
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
codefinger has quit [Remote host closed the connection]
<enebo>
headius: well we could not ever re-opt without also persisting the IR also
<headius>
right
codefinger has joined #jruby
triple_b has quit [Client Quit]
blandflakes has quit [Quit: Page closed]
<enebo>
headius: also saving at that level also implies saving a lot more than just instructions and the info IRBuilder generates during build time
<enebo>
headius: So since this bitrotted I can tell you the big difference in fixing it
<enebo>
headius: When we interp now we finish IRBuilder and generate an interpretercontext from those instructions. We have also created the appropriate IRScope
<enebo>
headius: but if you look at IRBuilder you can see when we do stuff like addInstr we call:
<enebo>
instr.computeScopeFlags(scope);
<enebo>
if (instr instanceof ThreadPollInstr) scope.threadPollInstrsCount++;
<enebo>
Basically make the right IRScope type and then as you read in each instr you do these two things on that scope as each one reads in and when they are all in you just prepareForInterpretation and I think it is all golden
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 3 new commits to master: http://git.io/xHGN
<JRubyGithub>
jruby/master 345e57c Charles Oliver Nutter: Add spec:ruby:fast:jit target for JIT testing.
<JRubyGithub>
jruby/master 4025e5d Charles Oliver Nutter: Fix entry point for compiler specs.
<JRubyGithub>
jruby/master 4f73123 Charles Oliver Nutter: Ensure JIT doesn't run in background for testing.
JRubyGithub has left #jruby [#jruby]
<headius>
ok
<enebo>
headius: honestly threadpoll is for profiling and not used right now so it may just be the computeScopeFlags
<enebo>
headius: This is quite a bit simpler than old format
<headius>
excellent
<headius>
I will re-familiarize with the persistence stuff
<enebo>
headius: I think some of it has to stay the same like you need to record each scope as a section in the persisted format
<enebo>
headius: I believe I made a prologue for where scope data is located
<enebo>
headius: What I am really hoping is you figure out I am doing something which is horrendously slow
<enebo>
headius: since with —dev this was barely any different than full AST parse
<enebo>
headius: one other item which may be different. we share lots of immutable operands now (grabbed from IRManager). I think if you ask scope it will just magically give you those but it is worth making sure it happens since it is a big memory savings
<kfpratt>
@headius that is a lot more output, it appears from the stack trace that the error is coming from "org.jruby.ext.openssl.OpenSSL.load(JRuby.runtime)" line 22 of load.rb in jopenssl
<headius>
kfpratt: show us
<headius>
the raw backtrace should show down to the exact line where the NPE happens
<kfpratt>
My ssl config must be messed up on my machine. maven is also encountering an SSL error when I try and build.
djbkd has joined #jruby
<headius>
kfpratt: that's strange
<headius>
the error appears to be caused by the native bits of jruby-openssl loading before the Ruby bits, or else something's loading in a weird order
subbu has quit [Ping timeout: 240 seconds]
<kfpratt>
yeah, seems something is up with my java install.
<headius>
ok...if you still have trouble, file it at jruby/jruby-openssl on github
<headius>
me and kares_ and mkristian are around to figure it out
<kfpratt>
maven is even having a problem accessing https urls.
<kfpratt>
thanks for the help.
<headius>
e_dub: I just got a recruiter email for a lead Ruby person at LP
<headius>
kfpratt: no problem
<headius>
if you do file an issue, include all the traces you've shown
bbrowning_away is now known as bbrowning
<kares_>
kfpratt: also try -J-Djruby.openssl.debug=true
<headius>
kares_: it looks like it's failing trying to access the "debug" internal variable in OpenSSL module
<headius>
e.g. it's not set, so it's coming out as null
<headius>
look at his last trace and you'll see the lines pretty clearly
camlow32_ has joined #jruby
<kares_>
oh yeah - cause it happens while loading the ext ... missed that
camlow325 has quit [Ping timeout: 246 seconds]
temporalfox has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to test-hypernugget: http://git.io/xHPo
<JRubyGithub>
jruby/test-hypernugget 88eeb49 Thomas E. Enebo: OptimizeTempVarsPass is now just a collection of static methods and not inheriting from CompilerPass....
JRubyGithub has left #jruby [#jruby]
tcrawley is now known as tcrawley-away
<headius>
right
<headius>
hmmm although that could just have been from passing -d
<headius>
anyway, hopefully it was just environmental
nirvdrum has quit [Ping timeout: 272 seconds]
camlow32_ has quit [Remote host closed the connection]
<JRubyGithub>
[jruby] enebo pushed 2 new commits to test-hypernugget: http://git.io/xHFM
<JRubyGithub>
jruby/test-hypernugget 9fd5d46 Thomas E. Enebo: In case of jit.threshold=0 we should prime IR*Method to make ic has been made.
<JRubyGithub>
jruby/test-hypernugget 43f0463 Thomas E. Enebo: Add new test:mri:int_full which is jit.threshold=0 to force full build tests for full interpreter.
JRubyGithub has left #jruby [#jruby]
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 9 new commits to master: http://git.io/xHbh
<JRubyGithub>
jruby/master 735f42e Chris Seaton: [Truffle] Reword documentation as statements rather than questions.
<JRubyGithub>
jruby/master d7efedd Chris Seaton: [Truffle] Fix compilation of Time.now
<JRubyGithub>
jruby/master ada9180 Chris Seaton: [Truffle] Hash#[] with buckets looks ok for compilation.
JRubyGithub has left #jruby [#jruby]
colinsurprenant has quit [Client Quit]
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
havenwood has quit []
kares_ has quit [Quit: Leaving]
tcrawley-away is now known as tcrawley
elux_ has joined #jruby
<headius>
enebo: bumping permgen up to 512M made Java 7 run jit tests ok
<enebo>
ok
<headius>
I feel like maybe there's just enough new tests... MRI suite is like 50% bigger than what we run in 1.7
<headius>
it's possible it gets ahead of full GC too
<kfpratt>
@headius @kares_ It was an environment problem. My java 7 on this machine is broken. I had another copy of java installed and that seems to work correctly.
elux has quit [Ping timeout: 250 seconds]
<kfpratt>
switched my JAVA_HOME to that version and now I can install gems.
<headius>
kfpratt: ok thank you
<headius>
curious way for it to fail, though
aadam21_ has joined #jruby
Aethenelle has joined #jruby
<bjfish2>
chrisseaton would we want to bulk remove tags from all the current passing specs that are tagged?
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to master: http://git.io/xQfp
<JRubyGithub>
jruby/master 8706662 Charles Oliver Nutter: Bump timeout to 2s in case 1s is not enough on Jenkins.
JRubyGithub has left #jruby [#jruby]
aadam21 has quit [Ping timeout: 264 seconds]
camlow325 has quit [Remote host closed the connection]
<headius>
dfr|work: the position of the sleep seems fine to me...I assume the "change" matcher runs its block, then the given lambda, then the block again
<headius>
that would mean it gets the jar glob, waits, then rebuilds jar and tries again
<headius>
I'm going with the sleep increase first
aadam21_ has quit [Ping timeout: 255 seconds]
camlow325 has joined #jruby
<headius>
I did read some articles saying Linux (all? some?) rounds off last modified times to nearest second
<headius>
so 1s delay might not be enough to make it see the change
<headius>
it's note intermittent, though, so I don't have a lot of confidence this will fix it
<headius>
note=not
<headius>
time for me to check out for today...bbl
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to test-hypernugget: http://git.io/xQUD
<JRubyGithub>
jruby/test-hypernugget 974016f Thomas E. Enebo: Remove special fic check in getCFG. Partially brittle because I only guard in LOP pass for closures
camlow325 has quit [Remote host closed the connection]
<dfr|work>
headius, you're right >.<
<dfr|work>
headius, maybe it would make sense to not do the lambda fanciness because it's really confusing :)
<chrisseaton>
bjfish2: yeah but you may find they don't pass when you test after untagging
camlow325 has joined #jruby
<bjfish2>
chrisseaton i’m running a script now that checks ‘jt test’ after ‘jt tag’ and git checkouts the tag file if they fail, it’s a little slow but i’ll send a PR once it’s done
<bjfish2>
also has a timeout to kill the test if it takes more than 90 seconds
camlow325 has quit [Remote host closed the connection]
<chrisseaton>
bjfish2: how did you figure out to use jt? It's not even documented anywhere
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]