|jemc| has quit [Ping timeout: 240 seconds]
pietr0 has quit [Quit: pietr0]
amclain has joined #rubinius
nirvdrum has quit [Ping timeout: 246 seconds]
meh` has quit [Quit: I don't want to live on this planet anymore.]
amclain has quit [Quit: Leaving]
aghost has joined #rubinius
<aghost> quick question: is there a way to disassemble ruby vm instructions from rbc precompiled code?
<aghost> or if there is any rbc specification document?
aghost has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
aghost has joined #rubinius
benlovell has joined #rubinius
max96at|off is now known as max96at
maasha has joined #rubinius
<maasha> rbx gem install google_hash -> sparse_ruby_to_double.cpp:251:45: error: ‘rb_dbl2big’ was not declared in this scope make: *** [sparse_ruby_to_double.o] Error 1
<maasha> ?
<maasha> No homebrew recipe for rubinius :o(
<maasha> That can't be right
havenwood has joined #rubinius
benlovell has quit [Ping timeout: 246 seconds]
Bwild has quit [Quit: leaving]
<dmilith> maasha: cause homebrew can't be right ;]
<dmilith> maasha: http://software.verknowsys.com/binary/Darwin-10.10-x86_64/Rubinius25-2.5.2.txz - unpack to /Software, export PATH=/Software/Rubinius25/exports:$PATH
<dmilith> i assume you have 10.10
<maasha> sure, just wonder why homebrew don't have a recipe
<dmilith> they have IIRC
<maasha> And why does my freshly compiled rbx on Linux say 'bdver1' is not a recognized processor for this target (ignoring processor) all over the place ... ?
<dmilith> lol, really they don't have rubinius
<dmilith> that's funny then
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
<aghost> can i directly execute bytecodes in Rubinius::CompiledCode ?
<yorickpeterse> maasha: https://github.com/rubinius/rubinius/issues/3089 should be in 2.5.2
<yorickpeterse> actually it's been there since July 2014
benlovell has joined #rubinius
aghost has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
<kagaro> yo brixen you around
<cremes> dmilith, maasha: for homebrew, check this out: https://twitter.com/rubinius/status/556657990682816512
<cremes> that’s how you install rbx via homebrew
<cremes> this should get added to a FAQ or something...
<maasha> gotit, ty
<brixen> maasha: Homebrew removed Rubinius because we had a dependency on Ruby to build Rubinius
<brixen> maasha: but that dependency is being removed
<brixen> maasha: in the meantime; brew update && brew tap rubinius/apps && brew install rubinius
<brixen> maasha: if you have chruby installed, it will also copy to your ~/.rubies
<brixen> maasha: regarding C-API functions missing, we implement what we need since MRI is just a big bag of C functions that C-exts randomly collect
<brixen> maasha: you may end up with better performance using Ruby instead of wrapping google_hash
<brixen> but then, I'm not totally sure what it is
<dmilith> cremes: the last thing I would check is homebrew ;] sorry
havenn has joined #rubinius
havenwood has quit [Ping timeout: 245 seconds]
<maasha> brixen: unfortunately my bottleneck with rbx is tr that is dead slow
<maasha> grrr
<maasha> evertybody should drop what they have in their hands and get on fixing that!
<maasha> as if you have any life anyway :oD
<brixen> maasha: how does google_hash help with tr?
meh` has joined #rubinius
benlovell has quit [Ping timeout: 255 seconds]
benlovell has joined #rubinius
mlen has joined #rubinius
<mlen> Hi everyone! Is it possible to decompile/disassemble .rbc file?
<mlen> I found rubinius-debugger, but I didn't find an option to just point it at a file
<mlen> I only have the file with the bytecode, so loading debugger there isn't an option
<maasha> brixen: two different issues. in MRI my bottleneck is hash - but google hash saves the day. In rbx tr is the problem overshawdowing hash issues.
<brixen> maasha: where is your code?
havenwood has joined #rubinius
havenn has quit [Ping timeout: 246 seconds]
<maasha> brixen: https://github.com/maasha/biopieces/blob/master/lib/biopieces/seq.rb -> complement method is the culprit.
<brixen> interesting!
<brixen> ok, so we have some code to work with
<brixen> maasha: what is your actual performance requirement?
<brixen> ie, latency, through-put, total runtime for a specific job, etc?
<brixen> all performance is not equal
<brixen> all performance needs are no the same
<brixen> s/no/not/
elia has joined #rubinius
<brixen> maasha: are these all us-ascii strings?
<maasha> brixen: its been a while since I did the actual profiling, but back then 40% time was tr
<maasha> should be 0
<brixen> what I mean by that question is, for example, if you only need total work done and you have few data dependencies, you can parallelize it to meet your target
<brixen> you don't need any one piece to run faster than the whole process runs
<brixen> if it's latency, that's a different requirement
<brixen> etc
<brixen> maasha: what "should be 0"?
<maasha> brixen: I was expecting tr to turn up more or less as 0% in the profiler. tr ought to be ugly fast.
<brixen> why ought it be so?
<maasha> brixen: it is in Perl - a lookup map is created at compile time and thus it runs at C speed.
<brixen> everything runs at C speed :p
<maasha> brixen: in rbx it is a ruby iteration.
<brixen> the question is merely how much work is being done "at C speed"
<brixen> you can create a lookup table in Ruby
<maasha> brixen: but it should be done by the C preprocessor
<brixen> perhaps
<brixen> but this is why I asked about encoding
<brixen> is this us-ascii data? or does it have an encoding?
<brixen> maasha: that doesn't answer my question
<maasha> brixen: this is ascii data. I realize that the problem is in part the need for UTF8 to work as well.
<brixen> if it's purely ascii data, you can make a simple table
<brixen> which doesn't require fixing #tr at all
<maasha> brixen: well, I could even go for a Inline::C method, but really .. tr should be fixed :o(
<brixen> #tr should indeed be fixed
<brixen> but you do not *need* #tr
<brixen> so if you want to improve your program, this table is a 255x255 array
<brixen> and a while loop
<brixen> which the JIT will make reasonably fast
<maasha> no. tr is just very handy - coming from Perl I love tr!
<brixen> I could write it in 10 minutes
<brixen> brb
<brixen> like, the conversation to find out if you needed encoding is longer than it will take to write this
<maasha> brixen: right, you dont have to write any replacement for me! I can do it myself if I want to! :o)
<brixen> maasha: why are you using string literals? do they differ at all in these methods?
<maasha> but all good forces should work on fixing tr
<brixen> I'm evil ;)
mlen has left #rubinius ["WeeChat 0.4.3"]
<maasha> brixen: and with inline::C you get another 50x speed
<brixen> unsurprising
<brixen> I just looked at the JIT output and it's using too many functions
<brixen> which is something I'll fix soon
<maasha> but there is should be in the first place IMHO
<brixen> anyway, while #tr should be fixed, it's not a blocker
<brixen> if you want to help get #tr fixed, make the specs excellent
<brixen> so there's no confusion about what behavior is with encoding
<maasha> brixen: thing is I get confused with utf-8
<brixen> maasha: seriously, you're not going to get much of a warm response with "it should be C speed to begin with"
<brixen> got write a ruby implementation
<brixen> that works
<maasha> brixen: but for ascii one should simply copy Perls tr.
<brixen> come back and tell me how it should be
<brixen> or go use Perl
<maasha> brixen: ok, let me get this right. We need a pure ruby implementation because that is what rbx is ultimately about implementing Ruby using Ruby.
<brixen> nope
<maasha> ?
<brixen> what's your question?
<brixen> what you asserted is incorrect
<maasha> If I was going to write tr in inline::C I would use a 256 char array to map from search value to replace value.
benlovell has quit [Ping timeout: 240 seconds]
elia has quit [Quit: Computer has gone to sleep.]
<maasha> so that is what are doing as well.
<maasha> *you are doing as well
maasha has quit [Quit: Page closed]
amclain has joined #rubinius
`fox` has joined #rubinius
<`fox`> hi, i was wondering if there is a decompiler/disassembler for rubinius bytecode out there
<`fox`> any hint?
aghost has joined #rubinius
aghost has quit [Client Quit]
benlovell has joined #rubinius
nirvdrum has joined #rubinius
benlovell has quit [Ping timeout: 264 seconds]
<cremes> `fox`: i recommend searching the blog at blog.rubini.us and looking for an article on bytecode obfuscation. if there’s a way to undo it, that article will likely show the way.
<`fox`> cremes, i did not find any article on bytecode obfuscation :(
elia has joined #rubinius
elia has quit [Quit: Computer has gone to sleep.]
aghost has joined #rubinius
meh` has quit [Quit: reboot]
meh` has joined #rubinius
aghost has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
benlovell has joined #rubinius
max96at is now known as max96at|off
aghost has joined #rubinius
benlovell has quit [Ping timeout: 256 seconds]
havenwood has quit [Remote host closed the connection]
elia has joined #rubinius