ANN: ParseTree 1.3.3 and ruby2c 1.0.0 beta 1

I'm not going to play semantics here. I don't see any real distinction between "RubyC" and "Ruby2C" so I'm just going to leave it up in the air as a moot point. I will point out that in your own previous email, you referred to the C API in ruby as "ruby C". Regardless, the project has been named and I think it is going to stay that way.

···

On Feb 2, 2005, at 5:15 AM, Benedikt Huber wrote:

On Wed, 02 Feb 2005 20:40:39 +0900, Alexander Kellett wrote:

I understood this point. So RubyC would be a better name (i.e. a high
level description language for C with automatic type inference). If
this is the _main_ goal, i can see some benefits. Also, you would
have to supply some low-level IO mechanism if you want to write e.g.
hardware related extensions.

--
ryand-ruby@zenspider.com - http://blog.zenspider.com/
http://rubyforge.org/projects/ruby2c/
http://rubyforge.org/projects/parsetree/

You should, however, check out the propaganda document if you haven't
already, it gives a much better idea of our goals:

I had read it, but I missed that page at the end. Sorry for that.
But inlining a method, and converting a whole program to plain C (w.o.
the overhead from dynamic method dispatch etc.) are two different
things. For my defense: the latter is what you promote in the first 25
slides.

Yes, inlining and full translation of an application are two different beasts. Luckily, we aren't limited to just one of them, and we can use both goals to supplement each other's efforts with about 2/3 overlap.

You could write all of the code in Ruby's core, even the VM, in Ruby.
Then you translate the absolute minimum to C you need automatically with
Ruby2C (eventually, just the VM).

Ok, this sounds very ambitious. The ruby core is well written and it's
hard to write an equivalent substitution.

I totally totally agree. Babysteps. Or, as an excellent boss of mine often said: big alligators, small alligators, swamp.

And the VM part: It think it is very hard to write a fast VM in C. A
Ruby2C translator which generates a fast VM sounds like a miracle.

As I've pointed out before, this isn't as hard as you make it out to be. Granted, we have a much different road to travel than squeak. But it has been demonstrated as not only possible, but beneficial.

Anyway, good luck - I'm sure it is a lot of fun.
At least you do not have to write in C[1] :wink:

[1] http://gnu.de.uu.net/wic.html

I'm on a bus right now, but I'll check that out as soon as I can.

···

On Feb 2, 2005, at 12:55 PM, Benedikt Huber wrote:

On Thu, 03 Feb 2005 03:52:11 +0900, Eric Hodel wrote:

--
ryand-ruby@zenspider.com - http://blog.zenspider.com/
http://rubyforge.org/projects/ruby2c/
http://rubyforge.org/projects/parsetree/

Having now read this, I officially hate you. :slight_smile:

···

On Feb 2, 2005, at 12:55 PM, Benedikt Huber wrote:

[1] http://gnu.de.uu.net/wic.html

--
ryand-ruby@zenspider.com - http://blog.zenspider.com/
http://rubyforge.org/projects/ruby2c/
http://rubyforge.org/projects/parsetree/

Dood. Thanks. I'll have to check that out.

···

On Feb 2, 2005, at 6:35 AM, Michael Walter wrote:

[1] "The PreScheme compiler makes use of type inference, partial
evaluation and Scheme and Lisp compiler technology to compile the
problematic features of Scheme, such as closures, into C code without
significant run-time overhead."

--
ryand-ruby@zenspider.com - http://blog.zenspider.com/
http://rubyforge.org/projects/ruby2c/
http://rubyforge.org/projects/parsetree/