<JRubyGithub>
[jruby] eregon pushed 1 new commit to master: http://git.io/veagO
<JRubyGithub>
jruby/master be01825 Benoit Daloze: [Truffle] Module#define_method should be private.
JRubyGithub has left #jruby [#jruby]
kares has joined #jruby
drbobbeaty has quit [Read error: Connection reset by peer]
drbobbeaty has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] kares pushed 1 new commit to jruby-1_7: http://git.io/veaVu
<JRubyGithub>
jruby/jruby-1_7 aaf1681 kares: fix compilation error left-over from 7774be525ac71997cd2ed75ef641c47078a704bc
JRubyGithub has left #jruby [#jruby]
drbobbeaty has quit [Read error: Connection reset by peer]
dumdedum has quit [Ping timeout: 256 seconds]
a5i has joined #jruby
erikhatcher has joined #jruby
triple_b has joined #jruby
nirvdrum has joined #jruby
tcrawley-away is now known as tcrawley
vtunka has joined #jruby
dumdedum has joined #jruby
ypasmk has joined #jruby
enebo has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
kares has quit [Ping timeout: 252 seconds]
cajone has quit [Ping timeout: 264 seconds]
kfpratt has joined #jruby
cajone has joined #jruby
<enebo>
mkristian: oh hah…sorry I did not know you were on channel
<enebo>
mkristian: I sent a message to gitter but I will repeat it here
<enebo>
@mkristian Not sure if you have time or the inclination but I noticed we double open jar resources in LibrarySearcher::ResourceLibrary.load we only open a few jars normally so it is not likely a perf issue but it could use some cleanup.
<enebo>
mkristian: I know you did not make this change, but I figured since you poke around in resource loading it would be up your alley
kares has joined #jruby
lance|afk is now known as lanceball
kfpratt has quit [Remote host closed the connection]
<lopex>
why gitter ?
drbobbeaty has joined #jruby
<enebo>
lopex: oh because normally mkristian is not on irc
triple_b has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mitchellhenke has joined #jruby
mister_solo has quit [Read error: Connection reset by peer]
temporal_ has quit [Read error: Connection reset by peer]
<mkristian>
enebo, I try to be more on irc - now my network seems to more stable again. will look into the load jar issue you mentioned earlier
<enebo>
mkristian: ok cool
<lopex>
bbrowning: ok, turns out to be working, was a classic pebcak and multiple envs problem
<bbrowning>
lopex: yay! I was looking through the bundler changelog and commits but nothing was standing out
<lopex>
bbrowning: sorry for wasting your time then :(
<lopex>
bbrowning: but the lock ultimately was the culprit turns out
<bbrowning>
no need - I like to know what's changing there anyway
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/veVWN
<JRubyGithub>
jruby/master 30fcc77 Brandon Fish: [Truffle] Adding date to stdlib using rubysl-date.
JRubyGithub has left #jruby [#jruby]
vtunka has quit [Quit: Leaving]
<mkristian>
lopex, currently I am on timezone +5:30 and gitter nicely sends me an email notification. so you can reach me better via gitter ;)
<enebo>
mkristian: but lopex is in Poland so he could practically tap you on the shoulder
<lopex>
yeah
<mkristian>
enebo, well the next two weeks I am in India, after this you might be right
<lopex>
1h right off greenwich
e_dub has quit [Quit: ZZZzzz…]
havenwood has joined #jruby
temporalfox has quit [Ping timeout: 245 seconds]
gregorsc5 has quit [Quit: Leaving.]
e_dub has joined #jruby
chamila has joined #jruby
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
<chamila>
Hello all, I'm trying to implement the example given at http://ola-bini.blogspot.com/2006/10/jruby-tutorial-4-writing-java.html . There the basicLoad has taken IRuby object as the arguement, but in eclipse it suggests to have Ruby object as arguement, what is the correct one?
<chrisseaton>
chamila: that's quite an old tutorial so I would go with what eclipse suggests
<chrisseaton>
chamila: I guess at some point that method needed access to the runtime object (the Ruby object) and it was added
<chamila>
Is there any new tutorial on implementing a java extension for JRuby?
<enebo>
nirvdrum: do you see error free test:mri runs locally?
<mkristian>
enebo, yes, I would follow the pattern from the jmx classes. but the important question is whether I can make the ObjectSpacer public, so it can be used or 'misused' ?
<enebo>
mkristian: well I guess I don’t have an opinion on that. We mark lots of internal stuff public but don’t consider it public
<enebo>
mkristian: OTOH people will use stuff that is public :)
<enebo>
mkristian: fwiw ObjectSpacer does not seem likely to change as an interface
<mkristian>
enebo, well you still need some java reflection to plug it in
<enebo>
mkristian: yep
<nirvdrum>
enebo: Nope. A bunch of failures. And it seems to be stuck creating a BigInteger.
<mkristian>
I can live with protected as well (I guess), private just does not work.
<enebo>
mkristian: I am going back a ways and it is still failing
<enebo>
mkristian: sorry wrong person
<enebo>
nirvdrum: I am trying to fgure out when it broke
<mkristian>
np
dinfuehr has quit [Ping timeout: 246 seconds]
<nirvdrum>
enebo: It's been stuck in org.jruby.ext.bigdecimal.RubyBigDecimal.multInternal(RubyBigDecimal.java:684) for a while for me.
camlow325 has joined #jruby
<enebo>
nirvdrum: I am back to yesterday morning and it is still failing…this is really confusing
<enebo>
nirvdrum: I really don’t see how we could have had green runs unless some SNAPSHOT snuck in
<enebo>
nirvdrum: but that seems highly unlikely due to these errrors
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 3 new commits to master: http://git.io/veVM4
<JRubyGithub>
jruby/master 5e01376 Kevin Menard: [Truffle] More work on properly initializing EConv.
<JRubyGithub>
jruby/master 8b29992 Kevin Menard: [Truffle] Untagged a bunch of passing Encoding and Encoding::Converter specs.
<JRubyGithub>
jruby/master 9bba871 Kevin Menard: [Truffle] Annotated failing String#encode specs.
JRubyGithub has left #jruby [#jruby]
<nirvdrum>
I can't see which tests are failing because the whole thing is blocked.
camlow325 has quit [Remote host closed the connection]
<nirvdrum>
Unless you know how to change the formatter so I can see the test name as it runs.
camlow325 has joined #jruby
<enebo>
jruby -e 'c = Complex(1,1); p c.respond_to?(:div)'
<enebo>
nirvdrum: ^ I am just running this
<enebo>
unless this has never worked and somehow we are running tests we never passed
camlow325 has quit [Read error: Connection reset by peer]
<nirvdrum>
It wouldn't be the first time something like that has happened, unfortunately.
<enebo>
nirvdrum: yeah so this is super odd because I am back into the thick of my lexer changes and this is still failing so I need to reconsider this being a valid test
<nirvdrum>
Did my RubyNumeric changes on Friday cause it?
<enebo>
nirvdrum: but how could we have green builds if so?
<nirvdrum>
We had 250 some odd m17n test passing because of a bug in String#b.
<nirvdrum>
Ruby is a fickle beast.
ypasmk has quit [Remote host closed the connection]
<enebo>
nirvdrum: yeah so we somehow require something which causes respond_to? and other stuff to work
<enebo>
nirvdrum: trying test:mri now to see instead of that single test
<enebo>
nirvdrum: not that I would ever bisect all of test:mri :)
camlow325 has joined #jruby
drbobbeaty has quit [Read error: Connection reset by peer]
<nirvdrum>
enebo: TestBigDecimal#test_exception_overflow is the one that's not making any progress.
<nirvdrum>
But BigDecimal seems messed up across the board.
<enebo>
nirvdrum: yeah bisecting
<enebo>
test:mri fails quickly
<nirvdrum>
Not for me. It's just stuck on that test.
drbobbeaty has joined #jruby
<enebo>
it just takes 2 minutes to recompile each step
<enebo>
I could probably clean and just pl core but I am paranoid
<nirvdrum>
This is a rough approximation of that test: bin/jruby -e 'require "bigdecimal/math"; x = BigDecimal.new("10"); 100.times { |i| p i; x *= x }'
rcvalle has joined #jruby
<nirvdrum>
It appears to get exponentially slower.
<enebo>
heh
<enebo>
nice
<enebo>
Almost completed the bisect
<nirvdrum>
enebo: Although, that test should be excluded ...
<enebo>
nirvdrum: not all errors are with bigdecimal I don’t think
_djbkd has quit [Remote host closed the connection]
<headius>
yo
<headius>
mkristian: I'm here now
subbu is now known as subbu|afk
<mkristian>
headius, so I played with this unsafe and compilers. there is an eclipse compiler which can be easily plugged into the maven build
<mkristian>
but this one behaves like the ibm jdk
_djbkd has joined #jruby
<mkristian>
and ignores those bootclasspath settings
<enebo>
headius: leaving for lunch but I had to revert a commit of yours…test:mri was not honoring excludes with it
<headius>
mkristian: that's a bummer
<headius>
enebo: I'll have a look
<enebo>
headius: yeah it was not obvious how that commit would do it
<headius>
whaaat?
<headius>
that's for sure
e_dub has joined #jruby
bbrowning is now known as bbrowning_away
<mkristian>
headius, the only thing I can think of is to put the class into it own jar and use it
<nirvdrum>
More specifically, our local version of test/unit with the the excludes logic was being bypassed and the test-unit gem was used instead, AFAICT.
<nirvdrum>
I could see that being the result of a LoadService change.
baroquebobcat has joined #jruby
<mkristian>
then it is an external dependency as many others
_djbkd has quit [Remote host closed the connection]
<chamila>
Hello all, I'm getting following error "jruby-1.7.19 :001 > require 'rake/javaextensiontask' LoadError: no such file to load -- rake/javaextensiontask", any idea on what is the issue here?
e_dub has quit [Quit: It's a hard knock life]
e_dub has joined #jruby
dinfuehr has joined #jruby
_djbkd has joined #jruby
<kares>
chamila: rake-compiler gem not being installed :) ?!
dinfuehr has quit [Ping timeout: 264 seconds]
<headius>
chamila: that's in the rake-compiler gem
camlow325 has joined #jruby
<chamila>
ops, I thought I installed it kares , headius : Thanks
<headius>
nirvdrum: you say it wasn't honoring excludes? I'm having trouble reproducing that
_djbkd has quit [Remote host closed the connection]
<headius>
I'm trying a clean build now with that commit reinstated
e_dub has quit [Quit: ZZZzzz…]
_djbkd has joined #jruby
<nirvdrum>
headius: Yeah. But enebo evidently wasn't seeing that. Dunno if it's a non-deterministic thing, OS-dependent, JVM-dependent, or whatever.
<headius>
weird
<headius>
were you able to reproduce locally?
<headius>
nirvdrum: I don't see the travis jobs failing like that either
<nirvdrum>
Yeah. I've only seen it locally. But the behavior definitely changed after reverting that commit.
<headius>
hmm
<headius>
are you running your working copy through rvm or anything?
<headius>
something must be different with your environment that's affected by this change
<headius>
nirvdrum: can you run this for me with the commit in place, please? EXCLUDES=test/mri/excludes/ jruby test/mri/runner.rb test/mri/ruby/test_string.rb
<nirvdrum>
bin/jruby. I use rbenv, but I don't think that's interfering at all.
<headius>
I just want to see it fail with the commit in place
<headius>
if it fails as expected add -Xdebug.loadService=true
<headius>
so we can see why
<nirvdrum>
I did print-based debugging to narrow this down.
<nirvdrum>
Rebuilding now.
<headius>
the failure I see on travis seems to be an actual failure, so I'm looking at that for the moment
<nirvdrum>
The excluded tests ran.
DrShoggoth has quit [Quit: Leaving]
chamila has quit [Quit: Page closed]
<nirvdrum>
headius: I printed out $: at the start of test_string.rb
<nirvdrum>
With commit: ["/opt/jruby/lib/ruby/gems/shared/gems/minitest-4.7.5/lib", "/opt/jruby/test/mri/lib", "/opt/jruby/lib/ruby/stdlib", "/opt/jruby/test/mri", "/opt/jruby/test/mri/ruby"]
<headius>
nirvdrum: is there anything in those site_ruby and shared paths for you?
<headius>
looking at that list of paths that's the only two that differ
<headius>
oh nerts
skade has joined #jruby
<headius>
I might know
<nirvdrum>
GEM_PATH and GEM_HOME are both blank.
<headius>
I remember seeing something about rubygems looking for site_ruby in load path so it knows where to insert load paths
<nirvdrum>
I'm just curious as to why I'm always the lucky one.
<headius>
son of a biscuit
pitr-ch has quit [Quit: Leaving]
<headius>
index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']
<headius>
so
<headius>
the mri lib gets prepended to load path by -I
<headius>
without site_ruby in load path, RG doesn't know where to insert its path for minitest, so it inserts at the beginning
<nirvdrum>
But why wouldn't this affect you, enebo, or Travis?
<nirvdrum>
RVM?
<headius>
I don't use rvm either
<headius>
rough guess would be that enebo and I have different enough gems installed that it's still using the test/lib test/unit
<headius>
in any case I'm sure this is the problem
<headius>
enebo: PINGGGGGGGGGG
temporalfox has quit [Ping timeout: 245 seconds]
rcvalle has quit [Quit: rcvalle]
<enebo>
heh
<enebo>
just got back
<enebo>
actually I just read back
<enebo>
nirvdrum: I was unable to run things locally until I reverted that commit
<headius>
enebo: I'm just going to add it back for pre2, but contemplating other options
<enebo>
headius: what does that index?
zorak8 has quit [Read error: Connection reset by peer]
<enebo>
oh I see
<enebo>
gah. That feels hacky but I am not sure how you deal with path-based scenarios
zorak8 has joined #jruby
rcvalle has joined #jruby
_djbkd has quit [Remote host closed the connection]
<enebo>
headius: solving kwargs tests today
<headius>
enebo: it is basically looking for where the base load path starts so gems can be added under -I paths
<headius>
-I paths are supposed to take precedence over gem paths
<headius>
that's what failed here
<headius>
I'm restoring my commit but making it add site dir unconditionally
<enebo>
headius: oh I see.
<headius>
an alternative for RG would be to have Ruby expose something like "base_load_path" or a programmatic mechanism for updating load path, neither of which is going to happen soon :-\
<headius>
I don't think there's any way to figure out the base non-dash-i path in MRI
<nirvdrum>
Well, at least we got to the bottom of it before pre2.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to master: http://git.io/verTT
<JRubyGithub>
jruby/master a8e705c Thomas E. Enebo: Fixes #2511 - Keyword method parameters cannot take a frozen hash. Fixes #2015 - Method keyword arguments are destructive
JRubyGithub has left #jruby [#jruby]
<headius>
nirvdrum: yeah, wouldn't have gotten far like this!
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 2 new commits to master: http://git.io/verTz
<JRubyGithub>
jruby/master efb4a53 Charles Oliver Nutter: Revert "Revert "Shared path is gone and site dir is not there by default.""...
<JRubyGithub>
jruby/master 9800b44 Charles Oliver Nutter: Make site_lib add unconditional, since RG needs it to insert paths.
JRubyGithub has left #jruby [#jruby]
<headius>
this may fix the real failure that was happening on travis too
<headius>
nirvdrum: confirm that's working ok
<headius>
hmm, didn't fix the encoding issue, so I'm back on that
<nirvdrum>
The load path looks correct. Thanks.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian opened issue #2810: looks like org.jruby:jruby artifacts contains jruby-core http://git.io/verLq
JRubyGithub has left #jruby [#jruby]
kares has quit [Ping timeout: 240 seconds]
_djbkd has joined #jruby
kfpratt has quit [Remote host closed the connection]
<enebo>
travis looks prettier now but why no tooltips? like what is a ‘!’ vs ‘x’? I am guessing ! means the built completely aborted vs giving fail results
dinfuehr has joined #jruby
<enebo>
and have anyone figured out what the circle with the two lines connecting means?
<enebo>
I feel like they should add a fucking unicode Horus bird head in there somwhere
<enebo>
(…I do appreciate travis… I really do :) )
<enebo>
test:mri is running fully for me locally…just doing a -Ptest to make sure that is also green
conradwt has joined #jruby
<enebo>
Is this thing on?
<nirvdrum>
IRC: /ignore enebo forever
<enebo>
nirvdrum: forever is a long time my friend
<nirvdrum>
Bah. I guess it didn't work :-P
mister_solo has quit [Remote host closed the connection]
<nirvdrum>
I've just force-updated my snapshots. Running again.
mister_solo has joined #jruby
dinfuehr has quit [Ping timeout: 272 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to master: http://git.io/verMt
<JRubyGithub>
jruby/master 066aa2f Thomas E. Enebo: Switch .rb resource loads back to loadresourceIS. Split jar/class/normal loads into their own classes. Do not double load .jar resources
JRubyGithub has left #jruby [#jruby]
<enebo>
nirvdrum: ^ Should be fixed for the non-crypt stuffs
<nirvdrum>
headius: The failing case seems to be: bin/jruby -e 'p "".crypt("\xA1\xA1".force_encoding(Encoding::EUC_JP))'
<nirvdrum>
Incidentally, it fails on MRI too. But MRI never tries to crypt that in the test.
<nirvdrum>
If you look at that test_str_crypt, you'll see it doing a check and sets "strict_crypt" if glibc >= 2.16 is used. JRuby doesn't seem to trigger that.
<headius>
huh
<headius>
ah-ha
<headius>
yes
<headius>
yeah I'm sure we don't have that Etc const set, or set to anything useful at least
<nirvdrum>
I just added a print statement: NameError: uninitialized constant Etc::CS_GNU_LIBC_VERSION
<headius>
yeah
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
so we need a better guard there, or we need to just skip potentially-rejected salt altogether
<nirvdrum>
I take it your Ubuntu 12.04 is just running an older glibc then?
dinfuehr has quit [Ping timeout: 256 seconds]
<headius>
that's probably the cast
<headius>
case
<nirvdrum>
Yeah. Looks like it was 2.15.
<headius>
yeah, there ya go
<headius>
this test should probably just avoid bogus salt altogether
<nirvdrum>
Or test that it raises the appropriate exception.
<headius>
that could work too
<headius>
enebo has complained about crypt tests in the past though...they're filled with weird little platform idiosyncracies
<nirvdrum>
I guess the invariants should be better defined. It appears there's a class of known good inputs and then some that are undefined.
subbu has joined #jruby
<enebo>
indeed
<enebo>
nirvdrum: but what are these tests actually testing? seems like OS-behavior of crypt and nothing about ruby
<nirvdrum>
Yeah.
<enebo>
nirvdrum: the fact that there is that section where the same salt gives different results per OS seems pretty bogus to me
<nirvdrum>
I suppose some of them are legit. But once they discovered a difference, they should have just written all those values off as undefined IMHO.
<headius>
yes
<headius>
I'm going to commit a hack to our tests and file an issue
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to master: http://git.io/veomq
<JRubyGithub>
jruby/master 8c09f1c Charles Oliver Nutter: Default to strict crypt, since we can't determine glibc version.
JRubyGithub has left #jruby [#jruby]
skade has quit [Quit: Computer has gone to sleep.]
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
skade has joined #jruby
<dfr|work>
Hey folks, I'm fighting for optimizing ~30ms of serialization logic and see semi-random ~5ms timing jumps. Any idea if that looks like maybe GC?
<nirvdrum>
dfr|work: Could be. Can you profile?
<dfr|work>
nirvdrum, trying to. :) I've enabled -XX:+PrintGCTimeStamps flag. I'm assuming it'll tell me whether GC is to blame.
<dfr|work>
nirvdrum, I've tried to add profiling (both setting setProfileMode in RubyInstanceConfig and just by doing JRuby::Profiler but so far fail :(]
<dfr|work>
nirvdrum, JRuby relies on Java's GC for collection, right?
<dfr|work>
nirvdrum, okay, doesn't look like it's Java GC related :(
bbrowning is now known as bbrowning_away
dinfuehr has joined #jruby
mister_solo has joined #jruby
<nirvdrum>
headius: enebo: MRI tests are all passing here now.
<nirvdrum>
dfr|work: I meant using jvisualvm or YourKit or what have you.
<nirvdrum>
A JVM profiler will show you GC pauses and whatever is spiking CPU.
<dfr|work>
nirvdrum, I think I';ll try with JRuby profiler first, since I'm sure the issue is within ruby code
<dfr|work>
nirvdrum, also, I've turned on printing GC and it doesn't print anything during the latency bumps, so I'm ruling GC out for now :)
x1337807x has joined #jruby
lanceball is now known as lance|afk
x1337807x has quit [Client Quit]
x1337807x has joined #jruby
Aethenelle has quit [Quit: Aethenelle]
<enebo>
nirvdrum: yay
<headius>
enebo: seems a failure on travis
<headius>
after your last push
<enebo>
BOOOOOO
<headius>
did you intend for refined call sites to always go through TC to get StaticScope?
<headius>
I was hoping to pass it into the site, so we don't have to push a scope
<headius>
but that needs pushing through all CallSite constructors again
<headius>
er CallInstr
<enebo>
well I never actually made a callsite but yeah now that you mention it we probably should pass staticscope into it as well :|
<headius>
as it is now refined calls will have to actually deopt scope
<headius>
so they can get it from TC
<headius>
is there any risk in having the instr reference the scope?
<enebo>
headius: this is just an oversight because I was doing this as an instr and I only impld in interp which had static scope available
<headius>
ok
<headius>
I can get this working with interp for the moment
<headius>
I have a hacky RefinedCachingCallSite that doesn't actually cache if it's refined
<enebo>
static scope reference should still get live cref so I think it can be passed
mitchellhenke has quit [Quit: Computer has gone to sleep.]
<enebo>
in IR persistence we can repopulate
<enebo>
I hate this many params getting pushed down but we really do not want to keep an IRScope reference
<enebo>
headius: you know we can deopt it for now
<enebo>
headius: none of this is public and no one uses refinements
<enebo>
headius: just thinking worrying about making this fast when we may run into other issues making refinements correct?
<headius>
StaticScope has an IRScope reference
<headius>
I'm just thinking through my ideal impl
<enebo>
yeah I don’t remember why
<headius>
for all I care about refinements they can just be a full deopt
<headius>
I can also implement indy smarts without IR param addition
<enebo>
gah…hmmm not sure we want to keep that reference in there but funny I used it in ‘using’ impl :)
<enebo>
headius: I think once we find a refined site and it figures out what to call it will not ever change again
<enebo>
headius: or hmmm maybe it will while it is executing scope
<headius>
it will always need to recheck
<enebo>
because refined def can override def’d def :)
<enebo>
so we use getNumberofVariables in staticscope and ask irscope which I think is only for the now broken flip impl
<enebo>
but eval seems to walk static scopes to get eval scope to find it secret shared var stash
<enebo>
I find this mutual dependence with overlapping info something we should fix at some point
temporalfox has joined #jruby
mister_solo has quit [Ping timeout: 245 seconds]
<enebo>
oh so that came from my kwargs fix only in JIT
a5i has quit [Quit: Connection closed for inactivity]
dinfuehr has quit [Remote host closed the connection]
<headius>
enebo: there's all sorts of weird issues with these refinement modules getting out into other code
<headius>
it's basically a RubyModule with metaClass = refined class
<headius>
very unusual
<headius>
problem I have now is that for an error it tries to to_s it, but because it has String as metaclass it tries to call String version of to_s passing in a RubyModule
<headius>
and the error was from it trying to call "method_defined" on the refinement :-)
<headius>
BUT
<headius>
$ jruby -X-C -e "module Blah; refine String do; def split(*); ['foo', 'bar']; end; end; end; class Foo; using Blah; p 'hello'.split('l'); end"
<headius>
["foo", "bar"]
<headius>
it seems to be working
<headius>
enebo: did you run any tests of refinements?
<enebo>
headius: I had about 60% passing with individual instrs
<headius>
ok
<enebo>
headius: but I had no instr for attrassign nor for super
<enebo>
so I think it would have been a little higher
<enebo>
OTOH I also had some weird results
<headius>
so you did one-off instructions
<enebo>
I did and then realized we would double the amount of calls
<enebo>
instrs
<enebo>
and callsite seemed like a much better soln to me
<headius>
heh, well right off the bat I get: NoMethodError: undefined method `using' for main:Object
<enebo>
headius: yeah that is known
<enebo>
toplevel needs to define it
<headius>
just needs to be added
<headius>
ok
<enebo>
I did not bother since I was still debugging basic calls
<headius>
I am confused about your use of cref too
<headius>
I don't see how it separates by lexical scope
<enebo>
You will notice some differences in naming in the impl
<headius>
you have a comment to that effect
<enebo>
headius: that comment is dumb
<headius>
but I really don't understand how it would work
<enebo>
headius: lexical module must be defined with using in it. It can only exist as one cref
<enebo>
well not really true but not without shenanigans
<enebo>
well not as actual cref
<enebo>
headius: did that make sense?
<headius>
I have a repro for you then
<enebo>
ok
<headius>
because we don't have per-lexical-scope cref
<headius>
we only have the class-module itself
<headius>
class/module
<enebo>
yeah
<headius>
cref for them is more equivalent to StaticScope for us
<enebo>
but that class/module only exists in one place lexically
<headius>
no it doesn't
<headius>
it's the same in every opening of that class/module
x1337807_ has joined #jruby
<headius>
it might be different for them, but it's not for us
<enebo>
yeah so if we require and we module Foo; using; end and the reference Foo anywhere else it could pull in a refinement if it happens to be at another place where refinements exist
<headius>
both of those call the refined split
<headius>
heh, I suppose I should check that MRI doesn't do it
<headius>
yeah it doesn't
x1337807x has quit [Ping timeout: 264 seconds]
<headius>
it calls original String#split for second one
<enebo>
ok so my comment was correct
<enebo>
but I am confused how their internal model differs
<enebo>
there cref is a pointer but isn’t it just a pointer to the same module/class instance
<enebo>
their
<enebo>
bah
<enebo>
headius: this is one thing I never figured out properly
<enebo>
headius: when they compile they also use this info to generate the sites
<headius>
wtf melange...every time I reload the page the order of proposals changes
<headius>
how can this tool be so bad after so many years
<enebo>
HASH
<enebo>
smoke HASH
<headius>
enebo: I think cref is something different than just the module/class for them
<enebo>
headius: I think we can solve this with a wrapper class
<headius>
if we have a module/class wrapper that can hold refinements but pass everything else through, yeah maybe
<enebo>
we replace the cref on encountering using with a wrapped version
<enebo>
which means mutating cref at hitting a using
<enebo>
which seems really dicey
<headius>
hmm
<headius>
very
<enebo>
but from IR standpoint we know statically all those sites might be refined
<enebo>
So we are somewhat safe in that dicey behavior because they can check if cref changed
<enebo>
in most cases they will not change or will have changed by the time the site calls anything
<enebo>
but I guess the point there is this will not affect non-potentially-refined sites in any way
Aethenelle has joined #jruby
mje113__ has quit [Quit: Connection closed for inactivity]
_djbkd has quit [Remote host closed the connection]
_djbkd has joined #jruby
marr has quit []
temporalfox has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
enebo: yeah, it doesn't affect those, but it leaks used refinements across using scopes
<headius>
the wrapper would make it possible to isolate used refinements
<enebo>
headius: yeah I just mean with a wrapper
<headius>
or moving the used refinements into StaticScope itself
<headius>
which makes more sense in my head
<enebo>
yeah I thought about that actually now that you mention it
<headius>
that's how I started prototyping it a couple years back
<enebo>
but then I convinced myself cref was ok
<enebo>
but then you saw my comment
<enebo>
So :)
<enebo>
but in my mind I also thought I could just replace cref of static scope with the right one too but I guess that would require some pre/post stuff to not replace it
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to master: http://git.io/veopn
<JRubyGithub>
jruby/master 4c86703 Thomas E. Enebo: Revert "Fixes #2511 - Keyword method parameters cannot take a frozen hash. Fixes #2015 - Method keyword arguments are destructive"...
JRubyGithub has left #jruby [#jruby]
<enebo>
reverting my kwargs fix until I can simplify the failing case…this error fails in code generated using evals + bindings
<enebo>
very interesting this only fails for JIT too
enebo has quit [Quit: enebo]
<headius>
hmmm yeah
<headius>
bbl
_djbkd has quit [Remote host closed the connection]
dinfuehr has joined #jruby
_djbkd has joined #jruby
dinfuehr has quit [Ping timeout: 244 seconds]
e_dub has quit [Ping timeout: 255 seconds]
Aethenelle has quit [Quit: Aethenelle]
havenwood has quit [Remote host closed the connection]