pawnbox has joined #jruby
<travis-ci> jruby/jruby (master:8d78851 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131558794)
pawnbox has quit [Ping timeout: 260 seconds]
<travis-ci> jruby/jruby (master:0f190b6 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131560839)
camlow325 has quit []
<travis-ci> jruby/jruby (master:f899dd5 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131563275)
<travis-ci> jruby/jruby (master:da7c5c6 by Kevin Menard): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131566673)
Aethenelle has joined #jruby
johnsonch_afk is now known as johnsonch
jgdavey has quit [Remote host closed the connection]
nirvdrum has quit [Ping timeout: 260 seconds]
johnsonch is now known as johnsonch_afk
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
yfeldblu_ has joined #jruby
Prasun has quit [Ping timeout: 250 seconds]
bjfish2 has quit [Quit: bjfish2]
momomomomo has quit [Quit: momomomomo]
yfeldblum has quit [Ping timeout: 276 seconds]
yfeldblu_ has quit [Ping timeout: 276 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
momomomomo has joined #jruby
momomomomo has quit [Client Quit]
yfeldblum has joined #jruby
<GitHub10> [jruby] headius pushed 2 new commits to master: https://git.io/vrEbJ
<GitHub10> jruby/master 38d3189 Charles Oliver Nutter: Print out negative line numbers for toplevel exception....
<GitHub10> jruby/master 79e53b1 Charles Oliver Nutter: Work around logger formatting differences when printing IR.
e_dub has quit [Ping timeout: 260 seconds]
e_dub has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
donV has joined #jruby
jeremyevans has quit [Ping timeout: 252 seconds]
donV has quit [Quit: donV]
rtyler_ has joined #jruby
wasnotrice has quit [Ping timeout: 260 seconds]
wasnotrice_ has joined #jruby
wasnotrice_ is now known as wasnotrice
rtyler has quit [Ping timeout: 276 seconds]
Tristitia has quit [Ping timeout: 276 seconds]
Tristitia has joined #jruby
<GitHub6> [jruby] headius pushed 5 new commits to master: https://git.io/vrEhX
<GitHub6> jruby/master 434e54e Charles Oliver Nutter: CheckLJE currently requires dynscope.
<GitHub6> jruby/master d5067a2 Charles Oliver Nutter: Fix another IR printing logger issue.
<GitHub6> jruby/master 7d8b03e Charles Oliver Nutter: Centralize get/put field logic in Instr.interpret....
<GitHub73> [jruby] headius opened pull request #3906: Kwargs should not need dynamic scope, since we have static handy. (master...fix_kwargs_scoping) https://git.io/vrEjA
donV has joined #jruby
<GitHub163> [jruby] BanzaiMan created ha-feature-caching (+1 new commit): https://git.io/vrufT
<GitHub163> jruby/ha-feature-caching 1542933 Hiro Asari: Clean up *.properties file to avoid uploading new cache
<headius> asarih: ah, nice
<travis-ci> jruby/jruby (master:970afee by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131617498)
<headius> chrisseaton: still failing :-(
<GitHub38> [jruby] headius pushed 1 new commit to master: https://git.io/vrufX
<GitHub38> jruby/master 9409a65 Charles Oliver Nutter: Move j2ee out of failures.
elia has joined #jruby
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
jeremyevans has joined #jruby
brauliobo has joined #jruby
<travis-ci> jruby/jruby (ha-feature-caching:1542933 by Hiro Asari): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131624241)
shellac has joined #jruby
kares has quit [Quit: ...]
kares has joined #jruby
skade has joined #jruby
skade has quit [Ping timeout: 260 seconds]
skade has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
vtunka has joined #jruby
<travis-ci> jruby/jruby (ha-feature-caching:1542933 by Hiro Asari): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131624241)
pawnbox has joined #jruby
skade has quit [Read error: Connection reset by peer]
dumdedum has joined #jruby
skade has joined #jruby
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
yfeldblum has joined #jruby
vtunka has quit [Quit: Leaving]
<travis-ci> jruby/jruby (master:9409a65 by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131625203)
yfeldblum has quit [Ping timeout: 260 seconds]
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #jruby
<GitHub173> [jruby] eregon pushed 1 new commit to master: https://git.io/vruc7
<GitHub173> jruby/master d6d4ed6 Benoit Daloze: [Truffle] Simplify expansion of OUT in jruby-cext-c.
skade has quit [Quit: Computer has gone to sleep.]
dumdedum has quit [Quit: foo]
<GitHub168> [jruby] eregon pushed 1 new commit to master: https://git.io/vruWM
<GitHub168> jruby/master 8ea9022 Benoit Daloze: [Truffle] Have a different name for TCK tests so profiles don't overlap.
vtunka has joined #jruby
skade has joined #jruby
<GitHub111> [jruby] ahorek opened issue #3907: ArgumentError: string contains null byte https://git.io/vru8e
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
<travis-ci> jruby/jruby (master:d6d4ed6 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131652267)
skade has quit [Ping timeout: 240 seconds]
skade has joined #jruby
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
CaptainHeavy has joined #jruby
<CaptainHeavy> Hello :) I'm looking to get all Java classes that extend a particular Java class in jRuby after importing the relevant Java classes. Is this possible and, if so, how?
<CaptainHeavy> I've been playing around with this for ~ an hour now!
vtunka has quit [Quit: Leaving]
<travis-ci> jruby/jruby (master:8ea9022 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131654549)
vtunka has joined #jruby
<GitHub54> [jruby] eregon pushed 3 new commits to master: https://git.io/vruuj
<GitHub54> jruby/master 13c5cc5 Benoit Daloze: [Truffle] Show mimeType when language is unknown.
<GitHub54> jruby/master 025812e Benoit Daloze: [Truffle] Implement rb_define_class.
<GitHub54> jruby/master 171f512 Benoit Daloze: [Truffle] Remove trailing spaces in cext.rb.
elia has quit [Ping timeout: 250 seconds]
elia has joined #jruby
vtunka has quit [Remote host closed the connection]
vtunka has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
<travis-ci> jruby/jruby (master:171f512 by Benoit Daloze): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131667919)
elia has quit [Quit: Computer has gone to sleep.]
<GitHub74> [jruby] chrisseaton pushed 1 new commit to master: https://git.io/vruw7
<GitHub74> jruby/master 29e3e58 Chris Seaton: [Truffle] Show backtrace if it doesn't have what we expect in it.
e_dub has quit [Quit: ZZZzzz…]
nirvdrum has joined #jruby
elia has joined #jruby
tcrawley-away is now known as tcrawley
<GitHub30> [jruby] chrisseaton pushed 2 new commits to master: https://git.io/vruPa
<GitHub30> jruby/master 49858e9 Chris Seaton: [Truffle] Increase pauses in instrumentation test.
<GitHub30> jruby/master 908c5f1 Chris Seaton: [Truffle] Put a sleep in the instrumentation server test so it doesn't spin so badly.
lance|afk is now known as lanceball
<travis-ci> jruby/jruby (master:29e3e58 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131677502)
bbrowning has joined #jruby
Aethenelle has joined #jruby
e_dub has joined #jruby
<travis-ci> jruby/jruby (master:49858e9 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131686677)
<headius> CaptainHeavy: unfortunately I don't think there's a way to do that; superclasses don't have references to subclasses on JVM, and we don't eagerly define the Ruby side of every Java class unless we need to
<headius> it might be possible to use some JVM debugging APIs to browse all loaded classes
<CaptainHeavy> Hmm, I've managed to get the Java classes imported from the global namespace as symbols
<CaptainHeavy> Object.constants
<CaptainHeavy> However, I need to determine which of these are java objects
<CaptainHeavy> calling .java_object on a Fixnum throws a "No Method Defined" error
<CaptainHeavy> I realise I'm operating on Symbols
<CaptainHeavy> I tried constant.method_defined?(:java_object) but no lucjk
liri has joined #jruby
<liri> hi all,
<CaptainHeavy> I've also tried using the "Reflections" Java JAR but that complains about a Logger class not being found!
<liri> Can someone put some light on issue which I am struggling with, namely I have a Java Server, which is able to handle requests containing ruby code which is supposed to be invoked at server side
<liri> I Use ScriptingContainer, and version of Jruby, 1.7.17
<liri> before query is invoked I set loadpaths to directory with ruby sources.
<liri> currently it is ruby 1.9
<liri> So basically before running code through ScriptingContainer I set loadpaths
<liri> loadPaths.addAll(Arrays.asList(props.getProperty("RubyDir").split(":")));
johnsonch_afk is now known as johnsonch
<liri> where RubyDir points to dir with 1.9 sources, and some additional custom files.
<liri> it worked fine till I changed RubyDir property to 2.2.3
<liri> right now when I require 'time'
vtunka has quit [Quit: Leaving]
skade has quit [Quit: Computer has gone to sleep.]
<liri> I got an error,
<liri> Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- date_core
<liri> at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1071)
<liri> at RUBY.require(/home/ldb/ldb-ruby/lib/ruby-src/rubygems/core_ext/kernel_require.rb:54)
<liri> at RUBY.(root)(/home/ldb/ldb-ruby/lib/ruby-src/date.rb:3)
<liri> I can actually see that time.rb file requires date.rb file which in turn requires date_core
<liri> but, I can't locate it in 2.2.3 src directory.
<liri> I am not sure how to properly migrate from ruby 1.9 (jruby 1.7) version to ruby 2.x version,
<liri> I assume I need to migrate to Jruby 9.X version? Don't I ?
<headius> woah, hello there
<liri> hi
<headius> CaptainHeavy: just check if cls < java.lang.Object
<headius> liri: yes you will want to use JRuby 9k
<headius> we released 9.1.1.0 yesterday which supports Ruby 2.3 features
<liri> is it packed in one ruby jar ?
<CaptainHeavy> headius: comparison of Symbol with Class failed
<liri> is it packed in one jruby.jar ?
<headius> liri: there's various shapes of artifacts, yes
<headius> search for org.jruby on maven and you can find several forms
<liri> cause I already downloaded zip file, and in lib folder I can see two jars, jruby-truffle.jar and jruby.jar
<headius> CaptainHeavy: er...in my example both of those would have been classes
<CaptainHeavy> headius: Fair enough! This is my problem though, the global constant is a Symbol
<headius> java.lang.Object gets a proxy form in the Ruby class hierarchy, so that should work fine
<headius> ahh well look it up then?
<CaptainHeavy> headius: I need to get the value for the Symbol, if that makes sense?
<headius> where are you getting the symbol?
<CaptainHeavy> Object.constants
<headius> ok, then Object.const_get
<CaptainHeavy> OK, so something like: for const in Object.constants puts Object.const_get(const) < java.lang.Object end
<CaptainHeavy> Ah, that gives the same error (Symbol isn't a Class)
<liri> What is the main difference between jruby-complete and jruby versions ?
<liri> If I want to embed jruby in my java server, which would be the most appropriate for me ?
<liri> What things should I consider when choosing proper artifacts?
<headius> CaptainHeavy: oh sorry...there will be other constants that aren't classes
<headius> so need a kind_of? check there to make sure you're dealing with a Class
<CaptainHeavy> headius: Cool, that's what I thought of earlier but I had no idea what type of object I should pass as an argument to "kind_of?"
<CaptainHeavy> headius: JavaClass didn't work, neither did Java
<headius> just Class
<headius> liri: jruby-complete includes everything you'd have in a Ruby install...specifically all of the standard library is in there
<CaptainHeavy> headius: Oh jeez, that always evaluates to false!
<CaptainHeavy> headius: "puts const.kind_of?(Symbol)" always returns true, however
<headius> CaptainHeavy: Object.constants.each {|c| const = Object.const_get(c); next unless const.kind_of? Class; puts "#{c} is Java: #{(const < java.lang.Object).inspect}"}
donV has quit [Quit: donV]
enebo has joined #jruby
<CaptainHeavy> headius: OK, that did it!
<GitHub95> [jruby] headius pushed 3 new commits to master: https://git.io/vru7Q
<GitHub95> jruby/master f18ec2d Charles Oliver Nutter: Reenable did_you_mean and add to preinstalled gems.
<GitHub95> jruby/master 90eabde Charles Oliver Nutter: Clear out RubyGems paths so we can reinitialize them.
<GitHub95> jruby/master bccbfd0 Charles Oliver Nutter: Merge pull request #3892 from headius/did_you_mean...
<GitHub101> [jruby] headius closed issue #3480: Bundle did_you_mean gem https://git.io/v4by2
<GitHub124> [jruby] headius closed pull request #3892: Enabled did_you_mean, install during build, and clear gem paths (master...did_you_mean) https://git.io/vrna0
<CaptainHeavy> headius: thank you very, very much! I've been wracking my brains over that for about 4 hours now!
<CaptainHeavy> *racking
<headius> no problem!
cprice404 has quit [Quit: Konversation terminated!]
<CaptainHeavy> headius: I'm more Java-savvy than Ruby so I have no idea how long that would have taken me to figure out!
Aethenelle has quit [Read error: Connection reset by peer]
vtunka has joined #jruby
<liri> do you know where I can find following dependency ? no such file to load -- jruby/java/core_ext
<liri> I downloaded 9.1.1.0 release, and put on path jruby.jar from lib, but it seems to be not enough
<headius> chrisseaton: that integration test seems to fail in most builds
<chrisseaton> I think I just pushed a fix - is it still failing?
<chrisseaton> It worked in the last build that completed - I'll keep watching
<headius> 49858e9?
<headius> ok thanks
<headius> I just noticed it again in a PR but realized that was rebased yesterday
bjfish2 has joined #jruby
<CaptainHeavy> headius: Got this working now, thank you. Do you think its worthy of a PR?
<CaptainHeavy> headius: I imagine a lot of others will find this useful, especially if they're using buildr for testing purposes (as I am)
<headius> CaptainHeavy: oh, what's the patch? I may have missed that part
<CaptainHeavy> headius: You mean the part that actually determines if an Object is a subclass of another specified Object?
<GitHub79> [jruby] headius pushed 3 new commits to master: https://git.io/vruxh
<GitHub79> jruby/master 6bea316 Charles Oliver Nutter: Fix my set mistake.
<GitHub79> jruby/master b2321a8 Charles Oliver Nutter: Merge pull request #3906 from headius/fix_kwargs_scoping...
<GitHub79> jruby/master afd1906 Charles Oliver Nutter: Kwargs should not need dynamic scope, since we have static handy.
<GitHub140> [jruby] headius closed pull request #3906: Kwargs should not need dynamic scope, since we have static handy. (master...fix_kwargs_scoping) https://git.io/vrEjA
<headius> CaptainHeavy: I guess I don't understand what would be in the PR
<headius> ah, I should have squashed that
<headius> oh well
<CaptainHeavy> headius: Sorry, I meant this could be packaged up as a method, i.e. "getSubTypesOfJavaClass()"
<headius> oh I see
<headius> so I originally thought you were asking if you could ask JVM for all subclasses, and I don't believe there's a way to do that
<headius> we do have a hidden method in JRuby that can get subclasses of any class
<CaptainHeavy> headius: Oh! No, sorry
<headius> $ jruby -rjruby/core_ext -e "p Integer.subclasses"
<headius> [Fixnum, Bignum]
<headius> if you pass true it should be all descendants
<CaptainHeavy> headius: I get a "NoMethodError" for that!
<CaptainHeavy> Maybe I need to invoke java_class first...
<CaptainHeavy> headius: nope!
<headius> require 'jruby/core_ext'
<liri> how does jruby handles .so files? I can see that error which I get concerns requiring .so file
<liri> does it make any difference for me in my investigation ?
<headius> liri: what kind of .so files?
<chrisseaton> liri: do you mean a C extension .so file?
<headius> liri: it sounds like your enviromment may be getting some things confused
<headius> perhaps you can describe what you're trying to do
<liri> I got error, that Kerne can't load date_core file, I couldn't find this file at the beginning in ruby sources, but it occured to be in x86_64-linux folder with other .so files.
<headius> date_core would be coming from CRuby's date library, I believe, as a C extension
<liri> I included jruby.jar from 9.1.1.0 release
<headius> you don't want to use any libraries from a non-JRuby install
<liri> and this error is constantly showing up when I am trying to require 'time'
<liri> LoadError: no such file to load -- date_core
<liri> require at /home/ldb/ldb-ruby/lib/ruby-src/rubygems/core_ext/kernel_require.rb:54
<liri> require at org/jruby/RubyKernel.java:944
<headius> they'll have dependencies on things that are different or don't exist in JRuby
<CaptainHeavy> headius: Perfect, thank you!
<headius> liri: if you want to use JRuby instead of CRuby you should install a full JRuby set up...not just a jar using CRuby libraries
<headius> but I'm still not clear what your setup is
<liri> well actually it was configured by colleague of mine, he just downloaded some ruby sources (1.9), and jruby.jar 1.7, jruby.jar is in classpath for java server, and ruby source folder is referenced by scripting container, so it has ruby 1.9 sources in load path.
<liri> It worked fine till I decided to migrate to ruby 2.X and jruby 9k, I though it would be as simple as downloading jruby.jar (9k) and sources for ruby 2
<headius> yeah that's not the right setup to use JRuby
<liri> so what should I start from ?
<liri> to set it up correctly.
<headius> go to jruby.org and grab a tarball from there, or use a ruby installed like rvm or ruby-install
<headius> ruby installer
<headius> there's a few options but you basically want a full distribution, with all our versions of CRuby's C libraries
<liri> I installed ruby from repositoried for Cent OS
<headius> is there no JRuby CentOS package?
<liri> I will check this out, so when it is done, how should I configure Scriptingcontainer and java server?
<headius> what do you want to do with that?
<liri> is there somewhere some README file about what particular files in tarball are for ?
<headius> do you want a Java sever?
<headius> server
<headius> liri: there's some basic getting started docs, examples on the wiki, a few books...
<liri> I have an app it is server written in Java, and I use ScriptingContainer to run ruby code inside JVM.
<headius> ok
<headius> maybe what you really want is jruby-complete.jar
<liri> I sent ruby code to server, and then it is compiled/parsed by SC, so I can run it
<headius> I think the problem is you're using jruby.jar which doesn't have "time" or "date" or "rake" or any other Ruby libraries bundled with it
<headius> so it's picking up whatever's on your system, and that's CRuby stuff
Aethenelle has joined #jruby
<headius> if you use jruby-complete it should work the way you expect
<liri> so basically Ihave two options?
<liri> 1) installing JRuby in my OS
<liri> 2) using jruby-complete
<headius> 2 is probably best if you are already using ScriptingContainer and a Java server
<headius> I misunderstood what you needed
<liri> and what is the main difference between these jars (complete vs normal?)
<travis-ci> jruby/jruby (master:bccbfd0 by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131703372)
<headius> yay
<headius> liri: the complete jar contains a bunch of other libraries most Ruby programs will need
<headius> date, time, irb, net/http, all that
<liri> ok so it is better when I want to embed JRuby into application
<headius> definitely
<liri> not relying on installed software.
<liri> what could be the reason for relying on external ruby/jruby installation ?
<headius> well, mostly devops reasons I guess
<headius> if you need to use only blessed packages or something
<headius> but pulling JRuby from maven central is pretty canonical
<liri> ok, thank you very much I am going to check out this jruby complete, so if I use jruby complete I shouldn't be obliged to set load paths for my scripting container?
<headius> not unless you want to! :-)
<liri> because all dependencies are bundled within jruby-complete.jar?
<headius> al dependencies normally included with Ruby, yes
<liri> yes, I don't use anything specific, ok, so ma setup was not the best I believe,
<liri> and it appears that also more problematic when migrating to newer version
<liri> it looks like it works now like a charm
<liri> TYVM
<liri> I removed External Ruby sources installed in OS from loadPath in SC, and I am just using JRuby complete 9K
CaptainHeavy has quit [Remote host closed the connection]
<GitHub96> [jruby] nirvdrum pushed 1 new commit to master: https://git.io/vrzTW
<GitHub96> jruby/master 320f6ab Kevin Menard: [Truffle] Switched from insertion sort to merge sort when sorting arrays > 3 elements.
<headius> insertion sort for three elements?
thedarkone2 has joined #jruby
<chrisseaton> headius: I think we just called the first Rubinius sort routine we found and it turned out to be insertion sort
<chrisseaton> headius: we use selection sort for <= 3
<headius> ahh ok
<headius> subbu, enebo: do you remember why zsuper needs dynamic scope?
<headius> it has captures caller's binding flag, which I don't understand, and the calculation for dynamic scope also gets set if zsuper is present
<headius> I don't see it ever use dynscope in operation but maybe I'm not looking hard enough
<travis-ci> jruby/jruby (master:b2321a8 by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131713616)
<enebo> headius: if I had to guess I would say it was due to use walking closures in unresolved case
<enebo> headius: although that behavior is also inconsistent with MRI even if logcally better
<headius> hmm well that sounds plausible
<headius> I'm not getting any failures with it removed, assuming I removed it properly
bga57 has joined #jruby
<headius> the interpreter supers could probably be modified to use the same boolean map the JIT uses, to dry this up a bit
<enebo> headius: what map?
<headius> enebo: e.g. IRRuntimeHelpers.unresolvedSuperSplatArgs
<headius> I didn't want jitted code to have complex loops to prepare super arguments, so this does it generically
<enebo> headius: but interpreter it is just a callinstr
<headius> what's ZSuperInstr for then
<enebo> hmmm although it is different for unresolved
<enebo> but all of these use callInstr prepareArguments
<enebo> headius: I guess if you did then it would not rely on callIstr’s way of simple/complex for this which may simplify something
<enebo> headius: but if you do then perhaps all non-specialized calls can also use a map like that
<enebo> I guess it depends on how much it speeds up that processing
<enebo> as it stands though all these descendents of call depend on the same prep args method
<headius> I don't know if it would be much different...it just ended up a bit simpler
<headius> and if I don't have anything in the map I just blow right past that
<enebo> return containsArgSplat ?
<enebo> prepareArgumentsComplex(context, self, currScope, dynamicScope, temp) :
<enebo> prepareArgumentsSimple(context, self, currScope, dynamicScope, temp);
<enebo> so super and friends at interp level have a boolean for that no map bit
<enebo> I think worst part of complex is it makes a new ArrayList
<enebo> although that could easily be changed
<headius> oh wow
<headius> heh
<headius> I do two loops
<headius> once to collect splatted array sizes and then I allocate exact size I need
<headius> seems to work
<enebo> one to count and an exact alloc
<headius> yeah
<enebo> so changing complex to that might be helpful but it might not matter either
<headius> in theory it could be generalized into an indy call path or something some day
<headius> well, at least there's no additional array and ArrayList
<headius> plus any along the way when it grows
<enebo> yeah it definitely is a cost
<enebo> cost in a slow path execution path but still it can be slightly less clow
<enebo> hmmm
<enebo> interpreter does not make an array of arguments initially at all
<enebo> we can know arg 3 is a s splat but we in theory trade off initial array construction for arraylist in complex case
<enebo> but we cannot know size of arg 3 without interp’ing the splat
<GitHub108> [jruby] nirvdrum pushed 1 new commit to master: https://git.io/vrzYP
<GitHub108> jruby/master ea3d84f Kevin Menard: Revert "[Truffle] Switched from insertion sort to merge sort when sorting arrays > 3 elements."...
vtunka has quit [Quit: Leaving]
<enebo> although making 2 primtive arrays very well may be faster than one arraylist made into an array
<headius> I may use an ArrayList too when there's a splat
<enebo> headius: subbu has an interesting comment in callbase.prepareArgumentsComplex about assumptions of splat
<enebo> headius: super and call have different assumptions too
bbrowning has quit [Ping timeout: 260 seconds]
bbrowning has joined #jruby
<GitHub151> [jruby] headius opened issue #3908: IR error in JIT mode MRI suite run https://git.io/vrz3n
grs has quit [Ping timeout: 240 seconds]
<GitHub43> [jruby] headius opened pull request #3909: ZSuper does not require caller's binding/scope. (master...zsuper_sans_binding) https://git.io/vrzs4
<GitHub99> [jruby] boberetezeke opened issue #3910: Different handling of default values and Hash splat values than MRI https://git.io/vrzsD
<headius> enebo: I see why this works...JIT does first pass to evaluate all arguments and then goes back and splats what it needs to
<headius> at least as far as test:jruby and test:mri that appears to be kosher
<headius> so it has one array for number of operands and one array for final splatted arg list
<headius> along the way
<enebo> headius: but you make an intermediate args array and in simple case that is it and in splat case you count and make a second one
<enebo> headius: which seems reasonable to me
<headius> yeah
<headius> no splat map, done after the first pass
<enebo> headius: I mean you largely cannot know the size of the splat
<headius> right
<enebo> interp though can know since it builds from operands
<headius> might be interesting to have it speculatively size ArrayList as big as the last splatted call
<enebo> so interp method could use two primtive arrays in complex case and build up count as it makes first one
<enebo> headius: buf did you read subbu’s comment
<headius> seems reasonable that arg list length at a call site is probably not going to vary a lot even with splats
<enebo> headius: splat will only be first argument in a normal call from IR
<bbrowning> have there been any reports of memory usage issues with jruby 9.1ish or so? I'm looking at putting out a new TB4 release and hitting some OOM I don't recall hitting before
<headius> enebo: right
<headius> I'm saying for supers
<enebo> headius: so I think we can eval splat get count and then make full size array without making two
<enebo> headius: yeah for supers it can be anywhere
<enebo> headius: so I think for super we need special method if we want to do that in interp for ordinary calls
<headius> if normal calls only have splat at front, the rest of this loop is not really needed either though
<headius> it can just do the first one, get its count, and prealloc based on the remaining size of the operands
<enebo> yeah I just said that
<headius> so the looping to find all splats is super-specific anyway
<enebo> yep
<headius> yeah I'm saying this logic is already mostly "special" for super
<enebo> yeah so does subbus comment
<enebo> although I do not know if all super subrtypes have their own common supertype
grs has joined #jruby
<enebo> Actually only zsuper needs this
<enebo> headius: yay
<enebo> so long as zsuper is only super which has this then no issues to make better interp version
<enebo> I lay money none of our normal benches even have a splat in it :)
<headius> richards does
<headius> if I remember right
<travis-ci> jruby/jruby (master:320f6ab by Kevin Menard): The build has errored. (https://travis-ci.org/jruby/jruby/builds/131724788)
<headius> huh, I don't actually have the shortcut to just use original arg list
<headius> I'll add that
<headius> dark matter
<enebo> heh
<headius> enebo: fyi I've been trying to do PRs a bit more as I fiddle with IR improvement, both for review and to not muck up master travis
<headius> it's also kinda lazy testing and easier to multitask
<headius> so far that patch looks good though
<enebo> headius: yeah it makes sense for this zsuper stuff I do not think it is really neccesaery
<enebo> headius: but you should also fix callbase if you are changing zsuper
<headius> fix what exactly
<enebo> I do not think much hits that path but no harm in making it faster
<headius> that it doesn't need the loop?
<enebo> prepareArgumentComplex
<enebo> yeah
<headius> sure
<enebo> or arraylist
<headius> I'll have to confirm nobody else needs that path
<enebo> truth be told we have arity specialized callinstr for majority of common calls
<headius> or OO that sucker
<enebo> so this will only show up if we do a lot of splats
<headius> no supers are split though, right?
<enebo> headius: it might also be true subbu comment is not 100% correct
<headius> no no, subbu is infallible
<GitHub72> [jruby] eregon pushed 2 new commits to master: https://git.io/vrznM
<GitHub72> jruby/master a493778 Benoit Daloze: [Truffle] Also cast address to function in other rb_define_method.
<GitHub72> jruby/master 2ffb5c3 Benoit Daloze: [Truffle] First C-API spec passing!
<enebo> other supers basically are just calls since they have their arguments in same format as any other call
<enebo> zsuper is the weird one because I think our cool but erroneous handling of deinfe_method + zsuper
<enebo> in that case we can basically have to process any args in a block
<enebo> but hmmm perhaps if we actually remove that “feature” and do what MRI does maybe even zsuper will no longer have this splat anywhere issue
lanceball is now known as lance|afk
shellac has quit [Quit: Leaving]
<travis-ci> jruby/jruby (master:ea3d84f by Kevin Menard): The build was broken. (https://travis-ci.org/jruby/jruby/builds/131734785)
<headius> that would be nice
<GitHub130> [jruby] chrisseaton pushed 8 new commits to master: https://git.io/vrzWQ
<GitHub130> jruby/master 1888840 Chris Seaton: [Truffle] Move fixnum to core.
<GitHub130> jruby/master 4b7f998 Chris Seaton: [Truffle] Rename the platform struct to ffi_struct.
<GitHub130> jruby/master cd5d534 Chris Seaton: [Truffle] Combine bootstrap and common process and move to core.
brauliobo has quit [Ping timeout: 260 seconds]
<headius> enebo: I see why this is safe
<headius> after you evaluate the splat there's no further visible Ruby behavior...it has to be a RubyArray at that point and we just unwrap it
<headius> so there's no order of operations concerns or anything
<headius> so this could be improved by seeing through the splat and not doing any work for a single-element result
<GitHub59> [jruby] chrisseaton pushed 3 new commits to master: https://git.io/vrz4L
<GitHub59> jruby/master 7328844 Chris Seaton: [Truffle] We can fold the file delta into common.
<GitHub59> jruby/master c8c5c86 Chris Seaton: [Truffle] The rest of the module delta can go in post and we can remove delta.
<GitHub59> jruby/master 9ee70f4 Chris Seaton: [Truffle] We can move all but one of the delta module methods to common.
elia has quit [Quit: Computer has gone to sleep.]
<GitHub91> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://git.io/vrz4D
<GitHub91> jruby/truffle-head e17bcea Chris Seaton: Merge branch 'master' into truffle-head...
bbrowning is now known as bbrowning_away
<enebo> headius: yeah in a case where you know the splat it is a literal for sure
grs has quit [Ping timeout: 260 seconds]
grs has joined #jruby
cprice404 has joined #jruby
<travis-ci> jruby/jruby (master:2ffb5c3 by Benoit Daloze): The build passed. (https://travis-ci.org/jruby/jruby/builds/131742761)
Aethenelle_ has joined #jruby
Aethenelle has quit [Read error: Connection reset by peer]
Aethenelle_ is now known as Aethenelle
brauliobo has joined #jruby
ruurd has quit [Ping timeout: 244 seconds]
brauliobo has quit [Ping timeout: 276 seconds]
bbrowning_away is now known as bbrowning
yfeldblum has joined #jruby
<GitHub105> [jruby] chrisseaton pushed 1 new commit to master: https://git.io/vrzKJ
<GitHub105> jruby/master 2b65d0c Chris Seaton: [Truffle] Missing invalidate when @CompilationFinals are changed.
<travis-ci> jruby/jruby (master:dff821d by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131746710)
brauliobo has joined #jruby
<GitHub166> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://git.io/vrzPZ
<GitHub166> jruby/truffle-head 9e9ee2e Chris Seaton: [Truffle] Update Truffle version.
<bbrowning> is something internal to jruby creating a ton more strings now than say around 9.0.0.0 timeframe? I'm seeing tons of strings in heap dumps
ruurd has joined #jruby
<bbrowning> java strings
<bbrowning> I was poking TB4 on travis to see why its build is failing with jruby 9 and it's running OOM. lowering my local heap settings to the same as travis uses I OOM locally too but didn't used to
<bbrowning> my 512MB heap has about 300MB in ConcurrentHashMap$Nodes with string keys and some JavaClass$INVOKER values
<bbrowning> it OOMS before even running a single test which is odd
<travis-ci> jruby/jruby (truffle-head:e17bcea by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131750504)
<bbrowning> it's a crazy amount of memory usage so I'd expect that other users would report something about it
rtyler_ is now known as rtyler
<travis-ci> jruby/jruby (master:c8c5c86 by Chris Seaton): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/131749739)
brauliobo has quit [Ping timeout: 252 seconds]
<headius> bbrowning: that's interesting...no, nothing I know of
<headius> we should hook up an allocation profiler and sample to see what's going on
lance|afk is now known as lanceball
<headius> CHM is used in a few places...are you able to tell hich one it is?
<bbrowning> well there's 150k of these CHM nodes so I'll have to try and figure out where most of them are coming from
<bbrowning> the first couple hundred are from the methods field in RubyClass
<bbrowning> but I need to find a better way that doesn't require looking at each individually - these few hundred may be perfectly normal
<headius> yeah, some of the tools can compare heap dumps
<headius> I have not used it in a while
<headius> that seems like a lot of methods :-)
<headius> I'll see where else we use it and eyeball the code
<headius> methods, constants, class variables, autoloads are all in CHM in RubyModule
yfeldblum has quit [Ping timeout: 276 seconds]
Puffball has quit [Ping timeout: 260 seconds]
Puffball_ has joined #jruby
<travis-ci> jruby/jruby (truffle-head:9e9ee2e by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/131772546)
<bbrowning> headius: looks like the openssl x509 store, oddly enough?
<headius> well that's pretty weird
<bbrowning> 65MB in one instance of org.jruby.ext.openssl.x509store.X509Object and I have several instances of those
<headius> is that a key or a value?
<headius> kares: do you know anything about this?
<bbrowning> that's the object containing lots of x509store.Certificate objects
<bbrowning> headius: ahh you were asking how it relates to CHM - I'm digging on that
<bbrowning> switched from MAT to yourkit because MAT was dying on me
<bbrowning> so the CHM Node is a RubyModule$ConstantEntry with a value of this X509Store and lots of certs
<headius> hmmm
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pitr-ch has joined #jruby
pitr-ch has quit [Read error: Connection reset by peer]
pitr-ch has joined #jruby
tjohnson has joined #jruby
ruurd has quit [Ping timeout: 260 seconds]
bbrowning is now known as bbrowning_away
yfeldblum has joined #jruby
johnsonch is now known as johnsonch_afk
pitr-ch has quit [Ping timeout: 260 seconds]
pitr-ch has joined #jruby
grs has quit [Ping timeout: 244 seconds]
Puffball_ has quit [Ping timeout: 250 seconds]
Puffball has joined #jruby
_whitelogger has joined #jruby
grs has quit [Ping timeout: 276 seconds]
pitr-ch has quit [Read error: Connection reset by peer]
pitr-ch has joined #jruby
donV has joined #jruby
bbrowning_away has quit [Quit: Leaving]
brauliobo has joined #jruby
enebo has quit [Quit: enebo]
e_dub has quit [Quit: ZZZzzz…]
<GitHub179> [jruby] headius opened pull request #3911: Unify super and call splatting logic in interpreter and JIT. (master...zsuper_splatmap) https://git.io/vrgt7
<headius> hmm, I don't think we got a bascule friday
<lopex> friday ends in ten minutes here
<yopp> lopex, CET WFT!
<yopp> •FTW
<GitHub185> [jruby] headius pushed 1 new commit to master: https://git.io/vrgmA
<GitHub185> jruby/master a363f64 Charles Oliver Nutter: Ignore did_you_mean files.
<headius> uh oh
<headius> missed it
<headius> aww, the one in the logs looks messed up
<headius> oh well
Freaky has joined #jruby
donV has quit [Quit: donV]
scigno has joined #jruby
scigno has quit [Quit: Page closed]
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Freaky> https://gist.github.com/Freaky/51086f3c97784bdd6dfbd31913cd1af3 - I'm sure it has *some* legitimate use, right? ;)
skade has joined #jruby
e_dub has joined #jruby
<chrisseaton> headius: what do you use for RUBY_REVISION? I get a number that isn't a commit prefix
elia has joined #jruby
pawnbox has quit [Remote host closed the connection]
<GitHub180> [jruby] headius pushed 1 new commit to master: https://git.io/vrglp
<GitHub180> jruby/master 8e8c3d7 Charles Oliver Nutter: Fix some oddity with scopes for kwargs getting mixed up....
<headius> chrisseaton: whatever revision of stdlib we are on
<chrisseaton> ah so it's an SVN id
<chrisseaton> Is there a way to get the actual JRuby git revision?
<headius> there's JRUBY_REVISION
<chrisseaton> thanks