<headius>
nirvdrum: the other bug here is a change in Ruby 2.x... Structs define to_h now, so part of the dump logic gets key/value pairs instead of the array it's expecting
<headius>
it tried to_h, to_hash, and then to_a... pre 2.0, structs fell through to to_a
colinsurprenant has joined #jruby
josh-k_ has quit [Remote host closed the connection]
josh-k has joined #jruby
josh-k has quit [Ping timeout: 268 seconds]
tesmar has quit [Quit: tesmar]
rimenes has joined #jruby
<subbu>
headius, i started looking at the non-local-return issue now .. and the problem is that when the lexical scopes are being walked, I don't have information about whether the scope got used in a method-body ...
<subbu>
used *as* a method-body for define_method
<subbu>
actually let me find out where 'makeArgumentScope' is called .. and see if I can use it.
Vaxgeek has quit [Remote host closed the connection]
<headius>
lesson learned...don't rvm install ruby 1.9 on mavericks unless you have time to wait for gcc to build
<headius>
subbu: hmmm....so it's calculating return target too early or too statically
<subbu>
fixed.
phrinx has quit [Read error: Connection reset by peer]
<headius>
subbu: this logic fires every time, right? just making sure we don't make the block local-returning in case it's used somewhere else as a non-local return too
<headius>
(which would be really wacky, but allowable)
<subbu>
I am using the existing 'isArgumentScope' logic the old interp/runtime used.
<headius>
ok
<headius>
so d_m will push an argument scope and get the return
nanoyak has quit [Quit: Computer has gone to sleep.]
<headius>
that works
<headius>
I think
<subbu>
line 1609 in RubyModule.java .. there is no cloning ... and i don't see it being cleared anywhere.
<headius>
ok
benweint has quit [Quit: Computer has gone to sleep.]
<subbu>
in any case, we have opportunities of recompiling / fixing up the ir-scope in that method in RubyModule to make them real method scopes .. but that for later.
<headius>
ok, go ahead and push...I will try to break it
<subbu>
ok :)
<subbu>
but, let me rebuild and run specs and mri tests to make sure i haven't broken anything.
<nirvdrum>
headius: That's why I was looking for enebo earlier :-)
<subbu>
headius, I guess this test is also not part of a spec right? I noticed you added somethign on 1_7 earlier.
<nirvdrum>
headius: Low-hanging performance fruit in jrjackson would be amazing, since it's a good deal faster than the standard json implementation as is.
<headius>
nirvdrum: it creates a lot more objects than it needs to in a number of places
<headius>
yeah, I should have looked for the obvious bug first
<headius>
and with that I'm going to call it a day
<headius>
oh wait...I have to fix my regression :-(
<subbu>
i broke something as well ... so not done ehre either.
<nirvdrum>
I'm down to 8 failures out of 996 specs.
<nirvdrum>
Not bad given I was at >900 failures not too long ago.
<subbu>
headius, meh .. will get back to this later tonight or tomorrow ... some edge case sepc is failing now (which is marked rubinius non-compliant interestingly enough) ...
<subbu>
time for dinner and break.
<subbu>
have a good one all.
<headius>
subbu: ok
subbu has quit [Read error: Connection reset by peer]
<JRubyGithub>
[jruby] jrubyci pushed 1 new commit to master: http://git.io/KbqWdQ
JRubyGithub has left #jruby [#jruby]
<JRubyGithub>
jruby/master 0513c95 Charles Oliver Nutter: Merge remote-tracking branch 'origin/jruby-1_7'...
JRubyGithub has joined #jruby
<JRubyGithub>
jruby/master 9062455 Charles Oliver Nutter: Mask the other spec...also 1.9-specific.
<JRubyGithub>
[jruby] jrubyci pushed 1 new commit to master: http://git.io/P4VAKA
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
jruby/jruby-1_7 2281c70 Charles Oliver Nutter: Mask the other spec...also 1.9-specific.
JRubyGithub has left #jruby [#jruby]
<JRubyGithub>
[jruby] jrubyci pushed 1 new commit to jruby-1_7: http://git.io/dSFdCA
<nirvdrum>
This is nuts. I comment out a line, things pass. I uncomment, I get things seemingly returning early, but I have no idea why. I can't rescue any exception, so I don't think it's that.
<headius>
well, you have fun with that :-) I patched up my regression and I'm REALLY calling it a day now
<nirvdrum>
Heh.
<nirvdrum>
Later.
<headius>
hopefully you will have another failure for me tomorrow...or none at all :-)
<headius>
ttfn
brettporter has joined #jruby
dabradley has quit [Ping timeout: 268 seconds]
SynrGy has quit [Read error: Connection reset by peer]
iamjarvo has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pgokeeffe has quit [Quit: pgokeeffe]
brettporter has quit [Remote host closed the connection]
rimenes has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jsvd has quit [Remote host closed the connection]
jsvd has joined #jruby
skade has joined #jruby
jsvd has quit [Ping timeout: 264 seconds]
rimenes has joined #jruby
bbrowning_away is now known as bbrowning
yfeldblum has joined #jruby
benlovell has quit [Ping timeout: 245 seconds]
tcrawley is now known as tcrawley-away
yfeldblum has quit [Ping timeout: 268 seconds]
drbobbeaty has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
tcrawley-away is now known as tcrawley
Hobogrammer has quit [Ping timeout: 246 seconds]
benlovell has joined #jruby
fooJBar has quit [Read error: Connection reset by peer]
fooJBar has joined #jruby
yfeldblum has joined #jruby
colinsurprenant has joined #jruby
erikhatcher has joined #jruby
johnmuhl has joined #jruby
josh-k has quit [Remote host closed the connection]
colinsurprenant has quit [Quit: colinsurprenant]
josh-k has joined #jruby
tesmar has joined #jruby
<headius>
mpapis: it was updated to latest stable just yesterday, and build gcc46 so I would have thought cc is fine
josh-k has quit [Ping timeout: 240 seconds]
<headius>
$CC in my env is empty
<headius>
chrisseaton: have you heard if the C stuff for truffle will be open sourced?
<headius>
C + SVM obviously could give clang+LLVM a run for their money
<chrisseaton>
headius: I don't think it's been considered yet - but it's partly a PhD project at JKU, so it's complicated
subbu has joined #jruby
tesmar has quit [Quit: tesmar]
<headius>
ahh yeah
<headius>
so at least would have to wait until after it was presented
<chrisseaton>
headius: you'll be at RubyConf won't you?
<headius>
indubitably
<headius>
haven't heard about talks yet though...you?
<chrisseaton>
I will be able to give you a full demonstration of how it all works then at least
<chrisseaton>
not yet
<chrisseaton>
I can see I've got three reviews but can't read yet, and one comment that was positive
<chrisseaton>
We showed the C extension stuff to the PyPy people in London, so we're very happy to show all the code in private - no secrets!
rcvalle has joined #jruby
<mpapis>
headius, gcc46 is in /bin/gcc-4.6 ? or did you use homebrew/macports?
<headius>
chrisseaton: I wouldn't expect the impl to be too much different from others, but pointer logic is an interesting challenge
<headius>
mpapis: it looks like rvm used homebrew for me
<headius>
I just did rvm install ruby-1.9
kgerman has joined #jruby
<subbu>
headius, did my fix break travis or something else going on there?
<headius>
chrisseaton: I would, however, be interested in any work on a preprocessor for C that could be used for FFI...I assume there has to be something like that in there
<mpapis>
headius, the gcc46 path was not properly detected, can you rvm install 1.9 --trace 2>&1 | tee big.log -- and gist the big.log file?
brettporter has quit [Remote host closed the connection]
<headius>
or it's using a third-party Java C preprocessor (I have seen at least one)
<headius>
mpapis: no problem
<chrisseaton>
headius: sorry - we use clang to preprocess and parse, and get it to give us a typed AST
<headius>
boo...that's not interesting :-\
<headius>
interpret clang
<headius>
has anyone written an x86_64 interpreter yet? :-D
<chrisseaton>
no, but other good ideas include LLVM bitcode
<headius>
that would be easier than interpreting C++
anaeem1 has quit [Remote host closed the connection]
<chrisseaton>
the issue is that you no longer have a C++ interpreter - you have a bit code interpreter, so all our tooling will try to tell you about bit code which you aren't interested in
<headius>
we need to commission a student to make an IR interpreter in truffle
<chrisseaton>
that would be interesting - you'll have the same problem though
<headius>
chrisseaton: bitcode ought to still have debug info in it though, eh?
<headius>
or do you mean dev time...you won't get information on syntactic constructs
<chrisseaton>
yes, but Truffle has lots of stuff in the works for doing debugging and stack traces and visualisation that expect you to be using a language directly
<headius>
yeah
<headius>
I understand then
<chrisseaton>
but if you find someone to try it I will of course give the support needed
<chrisseaton>
I don't really know Graal well enough to help with a Graal backend to IR though
<headius>
presumably anyone using emcripten would have the same problem
nirvdrum has joined #jruby
<headius>
subbu: I will look
<headius>
morning business
benlovell has quit [Ping timeout: 245 seconds]
<subbu>
k
johnsonch_afk is now known as johnsonch
iamjarvo has joined #jruby
iamjarvo has quit [Client Quit]
tesmar has joined #jruby
<headius>
woah, so red, much fail
<headius>
wow, I'm really confused about my regression spec failures
<headius>
they run fine here
<headius>
aargh...maybe not
<headius>
subbu: I will work through red today and if you need to look at something I'll let you know
<subbu>
sounds good. thanks.
<subbu>
i am starting to clean up my 'death-to-rubyclass' tests ... will try to get them in today or tomorrow.
<headius>
ok
<subbu>
we can clean that up, add other tests based on past spec failures, and the one i fixed for nirvdrum couple days back. good to have all of them in one place.
<nirvdrum>
subbu: That commit didn't fix it. But around 1 AM I realized my short-circuiting appears to be because something was mocked and I didn't realize it.
<nirvdrum>
And now I think this whole class of issues is related to something mocha is doing.
yfeldblu_ has joined #jruby
<subbu>
k
<nirvdrum>
I ran 1.7.15 in 2.0 mode to quickly rule out any API changes there. But I'll try to get a PoC going in MRI and see if it breaks in 9k.
tlarevo has quit [Remote host closed the connection]
benlovell has joined #jruby
tlarevo has joined #jruby
colinsurprenant has joined #jruby
yfeldblum has quit [Ping timeout: 268 seconds]
yfeldblu_ has quit [Ping timeout: 240 seconds]
<subbu>
Meanwhile, can someone explain the rationale for this: "def test_m; def test_n; end; end; test_m; p Object.public_methods.grep /test_/; p Object.private_methods.grep /test_/" .. in MRI, test_n becomes public whereas test_m is private.
<cremes>
headius: what’s the timeline for jruby 9000? do you plan on releasing 1.7.23 first or will 9000 be out before that? :)
kgerman has quit [Quit: kgerman]
<headius>
cremes: RC1 at RubyConf probably
<headius>
I think we'll just go to 2.2 compat then as well
skade has joined #jruby
<headius>
thinking about releasing jruby for xmas when 2.2 comes out, so we'll finally be toe to toe
<cremes>
headius: awesome. you guys rock.
<headius>
we just need to rock faster
<cremes>
heh. so, how *is* 9000 perf shaping up? still waiting on new IR and a compiler for it?
josh-k has joined #jruby
skade_ has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
skade has quit [Read error: Connection reset by peer]
skade has joined #jruby
skade_ has quit [Ping timeout: 276 seconds]
skade_ has joined #jruby
ephemerian has quit [Quit: Leaving.]
statonjr has joined #jruby
skade has quit [Ping timeout: 252 seconds]
erikhatcher has quit [Quit: erikhatcher]
<headius>
_ko1: can you explain NOEX_BASIC to me?
<headius>
cremes: IR perf varies from slower than AST interp to a lot faster
<headius>
JIT is an open question...when stuff JITs perf is close to 1.7 but with none of the one-off optimizations in the old JIT
<headius>
should improve substantially once I get back to it
e_dub has quit [Quit: ZZZzzz…]
josh-k_ has joined #jruby
josh-k has quit [Ping timeout: 245 seconds]
josh-k has joined #jruby
iamjarvo has joined #jruby
joast has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian force-pushed test-load-from-jruby-classloader from 837f306 to 7a2a3b2: http://git.io/FIl8Cw
<JRubyGithub>
jruby/test-load-from-jruby-classloader b2d083c Christian Meier: each required jar will be added to the LOAD_PATH removing the need to handle...
<JRubyGithub>
jruby/test-load-from-jruby-classloader fc09671 Christian Meier: load resources from jruby-classloader
<JRubyGithub>
jruby/test-load-from-jruby-classloader aefd4e7 Christian Meier: putting the jruby-classloader as context classloader means that all attached "jars" can be found via...
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
jruby/jruby-1_7 03c93e7 Charles Oliver Nutter: Match MRI error text.
<JRubyGithub>
jruby/jruby-1_7 5dc303f Charles Oliver Nutter: Clean up javadocs.
<JRubyGithub>
[jruby] jrubyci pushed 5 new commits to jruby-1_7: http://git.io/hPJZ7A
<JRubyGithub>
jruby/jruby-1_7 b0cd4d3 Charles Oliver Nutter: Add to_a and to_ary cases.
JRubyGithub has left #jruby [#jruby]
josh-k_ has quit [Ping timeout: 252 seconds]
<headius>
I wish those truncated push notifications showed most recent first
<headius>
I suppose another day I'd wish the opposite
<headius>
subbu: I borked type conversion...most of the red is probably me
<headius>
we'll let it run a cycle and see how things are
<subbu>
k
yfeldblum has joined #jruby
josh-k has quit [Remote host closed the connection]
josh-k has joined #jruby
yfeldblum has quit [Ping timeout: 246 seconds]
josh-k has quit [Read error: Connection reset by peer]
jsvd has joined #jruby
josh-k has joined #jruby
Aethenelle has joined #jruby
josh-k has quit [Remote host closed the connection]
calavera has joined #jruby
yfeldblum has joined #jruby
kgerman has joined #jruby
tesmar has quit [Quit: tesmar]
yfeldblum has quit [Ping timeout: 264 seconds]
joast has quit [Ping timeout: 272 seconds]
e_dub has joined #jruby
toshetm has quit [Ping timeout: 246 seconds]
kgerman has quit [Quit: kgerman]
kgerman has joined #jruby
skade_ has quit [Quit: Computer has gone to sleep.]
mjc__ has joined #jruby
mjc__ is now known as mjc_
kgerman__ has joined #jruby
kgerman has quit [Ping timeout: 245 seconds]
kgerman__ is now known as kgerman
havenwood has joined #jruby
toshetm has joined #jruby
<dfr|work>
morning all.
<headius>
dfr|work: hello!
<dfr|work>
so I learned yesterday that apparently doing SELECT COUNT(*) from large_table doesn't scale >.<
<headius>
on what db?
<dfr|work>
headius, mysql
e_dub has quit [Quit: ZZZzzz…]
joast has joined #jruby
iamjarvo_ has joined #jruby
<subbu>
yes, i discovered that a few months back as well :)
<dfr|work>
subbu, I'm now pondering on how to do pagination properly or how to replace it. Apparently specifying OFFSET also degrades performance eventually =/
<dfr|work>
why is web development so complicated? :(
iamjarvo has quit [Ping timeout: 240 seconds]
<headius>
because if it were easy we'd be paid less?
<headius>
SELECT x, y, z FROM `table` WHERE `some_condition` LIMIT 0, 11
<headius>
mysql
<headius>
I got it on SO, so it must be right
<dfr|work>
headius, that doesn't allow for figuring how many entries you got total. And also degrades badly once offset is pretty large.
<headius>
oh yeah?
<headius>
well mysql is stupid then! So there!
<dfr|work>
headius, :)
yfeldblum has joined #jruby
subbu has quit [Ping timeout: 276 seconds]
yfeldblum has quit [Ping timeout: 246 seconds]
calavera has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
skade has joined #jruby
calavera has joined #jruby
joast has quit [Ping timeout: 268 seconds]
subbu has joined #jruby
kgerman has quit [Quit: kgerman]
<subbu>
dfr|work, i was just about to type: "computers are complicated" and as if to prove my point ... xchat seized up and my laptop started thrashing ... and i am back after finally getting my keyboard back :)
skade_ has joined #jruby
<dfr|work>
subbu, :D
<dfr|work>
subbu, maybe one day they'll rise up and take over the coding. Although I guess I'll be kind of out of work then.
baroquebobcat_ has joined #jruby
skade has quit [Ping timeout: 245 seconds]
kgerman has joined #jruby
<subbu>
:)
<lopex>
dfr|work: on some databases using resultset absolute/relative offset works ok on huge datasets
<dfr|work>
lopex, do those some databases include mysql?
<dfr|work>
I'm probably not that worried about offset degrading.
<lopex>
it's a as400/db2 :)
<lopex>
dfr|work: and I'm really surprised it works
<dfr|work>
also, I just want a sort of a hot fix anyway. The dcorrect solution to pagination problem is, I think, continuation ids.
<dfr|work>
I'm just sourcing you guys for inspiration. :)
<lopex>
chrisseaton: is there a docker for grall/truffle ?
<headius>
I'm still not really convinced mysql is a database
<lopex>
dfr|work: do you have any numbers regarding perf lost using limit ?
<lopex>
oracle also doesn have that, yo're supposed to use over an row_numer()
<headius>
every time I hear about som SQL feature slowing a database down when it works fine elsewhere...it's mysql
<Aethenelle>
headius: here's a fun one... fixing the method lookup problem from yesterday broke fileutils
<dfr|work>
lopex, but the way I understand it, when you have an offset, it still has to query limit + offset, and then drop the preceding rows.
<headius>
Aethenelle: FU does some funky defines
<dfr|work>
and that's where penalty comes from.
<lopex>
dfr|work: but skipping over index should be fast
<Aethenelle>
fileutils.rb:1716
<lopex>
unless you have materialised query
<lopex>
like joins etc
<chrisseaton>
lopex: there isn't a docker, but it's just a tarball
<headius>
Aethenelle: wtf
<dfr|work>
lopex, by skipping over index you mean that OFFSET + LIMIT isn't too bad?
<dfr|work>
lopex, we're talking about ~10^6 records =/
<lopex>
dfr|work: I would hope so
<dfr|work>
lopex, for the last page, it will likely be the same 40 seconds I'm getting with count now ;)
<Aethenelle>
headius: not really surprised considering there was another problem with lookups in metaclasses
<dfr|work>
lopex, but the fact that it degrades gracefully is appealing, since I don't expect people to paginate all 2mil records.
<lopex>
dfr|work: that's why I'm surprised why absolute/relative skipping in jdbc resultset works so fast on even larger db2
<headius>
yeah I guess so...funky code though
<Aethenelle>
just wonky and annoying...
<lopex>
*dbs
<lopex>
dfr|work: yeah, and you can always limit the number of pages available
<Aethenelle>
... maybe that cause i didn't read it well enough the first few times through...
nirvdrum_ has joined #jruby
kgerman has quit [Quit: kgerman]
nirvdrum has quit [Ping timeout: 245 seconds]
Antiarc1 is now known as Antiarc
quarters has joined #jruby
e_dub has joined #jruby
nirvdrum__ has joined #jruby
elia has quit [Quit: Computer has gone to sleep.]
nirvdrum_ has quit [Ping timeout: 246 seconds]
tylersmith has joined #jruby
<headius>
mkristian: ant complete is failing on 1.7
<headius>
some osgi targets...looks like an error about no thread-local runtime
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian force-pushed test-load-from-jruby-classloader from 7a2a3b2 to 98f9a98: http://git.io/FIl8Cw
<JRubyGithub>
jruby/test-load-from-jruby-classloader 9824d13 Christian Meier: each required jar will be added to the LOAD_PATH removing the need to handle...
<JRubyGithub>
jruby/test-load-from-jruby-classloader c1ea008 Christian Meier: load resources from jruby-classloader
<JRubyGithub>
jruby/test-load-from-jruby-classloader 5dd4605 Christian Meier: putting the jruby-classloader as context classloader means that all attached "jars" can be found via...
JRubyGithub has left #jruby [#jruby]
<mkristian>
headius, would say not supported anymore - mvn -Pcomplete
<headius>
we should switch all the 1.7 travis targets to mvn then
<headius>
I will try -Pcomplete and see if it passes
<mkristian>
headius, I saw the osgi failures - just rebased my to jruby-1_7 and there they work.
<mkristian>
headius, you are talking about the travis. no I am wrong - that should still work
<headius>
ok
<headius>
I haven't touched anything relating to runtimes or thread locals etc, so I thought maybe it's something you were doing
<mkristian>
headius, yes and no - but not on jruby-1_7 branch
quarters has quit [Read error: Connection reset by peer]
<JRubyGithub>
[jruby] jrubyci pushed 1 new commit to jruby-1_7: http://git.io/TpcQOQ
JRubyGithub has left #jruby [#jruby]
<JRubyGithub>
jruby/jruby-1_7 1ad4a59 Charles Oliver Nutter: Reduce exception-handling in checked funcall and clear $!.
purplefox has quit [Ping timeout: 265 seconds]
<Aethenelle>
i think it might be extend self that's broken...
<headius>
"ant main" fails too
<headius>
I don't see any recent commits that would change thread-local runtime stuff
<mkristian>
headius, the error message on a failing osgi is misleading - it has probably nothing to do with Ruby#setThreadLocalRuntime - somehow this happens when shutting down
<headius>
hmmmm
<headius>
do you have a better error?
<mkristian>
if you scroll up a bit there is: LoadError: no such file to load -- virtus
<mkristian>
so it is LoadService issue
yfeldblum has joined #jruby
<headius>
lovely :-\
havenwood has quit [Remote host closed the connection]
<headius>
mkristian: pushed some fixes this morning for the failures you're seeing
havenwood has joined #jruby
<electrical>
mkristian: jar-dependencies is still working amazing. We finally pushed the code into master for Logstash. and im working now on gemifying allot of our plugins :-)
<nirvdrum>
Why in the world does Ruby allow string interpolation without braces?
<nirvdrum>
But only for class vars or ivars.
<havenwood>
or global vars
<havenwood>
"#$/" #=> "\n"
<havenwood>
>.>
<nirvdrum>
Oh, cute.
DrShoggoth has quit [Remote host closed the connection]
postmodern has joined #jruby
nipra has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
yfeldblum has joined #jruby
yfeldblum has quit [Ping timeout: 246 seconds]
havenwood has quit [Remote host closed the connection]
iamjarvo_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
havenwood has joined #jruby
nipra has quit [Read error: Connection reset by peer]
jsvd has quit [Remote host closed the connection]
jsvd has joined #jruby
havenwood has quit [Ping timeout: 264 seconds]
jsvd has quit [Ping timeout: 276 seconds]
subbu|lunch is now known as subbu
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian force-pushed test-load-from-jruby-classloader from 98f9a98 to 0e7925f: http://git.io/FIl8Cw
<JRubyGithub>
jruby/test-load-from-jruby-classloader e617452 Christian Meier: each required jar will be added to the LOAD_PATH removing the need to handle...
<JRubyGithub>
jruby/test-load-from-jruby-classloader ec57604 Christian Meier: load resources from jruby-classloader
<JRubyGithub>
jruby/test-load-from-jruby-classloader a331b57 Christian Meier: putting the jruby-classloader as context classloader means that all attached "jars" can be found via...
JRubyGithub has left #jruby [#jruby]
obs has joined #jruby
<Aethenelle>
is there an easy way to break on the next line of Ruby within intellij's debugger?
nanoyak has quit [Quit: Computer has gone to sleep.]
tlarevo_ has quit [Remote host closed the connection]
havenwood has joined #jruby
<headius>
mkristian: looks good, thanks
<headius>
Aethenelle: hmmm...there's line number updating logic in the IR interpreter
<mkristian>
headius, yes, green can be a nice color ;)
<headius>
without the JIT 100% you can't use JVM stepping
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
quarters has quit [Read error: Connection reset by peer]
quarters has joined #jruby
cprice__ has joined #jruby
jsvd has joined #jruby
colinsurprenant has joined #jruby
cprice_ has quit [Ping timeout: 252 seconds]
jsvd has quit [Ping timeout: 255 seconds]
colinsurprenant has quit [Client Quit]
Aethenelle has joined #jruby
rcvalle has joined #jruby
yfeldblum has joined #jruby
nanoyak has joined #jruby
jwinter_ has quit [Quit: Connection closed for inactivity]
kgerman has quit [Quit: kgerman]
elia has joined #jruby
kgerman has joined #jruby
benlovell has joined #jruby
benlovell has quit [Ping timeout: 245 seconds]
<headius>
subbu: perhaps I should change the signature of JITed methods to receive IRStaticScope? I think that's going to be the one true StaticScope in the future, right?
<headius>
also, handleNonlocalReturn receives StaticScope but doesn't use it...might be wasted cycles to retrieve and pass in
subbu has quit [Ping timeout: 240 seconds]
nirvdrum_ has joined #jruby
obs has joined #jruby
nirvdrum has quit [Ping timeout: 240 seconds]
purplefox has quit [Ping timeout: 264 seconds]
Hobogrammer has joined #jruby
nirvdrum_ has quit [Ping timeout: 263 seconds]
mkristian has quit [Quit: bye]
jsvd has joined #jruby
subbu has joined #jruby
anaeem1 has joined #jruby
nirvdrum_ has joined #jruby
jsvd has quit [Ping timeout: 264 seconds]
kares7 has quit [Ping timeout: 246 seconds]
kares has quit [Ping timeout: 246 seconds]
kares_ has quit [Ping timeout: 246 seconds]
toshetm has joined #jruby
DrShoggoth has joined #jruby
febuiles has joined #jruby
dviola has quit [Remote host closed the connection]
mister_solo has joined #jruby
bbrowning is now known as bbrowning_away
<headius>
subbu: working on JIT and wondering of getImplementationClass on methods and blocks is ever different from StaticScope.getModule
<headius>
I don't have the method's ImplementationClass available in jitted body right now
<subbu>
hmm .. i'll have to page in that stuff into "main memory" ..
<subbu>
let me open the code.
<headius>
pre in InterpretedIRMethod for example
<headius>
I had just been using StaticScope.getModule in early work with explicit call protocol in JIT, but I want to do it right now
<headius>
right as in correct
<headius>
plus you deleted the "dead code" I was calling, so that forced the issue :-D
<headius>
I keep wondering if I should just pass the DynamicMethod object into the body
<subbu>
oh, what dead code did i delete?
<headius>
ThreadContext.preMethodFrameAndClass
<headius>
it's no big deal...it wasn't correct anyway
<subbu>
ah .. i guess i didn't do the right IDE incantation to look inside strings.
<subbu>
ok.
<headius>
I think it was pre death-to-rubyclass too
fridim_ has quit [Ping timeout: 245 seconds]
<headius>
oh hell, you know what
<subbu>
so, looks like it is the class that is fetched from the algo for inst-method-container.
<headius>
InterpretedIRMethod calls ThreadContext.preMethodFrameAndClass (different one) which just uses the static scope's module
<headius>
there's code to use the passed in implClass but it's dead
<headius>
I bet the difference came down to rubyclass
<subbu>
ah ..
<subbu>
// FIXME: This is currently only here because of some problems with IOOutputStream writing to a "bare" runtime without a proper scope
<subbu>
if (ssModule == null) ssModule = implClass;
<headius>
that's really old
<headius>
and it would seem it's not a problem anymore
<headius>
well, I may have answered my own question then
<headius>
at least for a method body, the scope module is what goes in frame
<subbu>
ok. so, then, worth fixing that code in InterpretedIRMethod and not pass the impl-class so it is clearer ..
<headius>
yeah
<headius>
I'll audit the others too
<subbu>
and, if things fail, we can investigate.
<subbu>
k
<headius>
oh wait, I'm an idiot... it's ONLY using the implClass
<headius>
sorry about that
<subbu>
headius, you know what ... so, when the inst-method is defined via DefineInstanceMethodInstr ... you can update the module for the static-scope of the new method there to the impl class, couldn't you?
<headius>
I build the scope at that point, actually
anaeem1 has quit [Remote host closed the connection]
<headius>
so it gets whatever the def class is at that point
<headius>
ScopeModule and friends
<subbu>
ah, ssModule is indeed dead in ThreadContext.preMethodFrameAndClass .. i missed that as well :)
<headius>
I'm testing to see if those are ever different
<headius>
no asserts in language rubyspecs
<subbu>
for JIT, if you are building the scope at that point and setting clazz there ... then, the two should be identical.
<headius>
I'm going to go with that then
<subbu>
i would like the same to be true for the interp as well .. so the impls. are in sync.
<headius>
it feels like it *should* be right with rubyclass stack out of the way
lanceball is now known as lance|afk
<subbu>
k
<headius>
oops...I may have found where it's different :-(
<headius>
def inside class << self
<headius>
const lookup (scope module) is the class, but def module is the metaclass
<subbu>
i see .. so, static-scope module is more meant for constant lookup.
<headius>
right now it is
<headius>
the module reference in it, anyway
<headius>
harumph.
<subbu>
so, you cannot update the field either .. because if you did, constant lookup will break.
<subbu>
so, looks like the clazz goes into the frame clazz field ... where is that being used?
<headius>
don't we have a document for this somewhere? :-D
<subbu>
all these values go round from one structure to another sometimes .. it took me a while to unravel all the places that the rubyclass field went to and discover that it was a cycle and could be entirely removed.
nanoyak has quit [Read error: Connection reset by peer]
<headius>
oh yes, frame class is for super
nanoyak has joined #jruby
<headius>
hmm
<headius>
and apparently the RAISE event hook
<subbu>
ah, super is the only place it is used for .. interesting ... it feels like it can be somehow broken away ... but, that doesn't help you now :)
<headius>
yeah, hmmm
<headius>
I could just disable it if there's a super in the body :-D
<subbu>
how did you access this value in the old JIT?
<headius>
in the old JIT, frame pre/post was written in Java and lived in the DynamicMethod wrapper around my generated bytecode
<headius>
new JIT does framing in the body, so I need to pass it everything it needs
Aethenelle has quit [Quit: Aethenelle]
<subbu>
ah, k.
<headius>
actually, maybe this should be an operand to PushFrame
<headius>
it is rather implicit rightnow
<subbu>
looking
<subbu>
indeed, it has a lot of implicit operands.
johnsonch is now known as johnsonch_afk
<subbu>
that would be one way to fix it indeed.
obs has quit [Quit: Saliendo]
<subbu>
but, actually it just moves the problem to push-frame ... the impl-class value would still need to get there.
<headius>
yeah
<headius>
I'll see if it would be too much hassle to pass it in
jsvd has joined #jruby
<subbu>
i will meanwhile see what can be done with super, if anything, at all.
<subbu>
but, something for the weekend .. evening.
<rtyler>
headius: heh, I think me replacing you in the Script Bowl is confusing the organizers :P
<rtyler>
worse comes to worst, I'll steal your badge for an hour :P
<headius>
they're always pretty disorganized
brettporter has joined #jruby
brettporter has quit [Changing host]
brettporter has joined #jruby
tcrawley is now known as tcrawley-away
<subbu>
headius, the other way would have been to introduce an additional field in StaticScope, but that increases memory footprint a bit.
nanoyak has quit [Read error: Connection reset by peer]
nanoyak has joined #jruby
nanoyak has quit [Client Quit]
nanoyak has joined #jruby
<headius>
yeah
<subbu>
headius, line 1232 of Helpers.java ... the 'implementationClass != null' is spurious isn't it .. if it is .. it will jsut crash the code elsewhere.
jrhe_ has joined #jruby
<headius>
probably
<headius>
safeguard from a broken time
imella has quit [Quit: Leaving.]
DrShoggoth has quit [Quit: Leaving]
<cprice__>
so, I've narrowed down our jruby 1.7.15 gem issue a bit; it seems like something behaves differently when you have a Gemfile with a :path entry in it, between jruby 1.7.13 and jruby 1.7.15. trying to put together a simple repro.
cprice__ is now known as cprice
<headius>
ahhh I see
<headius>
that would fit with other regressions we saw :-\
johnsonch_afk is now known as johnsonch
<cprice>
ah, so you think you already have an issue open for it?
elia has quit [Quit: Computer has gone to sleep.]
benlovell has joined #jruby
benlovell has quit [Ping timeout: 255 seconds]
<headius>
no
<headius>
cprice: we just saw some issues with the load/require/file pathing refactor that went into .14
<cprice>
k
<cprice>
i have it narrowed down to like a 6-liner now
<cprice>
will open a ticket
yfeldblum has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby
<dfr|work>
cprice, feel free to link me the repro case :)
<cprice>
the path is just a regular file path: /opt/git/foo/Gemfile ... not windows or inside a jar or anything
<dfr|work>
lemme see if I can reproduce.
pgokeeffe has quit [Ping timeout: 252 seconds]
<headius>
dfr|work: I don't know if enebo explained the other regressions, but most of them had to do with Bundler scrubbing LOAD_PATH of entries
<headius>
the way the new logic formatter them caused too much to be removed because __FILE__ no longer matched the LOAD_PATH line the file was loaded from
<headius>
on Windows, it was c: versus C:
<headius>
on *nix, it was expanding symlinks when it should not
<dfr|work>
headius, hah. Interesting... So there goes my plan of replacing special classloader logic with sticking extra stuff into $LOAD_PATH =/
<headius>
well hold on there...that's still doable
<headius>
it was basically pattern matching and we failed because __FILE__ did not have as a substring the load path entry it came from
<dfr|work>
headius, tbh, I'm not sure what regressions were... Is there an issue open or something?
<dfr|work>
ah...
<headius>
there are a couple
<headius>
one went into .14, another .15
<dfr|work>
headius, so I guess absolutizing __FILE__ is not desired then, huh
<headius>
we had problems with terminology too :-)
<headius>
MRI's canonicalization does not expand symlinks
<headius>
so it's basically just what JDK calls absolute...no relative modifies
<headius>
they do not expand symlinks in load path or __FILE__ as far as we could tell
<dfr|work>
headius, hokay, cool. Interesting.
<headius>
e.g. if you put a symlinked path in LOAD_PATH, it should be reflected in __FILE__
<dfr|work>
headius, but they make it absolute?
<headius>
that was the *nix breakage with Bundler
<headius>
yeah
<dfr|work>
headius, so they expand /../ and all but not symlinking. I see =/
<dfr|work>
that kind of sucks =/
<headius>
yeah...which is File.getAbsolutePath in MRI
<headius>
#1940 and e422b1f86f9427d7ae3ccec1a05f42f456846767
<headius>
have a look at bugs marked for .15, there's a couple others
graphex has joined #jruby
<dfr|work>
headius, interesting. I was kind of really trying to avoid 'absolute' vs. 'canonical' names in FileResource 'cause they're frigging confusing.
<headius>
that's for sure
<headius>
tom and I had to pause a few times to remember which was which on what runtime
havenwood has quit []
<dfr|work>
headius, so I was thinking it only should have rubyPath method that should return String for File#path
<dfr|work>
I guess that does add a bit complication as to the __FILE__ stuff, but perhaps all of that should be constrained to the LibrarySearcher/LoadService
<dfr|work>
anyhow, seems like something I ought to take a look at and make sure it makes sense :)
<dfr|work>
nice that you added the test too :)
<headius>
that was my job since I didn't want to fix it
<headius>
wow, want to roust out bugs in your compiler, add an argument to every method and have fun chasing down hardcoded offsets
<headius>
wtf
skade has quit [Quit: Computer has gone to sleep.]
skade has joined #jruby
skade has quit [Client Quit]
phrinx_ has joined #jruby
phrinx has quit [Read error: Connection reset by peer]
e_dub has quit [Quit: It's a hard knock life]
baroquebobcat_ has quit [Ping timeout: 246 seconds]
kfpratt has quit [Remote host closed the connection]
<headius>
there we go
kfpratt has joined #jruby
kfpratt has quit [Remote host closed the connection]
jsvd has joined #jruby
jsvd has quit [Ping timeout: 245 seconds]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]