<travis-ci> jruby/jruby (master:85d6f0d by Thomas E. Enebo): The build passed. (https://travis-ci.org/jruby/jruby/builds/150762908)
camlow325 has quit [Quit: WeeChat 1.5]
<travis-ci> jruby/jruby (master:1e8c65a by Thomas E. Enebo): The build passed. (https://travis-ci.org/jruby/jruby/builds/150764878)
pawnbox has quit [Ping timeout: 258 seconds]
zacts has quit [Quit: WeeChat 1.4]
zacts has joined #jruby
prasunanand has quit [Ping timeout: 276 seconds]
rcvalle has quit [Quit: rcvalle]
<GitHub120> [jruby] bjfish pushed 1 new commit to master: https://git.io/v6nf7
<GitHub120> jruby/master 84f8d03 Brandon Fish: [Truffle] Re-implement Kernel#sprintf integer formats
codeninja has joined #jruby
rsim has joined #jruby
<codeninja> I need some help diagnosing a jruby Net::HTTP issue using jRuby 9 and Heroku
<codeninja> any HTTP request to that URL fails with an EOFError... but it pulls up in the browser properly.
<codeninja> what am I missing?
bga57 has quit [Ping timeout: 250 seconds]
jimbaker has quit [Ping timeout: 258 seconds]
bga57 has joined #jruby
johnsonch_afk is now known as johnsonch
<headius> codeninja: huh...seems like a bug to report, strange
<headius> I would have expected that to work :-\
rsim has quit [Quit: Leaving.]
Hobogrammer has quit [Ping timeout: 276 seconds]
Hobogrammer has joined #jruby
zacts has quit [Ping timeout: 264 seconds]
eam has quit [Ping timeout: 276 seconds]
eam has joined #jruby
johnsonch is now known as johnsonch_afk
yfeldblum has quit [Remote host closed the connection]
<GitHub121> [jruby] ivoanjo opened issue #4055: Double-splat should not work with non-symbol keys https://git.io/v6nti
yfeldblum has joined #jruby
bga57 has quit [Ping timeout: 250 seconds]
bga57 has joined #jruby
prasunanand has joined #jruby
bga57 has quit [Client Quit]
kegster has quit [Quit: Shiner, TX makes good beer.]
kegster has joined #jruby
skade has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 265 seconds]
skade has quit [Quit: Computer has gone to sleep.]
thedarkone2 has quit [Quit: thedarkone2]
pawnbox has joined #jruby
rsim has joined #jruby
rsim1 has joined #jruby
eregon has quit [Ping timeout: 240 seconds]
rsim has quit [Ping timeout: 252 seconds]
eregon has joined #jruby
pil-zzZZzz is now known as pilhuhn
vtunka has joined #jruby
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
shellac has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
<yopp> headius, added to the ticket
yfeldblum has joined #jruby
circ-user-YOVSQ has joined #jruby
<circ-user-YOVSQ> Hello, I'm trying out jruby+truffle (dev). I've got it to work, but I'm having problems loading the concurrent-ruby gem. Everything's loading, until it reaches the point where the java extensions need to load (current_ruby_ext.jar). Does the Rubinius CodeLoader support loading java extensions into jruby+truffle?
circ-user-YOVSQ is now known as at100
<chrisseaton> Is circ-user-YOVSQ still here?
<GitHub15> [jruby] cburgmer opened issue #4056: Return line no in SyntaxError when parsing Regexp https://git.io/v6nXq
<at100> yes
<at100> using nick at100
<at100> circ-user-YOVSQ now at100
<at100> keep hitting "../native_extension_loader.rb:65:in `load_native_extensions': On JRuby but Java extensions failed to load. (RuntimeError)"
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<GitHub168> [jruby] pitr-ch closed issue #3543: [Truffle] Fix remaining ActiveSupport tests https://git.io/v0gAg
atmosx has joined #jruby
<atmosx> Hello there, is there any alternative to traveling-ruby for linux amd64 self-contained exec?
at100_ has joined #jruby
at100 has quit [Remote host closed the connection]
at100_ is now known as at100
<GitHub18> [jruby] eregon pushed 2 new commits to master: https://git.io/v6nH2
<GitHub18> jruby/master 37b032a Benoit Daloze: Import Array#max/min from JRuby+Truffle specs, themselves from Enumerable specs
<GitHub18> jruby/master 0856019 Benoit Daloze: Port specs from Array#max in Array#min
<eregon> enebo: I fogot, actually we have truffle specs for Array#min/max, ported from Enumerable :)
<at100> Anyone had any luck getting jruby+truffle working with concurrent-ruby?
<at100> Does jruby+truffle implement importing of java extensions yet?
yfeldblum has quit [Ping timeout: 258 seconds]
pawnbox has quit [Remote host closed the connection]
drbobbeaty has joined #jruby
pilhuhn is now known as pil-afk
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
shellac has quit [Remote host closed the connection]
<eregon> at100: yes, we are even testing it in CI for concurrent-ruby
<eregon> No, java extensions are not supported yet
<eregon> and they are unlikely to be, if by java extensions you mean all of org.jruby public methods should be accessible
at1002 has joined #jruby
<at1002> eregon How to get concurrent-ruby running? It requires loading concurrent_ruby_ext.jar and truffle ruby is missing load_method...
<GitHub51> [jruby] nbarrientos opened issue #4057: The JVM SIGSEGVs when using RubyEtc.getgrgid https://git.io/v6cvm
pil-afk is now known as pilhuhn
<at1002> sorry, missing java_import
vtunka is now known as vtunka_wfh
vtunka_wfh is now known as vtunka
<at100> eregon: Ok, so backing up. I was trying to get the stock concurrent-ruby to run with jt, but it was failing due to missing some java extensions. If you're able to test concurrent-ruby on CI, could you please point me to where I can download that, and how to set it up? Thanks.
<chrisseaton> at100: I'll find the right person to help you... give me a minute
tcrawley-away is now known as tcrawley
shellac has joined #jruby
bbrowning_away is now known as bbrowning
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
johnsonch_afk is now known as johnsonch
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
vtunka has quit [Quit: Leaving]
at1002 has quit [Ping timeout: 244 seconds]
hunq8 has joined #jruby
vtunka has joined #jruby
pawnbox has quit [Remote host closed the connection]
lance|afk is now known as lanceball
pitr-ch has joined #jruby
at1002 has joined #jruby
<GitHub34> [jruby] lxp opened pull request #4058: [Truffle] Add CExt test for ruby-argon2 (master...add-cexts-test-ruby-argon2) https://git.io/v6c34
at1002 has quit [Ping timeout: 276 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
<pitr-ch> at100 hello, I am the person chrisseaton mentioned. I do not bare a good news I am afraid. Concurrent-ruby was working with jruby+truffle in the past unfortunately we were not putting gem tests in our ci then. So the CI which was mentioned is in the concurrent-ruby's CI ans I am afraid we did not kept it green. It's on my todolist to make it work again and put it in our CI so it stays working. I can open a concurrent-ruby issue on
<pitr-ch> github for you to follow, to see when it's fixed.
johnsonch is now known as johnsonch_afk
<pitr-ch> at100 if you like?
<at100> pit-ch please.
<at100> pitr-ch please
<pitr-ch> ok, I'll drop you a link.
<at100> thanks
<at100> Is there *anything* I can do to get it sort-of working on my end?
<pitr-ch> at100 there is also a c-r specific irc if you like https://gitter.im/ruby-concurrency/concurrent-ruby
<pitr-ch> at100 the error is caused by some abstractions thinking they are running on jruby classic, first step would be to fix the conditions to pick only pure ruby implementations
<pitr-ch> when running on JR+T
<at100> I believe that's already in there. The concurrent/util/engine.rb reports the engine as jruby+truffle, not jruby, which causes many paths that rely on on_jruby? == true to fall through to pure ruby code.
<pitr-ch> If you contact me in the c-r gitter room I'll get an email notification if I miss it
johnsonch_afk is now known as johnsonch
<pitr-ch> at100 which version are you experimenting with?
<at100> latest that I cloned from github, and c-r 1.0.2
<pitr-ch> I am seeing the error on different line
<pitr-ch> if Concurrent.on_jruby? does not report JRuby I am not sure why is it trying to load the extensions
<at100> pitr-ch I massaged the code a bit to get it working. jr+t doesn't seem to work well with gems. the supposed jruby+truffle setup script fails on missing the bundler. Had to modify the c-r gem to use require_relative and put that in the dir of my test case.
enebo has joined #jruby
<at100> pitr-ch it mostly loads, up to the point where it doesn't. The current problem I'm having is with loading the thread pool executor
<pitr-ch> at100 yeah for now we use our tool to help us with gems, see https://github.com/jruby/jruby/tree/master/lib/ruby/truffle/jruby%2Btruffle
<at100> If I allow loading the Java one, it fails on being unable to integrate java code. otoh if I ask it to load the ruby thread pool implementation, it fails on 'cannot load such file'
<pitr-ch> I would dig into the pure implementation
<pitr-ch> the java one will not work for sure, jr+t does not support jruby's API
<pitr-ch> why is it missing the file I have no idea at the monet
<pitr-ch> moment :)
<at100> The funny thing is that it is not complaining on a 'require' source line.
<pitr-ch> do you have $LOAD_PATH properly set up ? that bit me few times
<pitr-ch> what's your login on github I'll mention you
<at100> arietal
<at100> what's the LOAD_PATH used for?
johnsonch is now known as johnsonch_afk
<pitr-ch> all the directories where require looks for files
<pitr-ch> try putting c-r/lib dir to the array
<at100> My $LOAD_PATH is empty
<at100> As I said, I modified the .rb files to load relative, so they do load. Would love to use LOAD_PATH but it seems to have no effect.
claudiuinberlin has joined #jruby
pilhuhn is now known as pil-afk
vtunka has quit [Quit: Leaving]
<at100> pitr-ch ok, looks like a combo of things may have done the trick. (a) I used c-r 1.0.2 (the 'official' gem version). (b) I copied the lib/* to a directory and ran jruby+truffle -I<directory> test.rb.
Balzrael has joined #jruby
<at100> Haven't tested concurrency yet, just require.
<Balzrael> hello
<Balzrael> how is everybody :)
<at100> pitr-ch To be exact: jruby+truffle run -I <directory> -- test.rb
vtunka has joined #jruby
etehtsea has joined #jruby
<Balzrael> does anyone know how to avoid also including the jars from the gemfile gems in the Jarfile.lock when using jar-dependencies gem with lock_jars command. It also includes the torquebox jars, and all I want are the jars from the Jarfile
<GitHub157> [jruby] eregon pushed 1 new commit to master: https://git.io/v6c4x
<GitHub157> jruby/master 5afbf93 Benoit Daloze: [Truffle] Let array strategies define copyArrayAndMirror()....
<GitHub30> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v6cBc
<GitHub30> jruby/truffle-head 385b2c5 Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
vtunka has quit [Quit: Leaving]
<GitHub32> [jruby] eregon tagged graal-vm-0.15 at 10c6b6e: https://git.io/v6cBK
<pitr-ch> at100 great, yeah that's how I usually run files from gems
<at100> pitr-ch yeah, all seems to be working for now. Still testing...
<at100> eregon, pitr-ch can jruby+truffle do compute-intensive multi-threading? (e.g. two threads that perform lots of calculations in parallel)
pil-afk is now known as pilhuhn
<pitr-ch> yes global lock was removed, but not everything is thread safe yet, better to be conservative and use mutex
<Balzrael> does anyone know how to avoid also including the jars from the gemfile gems in the Jarfile.lock when using jar-dependencies gem with lock_jars command. It also includes the torquebox jars, and all I want are the jars from the Jarfile
<pitr-ch> to protect any hared data
<at100> pitr-ch I just tried running two Threads that do partial sums, with no sharing what-so-ever between them. That is, one thread is summing up the evens and the other the odds, and the end result is the sum of the two partial sums. I then compared it to a single Thread object that calculates everything. The run that uses a single thread is 5 times faster than the one that uses 2 threads.
<at100> pitr-ch In both cases the calculation was not done on the main thread.
<at100> pitr-ch I would have hoped to see the two-threaded solution take less time than the single threaded solution.
<pitr-ch> how long does it take to compute the partial sum?
<pitr-ch> at100
thedarkone2 has joined #jruby
<at100> pitr-ch on 1000_000_000 it takes about 6-8 seconds with a single thread, and about 29 seconds with two threads
<kares> pitr-ch: hey! was there special support code for loading under jruby+truffle? (interested how you got it working when it did work)
<at100> On a dual-core machine (2 hyper-threads on each core)
<kares> ... in concurrent-ruby gem
<pitr-ch> at100 that does not sound right, btw do you run on Graal?
<at100> kares concurrent-ruby gem (version 1.0.2) has some specialized cases for on_truffle?. They seem to do the trick, if you can get the gem to load.
<at100> pitr-ch. I believe I am running on Graal. my JRUBY_OTPS has all the jvmci stuff enabled.
<at100> pitr-ch The timings without Graal: still measuring (after 2 minutes or so).... so I guess it was with Graal :-)
<pitr-ch> sounds like it was :)
<at100> pitr-ch Still running... I'm going to give up on it soon
<pitr-ch> at100 could you share what you are running in gist for example
<at100> pitr-ch hold on, I have an idea that I want to try....
<pitr-ch> kares it was mostly just about right implementations to be loaded.
johnsonch_afk is now known as johnsonch
<at100> pitr-ch ok, interesting. I changed the thread code to calculate the partial sum in a local instead of global, and it sped things up (for the two threaded case) considerably.
<pitr-ch> kares since recognising of Ruby implementation is underspecified
<kares> pitr-ch: but you did use the java classes such as thread-pools or just the plain ruby ones?
<pitr-ch> at100 yeah globals are more expensive, locals are definitely better
<pitr-ch> kares only pure ruby on jr+t
<kares> pitr-ch: ah I see, thanks
codeninja has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<at100> pitr-ch so now 1 and 2 thread timings are equal
johnsonch is now known as johnsonch_afk
johnsonch_afk is now known as johnsonch
<pitr-ch> at100 could you share, it's hard to guess why
<at100> pitr-ch sure working on it
<pitr-ch> thanks
<headius> at100: yes, I'd like to try it in JRuby classic as well
etehtsea has quit [Quit: Computer has gone to sleep.]
<at100> headius Tried it on jruby classic as well. Two-threads is better than single thread. However, jruby classic's best case (in this case with 3 threads) is about 3 times slower than jruby+truffle+graal
<headius> well, I have my ways
<GitHub193> [jruby] eregon pushed 1 new commit to master: https://git.io/v6cVj
<GitHub193> jruby/master 2504b6b Benoit Daloze: [Truffle] JT: Make a nicer way to replace env variable in paths.
cprice404 has quit [Remote host closed the connection]
tjohnson has joined #jruby
<headius> at100: with 4 threads it was less than a second
<GitHub99> [jruby] enebo pushed 2 new commits to master: https://git.io/v6cw6
<GitHub99> jruby/master 6f6c1bb Thomas E. Enebo: Parsers syntax errors were not adding 1 to 0-indexed line
<GitHub99> jruby/master 41e4b34 Thomas E. Enebo: Fixes #4056. Return line no in SyntaxError when parsing Regexp
<GitHub93> [jruby] enebo closed issue #4056: Return line no in SyntaxError when parsing Regexp https://git.io/v6nXq
<ebarrett> Is there a way to call C from jruby without external dependencies?
<headius> FFI
<at100> headius which version of jruby and on what kind of machine? Also what was your single-threaded time? My machine has only 2 cores (that pretend to be 4).
<ebarrett> headius: built in?
<headius> at100: this is JRuby master on a lightly-modified graal
<headius> I'm trying it without graal
<headius> yeah so 10s without the graal mod
<headius> <1s with it
<at100> Is this with truffle?
<chrisseaton> ebarrett: it's a gem
<headius> no
<chrisseaton> ebarrett: what do you want to do?
<ebarrett> chrisseaton: overall goal: read the timestamp register
<ebarrett> i have C code to do this with inline asm
<at100> headius didn't know graal also compiles jruby without truffle
<headius> at100: this is just graal as a JVM
<headius> but with a couple tweaks I found yesterday
<chrisseaton> ebarrett: let's take this to DM to avoid the confusing cross-conversation
<headius> it seems fast enough to me
<headius> ebarrett: FFI is built into JRuby, yes
<headius> you don't need the gem
<headius> you will to run the same code in MRI
<headius> we ship FFI because we use it
<chrisseaton> you'll need to emit a little assembly yourself if you want to read a register I think
<headius> yeah
<headius> you could compile the code with a function you bind to FFI though
<headius> HOWEVER
<headius> jnr-x86asm
<headius> might do what you want
pilhuhn is now known as pil-afk
<at100> headius I'm using the labsjdk1.8.0_92-jvmci-0.18/bin/java JVM
<headius> at100: yeah there's a hack in my copy to work around this issue, but hopefully a proper fix coming
<headius> let me get you numbers for various thread counts (with some warmup)
<pitr-ch> at100 you have to let it warm up before measuring:
<pitr-ch> 2.times do
<pitr-ch> threaded_partial_sum(1, N)
<pitr-ch> threaded_partial_sum(2, N)
<pitr-ch> threaded_partial_sum(3, N)
<pitr-ch> threaded_partial_sum(4, N)
etehtsea has joined #jruby
<pitr-ch> end
<pitr-ch> then it's:
<pitr-ch> Partial sum on 1 thread(s): run took 0.951 seconds
<pitr-ch> Partial sum on 2 thread(s): run took 0.443 seconds
<pitr-ch> Partial sum on 3 thread(s): run took 0.305 seconds
<pitr-ch> Partial sum on 4 thread(s): run took 0.254 seconds
<at100> what's your machine (/proc/cpuinfo)?
<headius> the first four are /10 for warmup
<headius> not quite up to truffle speed but pretty good
<headius> I'm on a core i7 MBP from four years ago
<enebo> headius: without fixnum cache?
<at100> mine's an i5
<headius> 2.2GHz
<headius> enebo: yeah
<headius> I have a patch locally to make the fixnum cache disable-able and sizeable via properties
<headius> OpenJDK 7+ can fold lazy static finals
<pitr-ch> 2 GHz Intel Core i7 MBP
<pitr-ch> running jruby classing for comparison
<GitHub70> [jruby] bjfish pushed 1 new commit to master: https://git.io/v6cKv
<GitHub70> jruby/master 2ca0279 Brandon Fish: [Truffle] Try bulk untag specs
<at100> headius Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz (running at 1.2GHz)
<pitr-ch> headius then can run his jruby withtou tweaks to use it as a bas
<pitr-ch> e
<at100> headius can you try labsjdk1.8.0_92-jvmci-0.18 on your machine?
<headius> I'm running head graal on basically the same thing
<headius> head graal with a small patch :-)
<pitr-ch> jruby classic:
<pitr-ch> Partial sum on 1 thread(s): run took 36.458 seconds
<pitr-ch> Partial sum on 2 thread(s): run took 18.992 seconds
<pitr-ch> Partial sum on 3 thread(s): run took 13.706 seconds
<pitr-ch> Partial sum on 4 thread(s): run took 13.345 seconds
<headius> with indy?
<pitr-ch> ah sorry
<at100> pitr-ch that's about what I see (on i5)
<headius> at100: pass -Xcompile.invokedynamic to JRuby
<pitr-ch> disregard my results
<headius> we don't have it on normally because it has a much longer warmup curve
<at100> after warmup (suggested by headius), jruby+truffle times are
<at100> Partial sum on 1 thread(s) Run took 0.962 seconds
<at100> Partial sum on 2 thread(s) Run took 0.926 seconds
<at100> Partial sum on 3 thread(s) Run took 0.64 seconds
<at100> Partial sum on 4 thread(s) Run took 0.528 seconds
<pitr-ch> yeah you need the above
<headius> pitr-ch: is there a trick to getting truffle to start with a graal head build?
<headius> even if I put truffle in -cp it says it can't find it
<headius> mx/mx ... -cp truffle jar -jar jruby jar ...
<pitr-ch> I always use jt tool for this and its documented ENV variables
<at100> headius I use JRUBY_OPTS to redirect to head graal
<headius> pitr-ch: blah
<headius> at100: can you show me that?
<headius> it would sure be nice if it just worked with mx vm :-)
pawnbox has joined #jruby
claudiuinberlin has quit []
<chrisseaton> headius: GEM_HOME=whatever/graal-core tool/jt.rb run --graal foo bar baz
<chrisseaton> It will give you a Java command line you can run manually
<chrisseaton> We don't yet support running via mx vm
<at100> headius: JRUBY_OPTS="--server -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableJVMCI -J-d64 -J-Djvmci.class.path.append=/home/arietal/GraalVM-New/graal/graal-core/mxbuild/dists/graal.jar -J-Xbootclasspath/a:/home/arietal/GraalVM-New/graal/truffle/mxbuild/dists/truffle-api.jar -J-Djvmci.Compiler=graal"
<chrisseaton> Might be easy enough to do
<enebo> chrisarc1nd: jt generates a command sort of like at100 shows right?
<headius> GEM_HOME?
<enebo> heh sorry chrisarc1nd I meant chrisseaton
<chrisseaton> yeah
<at100> enebo Yeah, I grabbed most of it from mx vm using ps -ef :-)
<chrisseaton> not GEM_HOME, GRAAL_HOME
<headius> at100: ah, in that setup you might want to pass one other flag: -J-Djava.lang.invoke.MethodHandle.PROFILE_GWT=false
<enebo> chrisseaton: ^ is there a debug/verbose which prints out the command-line invoked from jt?
<headius> chrisseaton: cool, thanks
<at100> headius what does that do?
<chrisseaton> enebo: jt does by default I think - as the first line
<enebo> chrisseaton: ah ok. good to know
<headius> at100: there's a missing feature in graal that hotspot optimizes well...this turns that off so it's at least not slowing stuff down
<headius> you don't have my hack but this will help som
<at100> headius thank
<at100> s
<headius> and -Djruby.compile.invokedynamic if you're testing JRuby classic
pawnbox has quit [Ping timeout: 250 seconds]
<at100> headius With the jvmci vm you also need to add export JAVA_OPT=-"XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI"
<headius> chrisseaton: does mx need to be in PATH?
<chrisseaton> Yes
<headius> so complicated
<headius> :-D
<headius> ok
<pitr-ch> jruby classic with indy: Partial sum on 4 thread(s): run took 9.866 seconds
<chrisseaton> headius: that's in --help :)
<at100> pitr-ch what core? and with warmup?
<chrisseaton> Quite a bit of this complexity is to support working with Sulong as well
<headius> chrisseaton: yeah, it would be worth tidying this up for usability
<headius> The VM does not support the minimum JVMCI API version required by Graal.
<pitr-ch> at100 core? yes with warmup
<headius> ok, so I also have to use a jvmci build of jdk itself
<at100> pitr-ch i5? i7?
<chrisseaton> There are JVMCI builds of JDK (not GraalVM) on OTN
<pitr-ch> i7
<headius> I have one locally for graal head
<at100> pitr-ch I'm getting 13.5 seconds on 4 threads on i5. Sounds about right. headius's run is way faster on i7.
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #jruby
<headius> strange
tenderlove has quit [Remote host closed the connection]
<at100> headius does graal box/unbox fixnums on every calculation (like js)?
<pitr-ch> at100 I think headius was using tweeked run, I've used pure JRuby to get some base for comparison
<headius> I'm getting 5 seconds running via jt
<headius> for all thread counts
<headius> at100: graal is a compiler...I'm not sure that question fits
<pitr-ch> somebody should really run all the cases on one computer :)
<headius> yeah I'm trying but these numbers seem wrong
<headius> what am I doing wrong
<pitr-ch> headius try to use what I've posted for warmup
pawnbox has joined #jruby
<pitr-ch> headius you are warming up just for one thread
<headius> added some env
<headius> how long does it take to warm up?
<pitr-ch> so it will invalidate during 2,3,4 threads
<headius> threading invalidates it?
<pitr-ch> not long, I just did:
<pitr-ch> 2.times do
<pitr-ch> threaded_partial_sum(1, N)
<pitr-ch> threaded_partial_sum(2, N)
<pitr-ch> threaded_partial_sum(4, N)
<pitr-ch> threaded_partial_sum(3, N)
<pitr-ch> end
<headius> trying that
<pitr-ch> headius no i guess the nthreads is speculated to be constant
<headius> I don't have two times, but I do all four and then all four again
<headius> yeah that's better
<enebo> headius: so you mean if you unroll it is worse perf than in the loop?
<headius> no, pitr was right
<headius> it's fine now
<headius> I'll add results for this, jruby tweaked, jruby indy + graal, and jruby indy + hotspot
<headius> then we can have all on one machine :-)
zacts has joined #jruby
<pitr-ch> great thanks :)
<headius> I will say this, indy on hotspot keeps my computer nice and warm
<GitHub46> [jruby] eregon pushed 2 new commits to master: https://git.io/v6cX1
<GitHub46> jruby/master e11d21e Benoit Daloze: [Truffle] JT: fixes for last commit.
<GitHub46> jruby/master 8436804 Benoit Daloze: [Truffle] cextc: expand include paths.
<headius> I will show every possible permutation...you will all be happy
<headius> how about truffle on hotspot?
johnsonch is now known as johnsonch_afk
<chrisseaton> Truffle is simultaneously the fastest and slowest Ruby impl
<headius> hahah
<chrisseaton> I think it's just a little slower than 1.8 actually
<headius> I like that
<headius> you should try to get it at least faster than 1.8
<headius> just grind our collective heel into 1.8.7
<chrisseaton> It's faster in SVM I think
shellac has quit [Quit: Leaving]
<headius> man, this missing GWT profile intrinsic makes a huge difference
<headius> really weird results with jruby + indy on unmodified graal
<headius> Vladimir I said there's another one too
<headius> yeah I'm not sure these results are interesting but I'll add them
<headius> graal is crippled for invokedynamic righ tnow
<headius> for some reason it's having a really hard time with multiple threads
<enebo> chrisseaton: another impl may be the slowest now but I will not offend them by mentioning their name
<at100> warmup makes a big difference for jurby -X+T. but PROFILE_GWT does not, in my case.
<at100> both cases measire at about half a second on 4 threads
<headius> let me know if you want to see any other configurations
<headius> enebo: it's ok, ironruby is dead now
<enebo> headius: ;)
<nirvdrum> Fun fact. I took a programming languages course in grad school with Jimmy.
<headius> get out of town
<headius> Jimmy's a nice guy...haven't talked to him in a long time
<nirvdrum> I think he was a year behind me.
claudiuinberlin has joined #jruby
claudiuinberlin has quit [Remote host closed the connection]
<headius> ugh
<headius> I was going to try to run the partial sums bench in MRI but I have a life to live
<eregon> at100 pitr-ch: BTW, sum is pretty much shared state in this benchmark :) It's preallocated, but still.
lanceball is now known as lance|afk
<eregon> a pattern I use for this is nthreads.times.map { Thread.new { ... } }.map(&:value)
<headius> MRI is >50s for sums, obviously threads only make it slower
pawnbox has quit [Remote host closed the connection]
<pitr-ch> eregon yeah I've noticed, but since it's written only once at the end, I've ignored it
bbrowning is now known as bbrowning_away
claudiuinberlin has joined #jruby
pawnbox has joined #jruby
claudiuinberlin has quit [Remote host closed the connection]
<GitHub23> [jruby] headius pushed 1 new commit to master: https://git.io/v6cH9
<GitHub23> jruby/master 0273985 Charles Oliver Nutter: Make the Fixnum cache configurable.
claudiuinberlin has joined #jruby
etehtsea has quit [Quit: Computer has gone to sleep.]
zacts has quit [Ping timeout: 240 seconds]
<headius> @chrisseaton: the "labsjdk" "jvmci" builds on OTN are the Java 8 with JVMCI you mentioned?
<headius> just updating my local graals
rcvalle has joined #jruby
<eregon> pitr-ch: it could cause a int[] => long[] transition, not so safe :p
<eregon> headius: yes
<headius> eregon: thanks!
cprice has joined #jruby
bbrowning_away is now known as bbrowning
johnsonch_afk is now known as johnsonch
prasunanand has quit [Ping timeout: 244 seconds]
claudiuinberlin has quit [Remote host closed the connection]
<headius> I often see one REALLY long result running on graal before it gets to full speed...is that a compilation storm or something?
<pitr-ch> eregon yeah definitely not, but probability of the threads ending at the same time in this benchmark is minuscule, if it was something more important definitely not a good idea
<headius> like I just ran mandelbrot and got 1.6s, 2.3s, 0.21s, 0.19s, 20.9s, and then it settled into 0.18s or so
pawnbox has quit [Remote host closed the connection]
prasunanand has joined #jruby
<chrisseaton> headius: yes
claudiuinberlin has joined #jruby
<chrisseaton> to the labsjdk question
<headius> chrisseaton: thankee
pawnbox has joined #jruby
prasunanand has quit [Ping timeout: 250 seconds]
johnsonch is now known as johnsonch_afk
aemadrid has quit [Quit: Connection closed for inactivity]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
enebo has quit [Quit: enebo]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
enebo has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
prasunanand has joined #jruby
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
enebo has quit [Ping timeout: 276 seconds]
claudiuinberlin has quit [Remote host closed the connection]
claudiuinberlin has joined #jruby
thedarkone2 has quit [Read error: Connection reset by peer]
thedarkone2 has joined #jruby
<travis-ci> jruby/jruby (truffle-head:385b2c5 by Benoit Daloze): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/150947807)
lance|afk is now known as lanceball
subbu is now known as subbu|lunch
<travis-ci> jruby/jruby (graal-vm-0.15:10c6b6e by Chris Seaton): The build passed. (https://travis-ci.org/jruby/jruby/builds/150948238)
rsim1 has quit [Quit: Leaving.]
cprice is now known as cprice404
claudiuinberlin has quit [Remote host closed the connection]
tjohnson has quit [Quit: Connection closed for inactivity]
johnsonch_afk is now known as johnsonch
rsim has joined #jruby
claudiuinberlin has joined #jruby
subbu|lunch is now known as subbu
yorickpeterse has joined #jruby
<yorickpeterse> What kind of write-barrier mechanism does the JRuby GC use, if any at all?
zacts has joined #jruby
hunq8 has quit [Disconnected by services]
prasunanand has quit [Ping timeout: 252 seconds]
johnsonch is now known as johnsonch_afk
prasunanand has joined #jruby
claudiuinberlin has quit []
at1002 has joined #jruby
lanceball is now known as lance|afk
<at1002> eregon yes the sum array was initialized in my test case. The sum array is a shared global. Will j+t work correctly if two or more threads try to grow the array to each of their specific index?
at1003 has joined #jruby
bbrowning is now known as bbrowning_away
at1002 has quit [Ping timeout: 244 seconds]
bbrowning_away has quit [Ping timeout: 258 seconds]
johnsonch_afk is now known as johnsonch
<thedarkone2> at100 at1003: no, core collection classes are not thread safe, you can read up on the proposed ruby memory model here https://bugs.ruby-lang.org/issues/12020 (see the linked google doc by pitr-ch)
<thedarkone2> yorickpeterse: GC is relegated to the underlying JVM implementation, where different GCs and/or different GC configurations each do their own specific/needed barriers
johnsonch is now known as johnsonch_afk
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
enebo has joined #jruby
yfeldblum has joined #jruby
enebo has quit [Quit: enebo]
tcrawley is now known as tcrawley-away
zacts has quit [Ping timeout: 240 seconds]
cremes has quit [Ping timeout: 276 seconds]
cremes has joined #jruby
johnsonch_afk is now known as johnsonch
<yorickpeterse> thedarkone2: Ah right
<yorickpeterse> Thanks
johnsonch is now known as johnsonch_afk
yorickpeterse has left #jruby [#jruby]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pil-afk has quit [Ping timeout: 244 seconds]
johnsonch_afk is now known as johnsonch
pilhuhn has joined #jruby
pilhuhn has quit [Changing host]
pilhuhn has joined #jruby
johnsonch is now known as johnsonch_afk
electrical has quit [Quit: Connection closed for inactivity]