<brixen>
pretty sure they've patch it but may not be released yet
<brixen>
check on HEAD to see if that's been fixed
<brixen>
then you'll need to edit your Gemfile to put it in a platforms :mri block
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #rubinius
elia has quit [Client Quit]
RageLtMan has joined #rubinius
<Bish>
brixen, which head, and can i simply remove the 'gem 'byebug'' line in the gemfile?
<Bish>
well looks like that is possible :3
<Bish>
rubinius does not come close to MRI in rails performance, right?
<|jemc|>
Bish: depending on what you're doing, rubinius performance may be either better or worse than MRI
<Bish>
well, it sounds funny, but i played around with rbx alot already, and i feel it is less painful than the others
<Bish>
but i never seen it being faster
<|jemc|>
if your application can take advantage of the true concurrency and the JIT, you are more likely to get better performance than MRI
<Bish>
what about a simple rails app.. nothing special?
<|jemc|>
however, at the moment, startup times will almost always be slower, and once you're loaded, the JIT takes time to warm up
<Bish>
i figured, i gonna keep testing because i failed at installing rails in MRI ^^.. why so ever
<Bish>
somehow i fucked up my system ruby-wise, and rubinius is the only which works for me right now :D
<Bish>
if the jit heats up, and will be only a bit slower than MRI, than everything is cool, that is a tradeoff i would like
<Bish>
s/than/then
|jemc| has quit [Ping timeout: 240 seconds]
<RageLtMan>
Bish: RBX works well as a server platform due to the concurrency model and JIT - we've had rails apps "figure themselves out" days after boot because of usage patterns. One good example is a geospatial analysis system... over time i gets a hell of a lot better at figuring out traversals across a curved surface
<Bish>
why is the startup time so big, though?
<RageLtMan>
Because its self-compiling
<RageLtMan>
RBX is written largely in Ruby, so the compiler builds a low-level scaffolding of object primitives in C++ and uses them to bootstrap a pure-ruby version of ruby
|jemc| has joined #rubinius
<RageLtMan>
Comparably, MRI isn't very "ruby" at all :)
<RageLtMan>
(take a look at the innards of MRI or Perl runtimes if you want to spend the rest of your days in a padded room with an oversized coat)
<Bish>
i know how rubinius works, but i am wondering, isn't it able to cache the precompiled file
<Bish>
i know it does something like that in .rbx, but i never looked into it in detail
<Bish>
or does the .rbx only concern the jit?
<|jemc|>
Bish: if it helps, there are (at least) two conceptual stages of compilation here - ruby code to rubinius bytecode and rubinius bytecode to native machine code
<|jemc|>
the JIT is the compiler that does the latter transformation
<|jemc|>
the *.rbc files and those files you see cached in the .rbx dir contain representations of the "middle" stage - rubinius bytecode
<Bish>
that doesn't answer the question why caching them doesn't speed up the "load"
<|jemc|>
it does if you think about the other parts of compilation that still need to happen
pietr0 has quit [Quit: pietr0]
unreal_ has joined #rubinius
unreal has quit [Ping timeout: 264 seconds]
tenderlove has quit [Quit: Leaving...]
craigp has quit [Remote host closed the connection]
nirvdrum has quit [Ping timeout: 252 seconds]
craigp has joined #rubinius
|jemc| has quit [Ping timeout: 264 seconds]
|jemc| has joined #rubinius
craigp has quit [Remote host closed the connection]
craigp has joined #rubinius
craigp has quit [Remote host closed the connection]
febuiles has quit [Quit: febuiles]
meh` has quit [Quit: I don't want to live on this planet anymore.]
heroux has quit [Remote host closed the connection]
havenwood has joined #rubinius
craigp has joined #rubinius
|jemc| has quit [Ping timeout: 255 seconds]
havenwood has quit []
craigp has quit [Remote host closed the connection]
craigp has joined #rubinius
craigp has quit [Ping timeout: 256 seconds]
craigp has joined #rubinius
heroux has joined #rubinius
craigp has quit [Remote host closed the connection]
craigp has joined #rubinius
flavio has joined #rubinius
flavio has joined #rubinius
elia has joined #rubinius
djellemah_ has joined #rubinius
djellemah has quit [Quit: Leaving]
djellemah has joined #rubinius
Akanksha08 has joined #rubinius
djellemah has quit [Quit: Leaving]
djellemah has joined #rubinius
JohnBat26 has joined #rubinius
gtemple has joined #rubinius
nirvdrum has joined #rubinius
|jemc| has joined #rubinius
djellemah_ has quit [Quit: Leaving]
Bwild has quit [Quit: leaving]
cremes has quit [Read error: No route to host]
cremes has joined #rubinius
craigp has quit []
gaustin has joined #rubinius
cremes has quit [Read error: Connection reset by peer]
cremes has joined #rubinius
flavio has quit [Remote host closed the connection]
flavio has joined #rubinius
flavio has joined #rubinius
|jemc| has quit [Ping timeout: 245 seconds]
cpuguy83 has quit [Remote host closed the connection]
cpuguy83 has joined #rubinius
cpuguy83 has quit [Read error: Connection reset by peer]
cpuguy83 has joined #rubinius
houhoulis has joined #rubinius
houhoulis has quit [Ping timeout: 264 seconds]
houhoulis has joined #rubinius
|jemc| has joined #rubinius
havenwood has joined #rubinius
flavio has quit [Quit: WeeChat 1.0]
tenderlove has joined #rubinius
kfpratt has quit [Remote host closed the connection]
kfpratt has joined #rubinius
kfpratt has quit [Read error: Connection reset by peer]
meh` has joined #rubinius
kfpratt has joined #rubinius
Akanksha08 has quit [Ping timeout: 246 seconds]
kfpratt has quit [Remote host closed the connection]
kfpratt has joined #rubinius
kfpratt has quit [Read error: No route to host]
elia has quit [Quit: Computer has gone to sleep.]
kfpratt has joined #rubinius
houhoulis has quit [Remote host closed the connection]
<heftig>
Bish: it does.
<heftig>
no cache: rbx -e 'puts 1' 0.69s user 0.02s system 135% cpu 0.525 total
<heftig>
cached: rbx -e 'puts 1' 0.24s user 0.02s system 102% cpu 0.248 total
<heftig>
well, to be fair the uncached time also includes writing out the cache files
djellemah has quit [Remote host closed the connection]
<mustmodify>
thanks. Yeah, I thought it was something like that but the specifics were eluding me. Thanks. I'll see if I can make that better.
<mustmodify>
So if I understand your post correctly, the reason it works in MRI is because C won't call the overriden methods because they're ruby methods, not C methods... is that right?
ssedov is now known as stass
<|jemc|>
@mustmodify correct, more or less
<brixen>
mustmodify: anything object that overrides an ancestor method needs to preserve that method's contract
<brixen>
mustmodify: in Ruby, this is complicated by the fact that methods on classes are not partitioned into primitive operations and compositions of those operations
<brixen>
so, when you override a method, you don't know what may depend on it
<brixen>
but in general, you can't go very wrong by following liskov
<brixen>
and you can go very wrong indeed by disregarding liskov
<brixen>
in Scorched code, there is just absolutely no reason to be structured like that
<brixen>
compose a Hash and provide your interface
<brixen>
Scorched *isn't* a Hash and shouldn't try to fake being one