ChanServ changed the topic of #jruby to: Get 9.0.1.0! http://jruby.org/ | http://wiki.jruby.org | http://logs.jruby.org/jruby/ | http://bugs.jruby.org | Paste at http://gist.github.com
erikhatcher has quit [Quit: erikhatcher]
erikhatcher has joined #jruby
mdedetrich has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
tcrawley is now known as tcrawley-away
temporalfox has quit [Read error: Connection reset by peer]
temporal_ has joined #jruby
cristianrasch has joined #jruby
camlow325 has quit [Ping timeout: 244 seconds]
havenwood has joined #jruby
yfeldblum has quit [Remote host closed the connection]
cristianrasch has quit [Ping timeout: 255 seconds]
yfeldblum has joined #jruby
jensnockert has joined #jruby
cajone has quit [Ping timeout: 255 seconds]
havenwood has quit [Quit: Textual IRC Client: www.textualapp.com]
pietr0 has quit [Quit: pietr0]
jensnockert has quit [Read error: Connection reset by peer]
bffff_ has quit [Quit: Connection closed for inactivity]
phrinx has quit [Remote host closed the connection]
jensnockert has joined #jruby
jensnockert has quit [Ping timeout: 260 seconds]
cajone has joined #jruby
tenderlove has joined #jruby
jensnockert has joined #jruby
jensnockert has quit [Ping timeout: 268 seconds]
pawnbox has joined #jruby
xardion has quit [Ping timeout: 244 seconds]
xardion has joined #jruby
cajone has left #jruby [#jruby]
dinfuehr has joined #jruby
cajone has joined #jruby
subbu has joined #jruby
temporal_ has quit [Read error: Connection reset by peer]
temporalfox has joined #jruby
havenwood has joined #jruby
tenderlove has quit [Remote host closed the connection]
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
subbu has quit [Quit: Leaving]
mdedetrich has joined #jruby
rsim has joined #jruby
rsim has quit [Client Quit]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 244 seconds]
pawnbox has joined #jruby
camlow325 has joined #jruby
rsim has joined #jruby
pawnbox_ has joined #jruby
pitr-ch has joined #jruby
pawnbox has quit [Read error: Connection reset by peer]
dinfuehr_ has joined #jruby
dinfuehr has quit [Read error: Connection reset by peer]
tenderlove has joined #jruby
skade has joined #jruby
dinfuehr_ has quit [Ping timeout: 240 seconds]
dinfuehr has joined #jruby
dinfuehr has quit [Remote host closed the connection]
rsim has quit [Quit: Leaving.]
skade has quit [Quit: Computer has gone to sleep.]
rsim has joined #jruby
yfeldblum has quit [Ping timeout: 240 seconds]
jensnockert has joined #jruby
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
havenwood has quit [Ping timeout: 252 seconds]
jensnockert has quit [Read error: Connection reset by peer]
jensnock_ has joined #jruby
camlow325 has quit []
tenderlove has quit [Remote host closed the connection]
mike___1234 has joined #jruby
tenderlove has joined #jruby
tenderlove has quit [Remote host closed the connection]
pawnbox_ has quit [Remote host closed the connection]
temporalfox has quit [Quit: Textual IRC Client: www.textualapp.com]
temporalfox has joined #jruby
samphippen has joined #jruby
shellac has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
pitr-ch has quit [Ping timeout: 252 seconds]
pawnbox has joined #jruby
tenderlove has joined #jruby
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #jruby
tenderlove has quit [Ping timeout: 264 seconds]
tenderlove has joined #jruby
shellac has joined #jruby
pitr-ch has joined #jruby
skade has joined #jruby
jensnock_ has quit [Ping timeout: 260 seconds]
CustosL1men has joined #jruby
jensnockert has joined #jruby
jensnockert has quit [Client Quit]
skade has quit [Quit: Computer has gone to sleep.]
drbobbeaty has joined #jruby
vtunka has joined #jruby
tenderlove has quit [Remote host closed the connection]
yfeldblum has joined #jruby
<GitHub144> [jruby] eregon commented on commit 6d62f88: Should it be `-S`, like the ruby/jruby command does? http://git.io/vZufO
tenderlove has joined #jruby
tenderlove has quit [Remote host closed the connection]
skade has joined #jruby
pawnbox_ has joined #jruby
<GitHub26> [jruby-openssl] mkristian opened issue #69: OpenSSL::X509::Store.verify with wrong argument produces ClassCastException http://git.io/vZukt
pawnbox has quit [Ping timeout: 260 seconds]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
e_dub has quit [Ping timeout: 250 seconds]
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pawnbox_ has quit [Remote host closed the connection]
pawnbox has joined #jruby
pitr-ch_ has joined #jruby
maciom has joined #jruby
pitr-ch has quit [Ping timeout: 264 seconds]
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mdedetrich has joined #jruby
rsim has quit [Quit: Leaving.]
e_dub has joined #jruby
thsig has joined #jruby
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
drbobbeaty has joined #jruby
mdedetrich has joined #jruby
samphippen has joined #jruby
thsig has quit []
cristianrasch has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
samphippen has quit [Read error: Connection reset by peer]
samphippen has joined #jruby
pitr-ch_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
cristianrasch has quit [Quit: Leaving]
shellac has quit [Quit: Computer has gone to sleep.]
yfeldblum has quit [Ping timeout: 244 seconds]
rsim has joined #jruby
cristianrasch has joined #jruby
maciom has quit [Quit: Page closed]
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
elia has quit [Quit: (IRC Client: textualapp.com)]
robbyoconnor has quit [Ping timeout: 256 seconds]
tcrawley-away is now known as tcrawley
elia has joined #jruby
shellac has joined #jruby
cpuguy83 has quit [Read error: Connection reset by peer]
cpuguy83_ has joined #jruby
cpuguy83_ is now known as cpuguy83
cpuguy83_ has joined #jruby
erikhatcher has joined #jruby
samphippen has quit [Excess Flood]
samphippen has joined #jruby
cpuguy83_ has quit [Remote host closed the connection]
cpuguy83 has quit [Remote host closed the connection]
cpuguy83 has joined #jruby
lance|afk is now known as lanceball
cpuguy83 has quit [Read error: Connection reset by peer]
cpuguy83_ has joined #jruby
cpuguy83_ is now known as cpuguy83
cpuguy83 has quit [Remote host closed the connection]
cpuguy83 has joined #jruby
shellac has quit [Quit: ["Textual IRC Client: www.textualapp.com"]]
cpuguy83 has quit [Read error: Connection reset by peer]
shellac has joined #jruby
<GitHub94> [jruby] chrisseaton commented on commit 6d62f88: Yes I think `-S` could be a good idea. http://git.io/vZujK
cpuguy83 has joined #jruby
elia has quit [Read error: Connection reset by peer]
elia_ has joined #jruby
mdedetrich has quit [Ping timeout: 250 seconds]
mdedetrich has joined #jruby
jruby728 has joined #jruby
<jruby728> @Headius: I'm not sure what time you have in the US, but it's 14:40 here in Ireland.
iloveitaly has joined #jruby
ninkibah has joined #jruby
havenwood has joined #jruby
jruby728 has quit [Ping timeout: 246 seconds]
* ninkibah slaps headius around a bit with a large fishbot
<ninkibah> @headius sorry, I never slapped anybody before in IRC. I'd never do it to you in person. A classmate in college slapped another class mate with a mackerel, and they're now married. Go figure!
rsim has quit [Quit: Leaving.]
erikhatcher has quit [Quit: erikhatcher]
jamo_ has joined #jruby
<headius> ninkibah: hah, hello there!
<headius> so 9k takes 50% longer to run your test suite, yes?
<ninkibah> Hi Headius. What can I do to get those performance figures to you?
vtunka has quit [Quit: Leaving]
<headius> first of all, are you running with --dev flag to JRuby?
<ninkibah> Yeah, on my old laptop, our test suite (standard rails 4.2 app) take 600 seconds under 1.7.22, but 880 seconds under jruby 9.0.1.0
<headius> that turns off some optimizations at JRuby and JVM level to improve startup and cold perf
<ninkibah> No, I don't use any flags at all. I normally run the tests under RubyMine. It prints out the command line. One moment while I fetch it for you
<headius> ok, --dev could be a big improvement for both JRuby versions
<chrisseaton> headius: this demo from Jaroslav shows what our interop between Ruby/JS/Java/R etc is looking like https://www.youtube.com/watch?v=ewdzDqPsn38#t=131
<ninkibah> Ok. let me turn that on and try again. I'll get back to you in about 20 minutes.
<headius> chrisseaton: cool, I'll have a look
enebo has joined #jruby
<ninkibah> Headius, wow, it sure does startup fast with --dev. I must remember to read the speed up page every 3 months.
<headius> we added this about a year ago I think...biggest improvement is due to turning off some slow-starting optimizations at JVM level
<ninkibah> Yes, I remember seeing it then, but ignored it :-(.
<headius> ahh well it will be interesting to see what your times are with it
<GitHub37> [jruby] NickMRamirez opened issue #3320: Windows: IO.popen closes pipe when forward slash in Typeperf command http://git.io/vZzEf
<headius> damn you Windows
<headius> I need to get the new process stuff working with CreateProcess
<headius> sigh
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
<enebo> headius: have fun with that
<headius> oh, oodles of fun
<enebo> headius: the jnr-posix port was not quite right and it was only basically for exec’ing only
<enebo> headius: full process management will be icky
<ninkibah> headus: ok --dev shaved 40 seconds off the 1.7.22 run time. About 6% reduction. I'll switch to 9000 and time it again.
<headius> ninkibah: ok
<enebo> kares: + if ( ! new File(path).exists() ) {
<enebo> kares: - if (!new File(getPath()).exists()) {
<enebo> non extra whitespace is per style on this
<enebo> fwiw you only do this a few places so I know you are wrestling with your preference :)
subbu has joined #jruby
<enebo> - return "" + getThread();
<enebo> + return String.valueOf(getThread());
<enebo> I am fine with this but I personally like the former (even it is can be slower :)
rsim has joined #jruby
<enebo> I would think it would end up the same but I guess it would depend on how smart javac is
<headius> I'd do getThread().toString() myself
<GitHub70> [jruby] enebo closed pull request #3319: find-bugs 2 (master...test-findbugs-2) http://git.io/vZRav
<GitHub173> [jruby] enebo pushed 1 new commit to master: http://git.io/vZzV6
<GitHub173> jruby/master 976c968 Thomas E Enebo: Merge pull request #3319 from jruby/test-findbugs-2...
<enebo> headius: I guess I got stuck on this idiom of “” + so save columns?
<enebo> headius: I see enough people accidentally call toString to the point where I see it as a code smell (even though yours is probably the most explicit and direct for that snippet)
<enebo> headius: ah but I guess String.valueOf works for null
<enebo> headius: so perhaps toString() is not right there
<headius> ahh sure
<headius> null is a thing
<enebo> I think in little things like this we just do it right without thinking about it anymore
<ninkibah> headius: The 9.0.1.0 runtime is down 37 seconds to 843 using the --dev flag. But it's still way slower than jruby 1.7.22
Aethenelle has joined #jruby
havenwood has quit [Quit: Textual IRC Client: www.textualapp.com]
<GitHub48> [jruby-openssl] mkristian opened issue #70: can not use SSL_CERT_FILE to point to java keystore http://git.io/vZzPU
<headius> ninkibah: ok, so with that flag on we can try to do some sampling... JAVA_OPTS=-Xprof should dump out sampled profiles of all threads that run
<ninkibah> Just spotted my JRUBY_OPTS in my command line are: JRUBY_OPTS=-J-Xmx2000m --dev -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.mode=OFF
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
brightball has joined #jruby
donV has joined #jruby
pawnbox has joined #jruby
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<ninkibah> headius: I created a gist of the output, however, I got bored waiting for it to continue after emitting the first set of stats, and then I went on the rampage with ^C and ^\. https://gist.github.com/ninkibah/e4d71ddfed8edaf6a951
digitalextremist has joined #jruby
<ninkibah> headius: I'm going to try running just one class and getting profiling for it.
<headius> ninkibah: ok
<enebo> Hmmm
<headius> wow, Object.clone? that's weird
<enebo> ninkibah: This may not change speed but you can add -Xjit.threshold=-1. I can see this if performcing full builds in interp mode
<enebo> ninkibah: that happens off thread but it is clouding this instrumented profile
<headius> 45,6% 0 + 17253 java.lang.Object.clone
<headius> that's main thread samples
<enebo> you talkingto me?
<enebo> headius: though this is showing up less it still stands out to me: 0,9% 0 + 354 java.lang.Throwable.getStackTraceElement
<headius> yeah
<enebo> something is throwing
rsim has quit [Quit: Leaving.]
<enebo> man if we are doing something dumb with the Object.clone it would make my month
<headius> I don't see anything that looks weird in codebase
<enebo> JDBC, FFI, and Zip in play…lots of library action which may be doing it too
<headius> the only clone uses that would be different from 1.7 are in IR
<headius> and there's very few
<ninkibah> OK, here's the gist for one class, no funny business. I'll run the same file under 1.7.22 now: https://gist.github.com/ninkibah/410dca34f5b73db40787
erikhatcher has joined #jruby
<ninkibah> headius: And here's the same under 1.7.22: https://gist.github.com/ninkibah/c8a05f85afd0f01eca34
<headius> that clone is a weird one to see at the top
<headius> ninkibah: a new flag for you (remove -Xprof): -Xrunhprof:depth=20
<headius> it will be incredibly slow, so just run that same one thing
<headius> let it chew and it will spit out a giant java.xprof.txt file (I think that's the filename)
<headius> zip it up and email to me at headius@headius.com (probably too big for gist to take it)
bb010g has joined #jruby
<headius> it's an allocation trace, it will show where all objects are getting allocated...I should be able to see why clone is getting hit so hard then
<headius> it could be a sampling artifact but then I'd expect to see it in 1.7.22 too
<ninkibah> headius: OK will do. Do you want the 1.7.22 as well, or is it ok just to run it for 9.0.1.0?
<headius> just 9010 for no
<headius> now
Aethenelle has quit [Quit: Aethenelle]
bbrowning_away is now known as bbrowning
yfeldblum has joined #jruby
<ninkibah> headius: I already started the run under 1.7.22, but I suspect it stopped a bit early. Do I need to give JAVA more ram? https://gist.github.com/ninkibah/985895c8372e84c6fb01
samphippen has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
<headius> no, that looks right
<headius> the errors are just parts of the heap it can't trace I believe
Aethenelle has joined #jruby
elia_ has quit [Quit: Computer has gone to sleep.]
skade has quit [Quit: Computer has gone to sleep.]
skade has joined #jruby
rsim has joined #jruby
dinfuehr has joined #jruby
dinfuehr has quit [Remote host closed the connection]
dinfuehr has joined #jruby
phrinx has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
dinfuehr has quit [Ping timeout: 246 seconds]
CustosL1men has quit [Ping timeout: 240 seconds]
<GitHub77> [jruby-openssl] mkristian created more-default-locations (+3 new commits): http://git.io/vZgut
<GitHub77> jruby-openssl/more-default-locations ad93636 Christian Meier: keep in line with MRI if possible...
<GitHub77> jruby-openssl/more-default-locations 742b9e6 Christian Meier: check type on X509::Store.verify...
<GitHub77> jruby-openssl/more-default-locations af83d3a Christian Meier: X509::Store.set_default_paths ignores FileNotFound errors like MRI does...
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pawnbox has quit [Remote host closed the connection]
erikhatcher has joined #jruby
tcrawley is now known as tcrawley-away
<GitHub158> [jruby-openssl] mkristian opened pull request #71: More default locations (master...more-default-locations) http://git.io/vZgzQ
<lopex> headius: where's enebo
ninkibah has quit [Ping timeout: 246 seconds]
anaeem1_ has joined #jruby
yfeldblum has quit [Ping timeout: 246 seconds]
anaeem1_ has quit [Remote host closed the connection]
<enebo> lopex: EATING
<lopex> enebo: an excuse as always
<enebo> lopex: Charlie and I had the mexican cake in Berlin of all places this summer
<enebo> lopex: I loved it
<enebo> lopex: That is impossible for me to get in US
<enebo> lopex: most people
<lopex> all places ?
<enebo> lopex: did you get a bottle?
<lopex> enebo: yes, today
<enebo> lopex: yeah I don’t understand distribution of that beer
<lopex> enebo: it's wating for tomorrow party
<enebo> lopex: co-worker can drive there and get it when it is released but I think he said it sells out locally in a day or two
<lopex> right
<enebo> lopex: so they must reserve a bunch for wide distribution
<lopex> so popularr
<lopex> enebo: also got a few de molens
<enebo> lopex: the bar sold it for 18EU which is not horrible for being in a bar and also being impossible to find
<enebo> lopex: nice
<enebo> lopex: I am low carbing next couple of weeks so I only get to hear about great beer
<lopex> enebo: lately, I drink more and more beers made by my brother
<enebo> lopex: I also had the hop-15 and gave that 4/5
<lopex> enebo: he brews every weekend now
<enebo> mexican cake 4.2/5/5
<enebo> lopex: nice. I brewed last weekend
<enebo> lopex: I made a wet hop ale with the 1kg of hops I took off the vine in my yard
<travis-ci> jruby/jruby-openssl (more-default-locations:af83d3a by Christian Meier): The build failed. (https://travis-ci.org/jruby/jruby-openssl/builds/79885948)
<tarcieri> _____ ____ ___ ____ _ __ ___ _ _
<tarcieri> | ___| _ \|_ _| _ \ / \\ \ / / | | |
<tarcieri> | |_ | |_) || || | | |/ _ \\ V /| | | |
<tarcieri> | _| | _ < | || |_| / ___ \| | |_|_|_|
<tarcieri> |_| |_| \_\___|____/_/ \_\_| (_|_|_)
<tarcieri>
<enebo> FFFFFFRRRRRRIIIIDDDDDAAAAAAYYYYY FLOOD
<enebo> tarcieri: any new beer places in SF?
<tarcieri> ummmmm
<tarcieri> not that I know of
<enebo> tarcieri: :|
shellac has joined #jruby
elia has joined #jruby
mje113 has joined #jruby
bb010g has quit [Quit: Connection closed for inactivity]
yfeldblum has joined #jruby
brightball has quit [Quit: Linkinus - http://linkinus.com]
brightball has joined #jruby
CustosL1men has joined #jruby
lanceball is now known as lance|afk
bb010g has joined #jruby
<GitHub153> [jruby] chrisseaton created truffle-objspace (+1 new commit): http://git.io/vZgpu
<GitHub153> jruby/truffle-objspace 63ab92d Chris Seaton: [Truffle] Implement objspace.
<GitHub47> [jruby] chrisseaton opened pull request #3321: [Truffle] Implement objspace. (master...truffle-objspace) http://git.io/vZgje
elia has quit [Quit: Computer has gone to sleep.]
<chrisseaton> ^ Truffle even makes things like objspace easy to implement with high performance (until you actually start tracing allocations that is I'll admit)
elia has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
elia_ has joined #jruby
mike___1234 has quit [Ping timeout: 260 seconds]
elia has quit [Ping timeout: 246 seconds]
elia_ has quit [Client Quit]
<lopex> chrisseaton: how does it affect gc perf ?
rsim has quit [Quit: Leaving.]
mike___1234 has joined #jruby
CustosL1men has quit [Ping timeout: 264 seconds]
Tristitia has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
ninkibah has joined #jruby
<ninkibah> headius: I'm back after dinner. Here's the gist with the hprof results under 9010: https://gist.github.com/ninkibah/31f16356976261cae3f3
shellac has joined #jruby
<GitHub37> [jruby-openssl] kares commented on commit af83d3a: could we do this backwards compatibly - seems like no biggie ... won't exists on **1.7.4** ? http://git.io/vZ24z
pitr-ch has joined #jruby
colinsurprenant has joined #jruby
<GitHub92> [jruby] pitr-ch commented on commit 6d62f88: Ok, the resulting functionality is close enough. In most cases it'll do the same thing (it does not use PATH). Renaming. http://git.io/vZ2KG
<colinsurprenant> hey!
<colinsurprenant> got a question on thread local storage....
<colinsurprenant> is setting thread-local vars from another thread, thread-safe? ie @thead[:foo] = :bar … is there an implicit memory barrier with this construct or we should use an explicit mutex?!
<colinsurprenant> (generally in Ruby and specifically in JRuby?)
jeremyevans has quit [Ping timeout: 264 seconds]
CustosL1men has joined #jruby
temporalfox has quit [Quit: Textual IRC Client: www.textualapp.com]
temporalfox has joined #jruby
pietr0 has joined #jruby
yfeldblum has quit [Ping timeout: 246 seconds]
lance|afk is now known as lanceball
subbu has quit [Ping timeout: 272 seconds]
subbu has joined #jruby
havenwood has joined #jruby
bb010g has quit [Quit: Connection closed for inactivity]
<lopex> colinsurprenant: afaik on ruby side it's fine by definition since mri controlls thread stacks
<lopex> colinsurprenant: but on jruby side it depends on the usage
<lopex> if @thead is prone to races then I guess it might brake
<lopex> colinsurprenant: ruby still doesnt have proper memory model
<lopex> tarcieri: what's the current state of that ?
<colinsurprenant> thanks lopex … I guess this will require some investigation :P
<lopex> colinsurprenant: just hang out here on the channel here
<colinsurprenant> AFAICT, looking at JRuby source, the RubyThread class defines private transient Map<IRubyObject, IRubyObject> threadLocalVariables; and nothing crosses a memory barrier when getting/setting these
<colinsurprenant> why is that maked transient ?? was that confused with volatile ?!?!?
enebo has quit [Quit: enebo]
<lopex> colinsurprenant: transient is just a serializability, volatile is about barriers
<colinsurprenant> i know
<colinsurprenant> that’s why I’m saying that transcient is really weird here
<lopex> that one is fully synchronized so I guess no problem here
<lopex> but @ might be the problem
<colinsurprenant> it should be volatile no?
<colinsurprenant> oh?
<lopex> in java fields are volatile - the define the barriers
<lopex> synchronized keyword is fully locked semantics
<lopex> volatile means - no reorder can happen with another read
<lopex> so you get a barrier
<colinsurprenant> oh actually, in master its “volatile transient” but in 1.7 branch I have checked out it’s just “transient”
<lopex> dont bother with the transient modfier
<colinsurprenant> yes, I know that, this is why found strage the lacking of the volatile on that hashmap, and why use transcient when there but I don’t see the synchronize,
<colinsurprenant> oups
<colinsurprenant> and why use transcient when there’s nothing about serialization around that
<colinsurprenant> I did not see the synchronize? where? (looking ...)
<lopex> because the class can be serialized - and you dont wonat that file being included
<colinsurprenant> OH
<colinsurprenant> private synchronized Map<IRubyObject, IRubyObject> getThreadLocals() {
<lopex> ah, I must have read the wrong link
<lopex> yeah
<lopex> volatile means - it cannot be reordered, but stil be carefull
<colinsurprenant> right
<colinsurprenant> but its syncronized so we are golden
<colinsurprenant> all good
<lopex> well, like barriers
<lopex> colinsurprenant: well, @ implies ivar lookups
<lopex> colinsurprenant: so you would have to reassure that as well
<lopex> @ is evil
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<colinsurprenant> in my example I had a @thread to make it obvious I was talking about referencing a “foreighn” thread through a variable
<colinsurprenant> instead of Thread.current[:foo] for example
<lopex> colinsurprenant: @ is an ivar lookup
<colinsurprenant> yes
<lopex> so a = @x is not atomic
<colinsurprenant> true
<lopex> colinsurprenant: on that one, I recommend asking someone more competent
<colinsurprenant> but this is not the problem here:
erikhatcher has joined #jruby
<colinsurprenant> @t = Thread.new { … }
<lopex> so @foo is no a race candidate ?
<colinsurprenant> @t[:foo] = :bar
<lopex> colinsurprenant: oh sure, then it all goes to that #[]
<lopex> if it's save thant it's save
<lopex> right ?
<colinsurprenant> I wanted to know if from within that thread, will Thread.current[:foo] be correctly visibile
<colinsurprenant> so will @t[:foo] = :bar will have a memory barrier? - answer is yes since the getThreadLocals method is synchronized (which I missed when looking)
<colinsurprenant> thanks for pointing it out :)
<lopex> did I ? :)
<mjc_> is there a document somewhere that describes how symbols are implemented in JRuby?
<colinsurprenant> :D
AntKnee has joined #jruby
<mjc_> hah I was hoping to find something I can show a junior
<AntKnee> who you calling Jr
<lopex> colinsurprenant: it seems that from op_aref in RubyThread everytinhg is synced
<colinsurprenant> lopex: ah true … public synchronized IRubyObject op_aref(IRubyObject key)
<lopex> colinsurprenant: in that case you're golden
<lopex> colinsurprenant: my concern was mostly that ivar access
<colinsurprenant> yup! thanks!
<lopex> colinsurprenant: since I dont know if you're oging to change that
<lopex> *going
ninkibah has quit [Ping timeout: 246 seconds]
<lopex> that would be a problem
<lopex> mjc_: well RubySymbol is the place to go but I can help
<lopex> mjc_: basically it's just an api around a map from java String -> rubySymbol afair
<lopex> might have changed nowadays
bbrowning is now known as bbrowning_away
shellac has quit [Quit: Computer has gone to sleep.]
lanceball is now known as lance|afk
iloveitaly has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yfeldblum has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
erikhatcher has quit [Quit: erikhatcher]
cprice404 has quit [Quit: Konversation terminated!]
knu has quit [Read error: Connection reset by peer]
cprice404 has joined #jruby
shellac has joined #jruby
knu has joined #jruby
cprice404 has quit [Quit: Konversation terminated!]
jeremyevans has joined #jruby
tcrawley-away is now known as tcrawley
phrinx has quit [Quit: Leaving...]
<chrisseaton> lopex: zero impact until you start tracing, and then it keeps references to more objects for the trace, but that's what you'd expect
phrinx has joined #jruby
cprice404 has joined #jruby
phrinx_ has joined #jruby
havenwood has quit [Ping timeout: 244 seconds]
phrinx has quit [Ping timeout: 256 seconds]
<lopex> chrisseaton: wow
<lopex> chrisseaton: and it's truflle runtime that does all of the work ?
<lopex> astonishing about the depots
<chrisseaton> yes we have two versions of the code to allocate and object, and truffle makes it very easy to switch between the two, and with no cost to check if you need to do that
<chrisseaton> allocate *an* object, I mean
<lopex> chrisseaton: astonishing
<chrisseaton> there's no specs for this stuff at the moment though so hard to check it's all correct
<lopex> chrisseaton: I guess the feeling like you said about the constant folds
<lopex> and deopt
tcrawley is now known as tcrawley-away
<lopex> chrisseaton: so js would equally benefit from that
<lopex> chrisseaton: trying to fit my mind on v8 somewhere
<chrisseaton> if you had a JS language feature that allowed you to trace allocations, yeah it could do the same thing. Same in R, Python, C, etc
<lopex> chrisseaton: amazing
<lopex> well I guess I can somewhat imagine the thing, still amazing
<lopex> chrisseaton: I'm very happy so huge resources are being put from Oracle
<chrisseaton> thanks - I think Oracle probably put more money that anyone else into Ruby implementation work, and it's nice to see that noticed
<lopex> chrisseaton: yeah I can see that
<lopex> chrisseaton: but I'm biased :)
mje113 has quit [Quit: Connection closed for inactivity]
<lopex> chrisseaton: I guess I have been born too early
<tarcieri> lopex: of what, the Ruby memory model?
<tarcieri> what Ruby memory model? ;)
<lopex> tarcieri: @ semantics
<lopex> chrisseaton: you're being scared by that too ?
<lopex> AA is one thing
<lopex> but no barriers are defined for them
<chrisseaton> Petr Chalupa is looking at a memory model, and eregon recently removed our GIL
<lopex> chrisseaton: wrt @ ?
<chrisseaton> sorry don't understand that?
<lopex> it can be optimized given a model
<chrisseaton> instance variables?
<lopex> chrisseaton: ivars
<lopex> yes
<chrisseaton> well in some ways we're better off without a memory model as we can optimise however we want
<lopex> chrisseaton: so go ful AA ?
<lopex> *full
<chrisseaton> if we have just one rule - no serialisation except if you do a synchronisation event, then that's also very good for optimisations, and that's what we, JRuby and Rubinius do at the moment really
<lopex> hm
<chrisseaton> I think that's a very reasonable memory model, but I think Petr favour some kind of guarantee that all ivars set in a constructor will be visible when the object becomes visible
<chrisseaton> and that does seem to be how uninformed Ruby programmers expect things to work
<lopex> well, I'm not an expert on thins, but ivars was always an issue
<chrisseaton> lopex: IMHO the bottom line is don't access shared state with synchronisation - anything else is crazy
<chrisseaton> without synch I mean
<lopex> sure
<lopex> right
<chrisseaton> I was talking to one Ruby-famous person recently - I won't name him - and he was trying all these things to somehow publish an object without any synch thinking he could beat the system - but everything he tried had a subtle flaw that was hard to even understand without lots of expect knowledge
<chrisseaton> double-checked locking is the classic example of this kind of thinking
<chrisseaton> there's something quite Faustian about it
<lopex> concurrency is hard
<lopex> and that mutable ruby is making it harder
<chrisseaton> I think most industrial programmers do not have any idea that writes by one thread can appear out of order from another
shellac has quit [Quit: Computer has gone to sleep.]
<chrisseaton> And it's easy to see why - it's so completely at odds with the rest of their understanding of computation
<lopex> chrisseaton: the world will en up with frp with it's proper defintion
<chrisseaton> I'd favour dataflow, which is what I started writing my PhD about, but it's probably two-sides of the same coin
<lopex> chrisseaton: elm is a one answer
<lopex> chrisseaton: what's your stand on pure fp ?
<chrisseaton> I think sometimes you need shared state to get tractable operational complexity
<chrisseaton> I have a pet benchmark called 'lee routing' that I think shows this well - and I'm doing a demo of it in Ruby at the moment so I'll show it soon
<lopex> I guess I agreee
<lopex> chrisseaton: but otoh you can optimize pure fp onto madness shared ops
<lopex> are we still in the swamps ?
<chrisseaton> yes, but we're kind of getting into magic compiler territory there
<chrisseaton> theoretically a compiler could transform a concurrent pure FP program into shared state, but in practice it cannot
<lopex> chrisseaton: we get a couple of camps, like ultra statically checked etc
<lopex> like haskell
<lopex> chrisseaton: hmm, but I heard an ocaml program using lenses can transform it into a struct updates
<lopex> chrisseaton: well, that's subproblem you described
<chrisseaton> does the ocaml solution work in a concurrent environment though? I thought it was just sequentially
<lopex> chrisseaton: but ultimately we need some validity
<lopex> chrisseaton: I dont know
<lopex> chrisseaton: anyways, it all bils down to the lambda cube again - as I cam see it
<lopex> you have a verivfication at some point or you dont
dbussink has quit [Ping timeout: 252 seconds]
jeregrine has quit [Ping timeout: 252 seconds]
<lopex> chrisseaton: oh, have you seen the mars curiosity software dev jpl video ?
<chrisseaton> no
jeregrine has joined #jruby
dbussink has joined #jruby
<lopex> chrisseaton: the tools they used to analyse code
<lopex> chrisseaton: madness
<lopex> and the unsafety of c forced them to used thar
cristianrasch has quit [Quit: Leaving]
Aethenelle has quit [Quit: Aethenelle]
bbrowning_away has quit [Quit: Leaving]
phrinx_ has quit [Remote host closed the connection]
dinfuehr has joined #jruby
dinfuehr has quit [Remote host closed the connection]
dinfuehr has joined #jruby
mdedetrich has joined #jruby
dinfuehr has quit [Ping timeout: 246 seconds]
<chrisseaton> yeah makes us all look like amateurs
<rtyler> but...some of us are amateurs :P
Aethenelle has joined #jruby
erikhatcher has joined #jruby
subbu has quit [Ping timeout: 256 seconds]
colinsurprenant has quit [Ping timeout: 246 seconds]
bb010g has joined #jruby
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]