carlosgaldino has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
heroux has joined #rubinius
meh` has quit [Ping timeout: 272 seconds]
sshao has quit [Quit: Connection closed for inactivity]
slaught has quit [Quit: slaught]
josh-k_ has quit [Remote host closed the connection]
dimday has joined #rubinius
arrubin has quit [Quit: Connection closed for inactivity]
amsi has quit [Read error: Connection reset by peer]
amsi has joined #rubinius
amsi has quit [Client Quit]
amclain has joined #rubinius
noop has joined #rubinius
yipstar has quit [Ping timeout: 255 seconds]
jnh has quit [Remote host closed the connection]
jnh has joined #rubinius
noop has quit [Ping timeout: 258 seconds]
jnh has quit [Ping timeout: 258 seconds]
amclain has quit [Quit: Leaving]
diegoviola has quit [Quit: WeeChat 1.0.1]
slaught has joined #rubinius
jnh has joined #rubinius
jnh has quit [Ping timeout: 264 seconds]
slaught has quit [Quit: slaught]
jnh has joined #rubinius
jnh has quit [Ping timeout: 258 seconds]
yipstar has joined #rubinius
yipstar has quit [Ping timeout: 250 seconds]
noop has joined #rubinius
JohnBat26 has joined #rubinius
|jemc| has quit [Ping timeout: 265 seconds]
jnh has joined #rubinius
benlovell has joined #rubinius
jnh has quit [Ping timeout: 272 seconds]
mamantoha has joined #rubinius
goyox86 has joined #rubinius
goyox86 has quit [Ping timeout: 258 seconds]
cezarsa has quit [Ping timeout: 244 seconds]
machty has quit [Ping timeout: 244 seconds]
mjc_ has quit [Ping timeout: 244 seconds]
cezarsa has joined #rubinius
dimday has quit [Ping timeout: 245 seconds]
machty has joined #rubinius
mjc_ has joined #rubinius
josh-k has joined #rubinius
goyox86 has joined #rubinius
leehambley has joined #rubinius
jnh has joined #rubinius
goyox86 has quit [Ping timeout: 264 seconds]
jnh has quit [Ping timeout: 264 seconds]
goyox86 has joined #rubinius
leehambley has quit [Quit: Leaving...]
<goyox86> Hey yorickpeterse, brixen mentioned that you were sending the metrcis to NewRelic. How are you doing it?
leehambley has joined #rubinius
<yorickpeterse> goyox86: http://i.imgur.com/DgtYV.gif
<yorickpeterse> For for RPM we're using this: https://github.com/newrelic/rpm/pull/197
<yorickpeterse> for Insights we use...
<yorickpeterse> It sends it to a queue, which then submits it to Insights
<yorickpeterse> but the meat is just loop { JSON.dump(Rubinius::Metrics.data) }
<yorickpeterse> (in a separate thread)
Guest19 has joined #rubinius
<goyox86> yorickpeterse: Nice GIF :p
jnh has joined #rubinius
<goyox86> yorickpeterse: If I have 3 RBX processes how can I read stats separately (Lets say I want to make a dashboard, basically a gem that spwna a sinatra app that looks for each RBX process)
<goyox86> In the past Iwas doing it with the agent which opens a file
<yorickpeterse> goyox86: for Insights, or RPM?
<goyox86> a stand alone tool
<yorickpeterse> oh, well you can just dump it to JSON
<goyox86> I don't know if explaining well
<yorickpeterse> or send it to statsd/graphite (support for that is built-in)
<yorickpeterse> graphite is a nightmare to set up though
<goyox86> Indeed, (About the JSON dump). But let I have 3 VM running in the machine then I fire up my gem cmooand which starts another VM process. How I do access the metrics of the other 3 VM's running?
<yorickpeterse> Well, you can't access them from the outside just yet
<yorickpeterse> So you'd have to dump them somewhere from the process itself
<goyox86> yorickpeterse: That is what I was thinking.
<yorickpeterse> So in a process, you could do something like this:
<yorickpeterse> Thread.new { loop { metrics = Rubinius::Metrics.data.to_hash; File.open("/tmp/metrics.#{Process.pid}", 'a+') { |handle| handle.write(JSON.dump(metrics)) } } }
<yorickpeterse> dat oneliner
<yorickpeterse> errr
<yorickpeterse> handle.puts
<yorickpeterse> so every blob comes on a new line
<goyox86> yorickpeterse: That seems easy for start playing around :)
<yorickpeterse> Yeah
<yorickpeterse> The beauty of it is that because we have this thing called "multi-threading" you can really put it anywhere you like :P
<yorickpeterse> so e.g. you could smack it directly into a database
<yorickpeterse> mpapis: your particular OpenSUSE problem appears to be gcc once more getting options it doesn't understand. I recall we've had various problems like these in the past where llvm-config adds crap some gcc version doesn't support
<yorickpeterse> if gcc has some way to list all supported options we could whitelist against that, but other than that I'm not sure how to solve the particular problem
meh` has joined #rubinius
Caius has quit [Ping timeout: 260 seconds]
<mpapis> yorickpeterse, maybe rbx could prefer clang first and fallback to gcc?
<mpapis> but still there is error in clang build too
<yorickpeterse> mpapis: brixen did mention he wanted to just drop gcc support because of reasons like this, though I'm not so sure yet if that's such a good idea
Caius has joined #rubinius
Caius has joined #rubinius
<mpapis> yorickpeterse, maybe it's a good idea, gcc is also slower in compiling rubinius - so overall experience should improve
mamantoha has quit [Ping timeout: 240 seconds]
jnh has quit [Ping timeout: 255 seconds]
goyox86_ has joined #rubinius
goyox86 has quit [Ping timeout: 265 seconds]
Guest19 has quit [Ping timeout: 245 seconds]
carlosgaldino has joined #rubinius
postmodern has quit [Quit: Leaving]
leehambley has quit [Quit: Leaving...]
goyox86_ has quit [Quit: WeeChat 1.0.1]
josh-k has quit [Remote host closed the connection]
mamantoha has joined #rubinius
max96at|off is now known as max96at
benlovell has quit [Ping timeout: 250 seconds]
benlovell has joined #rubinius
Guest19 has joined #rubinius
benlovell has quit [Quit: Lost terminal]
jnh has joined #rubinius
jnh has quit [Ping timeout: 250 seconds]
<mpapis> yorickpeterse, what can I do to debug the https://github.com/rubinius/rubinius/issues/3219 ?
<yorickpeterse> mpapis: as a start, make sure your fully up to date branch wise, then run `git clean -dfx`
<yorickpeterse> Then try building it
<yorickpeterse> It almost looks like the configure script is in some kind of state where it thinks the Gems are present, when they're not
<yorickpeterse> git clean -dfx removes any unstaged/untracked files/changes
<mpapis> yorickpeterse, thanks, will test it
<mpapis> yorickpeterse, there was some code in git pull and no changed files as I never build in the repository, anyway closing https://github.com/rubinius/rubinius/issues/3219
elia has joined #rubinius
elia has quit [Client Quit]
<yorickpeterse> mpapis: hm, interesting
JohnBat26 has quit [Remote host closed the connection]
JohnBat26 has joined #rubinius
benlovell has joined #rubinius
jnh has joined #rubinius
jnh has quit [Ping timeout: 265 seconds]
_elia has joined #rubinius
<cremes> brixen: so how can the rest of us help with cutting new releases? your write-up mentioned near-constant releases so there should be a 2.3.1
<cremes> already. also some talk about (almost) every commit to master resulting in a release.
<cremes> what do you need from the community to make this a reality? is the rbx team going to work out the kinks and
<cremes> then turn it over to the rest of us? inquiring minds…
<Guest19> I'm in with cremes here count on me
Guest19 is now known as goyox86
<goyox86> I'm in with cremes here count on me
<yorickpeterse> cremes: right now the only blocker I believe are the JIT interrupts
<yorickpeterse> which are being worked on
<cremes> yorickpeterse: coolio. do you have the inside scoop on the faster release cycle? any details to add?
<yorickpeterse> Nope, sadly not
<cremes> ok
<cremes> i’m curious how that is going to be practical with travis-ci. if people want to test against rubinius, then the travis folks would need to make all of these releases/nightlies available.
<cremes> they may not go for it
<yorickpeterse> They don't have to follow directly, they can update whenever they want
<cremes> true
JohnBat26 has quit [Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
diegoviola has joined #rubinius
noop has quit [Ping timeout: 240 seconds]
tenderlove has joined #rubinius
tenderlove has quit [Quit: Leaving...]
josh-k has joined #rubinius
<brixen> cremes: generally, fixing issues
<brixen> cremes: releases have some requirements that may not allow them to be generally done by anyone
<brixen> eg signing binaries
<brixen> but anyone can fix issues so that releases are ready to go
<yorickpeterse> "Binary signed by: Totally brixen <yorickpeterse@gmail.com>"
mamantoha has quit [Ping timeout: 245 seconds]
jnh has joined #rubinius
benlovell has quit [Ping timeout: 264 seconds]
jnh has quit [Ping timeout: 240 seconds]
|jemc| has joined #rubinius
<yorickpeterse> brixen: in all seriousness, we might want to set up things for multiple signers at some point. That way if you get hit by a bus we can still release things
<yorickpeterse> (yes yes I know that sounds rather morbid :P)
<Rotonen> for that to be convenient (a new contributor not requiring an in-person visit somewhere which stays offline for all eternity to come), you will need quite the intermediary cert setup
<yorickpeterse> Rotonen: what I meant was that multiple people could sign/release things, that's not too difficult with GPG
<yorickpeterse> also bbl, meetup/social things
amsi has joined #rubinius
<Rotonen> ah well if you go for a multi-trusted-root setup and place the trust in each and every contributor individually, sure
slaught has joined #rubinius
slaught has quit [Quit: slaught]
_elia has quit [Quit: Computer has gone to sleep.]
noop has joined #rubinius
josh-k has quit [Remote host closed the connection]
jnh has joined #rubinius
jnh has quit [Ping timeout: 264 seconds]
Guest19 has joined #rubinius
josh-k has joined #rubinius
goyox86 has quit [Ping timeout: 264 seconds]
Guest19 has quit [Ping timeout: 256 seconds]
postmodern has joined #rubinius
arrubin has joined #rubinius
mattgreenrocks has joined #rubinius
postmodern has quit [Quit: Leaving]
postmodern has joined #rubinius
mattgreenrocks has quit [Quit: mattgreenrocks]
mattgreenrocks has joined #rubinius
mattgreenrocks has quit [Client Quit]
mattgreenrocks has joined #rubinius
noop has quit [Ping timeout: 255 seconds]
tenderlove has joined #rubinius
yipstar has joined #rubinius
tenderlove has quit [Remote host closed the connection]
jnh has joined #rubinius
jnh_ has joined #rubinius
jnh has quit [Read error: Connection reset by peer]
<yorickpeterse> hngngngn profiling racc
<yorickpeterse> is hard stuff
<yorickpeterse> So annoying that any profiling solution, besides a sampling profiler, slows down things to a crawl
<yxhuvud> any conclusions? have you found any part slower than it should be?
<headius> yorickpeterse: I'd strongly recommend allocation tracing as first line of attack
<headius> it's almost certainly the main issue
<headius> we may not be able to fix excessive allocation in racc easily, but we may be able to fix it in your stuff
jnh_ has quit [Remote host closed the connection]
elia has joined #rubinius
tenderlove has joined #rubinius
tenderlove has quit [Remote host closed the connection]
<yorickpeterse> headius: I'd be surprised if allocations add 3 seconds to the runtime (on top of the lexer)
amsi has quit [Ping timeout: 255 seconds]
JohnBat26 has joined #rubinius
JohnBat26 has quit [Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/]
jnh has joined #rubinius
Guest19 has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
Guest19 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jnh has quit [Ping timeout: 255 seconds]
elia has joined #rubinius
amsi has joined #rubinius
Guest19 has joined #rubinius
josh-k has quit [Remote host closed the connection]
josh-k has joined #rubinius
josh-k has quit [Ping timeout: 240 seconds]
tenderlove has joined #rubinius
carlosgaldino has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #rubinius
tenderlove has quit [Remote host closed the connection]
mattgreenrocks has quit [Ping timeout: 272 seconds]
max96at is now known as max96at|off
tenderlove has joined #rubinius
johnmuhl has quit [Quit: Connection closed for inactivity]
<yorickpeterse> allright, finally back home
<yorickpeterse> now to quickly hack a systemtap profiler because alkjaldksajdgh I hate profilers
tenderlove has quit [Remote host closed the connection]
tenderlove has joined #rubinius
tenderlove has quit [Remote host closed the connection]
jnh has joined #rubinius
josh-k has joined #rubinius
jnh has quit [Ping timeout: 244 seconds]
<yorickpeterse> ok so oprofile is completely useless
<yorickpeterse> 6,9% of samples spent in st_lookup...yeah I can't do much there unless it tells me where they originate from
tenderlove has joined #rubinius
<brixen> cool hash 3529eaac
tenderlove has quit [Remote host closed the connection]
<yorickpeterse> speaking of hashes, what's the difference between hash and hash hamt in rbx?
<brixen> one is the HAMT structure and one is a chained-bucket structure
<brixen> HAMT is hash-array mapped trie (pronounced tree, as in re-trie-val, as specified by the original author /trivia_tidbit)
<yorickpeterse> right, and I take it one comes with benefits over the other?
<brixen> based on the paper by bagwell cache-aware hash array-mapped tries
<brixen> array-mapped, not hash-array :)
<brixen> the benefit of HAMT is that it's an almost ideal structure in terms of memory usage
<brixen> it uses a very high branching factor (typically 32 or 64) resulting in a very shallow tree
<brixen> ie, depth is log base 32/64
<brixen> and the structure is relatively easy to make lock-free with CAS
<yorickpeterse> So basically far less overhead?
<brixen> as soon as I fix Tuple, the HAMT will be the default
<brixen> less memory wasted for certain
<brixen> on one app, with has a bunch of biggish hashes, it amounts to over 10% of the heap
<yorickpeterse> hmm
<brixen> it also doesn't result in a huge vector to hang the buckets off
<brixen> every array-mapped trie is limited to ~32+1 word or 64+1 word
<yorickpeterse> well, systemtap is fucking broken
<yorickpeterse> it thinks big_number / even_bigger_number = 0
GitHub184 has joined #rubinius
<GitHub184> [rubinius] brixen pushed 2 new commits to master: http://git.io/-FVAJw
<GitHub184> rubinius/master 2b12035 Brian Shirai: Removed most rubinius:bug calls from JIT.
<GitHub184> rubinius/master 3529eaa Brian Shirai: Don't attempt to enqueue JIT request if disabled.
GitHub184 has left #rubinius [#rubinius]
<yorickpeterse> almost like Ruby
<brixen> for machine numbers that's true
<yorickpeterse> Yeah, I expect I have to cast things to a float
<brixen> well, I should say, the typical operation on machine numbers
Guest19 has quit [Read error: Connection reset by peer]
<yorickpeterse> wohoo, less interrupts
Guest19 has joined #rubinius
GitHub172 has joined #rubinius
<GitHub172> [rubinius] brixen pushed 1 new commit to master: http://git.io/Q6Xqvw
<GitHub172> rubinius/master aedb9a4 Brian Shirai: Updated gems_list.txt.
GitHub172 has left #rubinius [#rubinius]
<yorickpeterse> guess I have some binaries to build tomorrow
<yorickpeterse> argh ffs systemtap
<brixen> yorickpeterse: heh, hopefully