subbu has quit [Ping timeout: 250 seconds]
r0bby_ has quit [Ping timeout: 240 seconds]
r0bby_ has joined #jruby
vyorkin has quit [Quit: WeeChat 1.0.1]
bbrowning_away has quit [Quit: Leaving]
marr has quit []
postmodern has joined #jruby
diegoviola has quit [Quit: WeeChat 1.0.1]
r0bby_ has quit [Excess Flood]
r0bby_ has joined #jruby
x1337807x has joined #jruby
r0bby_ has quit [Ping timeout: 260 seconds]
r0bby_ has joined #jruby
subbu has joined #jruby
Aethenelle has joined #jruby
havenwood has quit []
josh-k has joined #jruby
josh-k_ has quit [Ping timeout: 272 seconds]
iamjarvo has joined #jruby
havenwood has joined #jruby
subbu has quit [Ping timeout: 246 seconds]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yfeldblu_ has quit [Remote host closed the connection]
yfeldblum has joined #jruby
zeroecco has joined #jruby
pgokeeffe has joined #jruby
r0bby_ is now known as robbyoconnor
robbyoconnor has quit [Quit: Konversation terminated!]
zeroecco has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
x1337807x has joined #jruby
pgokeeffe has quit [Quit: pgokeeffe]
Antiarc has quit [Quit: Instantbird 1.5 -- http://www.instantbird.com]
pgokeeffe has joined #jruby
Antiarc has joined #jruby
robbyoconnor has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
havenwood has quit []
pgokeeffe has quit [Read error: Connection reset by peer]
pgokeeffe has joined #jruby
pgokeeffe has quit [Client Quit]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
iamjarvo has joined #jruby
pgokeeffe has joined #jruby
pgokeeffe has quit [Quit: pgokeeffe]
kares has joined #jruby
yarker has quit [Remote host closed the connection]
yarker has joined #jruby
havenwood has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
JohnBat26 has joined #jruby
anaeem1_ has joined #jruby
anaeem1_ has quit [Remote host closed the connection]
anaeem1_ has joined #jruby
cajone has left #jruby [#jruby]
anaeem___ has joined #jruby
anaeem1_ has quit [Ping timeout: 245 seconds]
pchalupa has joined #jruby
usebrn has joined #jruby
<usebrn> hi all
anaeem___ has quit [Remote host closed the connection]
anaeem1_ has joined #jruby
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<usebrn> I have a problem with server running out of memory (using jRuby of course), it doesn't end with OOME exception, but makes FullGC occur all the time, but no memory is released.
<usebrn> The server is simply running Ruby Scripts in ScriptingContainer
<usebrn> CoompileMode is OFF, and each query to the server creates new SC, LocalContextScope is set to SINGLETHREAD, as each query is handled in separate Java Thread.
<usebrn> each script is parsed and then run
<usebrn> at the end I just call terminate on script
<usebrn> in jRuby 1.7.4 the problem with server hanging on FUllGC was not exposed, but when I updated jRuby to 1.7.16 it started to be troublesome
<usebrn> one colleague of mine suggested that the main issue of this situation is the fact that, somehow jruby.org.Ruby instances are not released
<usebrn> and suggested calling Ruby.clearGlobalRuntime()
<usebrn> as well as patch jruby so, finalize method was not present in ScriptingContainer
<usebrn> what makes me curious is also the fact, that when I commented out, lines where I setup Stderr and Stdout in SC with methods setError and setOutput, server seems to work better in terms of releasing memory
<usebrn> memory is released but only if really necessary which makes me think that it coult be possible by keeping softreferences somewhere
<usebrn> I connected to server with jconsole and started doing System.gc
<usebrn> but it didnt change the state of old gen
havenwood has quit [Remote host closed the connection]
<usebrn> while when I made a heapdump using jvisualvm, the memory was suddenly released, as if something more was done under the hood apart from GC made from jconsole
<usebrn> does anyone have some tips, where to start to solve this problem?
vyorkin has joined #jruby
vyorkin has quit [Client Quit]
benlovell has joined #jruby
QRip has joined #jruby
QRip has left #jruby ["Leaving"]
dumdedum has joined #jruby
Hobogrammer has quit [Ping timeout: 246 seconds]
dumdedum has quit [Ping timeout: 260 seconds]
ephemerian has joined #jruby
yfeldblum has quit [Ping timeout: 272 seconds]
mister_solo has joined #jruby
dumdedum has joined #jruby
dumdedum has quit [Ping timeout: 250 seconds]
thsig has joined #jruby
skade has joined #jruby
thsig has quit [Remote host closed the connection]
noop has joined #jruby
dumdedum has joined #jruby
thsig has joined #jruby
shellac has joined #jruby
shellac has quit [Remote host closed the connection]
shellac has joined #jruby
thsig_ has joined #jruby
thsig has quit [Ping timeout: 272 seconds]
statonjr has quit [Ping timeout: 260 seconds]
electrical_ is now known as electrical
elia has joined #jruby
calavera has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yfeldblum has joined #jruby
thsig_ has quit [Remote host closed the connection]
<chrisseaton> usebrn: I don't really know this area of JRuby, so I'm just throwing some ideas around, but are you supposed to create a new ScriptingContainer for every request? That seems kind of heavyweight
purplefox has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian force-pushed redefine-uri-classloader-meaning from 753d31f to 9d71d19: http://git.io/cwP5fQ
<JRubyGithub> jruby/redefine-uri-classloader-meaning 9d71d19 Christian Meier: make IsolatedScriptingContainer work on felix-4.2.1 and probably on other osgi frameworks outside the pax test cases
<JRubyGithub> jruby/redefine-uri-classloader-meaning 692bf65 Christian Meier: redefine uri:classloader: meaning to be the parent classloader of runtime.getJRubyClassLoader...
JRubyGithub has left #jruby [#jruby]
<usebrn> chrisseaton: Yeah, that is kind of heavyweight solution, but what is interesting is the fact that our heavyweight solution works when we use 1.7.4, but not when 1.7.16
<usebrn> I updated jruby lib to 1.7.16 because of some bug when using strftime in Ruby, and that bug disappeared after update, but our server started to be unresponsive
tcrawley-away is now known as tcrawley
<usebrn> I cloned jruby from github, and removed finalize() method from ScriptingContainer, as I am terminating it by myself so I dont need Finalizer to clean after me and it seemed to help a little bit
<usebrn> with finalize() method implemented in SC, CMS collector was throwing concurrent mode failure and Full GC was turned on, however after this FUll GC resources were not released
<usebrn> space taken by objects in old generation didn't decrease
<usebrn> When removed finalize from SC, our server is able to work somehow better but still it is far from expected behaviour
<usebrn> what concerns me is a number of org.jruby.Ruby objects as well as org.jruby.embed.ScriptingContainer objects
<usebrn> even if out query is already gone and no references from our application exist, these org.jruby.Ruby objects and ScriptingContainer objects are kept by something
drbobbeaty has joined #jruby
<usebrn> In the past we used some sort of caching, we had RubyQueryEvaluator provider who kept cached ScriptingContainers, but it caused some problems, at least that is what I got to know (this project is inhertied and I've been supporting it for some time now)
<usebrn> So probably I will try to go back to the idea of cached queries (ScriptingContainers), but before I do this, I would like to solve the issue which showed up after update to 1.7.16
<chrisseaton> Anything that relies on finalize is going to be unpredictable and sensitive to changes in the VM version - so I would always clean up manually rather than relying on it
<chrisseaton> But it sounds like you've thought about this carefully so can you submit an issue on GH please?
<usebrn> yes, I finish ScriptingContainer by calling terminate(), but it seems to be not enough, So I am thinking about removing from jruby all finalize() methods, which are there only to prevent from programming errors.
mister_solo has quit [Ping timeout: 272 seconds]
kares has quit [Ping timeout: 245 seconds]
<usebrn> Why this concept of Finalizable is used in JRuby anyway ?
<usebrn> it seems to be not the best idea to use finalize() at all..
<chrisseaton> We have to use finalize in case someone doesn't clean up themselves
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<usebrn> ok, thanks for your comments, for the future what would be the best configuration for handling requestes from clients
<usebrn> I have a pool of threads where each thread handled one query at a time
<usebrn> caching ScriptingContainers? or is there some instance of Script wchich could be cached instead of Container?
mjelen has joined #jruby
<usebrn> could our server has only one SC and use it from many Java threads which all would run some query ?
<chrisseaton> sorry I'm not really an expert on that - try again here in a few hours (Minneapolis time)
<chrisseaton> but yeah I would normally expect a single instance of the JRuby runtime and multiple threads running to serve requests
<chrisseaton> by creating a new container each time I think you're essentially running from cold each time, so you're JITing everything from scratch, which generates a lot of junk that is hard to clean up efficiently
<usebrn> I will need to talk to my colleague who implemented that, but he probably didnt immerse into JRuby so much as well, so maybe he was just not aware of all options.
<usebrn> as for now I am going back to analyse it more.
<usebrn> thanks,
mister_solo has joined #jruby
thsig has joined #jruby
thsig_ has joined #jruby
thsig has quit [Ping timeout: 272 seconds]
iamjarvo has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
drbobbeaty has quit [Quit: Textual IRC Client: www.textualapp.com]
yfeldblum has quit [Ping timeout: 272 seconds]
rcvalle has joined #jruby
calavera has joined #jruby
benlovel1 has joined #jruby
benlovell has quit [Ping timeout: 245 seconds]
bbrowning has joined #jruby
kares has joined #jruby
drbobbeaty has joined #jruby
marr has joined #jruby
ludyte has joined #jruby
anaeem1_ has quit [Remote host closed the connection]
ludyte has quit [Quit: ludyte]
benlovell has joined #jruby
benlovel1 has quit [Read error: Connection reset by peer]
iamjarvo has joined #jruby
calavera has quit [Ping timeout: 244 seconds]
calavera has joined #jruby
rolfb has joined #jruby
lance|afk is now known as lanceball
yfeldblum has joined #jruby
yfeldblum has quit [Ping timeout: 272 seconds]
mbj has joined #jruby
subbu has joined #jruby
benlovell has quit [Ping timeout: 272 seconds]
rolfb has quit [Quit: Leaving...]
cajone has joined #jruby
<headius> morning
<headius> eregon: known to be by us or known to be by some higher power?
<headius> unstable specs, that is
<headius> usebrn: that finalization behavior is not ideal and I've changed it on master
mbj has quit [Quit: leaving]
<headius> you will want to avoid recreating containers for every request, most of the time...is that something you really need to do?
e_dub has quit [Quit: ZZZzzz…]
tcrawley is now known as tcrawley-away
johnsonch_afk is now known as johnsonch
<usebrn> headius, well I dont know if I need that, I inherited that project and this is a current approach
<usebrn> Probably I will have to change it
<usebrn> I added explicit call to Ruby.clearGlobalRuntime() after ScriptingContainer.terminate(), but not sure if it is going to help much
<usebrn> What is strange for me is the fact that when I stopp all the queries
<usebrn> org.jruby.Ruby objects are still present
<usebrn> event after doing several GC
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tcrawley-away is now known as tcrawley
iamjarvo has joined #jruby
robbyoconnor has quit [Read error: No route to host]
<headius> Something would be holding them in memory then; that shouldn't happen if the container can GC
<headius> if that continues to grow, it would mean there's a leak and there's tools to find out where
robbyoconnor has joined #jruby
<usebrn> yeah I already made a dump, tomorrow I am going to take look at it.
<headius> usebrn: if you don't need to recreate the container every request, caching it thread-local would be a clean way to separate request threads
<headius> singlethread is supposed to do this behind the scenes for you but there may be some finalization oddities affecting you
<usebrn> I removed finalize from ScriptingContainer
<headius> in any case, put what you know in a bug if you think it's a bug, or if you just need further clarification a bug or mailing list post will help
<usebrn> ok, thanks for help, tomorrow I will continue investigation
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 5 new commits to non-indy-jit: http://git.io/wzyZDA
<JRubyGithub> jruby/non-indy-jit 02e94b5 Charles Oliver Nutter: Eliminate last of pre-JIT logic, since JIT gets clean IR now.
<JRubyGithub> jruby/non-indy-jit 71ee348 Charles Oliver Nutter: Clean up imports.
<JRubyGithub> jruby/non-indy-jit bc83206 Charles Oliver Nutter: Early fix for #2058...
JRubyGithub has left #jruby [#jruby]
<headius> usebrn: ok :-)
enebo has joined #jruby
<headius> enebo: review #2058 fixes for me
<headius> more from a design perspective
<enebo> headius: ok
tenderlove has joined #jruby
<headius> enebo: subbu: I have a single-file repro of JIT bail-out causing IR to no longer be interpretable: https://github.com/jruby/jruby/issues/2059
benlovell has joined #jruby
<subbu> headius, did you see my mail reg. this from friday night?
<subbu> enebo, headius with this diff applied (https://gist.githubusercontent.com/subbuss/6559b50259dd6e6d36a7/raw/ae50991c1d94f159e6f50369f4b5145965a0967a/gistfile1.txt) ... interp speeds up quite a bit ... and as fast as or faster than the ir interp in 1.7 branch ...
<enebo> headius: so symbol.constant is where handle is cached for symbol but you use fixnum cache to hold either live fixnum or its handle?
<enebo> headius: so sorry fixnumConstants
<enebo> so=oh
<enebo> :)
<subbu> so, that is a good reason to build an interp that handles all cases and another one that doesn't handle all of this .. sub-classing should take care of it.
<enebo> headius: I misread this and thought you had changed actual fixnumCache
<headius> subbu: I did see your mail but have not internalized it yet
<enebo> headius: This seems reasonable to me. concurrency issues?
<headius> enebo: not really...if two constants are created for a single value, it just means one will GC later
<headius> if the abstraction as is looks ok I'll run with it for now
<enebo> headius: ok that is fine and hopefully not too common
<enebo> headius: yeah I think so. ask type for it and look up from constant source and them make constant handle source
<subbu> headius, but, your 1-file repro should help investigation.
<headius> subbu: looking at your patch above
<headius> subbu: I assume the removal of unboxed logic is unrelated
<enebo> subbu: yeah so this is basically the subset interpreter idea proven right?
<subbu> headius, i basically got rid of everything that is extraneous to what interp normally runs (rather than what we run with all kinds of passes enabled to verify accuracy of passes via interp)
<enebo> subbu: small subset of common instrs makes a smaller interpreter which hotstop opts better?
<subbu> enebo, kind of .. this didn't help much previously in 1.7 branch ... so, for some reason, we probably crosses some threshold with all our recent changes that it does seem to.
<enebo> subbu: but you can still handle any instr by calling .interpreter on instr
<subbu> every 3-6 months, I test this and first time, I am seeing this make a diference.
<headius> so the big change here is removing custom logic to push/pop scope and frame and just letting instr logic do it
<enebo> subbu: yeah
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<enebo> headius: well he is getting rid of a lot of basic instrs here
<subbu> enebo, not quite .. reg. calling .interpret .. since boxing/unboxing requires setting up tmps for the other types .. etc.
<enebo> uncommon ones htough
pchalupa has quit [Quit: Computer has gone to sleep.]
<enebo> subbu: yeah unless we pass those through interpret :)
<subbu> hence subclassing where at startup we can examine passes/ commandline an dpick the right interp.
<headius> fwiw, once we get back to unboxing, we could pack everything in a single long[]
<headius> they're just bits coming back out
<enebo> subbu: yeah I basically wanted to do this but I never did this because I want to change interpret() signature on Interpreter
<subbu> k.
<enebo> subbu: I think we should make a clean unboxed arguments version then start subclassing
<enebo> subbu: otherwise we will be unboxing n versions
<enebo> subbu: but each time I start the unbox adventure my hands start cramping :)
<enebo> I have a tally of instrs used for rails booting somewhere
<subbu> ok. this is an experiment to feed the code restructuring.
<enebo> subbu: yeah I should read your email before asking more :)
<subbu> i'll let you to two handle that bit.
<subbu> enebo, the email is more reg. the JIT -> interp transition and the failure that headius reported.
<subbu> "handle that bit" referred to interp restructuring.
<enebo> subbu: I like the idea of complete interpreters which can run but my idea was to know complete subset and reduce it to a subset interp. So I think these are more related than the same
<enebo> subbu: ah ok I see
<enebo> subbu: but the refactoring to allow n interp instances is the same work
<enebo> subbu: and subclassing also means these are no longer static
<enebo> subbu: which was sort of an unknown
josh-k has quit [Remote host closed the connection]
<subbu> ya, not sure how subclassing / static affects what hotspot can do.
iamjarvo has joined #jruby
iamjarvo has quit [Max SendQ exceeded]
<subbu> i was just trying to reduce the size of code that hotspot has to analyze.
Hobogrammer has joined #jruby
iamjarvo has joined #jruby
e_dub has joined #jruby
noop has quit [Ping timeout: 260 seconds]
nirvdrum has joined #jruby
Aethenelle has joined #jruby
yfeldblum has joined #jruby
<subbu> enebo, headius actually, i was wrong. the master branch IR interp is still slower than 1.7 branch IR interp even after these changes (whereas 1.7 branch IR interp still has all the unboxing, push/pop frame code in the interp loop).
mister_solo has quit [Ping timeout: 240 seconds]
ephemerian has quit [Quit: Leaving.]
<subbu> between 5-10%.
yfeldblum has quit [Ping timeout: 260 seconds]
<headius> not bad
justinsmestad has joined #jruby
viking has joined #jruby
viking has joined #jruby
<subbu> 1.7 branch doesn't have unboxing looks like and is a much older version of the interpreter.
<chrisseaton> wow the guys in #ruby are horrible
anaeem1 has joined #jruby
havenwood has joined #jruby
anaeem1 has quit [Read error: Connection reset by peer]
<headius> wild wild west
tenderlove has quit [Quit: Leaving...]
<chrisseaton> I once tried to contribute to the Mono project. They had a list of tasks that they needed new people to do. And the abuse I got was insane. Two people had their own incomplete abandoned implementation of the task, and they both called me idiots for not using theirs. Well I couldn't use both! And I was volunteering to do it where they had given up.
Hobogrammer has quit [Ping timeout: 255 seconds]
benlovell has quit [Ping timeout: 260 seconds]
<headius> yeah, I'm amazed how hostile some project admins are
<headius> admins/core/contribs
tenderlove has joined #jruby
<chrisseaton> I should have dug up the emails for your OSS presentation
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to non-indy-jit: http://git.io/4bjo0w
<JRubyGithub> jruby/non-indy-jit efabe06 Charles Oliver Nutter: Lift constant handle caching to all objects and wire it up....
JRubyGithub has left #jruby [#jruby]
<headius> chrisseaton: yeah, I need more examples of really bad behavior
<headius> suitably anonymized of course
<headius> enebo: that's my last constant handle tweak for now, so going to resolve it
<enebo> chrisseaton: Another comment about #ruby is depending on time of day you get much different opinions about any question that is asked
<Aethenelle> headius: I assume you already have linux in there?
<headius> no caching in places for floats or bignums... might be worth it for a couple common integral valued floats
<headius> Aethenelle: i.e. Linus? No, but I could
<enebo> chrisseaton: Asking a question about visibility is probably about the fuzziest thing you could possibly ask as well.
zeroecco has joined #jruby
<Aethenelle> What about projects like IronRuby that never really get support even from the main conributor?
<headius> I consider IronRuby abandoned, or with a lead that doesn't care about it anymore
<headius> I should add info about knowing when to let a project good
<headius> good=go
<Aethenelle> headius: It's been pretty much that way since it started...
<headius> there's already way too much in my talk, so this will likely be a series of blog posts
<headius> Aethenelle: I worked with them a little bit early on, but politics at MS kept them from accepting contributions easily and prevented them from doing development in the open first (i.e. they were forced to commit to internal TF servers, with periodic dumps from there to public repo)
<headius> they were excited at the beginning, but MS culture eventually kills OSS dead
thsig_ has quit []
pchalupa has joined #jruby
pchalupa has quit [Client Quit]
x1337807x has joined #jruby
<dfr|work> headius, are you working on a presentation about OSS community? :)
zeroecco has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ludyte has joined #jruby
yfeldblum has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yfeldblum has quit [Ping timeout: 246 seconds]
justinsmesta has joined #jruby
marr has quit [Ping timeout: 260 seconds]
blinsay_ is now known as blinsay
justinsmestad has quit [Ping timeout: 240 seconds]
zeroecco has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
shellac has quit [Quit: Ex-Chat]
imperator has joined #jruby
<headius> dfr|work: I made one already, but there's so much content I'm going to turn it into a series of blog posts or a book
<dfr|work> headius, :D
<dfr|work> headius, did you cover ##java? :)
diegoviola has joined #jruby
<imperator> headius, you still blog?
<headius> not really :-\
<headius> I've had trouble prioritizing it over all the JRuby work to be done
<headius> and other projects
<dfr|work> in any case, I'm very much enjoyign the JRuby community. But it is possible that's due to the fact that it's rather small :)
<headius> it waxes and wanes
<imperator> headius, shame, i enjoyed reading your posts
erikhatcher has joined #jruby
<headius> imperator: I enjoyed writing them...maybe after 9k is done I can get back to it
JohnBat26 has quit [Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
tenderlove has quit [Remote host closed the connection]
blinsay is now known as blinsay_
bbrowning is now known as bbrowning_away
tenderlove has joined #jruby
justinsmesta has quit [Ping timeout: 260 seconds]
<headius> subbu: your email put the right thoughts in my head to fix this, thanks
<subbu> ok, great!
<headius> yup, that worked
<headius> AddCallProtocol was altering flags on IRScope, indicating that call protocol is active
<headius> but interp is using pre-call-protocol instrs...so I just needed to modify InterpreterIRMethod to look at the copied flags rather than those in IRScope
<subbu> aha .. good catch.
<headius> damn, so close to threshold=0 being able to gem install
elia has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to non-indy-jit: http://git.io/ejJ7Yg
<JRubyGithub> jruby/non-indy-jit 65b77b0 Charles Oliver Nutter: Use cloned flags rather than master copy for interpreter.
JRubyGithub has left #jruby [#jruby]
obs has joined #jruby
<subbu> headius, maybe that explicit flag on the method is not required anymore .. is it just a carryover from ir-flags refactoring that didn't get cleaned up?
ephemerian has joined #jruby
<headius> well as it stands right now, JIT *only* works with explicit call protocol
<headius> interpreter works with either
<headius> I have no plans to implement non-explicit call protocol for JIT since there's no value in doing frame and scope management outside the code body in JIT
<headius> so...JIT's always going to assume call protocol is present, and interpreter probably wants call protocol to never be present
<subbu> headius, interpreter works either way as long as the flags are consistent with the instrs.
blinsay_ is now known as blinsay
<subbu> enebo, headius but, if interp can get info from IR flags, and JIT doesn't check the flag, then we should just strip out that useless scope flag which is a potential source of inconsistencies / errors (as in this case).
<headius> right, ok
skade has joined #jruby
yfeldblum has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
erikhatcher has quit [Quit: erikhatcher]
yfeldblum has quit [Ping timeout: 255 seconds]
x1337807x has joined #jruby
bbrowning_away is now known as bbrowning
<enebo> subbu: headius: Removing flags + flags cloning from interpretercontext and just leaving the fields you (subbu) made
<subbu> enebo, i thought flags cloning was good?
<enebo> subbu: it is fine but why have the flags and clone them if we never access them?
<subbu> we access the cloned flags in interpreted-ir-block-body and in interpreted-ir-method
<subbu> and jit uses the uncloned flags
<enebo> subbu: show me where we access the flags we save?
<subbu> for compiled-ir-block-body .. if i got it right.
ludyte has quit [Quit: ludyte]
<subbu> let me look .. maybe i haven't kept up with the code changes :)
<enebo> subbu: your code changes eliminated flags use directly
ludyte has joined #jruby
<enebo> subbu: since you made boolean fields on IC to replace accessing flags
<subbu> if (ic.pushNewDynScope()) { in InterpretedIRBlockBody uses the flags from interp-context.
n1ftyn8_ has joined #jruby
<subbu> and https://github.com/jruby/jruby/commit/65b77b04139012a18ff85cbb5389af75757f39c8 uses the cloned flags in interp-context as well.
Aethenelle has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
<enebo> subbu: but those fields are not the enumset flags
<enebo> subbu: those are your booleans we get from the enumset flags
<enebo> subbu: I only am removing the actual enumset since we don’t use it
<enebo> subbu: The second comment can either be another boolean like the other fields you made or removed if we ignore those call protocol instrs?
<subbu> ah, you are saying compute flags that are required in the constructor of Interpretercontext and discard the actual enumset?
<subbu> you can add another boolean for call-protocol-instrs, yes.
<enebo> subbu: yeah since we never use the physical enumset because the clone is the new boolean fields essentially
<subbu> right.
<subbu> and you can remove the call-protocol-flag from the scope as well since that is just leftover from earlier refactoring.
<subbu> k
<enebo> subbu: but then that if can go away too right?
<enebo> if (method.hasExplicitCallProtocol()) return Interpreter.INTERPRET_METHOD(context, this, self, name, args, block);
<enebo> This line should just be eliminated
<subbu> no, the fix that headius made is still required.
<subbu> so we don't push/pop bindings in InterpreterIRMethod in that case.
<enebo> subbu: but then I am confused about the flag removal
<subbu> so, the same flag is present on the scope and in the enumset in the scope.
<enebo> oh is it?
<subbu> i am suggesting removing the flag on the scope and just use the enumset.
<enebo> HAH..ok that makes a lot more sense
<subbu> yes.
<enebo> what is the name of that field offhand?
<subbu> hasExplicitCallprotocol is the method that used the flag on IRScope/IRMethod
<enebo> subbu: yes
<enebo> subbu: oh you just mean that method then
<enebo> subbu: since that method uses flags in its impl
<subbu> oh, never mind me then :) my memory is foggy.
<subbu> and i am multiplexing 3 ways.
<subbu> debugging.
<enebo> OVERLOAD!!!
colinsurprenant has joined #jruby
mkristian has joined #jruby
imperator has quit [Ping timeout: 260 seconds]
oblutak has joined #jruby
phrinx has joined #jruby
iamjarvo has joined #jruby
subbu is now known as subbu|lunch
<headius> subbu|lunch: with one more fix, threshold=0 can rspec or gem install on my branch
<headius> I can merge it back soon
<subbu|lunch> awesome ...
havenwood has quit [Remote host closed the connection]
havenwood has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<headius> enebo: we need a better index.html for the nightlies
<headius> it just gives S3 XML right now
yfeldblum has joined #jruby
noop has joined #jruby
e_dub has joined #jruby
yfeldblum has quit [Ping timeout: 265 seconds]
<chrisseaton> who pays for the S3 and the web page and stuff like that BTW? RedHat?
<headius> Engine Yard still does
<headius> they offered to continue hosting it if we put some branding on there
<chrisseaton> I think Oracle has a stake in Engine Yard now, not sure
<headius> yay, I crashed hotspot
<headius> I know Oracle is partnering with EY on some stuff but I don't know how deep it goes
robbyoconnor has quit [Ping timeout: 240 seconds]
Aethenelle has quit [Quit: Aethenelle]
<enebo> headius: oh yeah an index is ok
<headius> enebo: the filenames don't change
<enebo> headius: exactly
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 3 new commits to non-indy-jit: http://git.io/gF0OBg
<JRubyGithub> jruby/non-indy-jit 9ac0aed Charles Oliver Nutter: Another fix for hash construction from array of values.
<JRubyGithub> jruby/non-indy-jit fe76c37 Charles Oliver Nutter: Fix alignment of fixnum constant cache.
<JRubyGithub> jruby/non-indy-jit ad8ac98 Charles Oliver Nutter: Add arity length guards to avoid emitting bad call paths.
JRubyGithub has left #jruby [#jruby]
<headius> with that push, JVM6 and JVM7 JIT have same failures in compiler tests and can run gem install and rspec with threshold=0
<headius> I'm going to confirm tests now to make sure it doesn't ungreen us
ephemerian has quit [Ping timeout: 272 seconds]
<rtyler> I wonder if it is possible for `Dir.pwd` to be a jar-file location, e.g. file:/home/tyler/my.jar!
<headius> probably not at the moment... pwd and chdir are explicitly managed and I'm sure we don't check if pwd is a URL
<headius> not that it couldn't...it just doesn't
<rtyler> hrm
<rtyler> rats, I was hoping to avoid ever having to implement an "extract jar to /tmp" hack like warbler does for jruby-gradle
<headius> enebo: subbu|lunch: I'm seeing swallowed IR exceptions during spec:ruby:fast
<enebo> headius: 2 involving range?
<headius> yes
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 2 new commits to master: http://git.io/AH2laA
<JRubyGithub> jruby/master c141f0d Charles Oliver Nutter: Use cloned flags rather than master copy for interpreter.
<JRubyGithub> jruby/master 6a34a20 Thomas E. Enebo: Stop using a clone flags since we store them as fields
JRubyGithub has left #jruby [#jruby]
<enebo> headius: Those are known…range should not be an operand
<enebo> headius: we will be making a buildRange instruction in place of that
<headius> ok
<enebo> headius: operands should not be capable of generating exceptions. It was just a mistake.
<headius> ahh, ok
subbu|lunch is now known as subbu
erikhatcher has joined #jruby
<subbu> yes, i optimistically created operands for most of the core literal types and only recently discovered that some of them throw exceptions (after I added a sanity check in the interp loop).
<headius> ok, this is weird
<headius> I'm getting three failures in *encoding* specs that relate to dummy encodings... on JIT branch... with JIT off
<headius> I don't have indy on either
iamjarvo has joined #jruby
calavera has joined #jruby
<headius> harumph
e_dub has quit [Read error: Connection reset by peer]
JohnBat26 has joined #jruby
<enebo> headius: Hmmm I might be using Java 7
e_dub has joined #jruby
<enebo> headius: re-running with 8 to make sure there is not some encoding diff between the two
lanceball is now known as lance|afk
<headius> enebo: oh, I don't get it on master
<headius> maybe there's an encoding bug only showing on my branch? That would be weird
<enebo> yeah no error with 8 either
<headius> doh
<headius> my fault
<headius> peripheral breakage from constant opto
<enebo> headius: oh you put on non-indy first?
<headius> I was testing on non-indy
<enebo> ah I see
<headius> I want to merge back without ungreening
ludyte has quit [Quit: ludyte]
multibot_ has quit [Remote host closed the connection]
multibot_ has joined #jruby
elia has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Aethenelle has joined #jruby
blinsay is now known as blinsay_
blinsay_ is now known as blinsay
iamjarvo has joined #jruby
ahadding_ has quit [Ping timeout: 260 seconds]
lance|afk is now known as lanceball
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius created test-non-indy-jit (+1 new commit): http://git.io/sdYd3w
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/test-non-indy-jit 981e602 Charles Oliver Nutter: Merge remote-tracking branch 'origin/master' into non-indy-jit...
subbu has left #jruby ["Ex-Chat"]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ludyte has joined #jruby
ahadding_ has joined #jruby
<lopex> non-jitty-indy!
mkristian has quit [Ping timeout: 260 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/FB15sw
<JRubyGithub> jruby/master 4e3a4e2 Thomas E. Enebo: receivesKeywordArgs irscope -> interpretercontext
JRubyGithub has left #jruby [#jruby]
erikhatcher has quit [Quit: erikhatcher]
yfeldblum has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
elia has quit [Quit: (IRC Client: textualapp.com)]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/zbKqwA
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/master 9c391cf Thomas E. Enebo: Remove some unused internal parameters
subbu has joined #jruby
mkristian has joined #jruby
tenderlove has quit [Remote host closed the connection]
skade has quit [Quit: Computer has gone to sleep.]
postmodern has quit [Quit: Leaving]
postmodern has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
fridim_ has joined #jruby
x1337807x has joined #jruby
<chrisseaton> question about require and LOAD_PATH. My load path doesn't include individual the individual gem directories. So when I require 'foo' how does it know to look in 'gems/foo/lib/foo' to find foo.rb?
<chrisseaton> Is it a convention thing?
<nirvdrum> chrisseaton: rubygems hooks in and catches the LoadError and dynamically modifies the LOAD_PATH for you.
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian force-pushed redefine-uri-classloader-meaning from 9d71d19 to 7d857a7: http://git.io/cwP5fQ
<JRubyGithub> jruby/redefine-uri-classloader-meaning c2e0cd3 Christian Meier: redefine uri:classloader: meaning to be the parent classloader of runtime.getJRubyClassLoader...
<JRubyGithub> jruby/redefine-uri-classloader-meaning 7d857a7 Christian Meier: make IsolatedScriptingContainer work on felix-4.2.1 and probably on other osgi frameworks outside the pax test cases
JRubyGithub has left #jruby [#jruby]
<chrisseaton> nirvdrum: ah ok - I guess this automatic integration between Ruby and RubyGems even though they're separate projects is just historical?
ludyte has quit [Quit: ludyte]
skade has joined #jruby
<headius> chrisseaton: only way to do it, really... require and load don't expose their file-searching and file-loading halves directly, so rubygems has to wrap require and let it failover
nirvdrum_ has joined #jruby
<chrisseaton> nirvdrum headius: is there an environment variable for where RubyGems looks for gems? I can't see one in my environment (I'm using rbenv)
<headius> it has some default settings but can be overridden by env vars
<headius> rbenv may set something up, I don't know
<nirvdrum_> GEM_HOME and GEM_PATH I think.
<headius> yeah
<nirvdrum_> I never remember the difference between the two.
<headius> me neither
<nirvdrum_> rbenv doesn't set either.
<mkristian> GEM_HOME is the place where new gems get installed
<nirvdrum_> So I think things then fallback to a location relative to the ruby bin.
<mkristian> GEM_PATH is the look up path
nirvdrum has quit [Ping timeout: 255 seconds]
<nirvdrum_> mkristian: In practice, aren't they virtually always the same?
<Aethenelle> nirvdrum_: the first entry of GEM_PATH is usually GEM_HOME but others may follow
<mkristian> guess most people just set them to the same value
<Aethenelle> rvm winds up with at least two entries in GEM_PATH
yfeldblu_ has joined #jruby
<headius> enebo, subbu: AddCallProtocol seems to be adding scope/frame to methods that don't need it
<headius> like def foo(a); a; end
iamjarvo has joined #jruby
yfeldblum has quit [Ping timeout: 265 seconds]
<headius> ahh...subbu turned off my opto lines because of some failure
<enebo> headius: oh heh…so ACP is off?
<headius> Proc.new with no block should be illegal
<headius> I bet I could get matz to do it
lanceball is now known as lance|afk
<headius> ACP is not off, it's just going full deopt all the time
<subbu> deploying code .. her ein a bit.
<enebo> bitte ein bitt
marr has joined #jruby
<enebo> your comment looks nearly like German
<enebo> Herr ist arbeitloss.
nirvdrum_ is now known as nirvdrum
Aethenelle has quit [Quit: Aethenelle]
elia has joined #jruby
JohnBat26 has quit [Ping timeout: 240 seconds]
calavera has joined #jruby
<subbu> headius, enebo yes .. i turned off because of rubyspec failures I saw when acp was turned on.
<subbu> and that frame elimination opt was on.
<subbu> but, if that is not a useful test case we can mark the test non-compliant on jruby and re-enable it.
<headius> subbu: I'm working on a fix
<headius> I think we should explicitly error for Proc.new without a block, because it's an old MRI impl artifact
<subbu> headius, and you don't need a frame for these cases:
<subbu> case CAN_RECEIVE_BREAKS:
<subbu> case CAN_RECEIVE_NONLOCAL_RETURNS:
<subbu> case HAS_NONLOCAL_RETURNS:
<subbu> in IR mode, we use a dyn-scope for those.
<subbu> in ast, you used a frame for them.
<headius> ok
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-non-indy-jit:981e602 by Charles Oliver Nutter): The build failed. (http://travis-ci.org/jruby/jruby/builds/38528305)
travis-ci has left #jruby [#jruby]
tenderlove has joined #jruby
<headius> getting there
tenderlove has quit [Remote host closed the connection]
<headius> wha
tenderlo_ has joined #jruby
<headius> I fixed that
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
noop has quit [Ping timeout: 258 seconds]
lance|afk is now known as lanceball
<headius> subbu, enebo: vet my approach... I'm adding a flag to Callinstr "procNew" that IRBuilder sets when the call is literally "Proc.new"
Aethenelle has joined #jruby
<headius> that's used in computeFlags then
<enebo> hmm
yfeldblu_ has quit [Remote host closed the connection]
tylersmith has joined #jruby
yfeldblum has joined #jruby
<enebo> headius: so a hint that it might be a Proc.new?
<headius> yeah basically
<headius> same hack as old compiler opto, but just as a flag on CallBase
<enebo> but Foo = Proc; Foo.new won’t work
<headius> it didn't before either
<headius> I only made Proc.new work in that exact form, because it's stupid
<enebo> ok well I am guessing no one does it :)
<headius> I think we got one report about it and I said I wouldn't fix it...so they did
imperator has joined #jruby
<enebo> headius: yeah in my book any pseudo fixes we cannot figure out in new world we have said we can leave in since history has demonstrated not many folks have run into it
<subbu> i'll let you two make these decisions since i don't have history about all this .. but in my ideal world, i would much rather have these become deprecated features.
<headius> boolean requireBinding = bindingHasEscaped || scopeHasLocalVarStores || !scope.getFlags().contains(IRFlags.DYNSCOPE_ELIMINATED);
<headius> I think that's wrong
<headius> I think it should be && !scope....(DYNSCOPE_ELIMINATED)
<headius> i.e. if binding has escaped OR scope has local var stores AND scope has not been explicitly eliminated
<subbu> i think it just be the last bit.
<headius> I can certainly make it just be the last bit if that reflects the others
<subbu> in latest code, that flag is set whenever it is eliminated.
<subbu> requireBidning = !scope.getFlags().contains(IRFlags.DYNSCOPE_ELIMINATED);
<subbu> *Binding
<headius> hmmmm ok
<headius> it isn't getting added for def foo(a); end
<headius> wait
<headius> isn't that only for closures?
<headius> I don't think we're doing any passes that would set that for method bodies, are we?
<headius> this is in AddCallProtocol
<subbu> it is set for methods and blocks.
<headius> and isn't that in the dynscope pass we have turned off for bugs right now?
<headius> maybe it works now
<subbu> it should be active in master. let me look at code.
<headius> we turned it off on my branch because it was making thigns difficult...I'll try turning it on again
<subbu> enabled in master.
<headius> ok
<headius> looking better
<headius> I couldn't figure out why fib went from a bit slower to an order of magnitude slower :-)
<headius> 0check_arity req: 1, opt: 0, *r: -1, kw: false, **r: -1
<headius> 1thread_poll
<headius> 2return(nil)
<headius> now THAT'S what I expected it to look like
<subbu> heading to a coffee shop. getting stir crazy at home :) back online in 15-20 mins.
<headius> ok
<headius> :-( but JIT regresses now
iamjarvo has joined #jruby
subbu has quit [Ping timeout: 255 seconds]
e_dub has quit [Quit: ZZZzzz…]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to non-indy-jit: http://git.io/YSEB8g
<JRubyGithub> jruby/non-indy-jit 0a4f1ef Charles Oliver Nutter: Fixes for AddCallProtocol pass....
JRubyGithub has left #jruby [#jruby]
e_dub has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/5cuHmg
<JRubyGithub> jruby/master 39f4e92 Thomas E. Enebo: Let IC determine new dynamic scope (now with closure fail fast code)
JRubyGithub has left #jruby [#jruby]
ludyte has joined #jruby
kares has quit [Ping timeout: 265 seconds]
mkristian has quit [Quit: bye]
<headius> enebo: I have to run
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo> ok
<headius> let subbu know there still seems to be problems with OptimizedDynScopes
<headius> I have not sorted it out, but threshold=0 + gem install on my branch will hit it...a variable isn't what it should be
<enebo> headius: ok
tenderlo_ has quit [Quit: Leaving...]
<headius> something about the var fixup maybe
<headius> anyway, ttfn...we should meet this week a couple times
diegoviola has quit [Remote host closed the connection]
tenderlove has joined #jruby
ludyte has quit [Quit: ludyte]
<chrisseaton> crazy or genius: a way to intercept reads and writes of globals so you can mock them?
subbu has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/i_RV4Q
<JRubyGithub> jruby/master e71749f Thomas E. Enebo: Nearly have IRScope removed from interpreter in attempt to promote InterpreterContext to top dog....
JRubyGithub has left #jruby [#jruby]
tcrawley is now known as tcrawley-away
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:4e3a4e2 by Thomas E. Enebo): The build has errored. (http://travis-ci.org/jruby/jruby/builds/38529429)
travis-ci has left #jruby [#jruby]
johnsonch is now known as johnsonch_afk
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
x1337807x has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
e_dub has joined #jruby
bbrowning is now known as bbrowning_away
Aethenelle has quit [Quit: Aethenelle]
imperator has quit [Quit: Leaving]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
obs has quit [Quit: Saliendo]
viking has quit [Remote host closed the connection]
oblutak has left #jruby [#jruby]
nirvdrum has quit [Ping timeout: 260 seconds]
momomomomo has joined #jruby
brettporter has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/_umQqQ
<JRubyGithub> jruby/master 1134fe3 Thomas E. Enebo: Make ICs no longer be operands...
JRubyGithub has left #jruby [#jruby]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
enebo has quit [Quit: enebo]
e_dub has quit [Quit: ZZZzzz…]
iamjarvo has joined #jruby
blinsay is now known as blinsay_
josh-k has joined #jruby
zeroecco has quit [Ping timeout: 260 seconds]
skade has quit [Quit: Computer has gone to sleep.]
robbyoconnor has joined #jruby
pgokeeffe has joined #jruby
r0bby_ has joined #jruby
pgokeeffe has quit [Client Quit]
robbyoconnor has quit [Ping timeout: 258 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:b11ff3f by Thomas E. Enebo): The build has errored. (http://travis-ci.org/jruby/jruby/builds/38533094)
travis-ci has left #jruby [#jruby]
drbobbeaty has joined #jruby
r0bby_ is now known as robbyoconnor
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 5 new commits to master: http://git.io/MbkTeQ
<JRubyGithub> jruby/master cd5a5ae Chris Seaton: [Truffle] Dir#glob.
<JRubyGithub> jruby/master df83810 Chris Seaton: [Truffle] #instance_eval with a String.
<JRubyGithub> jruby/master 062573b Chris Seaton: [Truffle] File.read.
JRubyGithub has left #jruby [#jruby]
robbyoconnor has quit [Max SendQ exceeded]
robbyoconnor has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/9E4k6A
<JRubyGithub> jruby/master ac42880 Subramanya Sastry: Preserve update of currDynScope in interpreter loop....
JRubyGithub has left #jruby [#jruby]
e_dub has joined #jruby
momomomomo_ has joined #jruby
momomomomo has quit [Ping timeout: 240 seconds]
momomomomo_ is now known as momomomomo
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #jruby
subbu has quit [Ping timeout: 245 seconds]
subbu has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] jrubyci pushed 1 new commit to master: http://git.io/Y3_Bfw
<JRubyGithub> jruby/master 93820f2 Subramanya Sastry: Move *InterpreterContext from operands/ to interpreter/
JRubyGithub has left #jruby [#jruby]
kaawee has joined #jruby
vyorkin has joined #jruby
vyorkin has quit [Client Quit]
vyorkin1 has joined #jruby
vyorkin has joined #jruby
momomomomo_ has joined #jruby
momomomomo has quit [Ping timeout: 255 seconds]
momomomomo_ is now known as momomomomo
vyorkin1 has quit [Client Quit]
robbyoconnor has quit [Ping timeout: 255 seconds]