<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.lang.ruby.rubinius.devel">
    <title>gmane.comp.lang.ruby.rubinius.devel</title>
    <link>http://blog.gmane.org/gmane.comp.lang.ruby.rubinius.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/597"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/596"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/595"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/594"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/593"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/592"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/591"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/590"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/588"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/587"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/583"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/582"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/581"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/580"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/579"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/578"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/577"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/576"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/575"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/574"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/597">
    <title>Re: Does &amp;method(:foo) get inlined? Can it? Should it?</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/597</link>
    <description>&lt;pre&gt;I think that using this style is certainly possible, but fairly obtuse to most rubyists. If you never wrote blocks and instead only wrote these &amp;amp;method(:blah) isms, the other programmers on your team would get frustrated with you.

That being said, you asked a technical question rather than a stylistic one, so I'll answer it technically.

You're assumption that it could be the same as a block is, I'm sad to say, dead wrong. There reason you don't see Method#to_proc and such in profiling is 2 fold:

1) Most (all?) MRI profilers do not show a methods that MRI defines in C, so they'd never show up.

2) The mechanism for activating a method that has been turned into a Proc is all in C, so the overhead is invisible on the invocation side too.

You're point about the arty differences are right on. Additionally, you're thinking that a VM could easily optimize it into a block is quite wrong. Object#method is a not specially, not something that would be detected and optimized away. Additionally, even with runtime optimizations, something like escape analysis is still required since #method returns a Method object that you'd have to see inside and extract the information from. On the invocation side, the invoked method can only do something special with the block in the case of block inlining, an optimization that only Rubinius has.

So to get to your questions:

1. Does Rubinius optimize this code? No. Could it? Yes, but it's hardly easy.
2. In time it could, yes.
3. In time it should, yes.

 - Evan

&lt;/pre&gt;</description>
    <dc:creator>Evan Phoenix</dc:creator>
    <dc:date>2011-08-08T21:09:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/596">
    <title>Re: Does &amp;method(:foo) get inlined? Can it? Should it?</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/596</link>
    <description>&lt;pre&gt;Although I understand your rationale for point-free style,
I should note that it will seem _really peculiar_ to many
Rubyists.  It might also cause maintenance issues, if the
maintainer doesn't understand the idiom.

This may not be a show-stopper, particularly if your code
isn't read or modified by others.  However, you should keep
it in mind for any distributed or shared code .

-r
&lt;/pre&gt;</description>
    <dc:creator>Rich Morin</dc:creator>
    <dc:date>2011-08-08T17:06:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/595">
    <title>Does &amp;method(:foo) get inlined? Can it? Should it?</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/595</link>
    <description>&lt;pre&gt;Hi.

I am a big fan of programming in point-free style, although
unfortunately Ruby makes that unnecessarily ugly. I.e., I very much
prefer 

    ary.each(&amp;amp;method(:puts))

over 

    ary.each {|el| puts el }

The reason for this is the old saying by Phil Karlton:

| There are only two hard problems in computer science. Cache invalidation and naming things.

If naming things is hard (i.e. expensive), then names shouldn't be
wasted on irrelevant things. And conversely, if something has a name,
then it is important.

The whole *point* of higher-level iteration methods like
Enumerable#each and friends is to lift collection operations over the
individual elements, IOW to make the individual elements not
important; ergo, the individual elements shouldn't need to be named.

However, today there was a StackOverflow question about the efficiency
of such point-free code, especially with regards to reified Method and
Proc objects.

Personally, I don't care. I have yet to see Object#method or
Method#to_proc even show up in any profile.

My first reaction was basically that any halfway decent Ruby execution
engine should be able to inline and optimize the point-free version
all the way back till it generates basically the same machine code as
the explicit one. However, I am now having second thoughts about
whether there are some aspects of the semantics of Method and Proc
objects that make it impossible for them to be as efficient as a
method call (which after speculative inlining typically ends up as
just a conditional jump).

Since Rubinius seems to be the most advanced and most aggressively
optimizing Ruby execution engine, I thought I'd ask here:

1. Does Rubinius currently optimize such point-free code?
2. If it doesn't, could it?
3. If it could, should it?

Thanks in advance!

Greetings, 
    jwm

&lt;/pre&gt;</description>
    <dc:creator>Jörg W Mittag</dc:creator>
    <dc:date>2011-08-08T02:21:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/594">
    <title>Re: Re: Rubinius vs JRE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/594</link>
    <description>&lt;pre&gt;
The same could be said for any Ruby VM. Since most Ruby folks aren't
using the JVM, I don't really see that as a strong need for Rubinius
in particular--non-JRuby users are already using Ruby-only libs
anyway.

Dave

&lt;/pre&gt;</description>
    <dc:creator>Dave Newton</dc:creator>
    <dc:date>2011-08-01T19:06:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/593">
    <title>Re: Rubinius vs JRE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/593</link>
    <description>&lt;pre&gt;
It's in now.

Dave

&lt;/pre&gt;</description>
    <dc:creator>Dave Newton</dc:creator>
    <dc:date>2011-08-01T19:02:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/592">
    <title>Re: Rubinius vs JRE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/592</link>
    <description>&lt;pre&gt;I saw that this didn't get a reply, so I figured I'd take a shot.  I've just
started to seriously get interested in contributing, so I may not have all
my history/facts straight.

1. Rubinius started as an interest/labor of love by Evan Phoenix.  It's
gotten sponsorship from EngineYard in the form of two employed developers
(Evan and Brian, I believe) that work on Rubinius full-time.  Predicting the
future is hard, but those two factors make me think Rubinius will be around
for some time.  Obviously the hope is for even more people to run their
programs and apps on Rubinius and contribute back to keep it going.

There has been talk about Rubinius being some kind of replacement for MRI
but not by either core team (I could be wrong here).  At very least, my
impression is that neither side is really pushing for it, and each core team
is content working on their own "branch" as they have different goals, etc.
 I personally don't think it will happen, which is fine.  Rubinius offers
its own advantages, which are distinct from the advantages of MRI (and
JRuby).  That said, Brian Ford was on an EngineYard podcast recently and
noted that one of Rubinius' goals is to be a drop-in replacement for MRI in
terms of compatibility, C extensions, etc.

2.  It seems you're asking about the Rubinius VM vs. the JVM, and I can't
speak to that intelligently.  All I know is the Rubinius VM is small as VMs
go and is designed to support the dynamic nature of Ruby.  The JVM is a
larger codebase but has a large amount of support to refine and extend it.
 The JVM is starting to add things like invoke-dynamic which will better
support dynamic languages, but it's being added now not baked in.  Again,
this is my extremely coarse understanding of the differences.

On Thu, Jul 28, 2011 at 8:41 AM, Glenn Dix &amp;lt;glenn.dix&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


&lt;/pre&gt;</description>
    <dc:creator>Smock Jonathan</dc:creator>
    <dc:date>2011-08-01T01:21:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/591">
    <title>Re: Rubinius vs JRE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/591</link>
    <description>&lt;pre&gt;

1. Since the MRI is C and Rubinius in Ruby whats to assimilate? Will
it last long term, that ultimately will depend on user base and
contributor base, use and contribute the longer it will last.

2. Better than JRE. The JRE is has evolved and has a lot of mature
libraries written against it. So for Rubinius to be better it will
need to mature and have contributors write and develop libraires. It
would have the potential to be better as the libraries can be written
in Ruby not limiting the user who can contribute libraries ie not
limited to java or c extension writers, now those experienced in Ruby
can contribute to the language they love directly.

Sayth

&lt;/pre&gt;</description>
    <dc:creator>flebber</dc:creator>
    <dc:date>2011-07-29T07:22:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/590">
    <title>Rubinius vs JRE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/590</link>
    <description>&lt;pre&gt;The architecture for Rubinius looks like an exciting enhancement over
MRI in the areas of concurrency and memory management, but I have two
general questions:

1. Will the Rubinius project exist long-term, or will it be
assimilated into MRI or something else
2. How will Rubinius be better than the JRE, other than for directly
supporting Ruby (e.g. java.lang.NullPointerException, system clock
skewing, incompatibility between minor revisions and patch releases,
weekly high severity vulnerability findings, etc.)

&lt;/pre&gt;</description>
    <dc:creator>Glenn Dix</dc:creator>
    <dc:date>2011-07-28T12:41:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/588">
    <title>Re: Re: [jruby-user] benchmark server almost ready</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/588</link>
    <description>&lt;pre&gt;I'm concerned that spawning an EC2 instance for each run may result in a lot
of noise in the emerged benchmarks. I've found that the hardware that
acquires each instance can differ noticeably in characteristics and shared
load from run to run, even within the same AZ. Every now and then "bad,"
underperforming, instance launches may raise spurious alarm bells. On a
large operation across multiple instances, we always expect something like a
20% difference between the first instances to report a result and the last
ones ... and are never surprised by a few failures.

The noise would be less for a single long-lived instance, or best with a
dedicated piece of hardware with no competing loads. Not that I have one I
could reliably volunteer ... but for this very specific mission, it seems
like run-to-run improvement or degradation only really has meaning if as
many other variables as we can manage are taken away. Maybe some Ruby
activist has a nice old server spinning away in their data center that feels
lonely because all the fun has gone to the cloud?

Of course, I could be fretting over nothing -- this could be in the "try it
and see" category.

On Sun, Jun 19, 2011 at 10:19 AM, Chuck Remes &amp;lt;cremes.devlist&amp;lt; at &amp;gt;mac.com&amp;gt;wrote:


&lt;/pre&gt;</description>
    <dc:creator>Rob Heittman</dc:creator>
    <dc:date>2011-06-19T15:31:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/587">
    <title>Re: benchmark server almost ready</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/587</link>
    <description>&lt;pre&gt;

On Jun 19, 3:36 pm, Chuck Remes &amp;lt;cremes.devl...&amp;lt; at &amp;gt;mac.com&amp;gt; wrote:


Could we use the syntax tree of do end block in x.report("name")
do ... end  instead of its name ? Something along these lines:

Digest::MD5.hexdigest("proc {|i| i.to_i}".to_sexp.to_s)

will generate a usable key in the db. If the benchmark code changes
the id will change but that's good, because it's not the same
benchmark anymore, right (Renaming a variable will change the sexp
signature and the id but I guess this is less likely to happen
(renaming the variable for the sake of renaming it vs. renaming a
report) ? We'll be able to rename benchmarks (eg. if there are many
more benchmarks in the future, we get similar names and want to name
them slightly differently and won't be limited by the number of chars
etc.)



If the cost is going to be high for an EC2 instance and we're planning
things like post-commit hooks maybe it's worth to consider a dedicated
box ?
Prices in Europe start from 29 EUR/month.

Thanks
--
Karol Hosiawa

&lt;/pre&gt;</description>
    <dc:creator>Karol Hosiawa</dc:creator>
    <dc:date>2011-06-19T16:36:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/583">
    <title>Newbie trying to make Module.freeze prevent singleton methods being added</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/583</link>
    <description>&lt;pre&gt;Hey,

I'm fascinated by the project and so decided to try and to some small
stuff. After getting a trivial fix committed, I tried to find
something a bit more challenging, but I may have taken a bite a bit
too big.
Would love some direction about whether my steps are in the right path
and if this is indeed feasible without knowing too much of rubinius's
guts.

I saw that this spec fails: "Module#freeze prevents further
modifications to self"
It basically checks that after freezing a module, trying to define
singleton method on it raises a TypeError.

After some digging and comparing to the MRI I understood that while
MRI freezes the singleton class after freezing an object, rubinius
doesn't.
"Aha!", I thought. After digging, I ended up adding a simple change to
Object#singleton_class, something along the lines of:
    if (this-&amp;gt;frozen_p(state) == Qtrue) cl-&amp;gt;freeze(state);

This seems to achieve the right result of freezing the singleton
classes just like MRI, but then I found out it doesn't seem like
there's any guard to stop you from adding methods to frozen classes.

What would be the right way to continue from this point? I've tried
adding a trivial guard in Rubinius#add_method that raises the proper
error in case it was called on a frozen object, but then found out
add_method is currently called for lots of frozen objects, which
breaks everything pretty much.

Any directions/suggestions would be really appreciated. Especially if
I'm just making a big mess :)

Cheers,
Aviv Ben-Yosef
&amp;lt; at &amp;gt;avivby http://codelord.net

&lt;/pre&gt;</description>
    <dc:creator>Aviv Ben-Yosef</dc:creator>
    <dc:date>2011-06-17T07:43:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/582">
    <title>Re: Interfacing with the Rubinius VM</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/582</link>
    <description>&lt;pre&gt;Thanks everyone! I'll take a deeper look :)

&lt;/pre&gt;</description>
    <dc:creator>Josep M. Bach</dc:creator>
    <dc:date>2011-05-14T15:24:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/581">
    <title>Re: Interfacing with the Rubinius VM</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/581</link>
    <description>&lt;pre&gt;

I recommend taking a look at some of the other languages that have been implemented on top of rubinius and following their lead.

You can find a list here:  http://rubini.us/projects/

The most active one is probably Fancy. Also, a brand new one (not on the list yet) is Poetics which is a start on implementing the CoffeeScript language.

Most, if not all, of the projects are on github.

cr


&lt;/pre&gt;</description>
    <dc:creator>Chuck Remes</dc:creator>
    <dc:date>2011-05-03T21:28:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/580">
    <title>Re: Interfacing with the Rubinius VM</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/580</link>
    <description>&lt;pre&gt;Write a Brainfuck-to-Ruby compiler.

On 5/3/11 12:46 PM, Josep M. Bach wrote:

&lt;/pre&gt;</description>
    <dc:creator>Kurt Stephens</dc:creator>
    <dc:date>2011-05-03T20:31:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/579">
    <title>Interfacing with the Rubinius VM</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/579</link>
    <description>&lt;pre&gt;Hello there,

This might not be the right place to ask this (please tell me whether it 
should be better to post this in the IRC or wherever else), but here I go:

I'm going with my first try to interface a programming language with the 
Rubinius VM. For starters, my choice is Brainfuck, since it's a dead-simple 
language.

As far as I know, I only need a table of cells and a pointer, and almost map 
the BF tokens (&amp;gt;, &amp;lt;, +, -...) to the VM instructions. I am a bit lost, since 
I practically don't know where to start. I've seen in other projects there 
is a Generator class sublassing Rubinius::Generator, and each AST node 
implements a #bytecode method that calls the instructions on the generator. 
How does it work exactly? I don't know how to set an initial state (the 
table of cells and the pointer pointing to cell 0).

How would you implement this? Any feedback is appreciated :)

Thanks!

&lt;/pre&gt;</description>
    <dc:creator>Josep M. Bach</dc:creator>
    <dc:date>2011-05-03T17:46:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/578">
    <title>Re: Rubinius Contribute to Open Source Session at upcoming Red Dirt RubyConf</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/578</link>
    <description>&lt;pre&gt;Limited late registration for 2 days of Red Dirt RubyConf for just
$199

We are super excited to announce that we are now able to offer
a special last-minute late registration for Red Dirt RubyConf
to help anyone who might not otherwise have been able to afford
to attend.

Not already registered? You can still JOIN US for two days of
conference presentations and hands-on training for the much
reduced price of just $199 for a bare-bones access pass.

http://reddirtrubyconf.com/program

This is a limited offer that we expect will sell out.

Red Dirt has one of the best conference lineups that you will
see at any Ruby conference. Our speakers are world-class
contributors in the Ruby and Javascript communities working
for leaders in the industry including Obtiva, Intridea, AT&amp;amp;T
Interactive, Hewlett Packard, Heroku, ThoughtBot, and
Engine Yard.

Red Dirt is a content rich two-day conference to be held in
Oklahoma City on April 21st and 22nd, 2011.
http://reddirtrubyconf.com/schedule

Can't make it?
Join the live video stream or order the conference videos!
http://reddirtrubyconf.com/program


On Mar 28, 1:54 pm, ThirtySixthSpan &amp;lt;derrick.parkhu...&amp;lt; at &amp;gt;gmail.com&amp;gt;
wrote:

&lt;/pre&gt;</description>
    <dc:creator>ThirtySixthSpan</dc:creator>
    <dc:date>2011-04-05T20:18:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/577">
    <title>Re: Speed tests</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/577</link>
    <description>&lt;pre&gt;Hi Philip,

I can't say anything about these numbers because I don't know what was being run or how it was being run. For most tight code, rbx is faster so it makes me wonder what you're benchmarking.

Also, you've included no units on your numbers. Are those seconds? milliseconds? microseconds? rbx has to warmup to get good performance, so that matters.

So could you please tell us:
1) what the units are
2) how you got these numbers
3) what the code was that was run

 - Evan


On Mar 31, 2011, at 3:07 AM, Philip Rhoades wrote:


&lt;/pre&gt;</description>
    <dc:creator>Evan Phoenix</dc:creator>
    <dc:date>2011-03-31T16:30:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/576">
    <title>Speed tests</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/576</link>
    <description>&lt;pre&gt;People,

I have talked to people here before about speeding up my population 
genetics scripts and have made a bit of progress with optimising etc but 
I thought I would compare the three versions of Ruby I have been looking 
at - NB these results are on my real (not test) code, albeit on a 
reduced number of iterations.

I ran the normal number of the inner two loops and only one of the 
outermost loop (ie 1/50th of the total) and got the following with the 
different versions of Ruby:

ruby-1.8.7-p334 [ x86_64 ]=  31.41
ruby-1.9.2-p180 [ x86_64 ]=  19.53
rbx-head [ ]= 128.42

I realise that rbx started as an interesting exercise but the general 
goal would to be eventually faster than v1.9? - if so, it seems like 
there is way to go yet?

Regards,

Phil.

&lt;/pre&gt;</description>
    <dc:creator>Philip Rhoades</dc:creator>
    <dc:date>2011-03-31T10:07:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/575">
    <title>VM searches for method relying on &lt; at &gt;superclass ivar, not on Module#direct_superclass. Is it a bug?</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/575</link>
    <description>&lt;pre&gt;Hi!

I tried to play with superclass chain and here is what I've
discovered:

The first example, &amp;lt; at &amp;gt;superclass is changed and method is being found
correctly:

https://gist.github.com/888224

# Step 1. Setting up environment

class Government
  def power
    "belongs to government"
  end
end

module People
  def power
    "belogs to people"
  end

  Government.__send__ :include, self
end

government = Government.new


# Step 2. Swapping ancestors by re-setting &amp;lt; at &amp;gt;superclass

included_module = Government.instance_eval { &amp;lt; at &amp;gt;superclass }

government.metaclass.instance_eval { &amp;lt; at &amp;gt;superclass = included_module }
included_module.instance_eval { &amp;lt; at &amp;gt;superclass = Government }
Government.instance_eval { &amp;lt; at &amp;gt;superclass = Object }


# Step 3. Testing

puts government.metaclass.superclass_chain.inspect
# =&amp;gt; [#&amp;lt;IncludedModule People&amp;gt;, Government, Object, #&amp;lt;IncludedModule
Kernel&amp;gt;] &amp;lt;-------- cool, prepended module is before Class
puts government.power
# =&amp;gt;  belongs to people  &amp;lt;--------- this is definitely right


The second example. Module#direct_superclass is changed.
Module#superclass_chain gives correct result, but wrong method is
being called.

https://gist.github.com/888225

module Rubinius
  class PrependedModule &amp;lt; IncludedModule
    attr_reader :module

    def initialize(mod, superclass)
      &amp;lt; at &amp;gt;module = mod
      &amp;lt; at &amp;gt;superclass = superclass
      super(mod)
    end

    def inspect
      "#&amp;lt;PrependedModule #{&amp;lt; at &amp;gt;module.to_s}&amp;gt;"
    end
  end
end

class Module
  attr_reader :prepended_module # for the sake of simplicity let's
take just one for now

  def prepend(mod)
    &amp;lt; at &amp;gt;prepended_module = Rubinius::PrependedModule.new(mod, self)
  end

  def direct_superclass
    if &amp;lt; at &amp;gt;superclass &amp;amp;&amp;amp; &amp;lt; at &amp;gt;superclass.prepended_module &amp;amp;&amp;amp;
&amp;lt; at &amp;gt;superclass.prepended_module != self
      &amp;lt; at &amp;gt;superclass.prepended_module
    else
      &amp;lt; at &amp;gt;superclass
    end
  end
end


# -----------------------------------------

class Government
  def power
    "belongs to government"
  end
end

module People
  def power
    "belogs to people"
  end

  Government.prepend self
end


puts Government.new.metaclass.superclass_chain.inspect
# =&amp;gt; [#&amp;lt;PrependedModule People&amp;gt;, Government, Object, #&amp;lt;IncludedModule
Kernel&amp;gt;]      &amp;lt;----- looks good, but...
puts Government.new.power
# =&amp;gt; belongs to government              &amp;lt;---- ...is this right? ;)



So, I actually have two questions:
1) Is it a bug?
2) If it has been done intentionally, then  is there better way
manipulate superclass chain?

Thanks,
Daniel Vartanov.

&lt;/pre&gt;</description>
    <dc:creator>Daniel Vartanov</dc:creator>
    <dc:date>2011-03-26T12:19:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/574">
    <title>Re: Rubinius Contribute to Open Source Session at upcoming Red Dirt RubyConf</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/574</link>
    <description>&lt;pre&gt;RDRCRRE - Red Dirt RubyConf Regular Registration Ending

Regular registration deadline for Red Dirt RubyConf
is this Friday, April 1st.
http://reddirtrubyconf.com/program

Red Dirt has one of the best conference lineups that you will
see at any Ruby conference. Our speakers are world-class
contributors in the Ruby and Javascript communities working
for leaders in the industry including Obtiva, Intridea, AT&amp;amp;T
Interactive, Hewlett Packard, Heroku, ThoughtBot, and
Engine Yard.

Red Dirt is a content rich two-day conference to be held in
Oklahoma City on April 21st and 22nd, 2011.
http://reddirtrubyconf.com/schedule

Can't make it?
Join the live video stream or order the conference videos!
http://reddirtrubyconf.com/program


On Feb 18, 3:34 pm, ThirtySixthSpan &amp;lt;derrick.parkhu...&amp;lt; at &amp;gt;gmail.com&amp;gt;
wrote:

&lt;/pre&gt;</description>
    <dc:creator>ThirtySixthSpan</dc:creator>
    <dc:date>2011-03-28T18:54:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/573">
    <title>Kernel#gsub not working properly with a block</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.rubinius.devel/573</link>
    <description>&lt;pre&gt;Hi there!

The following spec does not pass on rbx (in 
spec/ruby/core/kernel/gsub_spec.rb#78):

  describe "Kernel#gsub with pattern and block" do
    it "acts similarly to using $_.gsub" do
      $_ = "olleh dlrow"
      gsub(/(\w+)/){ $1.reverse }
      $_.should == "hello world"
    end
  end

Trying to fix this one, I found that there is a comparison of replacement 
(in this case it is nil, because gsub is passed a block instead of a 
replacement string) with undefined, which always evaluates to false (even if 
it is nil). Since I don't know really well what `undefined` is, I've first 
tried comparing replacement to nil, which seems to work (in 
kernel/common/string.rb#902):

  def gsub(pattern, replacement=undefined)
    # ...
    if replacement.nil? # was if replacement == undefined 

Now the problem is that, when evaling the block { $1.reverse }, $1 is nil. 
Upon further inspection, This happens just before evaling the block, where 
Regexp's last match is (unsuccessfully) set to the intended match data (same 
file, #939):

      if use_yield
        # Although `match` contains actual match data,
        Regexp.last_match = match
        # Here Regexp.last_match is nil.
        
        # So this block evaluation will fail when trying to do nil.reverse
        val = yield(match.to_s)

I've tried it in the rbx console, so it seems Regexp.last_match=(matchdata) 
(although it returns the passed matchdata) does nothing to Regexp.last_match 
(it keeps previous matched data, or nil if it was nil).

I've checked the regexp.cpp file but I'm no expert there, so I can't tell 
what's wrong....

Any thoughts?

 

 

&lt;/pre&gt;</description>
    <dc:creator>Josep M. Bach</dc:creator>
    <dc:date>2011-03-20T18:22:21</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.ruby.rubinius.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.ruby.rubinius.devel</link>
  </textinput>
</rdf:RDF>

