nirvdrum_ has quit [Ping timeout: 240 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] chrisseaton pushed 2 new commits to master: http://git.io/AxR6
<JRubyGithub> jruby/master 9933f68 Brandon Fish: [Truffle] Implemented Bignum#bit_length
<JRubyGithub> jruby/master 4f6931e Chris Seaton: Merge pull request #2620 from bjfish/truffle_bignum_bit_length...
JRubyGithub has left #jruby [#jruby]
camlow325 has quit [Ping timeout: 256 seconds]
blinsay has quit [Remote host closed the connection]
Aethenelle has quit [Quit: Aethenelle]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to master: http://git.io/Ax2h
<JRubyGithub> jruby/master 0cff9f9 Charles Oliver Nutter: Recognize JVM spec 1.9.
JRubyGithub has left #jruby [#jruby]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:8f545fd by Benoit Daloze): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52163083)
travis-ci has left #jruby [#jruby]
calavera has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] chrisseaton pushed 4 new commits to master: http://git.io/Ax6l
<JRubyGithub> jruby/master 2e284fd Brandon Fish: [Truffle] Implemented Symbol#upcase, added final in Symbol#swapcase
<JRubyGithub> jruby/master 37347df Brandon Fish: [Truffle] Updating Symbol#swapcase and Symbol#upcase to use byte list directly
<JRubyGithub> jruby/master dceeb39 Brandon Fish: [Truffle] Removing additional Symbol#swapcase and Symbol#upcase tags that are now passing
JRubyGithub has left #jruby [#jruby]
_djbkd has quit [Remote host closed the connection]
marr has quit [Ping timeout: 246 seconds]
_djbkd has joined #jruby
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
e_dub has joined #jruby
nirvdrum_ has joined #jruby
nirvdrum has quit [Ping timeout: 244 seconds]
nirvdrum_ has quit [Ping timeout: 272 seconds]
baroquebobcat has quit [Quit: baroquebobcat]
baroquebobcat has joined #jruby
baroquebobcat has quit [Client Quit]
<projectodd-ci> Project jruby-master-spec-ji build #666: STILL FAILING in 26 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/666/
travis-ci has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:0ca486c by Charles Oliver Nutter): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52197561)
travis-ci has left #jruby [#jruby]
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
havenwood has quit []
triple_b has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:76da547 by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52209969)
travis-ci has left #jruby [#jruby]
pietr0 has quit [Quit: pietr0]
ahadding1 has quit [Ping timeout: 250 seconds]
ahadding1 has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
calavera has quit [Ping timeout: 245 seconds]
baroquebobcat has joined #jruby
camlow325 has quit []
djbkd_ has joined #jruby
_djbkd has quit [Ping timeout: 244 seconds]
iamjarvo has joined #jruby
iamjarvo has quit [Max SendQ exceeded]
iamjarvo has joined #jruby
djbkd_ has quit [Quit: My people need me...]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:0cff9f9 by Charles Oliver Nutter): The build was broken. (http://travis-ci.org/jruby/jruby/builds/52211223)
travis-ci has left #jruby [#jruby]
nirvdrum_ has joined #jruby
baroquebobcat has quit [Quit: baroquebobcat]
nirvdrum_ has quit [Ping timeout: 250 seconds]
nirvdrum has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:5077169 by Chris Seaton): The build passed. (http://travis-ci.org/jruby/jruby/builds/52212783)
travis-ci has left #jruby [#jruby]
tcrawley-away is now known as tcrawley
colinsurprenant has joined #jruby
subbu has joined #jruby
tcrawley is now known as tcrawley-away
havenwood has joined #jruby
halorgium has quit [Ping timeout: 250 seconds]
nirvdrum_ has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
halorgium has joined #jruby
nirvdrum has quit [Ping timeout: 252 seconds]
skade has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
_djbkd has joined #jruby
colinsurprenant has joined #jruby
_djbkd has quit [Client Quit]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mje113__ has quit [Quit: Connection closed for inactivity]
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nirvdrum_ has quit [Ping timeout: 252 seconds]
colinsurprenant has quit [Quit: colinsurprenant]
calavera has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
yfeldblum has quit [Ping timeout: 265 seconds]
skade has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] bjfish opened pull request #2622: [Truffle] Fixing Symbol#<=>, Implementing Symbol Methods (master...truffle_symbol_methods) http://git.io/ApDq
JRubyGithub has left #jruby [#jruby]
skade has quit [Quit: Computer has gone to sleep.]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
robbyoconnor has joined #jruby
subbu has quit [Ping timeout: 246 seconds]
deobalds has joined #jruby
calavera has joined #jruby
yfeldblum has joined #jruby
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yfeldblu_ has joined #jruby
yfeldblum has quit [Ping timeout: 272 seconds]
kares_ has joined #jruby
kares has joined #jruby
iamjarvo has joined #jruby
iamjarvo has quit [Max SendQ exceeded]
iamjarvo has joined #jruby
djellemah_ has joined #jruby
djellemah has quit [Ping timeout: 240 seconds]
anaeem1 has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
djellemah_ has quit [Quit: Leaving]
donV has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian pushed 1 new commit to test-psych: http://git.io/Ahtx
<JRubyGithub> jruby/test-psych 5fec1d2 Christian Meier: psych as default gem
JRubyGithub has left #jruby [#jruby]
deobalds has quit [Quit: Computer has gone to sleep.]
mister_solo has joined #jruby
yfeldblu_ has quit [Ping timeout: 265 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:5fec1d2 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52241873)
travis-ci has left #jruby [#jruby]
yfeldblum has joined #jruby
cultureulterior1 has quit [Quit: cultureulterior1]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:5fec1d2 by Christian Meier): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/52241873)
travis-ci has left #jruby [#jruby]
PragTob has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:5fec1d2 by Christian Meier): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/52241873)
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:5fec1d2 by Christian Meier): The build was canceled. (http://travis-ci.org/jruby/jruby/builds/52241873)
travis-ci has left #jruby [#jruby]
Hobogrammer has quit [Ping timeout: 246 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:3d6c4c7 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52242741)
travis-ci has left #jruby [#jruby]
havenwood has quit [Remote host closed the connection]
elia has joined #jruby
marr has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:3d6c4c7 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52242741)
travis-ci has left #jruby [#jruby]
deobalds has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
vtunka has joined #jruby
brometeo has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:3d6c4c7 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52242741)
travis-ci has left #jruby [#jruby]
drbobbeaty has joined #jruby
shellac has joined #jruby
mister_solo has quit [Ping timeout: 250 seconds]
shellac has quit [Remote host closed the connection]
zorak8 has quit [Ping timeout: 250 seconds]
mister_solo has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian force-pushed test-psych from 3d6c4c7 to dbd3065: http://git.io/AhYr
<JRubyGithub> jruby/test-psych dbd3065 Christian Meier: psych as default gem...
JRubyGithub has left #jruby [#jruby]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ndrst_ is now known as ndrst
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-psych:dbd3065 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52254767)
travis-ci has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian pushed 3 new commits to master: http://git.io/AhDS
<JRubyGithub> jruby/master 31c2951 Christian Meier: no more builtin psych
<JRubyGithub> jruby/master 517cb48 Christian Meier: no more snakeyaml in core
<JRubyGithub> jruby/master a7f7193 Christian Meier: psych as default gem...
JRubyGithub has left #jruby [#jruby]
deobalds has quit [Quit: Computer has gone to sleep.]
<projectodd-ci> Project jruby-master-spec-ji build #667: STILL FAILING in 26 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/667/
elia has quit [Quit: Computer has gone to sleep.]
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
elia has joined #jruby
deobalds has joined #jruby
yfeldblum has quit [Ping timeout: 256 seconds]
mje113__ has joined #jruby
ypasmk has joined #jruby
skade has joined #jruby
halorgium has quit [Ping timeout: 256 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:a7f7193 by Christian Meier): The build was broken. (http://travis-ci.org/jruby/jruby/builds/52256817)
travis-ci has left #jruby [#jruby]
yfeldblum has joined #jruby
drbobbeaty has joined #jruby
nirvdrum has joined #jruby
mister_solo has quit [Ping timeout: 246 seconds]
mister_solo has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
mister_solo has quit [Ping timeout: 246 seconds]
nirvdrum_ has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] nirvdrum pushed 1 new commit to master: http://git.io/AjnL
<JRubyGithub> jruby/master 8d94380 Kevin Menard: [Truffle] Untagged a bunch of passing specs.
JRubyGithub has left #jruby [#jruby]
anaeem1 has quit [Remote host closed the connection]
bbrowning_away is now known as bbrowning
elia has joined #jruby
kares has quit [Ping timeout: 256 seconds]
kares_ has quit [Ping timeout: 252 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] nirvdrum pushed 1 new commit to master: http://git.io/AjBk
JRubyGithub has left #jruby [#jruby]
<JRubyGithub> jruby/master 591de2c Kevin Menard: [Truffle] Untagged a bunch of passing Array specs.
deobalds has quit [Ping timeout: 246 seconds]
deobalds has joined #jruby
tcrawley-away is now known as tcrawley
<headius> good morning!
deobalds has quit [Ping timeout: 256 seconds]
elia has quit [Quit: Computer has gone to sleep.]
deobalds has joined #jruby
<projectodd-ci> Project jruby-master-spec-ji build #668: STILL FAILING in 29 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/668/
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] nirvdrum pushed 1 new commit to master: http://git.io/Ajzb
<JRubyGithub> jruby/master a557e3b Kevin Menard: [Truffle] Fixed mspec report for class names with '.' in them.
JRubyGithub has left #jruby [#jruby]
yfeldblum has quit [Ping timeout: 256 seconds]
<headius> nirvdrum: what's up with that findbugs failure
<headius> looks legit
<nirvdrum> Let me look.
<nirvdrum> headius: Do you have a URL?
<nirvdrum> I see one failure, but it was fetching a tarball and seems to be fixed.
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:8d94380 by Kevin Menard): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52268405)
travis-ci has left #jruby [#jruby]
erikhatcher has joined #jruby
<headius> I saw that but I thought I saw another one that looked like a real failure
<headius> maybe it was just all fetching issues
<nirvdrum> And the build is failing now because of the psych move, it looks.
triple_b has joined #jruby
<headius> ok cool
<headius> oh perhaps chrisseaton restarted the findbugs failures
<headius> I don't even see them anymore
triple_b has quit [Ping timeout: 246 seconds]
enebo has joined #jruby
enebo has quit [Client Quit]
<headius> I pinged mkristian on gitter
<eonwe> Has any thought been given to the Java class proxy deadlocks (https://github.com/jruby/jruby/issues/1621)? Is the current loading mechnanism going to stay quite the same in the 9k?
deobalds has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
mister_solo has joined #jruby
<headius> I never saw this issue :-\ That definitely should be fixed in both 1.7 and 9k
triple_b has joined #jruby
<eonwe> I looked a bit into it and did not find a few lines -fix as at least one way to fix this would be to order the locks in some way and release them (and restart) if you're unable to lock more
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:591de2c by Kevin Menard): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52270724)
travis-ci has left #jruby [#jruby]
<headius> eonwe: or just use one
<headius> I'm looking into that as a short-term fix
<eonwe> yeah, just one lock would solve this too but I am assuming that multiple locks are there for a purpose :)
<headius> well, not really
lance|afk is now known as lanceball
<headius> the locks were just naively there to protect the individual JavaClass instances
<headius> a single lock will serialize proxy class creation, but we may be able to eliminate the lock altogether if we can get the proxy creation to be more atomic
havenwood has joined #jruby
<headius> eonwe: are you "cky" or "jmiettinen" from the bug?
<eonwe> Yeah, the latter one
<eonwe> -Yeah. I was about to write Yeah, atomic creation would side-step the issue
kares_ has joined #jruby
kares has joined #jruby
tcrawley is now known as tcrawley-away
<headius> I'm testing this fix now
<headius> I believe the biggest fault this prevents is two threads getting different proxy classes for some Java class
<headius> so another fix would be to only atomically update the proxy class and just let all threads have at it
<headius> if they end up double-loading, only one will win anyway
<headius> chrisseaton: a concern about your JavaSupport interface change
<headius> I don't think we can do it as an interface because existing code that uses JavaSupport from Java would have to recompile
<headius> invokevirtual != invokeinterface
tcrawley-away is now known as tcrawley
<headius> would a pure-abstract superclass work ok?
<headius> sorry I didn't notice until now
enebo has joined #jruby
<headius> enebo: morning!
<headius> I solved the jffi issue!
<enebo> headius: oh yeah?
<projectodd-ci> Project jruby-master-spec-ji build #669: STILL FAILING in 28 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/669/
<headius> enebo: a (good) change by Aethenelle required the native bits to get recompiled across all platforms
<headius> our builds don't normally do that
<headius> so they were failing to link
<enebo> headius: for some reason I thought I was seeing errors above jffi in dep artifacts
<headius> well, jnr-ffi and above pass tests with that commit reverted
<headius> I tested and pushed snapshots for the lot, and have local changes to 9k to use them
<enebo> headius: that might have been the first one I hit
<enebo> ok
<enebo> I spent like 3 hours trying to figure out a race of two threads calling rg overloaded require
<headius> I opened a bug for us to do a 1.3 with the new changes, and Aethenelle is going to finish up his VM-based build setup for the native stuff
<enebo> The ironic bit is this code is going away
<headius> a race against what data?
<headius> that code is complicated but I've reviewed it a few times
<enebo> This is setting up ic
<enebo> it is not require itself
<headius> ohh ok
<enebo> it is calling the method impl of require concurrently
tenderlove has joined #jruby
<headius> yeah that would be fun to diagnose :-)
<enebo> before it had ever interp'd
<enebo> anyways today is a brighter day
<headius> indeed!
<headius> next item of business: https://github.com/jruby/jruby/issues/1621
<enebo> The new world order is that closures will lazy like methods are now with regards to building from AST
<headius> enebo: oh nice
<enebo> all other scopes will immiedaitely build and make ic
<enebo> so instrList will disappear and no longer be racing
<headius> so uncalled closures never even get to IR?
<enebo> right
<headius> slick
<enebo> that is how methods work right now too
<enebo> methods are a bigger payoff
<enebo> It is weird to think lazy prevents races too :)
<headius> oh I'm sure, I remember your table of defined versus called methods
<headius> so tldr for #1621 is that Java proxy creation has a lock per proxy, so it's easy to deadlock it with circular class references
<headius> easy fix is a single lock but that obviously serializes all proxy creation
<headius> which may or may not be a concern
<enebo> So there is some forms of code where there are tons of blocks but in my opinion this won’t save much since most blocks in those scenarios always get called
<kares_> headius: I actually have smt going on with fixing proxy classes in Java support ... https://gist.github.com/headius/2aec24578482427e88d9 is only short term right?
<headius> kares_: ideally, yes
<enebo> kares: Did we/someone address your native extension API issue?
<kares_> headius OK
<chrisseaton> headius: did you still need to talk about JavaSupport?
<kares_> enebo: not yet - at least not on the issue
bbrowning is now known as bbrowning_away
<headius> chrisseaton: well no other than to tell you I'm making it pure-virtual abstract
<chrisseaton> just so it's not an interface?
<headius> it's a public API so it can't change to an interface and work across versions
<kares_> +1 to getting JavaSupport back as it was
<headius> damn JVM for having separate bytecode for virtual and interface dispatch
<chrisseaton> isn't breaking the API allowed for 9k?
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:a557e3b by Kevin Menard): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52272389)
travis-ci has left #jruby [#jruby]
<kares_> chrisseaton maybe internal ones ... how would you expect native extension to work across 1.7 and 9K?
<kares_> * extensions
<chrisseaton> kares_: well I wouldn't - it's a major version number change - but I understand it's an inconvenience
<kares_> chrisseaton :) it's more than that
<chrisseaton> kares_: one problem is I'm not sure we have a public API and an internal one - it's all just classes in org.jruby isn't it?
<headius> chrisseaton: small breakage, yes...changing all calls to JavaSupport from virtual to interface is not small
<headius> we also need to consider exts that need to work across both impls, and this change makes that impossible
<headius> both impls = both versions
halorgium has joined #jruby
<headius> chrisseaton: we have never formally defined external API, unfortunately
<kares_> chrisseaton I think there are ones that native extensions use - it's no where formalized but JavaSupport is one such thing
<headius> API got big fast and it's unclear what subset ext authors need/use
<headius> sorta like MRI :-)
<chrisseaton> yeah
<headius> we would like to use enebo's annotation to mark up the APIs we consider really and truly public, but that's obviously hard to prioritize versus bugs
<chrisseaton> ok, well I'm happy with an abstract class anyway so no problem
<headius> ok
<headius> it's not ideal, but it is what it is
<kares_> chrisseaton if you change an API looking at JRuby-OpenSSL / AR-JDBC is a good feedback whether it's "public" API
<headius> other option would be adding a NEW interface and a NEW method to Ruby and leaving JavaSupport exactly the same
<enebo> perhaps nirvdrum knows of a java static code analyzer to generate a report on a code base of which org.jruby methods are being consumed?
<enebo> I have wanted something like this to run across all native exts to see what people are using and to at least make public blessed methods for things which should be internal
<enebo> (and I don’t know why I singled out nirvdrum :) )
<nirvdrum> Heh.
<chrisseaton> new topic... I was thinking of creating a feature request in MRI for a Kernel#binding_of_caller method - it could be used to simplify the APIs of at least ERB and pry. Was going to run it by this room before submitting in case I'm embarrassing myself. Thoughts?
<enebo> chrisseaton: So every single call we make will need to be able to spill locals just in case?
<nirvdrum> headius, enebo: It might be good to adopt a versioned API approach. In 9k the classes could just be simple delegates of the old ones (or vice versa). But if you did that moving forward, you could support a moving window of n versions and extensions could target multiple versions of the API, rather than trying to target a single API across multiple versions.
<headius> nirvdrum: indeed, that would be very nice
<chrisseaton> enebo: you'd use it as an inlining hint - if A calls B that calls binding_of_caller, you should line A into B into b_of_c
<headius> chrisseaton: and before we can inline?
<nirvdrum> chrisseaton: I think Proc.new inheriting caller's block might benefit here, too.
<headius> it would mean all methods that don't inline anything yet would have to fully deoptimize
<chrisseaton> headius: in the interpreter you're using heap frames aren't you?
<headius> yes, but we don't do our own inlining anywhere right now
<headius> we just emit to JVM bytecode and invokedynamic inlines
<chrisseaton> oh right so it would depend on new IR phases - I guess you're going to work on those at some point anyway though
<headius> so we would *have to* be able to inline at IR level or every method in the system would have to deopt
<enebo> we have the capability to inline but there is so much work before we can realistically inline
<nirvdrum> enebo: I'm not sure about reporting, but ProGuard is able to tell what calls are being made. It's often used to extra bytecode to reduce overall binary size (popular on Android, I believe).
<chrisseaton> I guess Rubinius can do it as they can natively read and write the stack of course
<chrisseaton> ok I won't suggest this if it can't be done in JRuby yet
<headius> chrisseaton: and they don't optimize anything
<enebo> nirvdrum: hmmm I believe you mentioned this once before
<headius> JRuby (and JRuby+Truffle) are the only implementations that even *can* eliminate frames
<enebo> chrisseaton: It may be possible in the future to re-entertain this but I really would like it to be a language feature and not an API
<headius> the concern is that adding this feature basically means every impl will have to support lazy frame reification or inlined frame deopt, or never be able to optimize frames away
<nirvdrum> Rubinius supports it in some capacity, don't they?
<chrisseaton> Every time I write ERB with .result(binding) I think this should be done for me
<enebo> chrisseaton: Or at least if we can do and you do request it we say things like it cannot be aliased
<chrisseaton> and binding.pry could become simply pry
<headius> explicit is better than implicit
<headius> I know we're not in python though :-)
<enebo> I think there is a small class of tooling which would be greatly simplified by this but it requires a level of sphistication that we are not at yet to pull it off so it would punish all other cases to support it
<headius> chrisseaton: for what it's worth, I think Binding.of_caller is a terrible idea anyway, since it breaks even further the encapsulation of local state
<kares_> in terms of Java support concurrency bugs I was chasing https://github.com/jruby/jruby/issues/2014 but ended up cleaning up the proxies and related classes - adding a few synchronizations on places such as https://github.com/kares/jruby/commit/728cd87d4776482cffaa2a89c1b6a416c2a57aee eliminated some of the issues - think I'm close ... I'd be happy to watch any related issues
e_dub has quit [Quit: e_dub]
<headius> I don't like anything that grants visibility into local variable state without explicit opt-in
<enebo> headius: It does seem like this level of reflectivity goes against a programmers idea of safety
<enebo> headius: but admittedly it seems like from a tooling perspective to be valuable. JVM at least forces the JVM into a mode for this sort of thing
<headius> I hate Proc#binding for the same reason
<headius> we need *less* magic/implicit access to local state, not more
graphex has quit [Read error: Connection reset by peer]
<enebo> In my head I keep thinking this could also be used as an exploit to grab a method storing clear text password as a local
<headius> (1..50).map {|i| Binding.of_caller(i).eval 'password' rescue nil} # dig through call stack looking for "password" local vars
<headius> huzzah
<enebo> in an open type system like Ruby it may be pretty easy if you get code injection just to put a “reader” method one level above in the inheritance change
<enebo> but perhaps that is just paranoia
<enebo> seems like a big potential vector though
<headius> anyway, end of rant :-)
graphex has joined #jruby
<enebo> hah
<enebo> headius: I think a —debug sort of support for the idea would be fine though
<enebo> headius: then tools like pry/irb could just enable it
<enebo> Simplifying erb OTOH seems icky. Erb should probably be compiling their templates down to something not needing this
<chrisseaton> We already have Truffle::Primitive.binding_of_caller and we use it internally - I guess I'll just leave it there
<headius> chrisseaton: yeah, there's more than just optimization reasons I don't like the feature generally
<enebo> chrisseaton: internally it is probably really useful for debugging
<chrisseaton> enebo: we use it for #puts to set $_ in the caller
<headius> fwiw, we could support --debug and Binding.of_caller by setting JIT to deopt everything too
<enebo> chrisseaton: ah neat
<headius> chrisseaton: ahh yes, and that's exactly why this is feature creep
<headius> more and more stuff that requires implicit access to callers' bindings
<headius> bad pattern going forward
<enebo> $_ and $~ are the suck methods
<enebo> err not really gvar lvars
<headius> yeah
<headius> fvars
<enebo> svars for suck vars
<enebo> but this was to copy Perl from way back when
<enebo> and never intended to actually be globals
<enebo> too bad Matz did not make a special sigil for this type of var
donV has quit [Quit: donV]
<chrisseaton> If too many of these features get removed Truffle won't have a competitive advantage! (kidding)
<headius> hahah
<headius> I knew it!
<enebo> From a legacy standpoint I understand how they came to be but as an implementor I don’t have to like them :P
<headius> enebo: the worse/worst part of $_ and $~ is that they can be implicitly written *and* read
<headius> so you have to be able to support their access even if they're never directly accessed
vtunka has quit [Quit: Leaving]
<enebo> headius: yep
<enebo> headius: although if you are pervasively inlining like Truffle they just do their trick and make a local one call frame up
<enebo> err well wait not neccesarily inlining
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to jruby-1_7: http://git.io/xe3T
<JRubyGithub> jruby/jruby-1_7 1ad3c67 Charles Oliver Nutter: Use a single global lock for proxy creation to avoid deadlocks....
JRubyGithub has left #jruby [#jruby]
<headius> chrisseaton: I'd like to hear how the python impl is dealing with python's even-more-invasive frame access
<headius> I assume it should work fine but there's probably some interesting cases
<enebo> chrisseaton: So if you don’t inline you binding of call internally and add special lvar but then when you do inline you can reliminate it as a real variable and make it a temp or something like that?
<chrisseaton> all our frames are real heap objects, it's just we escape analyse them most of the time, so you have as many heap objects in your compiled code as you do inlined methods, and you can read and write any of their fields
<enebo> chrisseaton: When you mentioned binding_of_call impl specifically you just said inline the method calling it but that made me think you also use that strategy for things like puts?
<chrisseaton> if a frame genuinely escapes (gets written to a global variable for example) we put it back on the heap
<enebo> ok
<chrisseaton> enebo: we inline puts by default, but it would still work if you didn't - it would just deoptimise the first time, and then the next time a method calls puts it would heap allocate in the first place - adaptively
<enebo> I guess in my previous statements the other major difference is explicit lvars vs implicit created lvar from side-effect of calling a metho
<chrisseaton> and our calls are the same for #send and normal calls, so it doesn't matter if you use metaprogramming
<chrisseaton> enebo: if it doesn't exist lexically then the first time you set $_ will cause deopt, from then on we remember we needed it last time when we create new frames
vtunka has joined #jruby
<enebo> chrisseaton: so essentially pretend it is lexical after that point
<chrisseaton> yeah
<headius> chrisseaton: it would be interesting to see what the cost of those heap frames looks like in a polymorphic case that can't inline
<enebo> chrisseaton: yeah that is a nice trick
<chrisseaton> headius: we should experiment, but I don't think it would be more expensive than the heap frames you already have in some cases - they're not catastrophic are they?
<headius> our frames are pre-allocated and populated as needed
<enebo> headius: they could also alloc that way though
<headius> they could, and if JVM escape analysis was worth anything that would be the right thing to do
<enebo> they would just end up with a lot less frames more likely
<enebo> I like the idea we can rewrite callsite method if we encounter a scope which hits $_ or $~
<headius> certainly
<enebo> Worst case is a.puts is polymorphic we just have this extra var laying around
<chrisseaton> you have like an object pool of frames?
<headius> chrisseaton: yes
<headius> they only allocate lazily if they are captured into a binding
<headius> re-allocate lazily
<chrisseaton> so there's not point relying on EA as you're only doing it if you think they're going to escape anyway
zorak8 has joined #jruby
<headius> well, yes, but if we could rely on EA the current pooled version would make every frame escape
<headius> we also have to pay the cost to clear each frame on the way out, which wouldn't happen it they just EA'd away
<enebo> since we cannot easily replace the current method we are executing in I think this would be tough
<headius> I should be clear about something too... frame here == method-level frame, not closure state
<headius> closure local var store is still allocated for every entry
<headius> $_ and $~ are method-level so they can live in the pooled frames
<chrisseaton> you do have an inlining phase or some other special treatment for attr_accessors don't you?
<headius> attr_accessors are native, but why would they need special treatment anyway?
mitchellhenke has joined #jruby
<enebo> for inlining we plan on it but inlining is not really fully working atm
<enebo> attr_* and Enumerable
<chrisseaton> by special treatment I mean things like making it native
<headius> the indy binding logic does bind attr accesses directly through
bbrowning_away is now known as bbrowning
<headius> it would even if they were implemented in ruby
<enebo> headius: but we still want to inline them as Ruby impls eventually to get rid of prologue/return instrs
<enebo> headius: perhaps hotspot does it already
subbu has joined #jruby
<enebo> headius: but we should be able to inline to @foo in the calling method
<headius> sure
<enebo> I guess we still need a cheap guard for it to be effective though
<headius> they should inline with indy now though
<headius> and they don't have side effects
<enebo> at hotspot level though
<enebo> as opposed to in IR where we can potentially do passes on that and make other higher level opts
<enebo> That is really hand wavy
<headius> on 1.7, pure-ruby attr reader is 50% slower than native attr_reader
<enebo> but conceivably if we had 4 read references to @foo we could only do one get_field and everything else would end up just being a stack read
<headius> that 50% could probably be eliminated
<enebo> once we inlined stuffs
<headius> kares_: looking at 2014 now
<enebo> but I am not super bullish and I am not sure how far we can take that
<enebo> since profiling from our last attempt was a pretty noticeable overhead
<headius> enebo: concurrency's a concern there, obviously
<enebo> yeah definitely. perhaps too much a concern to do
<enebo> but if it is literally four reads in a method body there is a lack of determinancy
<enebo> so we can pretend they cannot be different so long as no calls are between them which could create some sort of synchronization
<enebo> anyways it was mostly just trying to point out that inlining ar IR level may provide a different level of optimizations than having hotspot do it
<headius> for sure
colinsurprenant has joined #jruby
<headius> kares_: I'm not sure I understand *why* there's a race here
<kares_> headius the issue is eraly on it sometimes matched Enum.valueOf instead of the valueOf method from the enum sub-class
<headius> right, but what causes that to race?
<kares_> multiple threads?
<headius> but I mean what data is one thread seeing the other doesn't
<kares_> ... initialing the proxy classes
<projectodd-ci> Project jruby-master-spec-ji build #670: STILL FAILING in 29 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/670/
<headius> well proxy class should be locked for duration of creation and remain the same after that
<headius> but there are some structures built up to support overloaded methods, maybe that's not safe
<kares_> headius heh not sure - maybe I was looking at the wrong place
<headius> yeah we need to go deeper
<headius> script in that bug fails for me almost every time
<kares_> same here - with a few changes I've made that "improved" the code - it's now harder at my end - but still happens 1 in 3-5 runs
<headius> ok
<headius> enebo: I think I need to work on JavaClass/proxy init stuff
<headius> try to fix both #1621 and #2014 correctly
<enebo> headius: great
<enebo> I am wandering in the desert but this will be worth it
<enebo> headius: The second part of this will be a JITContext to match InterpreterContext
<headius> perfect
<enebo> headius: That will same some memory as a bonus
<enebo> same=save
<headius> yeah, I'll toss it out when I'm done jitting
<enebo> headius: well or not…that is yet to be determined although we can for now
iamjarvo has joined #jruby
<enebo> headius: The decision there is whether to record what passes happened in JITContext and fall back to very primitive but sa/feconservative IC or to allow JIT context to fall back to its own safe spot
<enebo> The concept of deopt is not really realized now as it was originally envisioned
<enebo> but that is blue sky compared to .0
<headius> oh sure
<enebo> other than hard fail-over
<enebo> like too many bytecodes
<headius> if we wanted to incrementally optimize it would be worth keeping around
<enebo> headius: yeah
<chrisseaton> You guys should write up the IR for DSL (Dynamic Language Symposium) deadline in June
<enebo> chrisseaton: Wandering in the desert: Changing Java static optimizing compiler to a Ruby runtime
<chrisseaton> they're always interested in more than just JS and Python, which is usually what they get
<enebo> Hat’s off to subbu most of what he originally wrote is useful and just needed tweaking but we have run into so many things due to the mismatch between the two languages
<enebo> I think our biggest problem is that this really is a compiler arch and is not well-suited to interpretation
<enebo> which is I think ok since we plan on speed through JIT’ing largely (Android people plug your ears)
<chrisseaton> you could always emit from IR your own fairly low level bytecode and interpret that
<chrisseaton> as in your own design of bytecode
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:bf8a55a by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52282583)
travis-ci has left #jruby [#jruby]
<enebo> chrisseaton: believe me we have spent many hours talking about that
<chrisseaton> or maybe write a Java bytecode interpreter in C and use JNI...
<enebo> chrisseaton: My main believe is if we can emit back to a simple tree ala AST we can get good perf but that hurts startup
donV has joined #jruby
<donV> Hi all!
<chrisseaton> With trees you have chronic call overhead though
<enebo> chrisseaton: simulating ipc machine with load/stores is a pretty big penalty for us
<enebo> chrisseaton: yeah
<enebo> chrisseaton: Sort of picking our poison a bit
e_dub has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian pushed 1 new commit to master: http://git.io/xerw
<JRubyGithub> jruby/master fffd2b6 Christian Meier: let travis be green - maybe a regression due to the new psych default gem or something else
JRubyGithub has left #jruby [#jruby]
<headius> donV: hello!
<donV> headius: Hi! How are you doing?
skade has quit [Quit: Computer has gone to sleep.]
dinfuehr has joined #jruby
<enebo> chrisseaton: re you call overhead you are correct but we noticed that callsites more often than not ended up being monomorphic so AST performed ok with hot code since those little callNodes would inline into each other
<enebo> AST interp methods were not very big
<kares_> headius ... so there's 2 StaticMethodInvoker-s created which seems wrong, one used only early on ends up with java.lang.Enum while the other does the correct thing
<kares_> the do get the same proxy-class (host) ... but end up matching different methods in findCallableArityOne
<headius> donV: working on simplifying JI proxy binding
<headius> kares_: ok very interesting
<subbu> enebo, chrisseaton headius ya .. i guess i originally thought even the ipc with loads/stores would be cheaper than ast call overheads .. but looks like i was wrong on that one.
<headius> I'm working my way up from JavaClass to simplify the creation process
<enebo> subbu: Also the passes you ended up making ended up being more and more conservative so that chipped away as well
<donV> chrisseaton: Hi! Could you update http://lafo.ssw.uni-linz.ac.at/graalvm/ ? The jruby-jars builds have new versions, I think.
<chrisseaton> donV: have we released .19? otherwise those should be the right ones as of last night
<donV> chrisseaton: Yes, JRuby 1.7.19 has been released, and there is a “.pre1” file that is empty.
<donV> chrisseaton: I can work around it if it is a bother. No problem. .)
<donV> :)
<kares_> headius ... yeah done that as well ... although probably not that good with my limited knowledge :)
<chrisseaton> donV: ok i'll do it in a few huors
<donV> Thanks!
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:fffd2b6 by Christian Meier): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52291367)
travis-ci has left #jruby [#jruby]
<chrisseaton> donV you may wonder why it doesn't see the new version automatically - the answer is that in buildbot, which we use for our CI, you need to define your tasks before you've see the repo contents
<donV> chrisseaton: yeah, would be nice to automate it, but versions don’t change THAT often…
vtunka has quit [Quit: Leaving]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:1ad3c67 by Charles Oliver Nutter): The build failed. (http://travis-ci.org/jruby/jruby/builds/52285644)
travis-ci has left #jruby [#jruby]
vtunka has joined #jruby
<kares_> headius: think it would work if the super (proxy) classes were also locked while constructing the proxy class ... otherwise it's all about a method being picked up by the call site (from super while sub-class is not fully ready) https://gist.github.com/kares/c16b6a584a80689d7f08
skade has joined #jruby
<kares_> is that the right way to go ... if so I can probably nail it down (with some aditional cleanup) ?
ypasmk_ has joined #jruby
ypasmk has quit [Ping timeout: 245 seconds]
lanceball is now known as lance|afk
<kares_> ... also for testing it's simpler to use an enum that does not have internal classes such as javax.lang.model.SourceVersion
<projectodd-ci> Project jruby-master-spec-ji build #671: STILL FAILING in 28 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/671/
calavera has joined #jruby
DrShoggoth has joined #jruby
<headius> kares_: if that's the case then my global proxy lock would fix this
<headius> it doesn't seem to
<kares_> headius: ah - good point, thx
<headius> kares_: seems like the race would have to be on the cache of overloaded methods that we store in the invokers
<headius> kares_: do both calls get the same invoker?
<kares_> headius that sounds beyond my expploration ... do you mean the RubyToJavaInvoker's cache ?
<kares_> they get a different invoker - that's the bug from what I can tell
<kares_> ... the cache field is a ConcurrentHashMap but doing a synchronized version does not help - tried that one
<kares_> since obviously they're not the same invoker instances :)
ypasmk_ has quit [Ping timeout: 256 seconds]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] mkristian opened issue #2623: error with bin/jruby -S gem install asd http://git.io/xvJk
JRubyGithub has left #jruby [#jruby]
camlow325 has joined #jruby
<headius> kares_: ahh ok, if they actually get different invokers then the problem may indeed be that it's seeing partially-initialized class
<kares_> exactly might thinking just now
<kares_> * exactly my
bjfish2 has joined #jruby
<headius> let me get my first refactoring in and we'll dig deeper
<headius> I've pulled all binding state and classes out of JavaClass
anaeem1_ has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:fffd2b6 by Christian Meier): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52291367)
travis-ci has left #jruby [#jruby]
<headius> kares_: first refactor is in
anaeem1_ has quit [Remote host closed the connection]
<headius> realized that there's logic right now to return empty, unpopulated proxy class in some cases like recursively binding the same class
<headius> that could result in a call site seeing an uninitialized proxy, perhaps
anaeem1 has joined #jruby
Hobogrammer has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to jruby-1_7: http://git.io/xvql
<JRubyGithub> jruby/jruby-1_7 e53e2cb Charles Oliver Nutter: Clean up imports.
JRubyGithub has left #jruby [#jruby]
<bjfish2> How can I run a single spec? For example spec/ruby/core/symbol/shared/length.rb ?
<headius> bjfish2: jruby spec/mspec/bin/mspec run ...
anaeem1 has quit [Ping timeout: 272 seconds]
lance|afk is now known as lanceball
<kares_> headius: actually had some cleanup of those that improved installer's performance
<headius> oh yeah? that's great
<headius> proxy binding is one of the slower parts of boot right now
<kares_> I guess you do not want to take my mega cleanup in :)
skade has quit [Ping timeout: 265 seconds]
<kares_> ... but I have test in case you do !
<headius> perhaps I should have taken it in before refactoring, but we could/should try to use it
<kares_> yep - noticed it's slow ... that is why I started the cleanup as well before reaching into the main bug (fixed some along the line)
<headius> test case would be great
<headius> where's the improved version?
<kares_> headius: should I just should in a PR for review?
<headius> yeah do that
<headius> I will make the changes you've made in my refactor
<headius> and then we can go form there
<headius> kares_: I've always wanted to get rid of the two-step binding process (installer as intermediate step) but have not ifgured out a good way
havenn has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] kares opened pull request #2624: java support cleanup and improvements (jruby-1_7...test-java-support-improvements11) http://git.io/xvGg
JRubyGithub has left #jruby [#jruby]
<kares_> headius: https://github.com/jruby/jruby/pull/2624 ... won't merge due installers moved
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to jruby-1_7: http://git.io/xvGh
<JRubyGithub> jruby/jruby-1_7 7f4f43c Charles Oliver Nutter: Use atomic references for completed Java proxy class/module.
JRubyGithub has left #jruby [#jruby]
<headius> yikers
<headius> you did a lot of work
<kares_> yeah mega ... was trying to understand the internals :)
<kares_> but most of it is non-invasive ... others are guarded with specs
<headius> lots of this isn't part of my refactoring
<kares_> there's around 2 fixes with concurrenty initializing packages in threads (prints a warning currently)
<headius> I didn't touch invokers
havenwood has quit [Ping timeout: 245 seconds]
<kares_> headius: let me know if you'd want me to pick just some? ... or if it's completely useless
<kares_> at least those warnings being avoided are handy
baroquebobcat has joined #jruby
<headius> yeah
<headius> hard to tell...there's a lot of non-code changes
<headius> whitespace, variable renames
<kares_> headius sorry my IDE does that auto-magically with space ... try ?w=1 on GH
<headius> what ID are you using?
<kares_> NB
<kares_> also you'll notice it's harder to reproduce the enum bug (won't happen on every run) ... which I believe is due a slightly faster setup
<headius> ok
<headius> yeah that could be
<headius> hmmm
<headius> perhaps I should restart my refactor from your commits
mister_solo has quit [Ping timeout: 240 seconds]
vtunka has quit [Quit: Leaving]
<kares_> headius ... you'll see if there's a show-stopper (travis-ci was all green with those) - I'll continue to shoot at the main thing for a while
<headius> kares_: I've wanted someone else to dig into this code for years
<headius> kares_: I'm going to merge your PR into test-refactor-ji and re-do my refactoring there
<headius> it only took a little while anyway
<headius> all green is good in my book...we hit JI hard in several suites
<kares_> headius it's hard to get started ... that's why I end up cleaning up stuff
<headius> yeah
<kares_> did the same with embed (another PR)
<headius> you should have seen it 6 years ago
<kares_> well I can imagine
<headius> is that PR in?
anaeem1 has joined #jruby
<headius> you need to tell us sooner when you're workign on refactoring so we can incrementally merge :-)
<headius> big bang PRs are tough
<headius> this is good work
<kares_> no - it frightened enebo probably :)
<kares_> no one else is touching embed so it's fine for now ... waiting for a review
<kares_> but there's actually another fix I'd want to look at once I'm done with java-support
<headius> ok
<headius> do you have commit?
<kares_> nn
<headius> you do now
<bjfish2> How can I run a single spec while passing the java args to attach a remote debugger?
<kares_> oh - thanks ... I still rather do through PRs with a review
<bjfish2> Thx, headius , I'll add the first example to the wiki
travis-ci has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:5755383 by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52300290)
travis-ci has left #jruby [#jruby]
<headius> kares_: PRs are good
<headius> bjfish2: to pass through to subprocess, use -T flag to mspec
<headius> so -T-J....
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius created test-refactor-ji (+2 new commits): http://git.io/xvRE
<JRubyGithub> jruby/test-refactor-ji d910526 kares: better jruby.home detection on IBM WAS
<JRubyGithub> jruby/test-refactor-ji d90041c Charles Oliver Nutter: Merge https://github.com/kares/jruby into test-refactor-ji
JRubyGithub has left #jruby [#jruby]
<headius> kares_: your PR is merged unmodified there
<headius> I will review again in-place and then proceed with the same refactoring
<kares_> ok
<kares_> you have the lock fix there ... will keep myself locally without the single global lock commit ... at least for now
brometeo has quit [Ping timeout: 245 seconds]
<headius> er wait..it didn't merge like I expected
travis-ci has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:e53e2cb by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52300664)
travis-ci has left #jruby [#jruby]
anaeem1 has quit [Remote host closed the connection]
anaeem1 has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius force-pushed test-refactor-ji from d90041c to 98501ac: http://git.io/xvuq
<JRubyGithub> jruby/test-refactor-ji 59a98d5 kares: DRY out Java class-loading code + cleanup the Java module's impl guts
<JRubyGithub> jruby/test-refactor-ji 0549508 kares: rename our internal JavaMethod impl used to access cached Java packages/classes
<JRubyGithub> jruby/test-refactor-ji cf87818 kares: `context.nil` instead of `runtime.getNil()` ... also imports got re-arranged
JRubyGithub has left #jruby [#jruby]
<headius> kares_: re-pushed (force) with correct merging, based on pre-lock-change code
<kares_> ok
anaeem1 has quit [Remote host closed the connection]
travis-ci has joined #jruby
anaeem___ has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:d90041c by Charles Oliver Nutter): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52304420)
travis-ci has left #jruby [#jruby]
<kares_> headius: there's 2 merge commits - but it's hopefully fine
<headius> no worries
<headius> I'd expect a couple merge commits in a PR this big
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to test-refactor-ji: http://git.io/xvzy
<JRubyGithub> jruby/test-refactor-ji 9959aef Charles Oliver Nutter: Remove unused value.
JRubyGithub has left #jruby [#jruby]
<headius> your refactoring does a lot of the same things mine did
<headius> so I should be able to just pull these classes out and we'll be on the same page
<kares_> yy
travis-ci has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:7f4f43c by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52302051)
travis-ci has left #jruby [#jruby]
bbrowning is now known as bbrowning_away
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
deobalds has joined #jruby
Hobogrammer has quit [Ping timeout: 264 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:9959aef by Charles Oliver Nutter): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52305436)
travis-ci has left #jruby [#jruby]
anaeem___ has quit [Quit: Leaving...]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:98501ac by Charles Oliver Nutter): The build failed. (http://travis-ci.org/jruby/jruby/builds/52304948)
travis-ci has left #jruby [#jruby]
DrShoggoth has quit [Remote host closed the connection]
elia has quit [Quit: Computer has gone to sleep.]
havenn is now known as havenwood
enebo has quit [Quit: enebo]
camlow32_ has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to test-refactor-ji: http://git.io/xv7k
<JRubyGithub> jruby/test-refactor-ji 725df3f Charles Oliver Nutter: Move more binding logic into initializers.
JRubyGithub has left #jruby [#jruby]
colinsurprenant has quit [Quit: colinsurprenant]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius closed pull request #2624: java support cleanup and improvements (jruby-1_7...test-java-support-improvements11) http://git.io/xvGg
JRubyGithub has left #jruby [#jruby]
camlow325 has quit [Ping timeout: 252 seconds]
pietr0 has joined #jruby
cultureulterior1 has joined #jruby
cultureulterior1 has quit [Client Quit]
pietr0 has quit [Ping timeout: 265 seconds]
iamjarvo has joined #jruby
pietr0 has joined #jruby
camlow32_ has quit [Remote host closed the connection]
DrShoggoth has joined #jruby
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mkristian has joined #jruby
enebo has joined #jruby
<headius> kares_: just about caught up again
<kares_> headius: heh - I almost thought twice I found it
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] bjfish opened pull request #2625: Adding Examples of Running a Single Spec (master...patch-1) http://git.io/xfI2
JRubyGithub has left #jruby [#jruby]
<headius> all Initializer state and logic now lives outside JavaClass
<headius> including the post-initialize "setup" stuff
<kares_> seen that ... looks certainly more readable
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 1 new commit to test-refactor-ji: http://git.io/xftO
<JRubyGithub> jruby/test-refactor-ji be31344 Charles Oliver Nutter: Pull all initialize logic up and out into initializer classes.
JRubyGithub has left #jruby [#jruby]
<headius> kares_: there
bbrowning_away is now known as bbrowning
<kares_> ah there's more :)
<headius> yes...we shouldn't have to look at JavaClass at all to work on binding logic
<headius> this was part of a grand vision to eliminate JavaClass and just add its functionality to java.lang.Class
<kares_> I recall you guys having that discussion in Potsdam ... also the refactoring of JavaField
_djbkd has joined #jruby
Aethenelle has joined #jruby
<kares_> headius: ah you were right --- just realized (while looking at your changes) to try out valueOf - that seems to work (no longer able to hit #2014) ... it's an alias uber-f*ck
<headius> ahhh interesting
colinsurprenant has joined #jruby
<headius> I wonder if the unfinishedProxy stuff is still needed
<headius> originally that was added (by someone not me) to allow the second phase of binding (setup*) to happen lazily
<headius> lazily didn't help all that much later on and I made it eager
<headius> and there were other reasons
<kares_> headius think it is ... failing for now if it's not set
camlow325 has joined #jruby
<kares_> but have not looked deeper why
<headius> I'm thinking we could just use proxyModule and proxyClass though
<headius> maybe
camlow325 has quit [Read error: Connection reset by peer]
<kares_> that's some crazy code ... esp. under concurrency - you'll see :)
<headius> yeah I know
<kares_> my head did not wrap around it ... not that I tried that hard
camlow325 has joined #jruby
<headius> do you have some other cases to exercise this under concurrency?
<kares_> 2 tests are there - I think they exercise package resolution under concurrency
<kares_> otherwise not
PragTob has quit [Remote host closed the connection]
camlow32_ has joined #jruby
<kares_> also it's not the value_of alias thing ... it's just much rarer to hit at mines ;(
camlow325 has quit [Read error: Connection reset by peer]
codefinger has joined #jruby
<headius> kares_: I think with latest round of changes I can make a single atomic reference for proxy class and eliminate the lock
<headius> concurrent threads trying to boot a proxy might double up work but worst case that work gets thrown away
camlow32_ has quit [Read error: Connection reset by peer]
camlow32_ has joined #jruby
camlow32_ has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
donV has quit [Ping timeout: 246 seconds]
tenderlove has quit [Quit: Leaving...]
camlow325 has quit [Remote host closed the connection]
tenderlove has joined #jruby
bjfish2 has quit [Ping timeout: 246 seconds]
camlow325 has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
<kares_> found a goto: label ... in the installer code - that code must be old :)
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
<headius> hah nice
camlow325 has quit []
camlow325 has joined #jruby
<headius> I'm trying to get JavaClass completely out of this process
camlow325 has quit [Read error: Connection reset by peer]
camlow32_ has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
camlow32_ has quit [Remote host closed the connection]
camlow325 has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
camlow32_ has joined #jruby
colinsurprenant has joined #jruby
camlow32_ has quit [Read error: Connection reset by peer]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
camlow32_ has joined #jruby
camlow32_ has quit [Read error: Connection reset by peer]
camlow325 has quit [Ping timeout: 245 seconds]
mkristian has quit [Ping timeout: 245 seconds]
camlow325 has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow32_ has joined #jruby
codefinger has quit [Read error: Connection reset by peer]
camlow32_ has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby
camlow325 has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
camlow325 has quit [Read error: Connection reset by peer]
camlow32_ has joined #jruby
camlow32_ has quit [Read error: Connection reset by peer]
camlow325 has joined #jruby
multibot_ has quit [Remote host closed the connection]
multibot_ has joined #jruby
calavera has joined #jruby
_JKL_ has joined #jruby
DomKM has quit [Quit: Connection closed for inactivity]
<_JKL_> https://gist.github.com/hiukkanen/2a4a18f846ade3483846 is this known bug or bug at all?
<enebo> _JKL_: You found a bug :)
<enebo> _JKL_: Can you open up a bug on our github project. Weirdly it is calling puts just with no value so we can just see a \n
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:be31344 by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52315672)
travis-ci has left #jruby [#jruby]
bjfish2 has joined #jruby
<bjfish2> Should ByteList#toString decode using this.encoding.name instead of "ISO-8859-1" all the time ?
<nirvdrum> bjfish2: Check with lopex. But I think ByteList just holds the Encoding and otherwise ignores it.
<nirvdrum> Making jcoding handle more of this is something headius, lopex, and I have been discussing.
<bjfish2> SymbolNode is using byteList.toString so UTF-8 decoded with "ISO-8859-1" is not coming out right
<bjfish2> Might be better to store the byteList in the SymbolNode instead of a string
<headius> symbols in Ruby are stored based on their raw bytes
<headius> we use ISO-8859-1 always for ByteList.toString to get a raw representation
donV has joined #jruby
<lopex> wasnt that just for hashing ?
<lopex> ...symbols
<bjfish2> String might be problematic for SHIFT-JIS if ruby supports symbols in this encoding, then SymbolNodes might want to use byteList
<bjfish2> @headius I'm not sure I understand "a raw representation"
<multibot_> Unknown command, try @list
<bjfish2> I'm seeing Über byteList toString as Über
<headius> lopex: for uniqueness as well
<lopex> bjfish2: I guess the reason is since ISO-8859-1 odesnt have multibyte so it goes straight to bytes when transcoding
<headius> right
<lopex> so no loss or malformed/truncated quirks
<headius> bjfish2: short answer is that ByteList.toString *is* expected to return ISO-8859-1
<headius> there's an encoding-aware version you should use if you want it decoded
<lopex> headius: I wonder how far this will go https://github.com/google/re2j
<bjfish2> that would probably be a good short term fix for SymbolNode, happen to know the encoding aware method?
dinfuehr has quit [Ping timeout: 256 seconds]
<lopex> bjfish2: I'd say decode ?
e_dub has quit [Quit: e_dub]
robbyoconnor has quit [Ping timeout: 246 seconds]
subbu is now known as subbu|away
yfeldblum has quit [Remote host closed the connection]
<headius> lopex: interesting
kares has quit [Ping timeout: 252 seconds]
<headius> kares_: heh, I think I eliminated the lock and the lazy fields in JavaClass
kares_ has quit [Ping timeout: 256 seconds]
tenderlove has quit [Remote host closed the connection]
yfeldblum has joined #jruby
bjfish2 has quit [Ping timeout: 246 seconds]
havenwood has quit [Ping timeout: 256 seconds]
donV has quit [Quit: donV]
_djbkd has quit [Remote host closed the connection]
subbu|away is now known as subbu
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:5d4a39d by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52336303)
travis-ci has left #jruby [#jruby]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:a63248b by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52336538)
travis-ci has left #jruby [#jruby]
calavera has joined #jruby
finch has quit [Quit: o/]
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] headius pushed 4 new commits to test-refactor-ji: http://git.io/xJKc
<JRubyGithub> jruby/test-refactor-ji 032a6ce Charles Oliver Nutter: Deprecate old object variable logic and make its structure lazy.
<JRubyGithub> jruby/test-refactor-ji d37cdb5 Charles Oliver Nutter: Combine duplicated logic.
<JRubyGithub> jruby/test-refactor-ji 40be8d2 Charles Oliver Nutter: Remove unused field.
JRubyGithub has left #jruby [#jruby]
_djbkd has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] chrisseaton pushed 2 new commits to master: http://git.io/xJPn
<JRubyGithub> jruby/master 2056137 Chris Seaton: Merge pull request #2622 from bjfish/truffle_symbol_methods...
<JRubyGithub> jruby/master 6b8e821 Brandon Fish: [Truffle] Fixing Symbol#<=>, Implementing Symol#capitalize, Symbol#casecmp, Symbol#downcase, Symbol#encoding, Symbol#intern
JRubyGithub has left #jruby [#jruby]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (test-refactor-ji:f82f136 by Charles Oliver Nutter): The build is still failing. (http://travis-ci.org/jruby/jruby/builds/52339002)
travis-ci has left #jruby [#jruby]
<Aethenelle> headius: most of the VMs currently supported are easily created with qemu and debootstrap. I should have a blog post together soonish.
finch has joined #jruby
<Aethenelle> If I get extra crazy, I may reimplement debootstrap in Ruby so it can be used on osx as well maybe even go so far as to make something vaguely vagrant-y
<headius> sounds great :-)
robbyoconnor has joined #jruby
bjfish2 has joined #jruby
robbyoconnor has quit [Quit: Konversation terminated!]
DomKM has joined #jruby
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:2056137 by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52340074)
travis-ci has left #jruby [#jruby]
triple_b has quit [Ping timeout: 246 seconds]
skade has joined #jruby
lanceball is now known as lance|afk
donV has joined #jruby
tcrawley is now known as tcrawley-away
zorak8 has quit [Read error: Connection reset by peer]
<projectodd-ci> Project jruby-master-spec-ji build #672: STILL FAILING in 31 min: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/672/
zorak8 has joined #jruby
yfeldblum has quit [Remote host closed the connection]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bbrowning is now known as bbrowning_away
yfeldblum has joined #jruby
havenwood has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
elia has joined #jruby
nirvdrum_ has quit [Quit: Leaving]
Aethenelle has quit [Quit: Aethenelle]
yfeldblum has quit [Remote host closed the connection]
yfeldblum has joined #jruby
mitchellhenke has quit [Quit: Computer has gone to sleep.]
calavera has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] chrisseaton closed pull request #2625: Adding Examples of Running a Single Spec (master...patch-1) http://git.io/xfI2
JRubyGithub has left #jruby [#jruby]
donV has quit [Quit: donV]
yfeldblum has quit [Remote host closed the connection]
Aethenelle has joined #jruby
<nirvdrum> bjfish2: Feel free to ignore the trolls.
yfeldblum has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:ffdb5da by Chris Seaton): The build has errored. (http://travis-ci.org/jruby/jruby/builds/52351160)
travis-ci has left #jruby [#jruby]
DrShoggoth has quit [Quit: Leaving]
bjfish2 has quit [Quit: Page closed]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
calavera has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
<headius> trolls?
enebo has quit [Quit: enebo]
triple_b has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub> [jruby] bjfish opened pull request #2626: [Truffle] Passing through encoding information from SymbolNode (master...truffle_symbols_encoding) http://git.io/xUEq
JRubyGithub has left #jruby [#jruby]
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
robbyoconnor has joined #jruby