|jemc| has quit [Ping timeout: 260 seconds]
amsi has quit [Quit: Leaving]
|jemc| has joined #rubinius
carlosgaldino has joined #rubinius
jaffachief has quit [Quit: Computer has gone to sleep.]
diegoviola has joined #rubinius
meh`_ has quit [Ping timeout: 272 seconds]
|jemc| has quit [Quit: WeeChat 0.4.3]
|jemc| has joined #rubinius
havenwood has quit [Remote host closed the connection]
havenwood has joined #rubinius
havenwood has quit [Ping timeout: 264 seconds]
|jemc| has quit [Ping timeout: 240 seconds]
havenwood has joined #rubinius
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
saline has quit [Remote host closed the connection]
saline has joined #rubinius
noop has joined #rubinius
josh-k has joined #rubinius
josh-k has quit [Remote host closed the connection]
josh-k has joined #rubinius
benlovell has joined #rubinius
josh-k has quit [Ping timeout: 244 seconds]
saline has quit [Remote host closed the connection]
saline has joined #rubinius
josh-k has joined #rubinius
josh-k has quit [Remote host closed the connection]
<Bish> how would i find a memory leak in a rubinius app? i am having 100 threads, each of them encapsulated in a class, they do alot of http requests, and symbols.to_s
<Bish> do symbols get garbage collected?
<benlovell> Bish: you're in luck, RBX has an instrumenting profiler
<Bish> the profiler just tells me about calls#
<benlovell> Bish: take a heap dump
<benlovell> I think there's a tool for analysis too
<benlovell> there's a flag to start the rbx vm and expose an agent
<Bish> Unable to find any agents to connect to. Please specify one.
<Bish> :(
<benlovell> is it writing the pid
<heftig> Bish: symbols don't get garbage collected, at least in mri 2.1 and I believe rbx, too. mri 2.2 changes it, though
<Bish> heftig: heftig :3
<heftig> Bish: are you creating symbols dynamically?
<Bish> like string.to_symbol, no
<heftig> Bish: methods?
<Bish> like singletons? no.
<Bish> ( i don't know how i would create methods dynamicially in ruby ) so i suppose not
<Bish> im using a lot of mongodb, do i have to free those somehow?
<Bish> or do these get garbage collected
<Bish> much leak wow
<Bish> how do i read that heap dump? im confused.. /path/to/heap/lib ?
elia has joined #rubinius
<Bish> got it
<Bish> would be cool to have something like the heap to be visible during runtime
<yorickpeterse> morning
<yorickpeterse> Bish: the agent will soon be replaced with better stuff
<Bish> cool :3
<yorickpeterse> on 2.2.10 you can run your app with the agent using: RBXOPT-Xagent.start ruby some_app.rb
<yorickpeterse> then in another terminal use `rbx console` to attach
<yorickpeterse> and `set system.memory.dump path/to/dump` to generate a heap dump (at least I think that was the command)
<yorickpeterse> I'll actually be hacking on an object allocation tracer tonight/this weekend, but for now that will be an experiment
<Bish> i just did that
<Bish> but parsing the dump takes hours
<yorickpeterse> Correct, they're quite big
saline has quit [Remote host closed the connection]
saline has joined #rubinius
jaffachief has joined #rubinius
postmodern has quit [Quit: Leaving]
flavio has joined #rubinius
flavio has joined #rubinius
flavio has quit [Changing host]
<darix> let me guess rbtrace is not supported by rubinius?
<darix> same for stackprof
<yorickpeterse> Have you tried them?
<darix> yes
<darix> build fails ;)
<yorickpeterse> I would not be surprised if they both use MRI specific APIs
<darix> yorickpeterse: question is: would it be worth to have them support rubinius or not?
<yorickpeterse> stackprof most definitely doesn't work on Rbx
<darix> i just package them because discourse wants it
<yorickpeterse> I don't think we'll support these Gems, at least not until the C APIs they use are considered public (and not MRI specific)
<yorickpeterse> not sure if we can even support them in that case
<darix> yorickpeterse: could always add an rbx specific implementation in those gems
<yorickpeterse> That's a different thing from Rbx supporting those Gems
havenwood has quit [Remote host closed the connection]
<darix> but if it helps. seems recent MRI 2.2.0 snapshots also break a few gems
<yorickpeterse> Though I'd argue brixen would rather build something better built-in
<yorickpeterse> which we're already doing to a certain extend
<darix> yorickpeterse: well as long as you can put a wrapper around that exposes an rbtrace compatible API
<yorickpeterse> Why does it have to be rbtrace specific?
<darix> because there is other code that sits on top of that?
<yorickpeterse> I'd say it's not Rbx' responsibility to provide a layer that's compatible with this one Gem
<yorickpeterse> Instead we'd provide a sane API those Gems can depend on
<yorickpeterse> We're not going to set up APIs for specific Gems, that's just a waste of time
<yorickpeterse> (that is, ABI compatible shit and what not)
<darix> again not the point
<yorickpeterse> Then I think I'm missing it
<darix> is there an API that rbtrace can hook on that would allow it to expose the same informations as it is currently giving on MRI
<darix> adding support for such lowlevel libraries often needs work on both sides (interpreter and gem)
<yorickpeterse> No, not yet
<yorickpeterse> We have dtrace support, sort of, but I have no idea what state that is in
<yorickpeterse> We don't have an API for tracing all method calls just yet as far as I'm aware of
<yorickpeterse> (inc internal method calls that is)
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
<cremes> Bish: you can run heap_dump with mri and jruby too. you might get better performance from them (sadly)
<darix> next stop: therubyracer
elia has quit [Client Quit]
<darix> hmm
<darix> i think i broke that.
elia has joined #rubinius
flavio has quit [Ping timeout: 246 seconds]
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Client Quit]
benlovell has quit [Ping timeout: 244 seconds]
jaffachief has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
flavio has joined #rubinius
flavio has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
meh` has joined #rubinius
jaffachief has joined #rubinius
josh-k has joined #rubinius
elia has joined #rubinius
elia has quit [Client Quit]
josh-k_ has joined #rubinius
josh-k has quit [Read error: Connection reset by peer]
elia has joined #rubinius
benlovell has joined #rubinius
flavio has quit [Ping timeout: 272 seconds]
flavio has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Client Quit]
havenwood has joined #rubinius
elia has joined #rubinius
benlovell has quit [Ping timeout: 246 seconds]
josh-k has joined #rubinius
josh-k_ has quit [Ping timeout: 272 seconds]
elia has quit [Quit: Computer has gone to sleep.]
havenwood has quit [Remote host closed the connection]
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
benlovell has joined #rubinius
noop has quit [Ping timeout: 250 seconds]
elia has quit [Quit: Computer has gone to sleep.]
benlovell has quit [Ping timeout: 272 seconds]
elia has joined #rubinius
elia has quit [Client Quit]
meh` has quit [Ping timeout: 260 seconds]
diegoviola has quit [Remote host closed the connection]
elia has joined #rubinius
benlovell has joined #rubinius
elia has quit [Client Quit]
elia has joined #rubinius
flavio has quit [Ping timeout: 260 seconds]
tenderlove has joined #rubinius
diegoviola has joined #rubinius
havenwood has joined #rubinius
josh-k has quit [Read error: Connection reset by peer]
josh-k_ has joined #rubinius
havenwood has quit [Remote host closed the connection]
meh` has joined #rubinius
<darix> llvm 3.5.0
benlovell has quit [Ping timeout: 245 seconds]
josh-k has joined #rubinius
josh-k_ has quit [Ping timeout: 240 seconds]
havenwood has joined #rubinius
havenwood has quit [Client Quit]
diegoviola has quit [Quit: WeeChat 1.0]
diegoviola has joined #rubinius
enebo has joined #rubinius
|jemc| has joined #rubinius
<tarcieri> _____ ____ ___ ____ _ __ ___ _ _
<tarcieri> | ___| _ \|_ _| _ \ / \\ \ / / | | |
<tarcieri> | |_ | |_) || || | | |/ _ \\ V /| | | |
<tarcieri> | _| | _ < | || |_| / ___ \| | |_|_|_|
<tarcieri> |_| |_| \_\___|____/_/ \_\_| (_|_|_)
<tarcieri>
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
GitHub181 has joined #rubinius
<GitHub181> rubinius/1.8.7 25c353e Sophia Shao: Fixed C-API specs for rb_std{in,out,err,defout}...
<GitHub181> [rubinius] sshao pushed 2 new commits to 1.8.7: http://git.io/6S-P6w
<GitHub181> rubinius/1.8.7 15bb149 Sophia Shao: Fixed rb_std{in,out,err,defout} defines.
GitHub181 has left #rubinius [#rubinius]
enebo has quit [Quit: enebo]
elia has quit [Quit: Computer has gone to sleep.]
enebo has joined #rubinius
travis-ci has joined #rubinius
travis-ci has left #rubinius [#rubinius]
<travis-ci> [travis-ci] rubinius/rubinius/1.8.7 (15bb149 - Sophia Shao): The build passed.
|jemc| has quit [Quit: WeeChat 0.4.3]
josh-k_ has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
elia has joined #rubinius
GitHub168 has joined #rubinius
<GitHub168> [rubinius] sshao pushed 2 new commits to master: http://git.io/GQe-aA
<GitHub168> rubinius/master 7de55f1 Sophia Shao: Added specs for IO.new with closed IO streams.
GitHub168 has left #rubinius [#rubinius]
<GitHub168> rubinius/master ddf95f8 Sophia Shao: Added checks in IO.new & Kernel#flush_stdio for closed IO streams.
elia has quit [Ping timeout: 272 seconds]
<yorickpeterse> brixen: any quick way to fully disable the console when compiling rbx?
<yorickpeterse> ah, found it I think
<yorickpeterse> vm/environment.cpp
travis-ci has joined #rubinius
<travis-ci> [travis-ci] rubinius/rubinius/master (ddf95f8 - Sophia Shao): The build has errored.
travis-ci has left #rubinius [#rubinius]
josh-k_ has quit [Remote host closed the connection]
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 272 seconds]
diegoviola has quit [Quit: WeeChat 1.0]
sferik has joined #rubinius
sferik has quit [Read error: Connection reset by peer]
sferik has joined #rubinius
sferik has quit [Client Quit]
sferik has joined #rubinius
sferik has quit [Read error: Connection reset by peer]
sferik has joined #rubinius
enebo has quit [Quit: enebo]
elia has joined #rubinius
amsi has joined #rubinius
samflores has joined #rubinius
sferik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<yorickpeterse> brixen: what is the canonical way of calling back into Ruby from the VM (not the CAPI)? I know that in the CAPI you can use the NativeMethodEnvironment stuff, but does that also work in the VM?
<yorickpeterse> Basically I want to call a number of blocks defined in Rubbyland
<brixen> yorickpeterse: go see Object::send
<brixen> or anywhere that methods are called in the instructions
<yorickpeterse> Hmm
<brixen> yorickpeterse: gotta run in 8 min, get all your Qs in :)
<yorickpeterse> how do I obtain world domination?
<brixen> see Java
<yorickpeterse> note to self: become CEO of Oracle
<yorickpeterse> But nah that should be good enough to hack together an allocation tracer/firehose
<brixen> hah, only the CTO now, unless you meant CEOs
<brixen> do you actually need to know where objects are allocated?
<brixen> or do you need to know where they are retained?
<yorickpeterse> not specifically where, just if
<brixen> use the counts out of metrics
<yorickpeterse> e.g. use case would be "How many objects does method call X allocate"
<brixen> one sec
<brixen> ah dammit, my master is hosed at the moment
<brixen> build master, use Rubinius::Metrics to record the object allocation count before the method and after
<yorickpeterse> doesn't that only run in intervals?
lbianc has joined #rubinius
<brixen> the counters are constant
<brixen> you can set the aggregation interval as short as one millisecond
<brixen> I could add an API to run the aggregation on demand
<brixen> but -Xvm.metrics.interval=500 is pretty reasonable for that test
<brixen> combined with a sleep :)
<brixen> ok, times up
<brixen> have fun :)
<yorickpeterse> thanks, toodles
amsi has quit [Ping timeout: 244 seconds]
elia has quit [Quit: Computer has gone to sleep.]
enebo has joined #rubinius
cpuguy83 has quit [Ping timeout: 260 seconds]
cpuguy83 has joined #rubinius
tenderlove has quit [Quit: Leaving...]
postmodern has joined #rubinius
<yorickpeterse> hngngngngn Rbx compile my stuff already
<yorickpeterse> getting a module registered in the VM is harder than anticipated
<yorickpeterse> oh, randomly adding headers seems to work...right
sshao has joined #rubinius
GitHub64 has joined #rubinius
<GitHub64> [rubinius] sshao pushed 2 new commits to master: http://git.io/DiKIwg
<GitHub64> rubinius/master 04f38de Sophia Shao: Fixed rb_std{in,out,err}, added rb_defout
GitHub64 has left #rubinius [#rubinius]
<GitHub64> rubinius/master 5c786dc Sophia Shao: Added C-API specs for rb_std{in,out,err,defout}
amsi has joined #rubinius
travis-ci has joined #rubinius
<travis-ci> [travis-ci] rubinius/rubinius/master (04f38de - Sophia Shao): The build passed.
travis-ci has left #rubinius [#rubinius]
enebo has quit [Quit: enebo]
<yorickpeterse> badaboom, I have a shitty allocation tracer
<yorickpeterse> I wonder how much this slows things down
<yorickpeterse> Though it doesn't seem to fire for internal types (e.g. String), only for custom defined classes :/
<darix> so is llvm 3.5 supported already?
josh-k has joined #rubinius
jc00ke has quit [Quit: WeeChat 0.4.2]
<yorickpeterse> darix: master should work with 3.5
<yorickpeterse> 2.2.10 probably doesn't
<darix> ok
<darix> then i will disable the factory package for now
havenwood has joined #rubinius
shingara has quit [Quit: WeeChat 0.3.5]
elia has joined #rubinius
meh` has quit [Ping timeout: 258 seconds]
elia has quit [Quit: Computer has gone to sleep.]
|jemc| has joined #rubinius
carlosgaldino has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
josh-k_ has joined #rubinius
josh-k has quit [Ping timeout: 250 seconds]
josh-k_ has quit [Remote host closed the connection]
josh-k has joined #rubinius
elia has joined #rubinius
josh-k has quit [Ping timeout: 246 seconds]
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]