Ruby Compiler

H

Heesob Park

Hi,

I longed for a ruby byte code compiler.
But I guess YARV is not stable until now.

So I made a very experimental Ruby Compiler.
Actually it is not a true compiler just ruby object dumper and loader.
By modifing gc.c and eval.c , It cannot be distibuted as extension
library.

The main idea is simple.
1. Dump all symbols,ids and node tree to a file.
2. Load the symbols,ids and tree from a file and run.

But I should have spent much time to understand how to parsing and
evalualing
the ruby code.

With this compiler, you can secure your source code.
And saving parsing time is the main advantage.
Even the same object file can runs on Linux and Windows just like Java
class.

What do you think about this compiler?

Regards,

Park Heesob
 
L

Luis Lavena

Hi,

I longed for a ruby byte code compiler.
But I guess YARV is not stable until now.

So I made a very experimental Ruby Compiler.
Actually it is not a true compiler just ruby object dumper and loader.
By modifing gc.c and eval.c , It cannot be distibuted as extension
library.

The main idea is simple.
1. Dump all symbols,ids and node tree to a file.
2. Load the symbols,ids and tree from a file and run.

But I should have spent much time to understand how to parsing and
evalualing
the ruby code.

With this compiler, you can secure your source code.
And saving parsing time is the main advantage.
Even the same object file can runs on Linux and Windows just like Java
class.

What do you think about this compiler?

Looks interesting , one question:

Does the loading for the parsed/node tree generated dump avoid
evaluation? I mean, there is no need to reparse it, right? If so, then
you have a speed boost when loading pre-compiled ruby scripts and
sounds good.

How it handles reload of files (using load 'foo.rb' compares the mtime
of the pre-compiled file with the source file?)

Regards,
 
L

llothar

Looks interesting , one question:

Does the loading for the parsed/node tree generated dump avoid
evaluation? I mean, there is no need to reparse it, right? If so, then
you have a speed boost when loading pre-compiled ruby scripts and
sounds good.

How it handles reload of files (using load 'foo.rb' compares the mtime
of the pre-compiled file with the source file?)

This concept can only work on special written files that are not doing
any
evaluation during load. Unfortunately almost none of the files in the
standard library do fit into this schema.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top