<html>
<body>
<font size=3>At 01:08 AM 21/06/2006, you wrote:<br>
<blockquote type=cite class=cite cite="">On Tue, 2006-06-20 at 14:08
+0900, Wayne Kelly wrote:<br>
&gt; Complete source code of our system can be downloaded from:<br>
&gt;
<a href="http://plas.fit.qut.edu.au/Ruby.NET" eudora="autourl">
http://plas.fit.qut.edu.au/Ruby.NET</a><br><br>
The download page gives an ASP error message.</font></blockquote><br>
And what error is that? (I don't get any errors)<br><br>
<blockquote type=cite class=cite cite=""><font size=3>&gt; Please note,
that we have so far made no attempt to optimize the performance<br>
&gt; of our system or to provide any support for interoperability with
.NET<br>
&gt; programs written in other languages. We have chosen instead to
initially<br>
&gt; focus on the challenging task of achieving complete semantic
compatibility<br>
&gt; with the standard Ruby interpreter. Once this is achieved we will
move on to<br>
&gt; those other challenges. <br><br>
Even though you have said that, I am salivating a little. Okay,
really,<br>
a lot. If I understand your project page description of your
approach<br>
correctly, in theory, your approach would out-perform YARV by quite
a<br>
bit in most test cases because it's compiled. Can you tell us how
much<br>
overhead is added by having to send all method calls through your
custom<br>
call dispatcher?</font></blockquote><br>
It does basically what the Ruby interpreter does ...<br>
It needs to work out the Ruby class of the receiver object and
search<br>
for the method (by ID) in the method table of that class. If it
can't<br>
find it there it needs to search in sub-classes (and mix-ins).<br>
The Ruby interpreter optimises this slightly by caching the methods<br>
that have been called previously, but it still needs to do at least
this<br>
one cache lookup. We haven't yet implemented such a caching
mechanism<br>
but we will do so.<br>
On locating the method it needs to check if it can be legally
accessed<br>
(public, private or protected).<br><br>
<blockquote type=cite class=cite cite=""><font size=3>If it's not much
then the benchmarks should come out a<br>
little slower than C# execution speeds ... which would just be
amazing.</font></blockquote><br>
I wouldn't be so confident.<br><br>
<blockquote type=cite class=cite cite=""><font size=3>Obviously, the
load-compile-run is going to be slower than in Ruby
1.8,</font></blockquote><br>
Not necessarily, once the load-compile step is out of the way,<br>
we are executing native JIT compiled code rather than the
interpreting<br>
that Ruby 1.8 is doing.<br><br>
<blockquote type=cite class=cite cite=""><font size=3>I know you haven't
focused on performance yet but if you could just<br>
comment on what you believe the performance &quot;ceiling&quot; is
...</font></blockquote><br>
I suspect some programs will run faster compiled to Managed .NET
code<br>
and some will run faster interpreted with the native C
interpreter.<br><br>
<blockquote type=cite class=cite cite=""><font size=3>I noticed, also,
that you are funded by Microsoft and, as such, I'm sure<br>
you're not very keen on Mono, but, I am curious, have you tried<br>
compiling this on Mono's GMCS (their DotNet 2.0
compiler)?</font></blockquote><br>
We don't have any issues with Mono. I&nbsp; haven't had the chance to try
<br>
our compiler on Mono but I'd be really interested to know if it
works.<br>
And if not, if there's anything we need to change. We're more than<br>
happy to cooperate with any such efforts.<br><br>
Cheers, Wayne.<br><br>
<x-sigsep><p></x-sigsep>
<font size=3>Dr Wayne
Kelly<x-tab>&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>Senior Lecturer
<br>
Email:
w.kelly / qut.edu.au<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>School of
Software Engineering and DC <br>
Phone: +61 7 3864
9336<x-tab>&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>Faculty of
Information Technology <br>
Fax: +61 7 3864
9390<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>Queensland
University of Technology<br>
</font></body>
</html>