[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Running ruby1.9 bytecode

James Coglan

4/6/2009 12:48:00 PM

[Note: parts of this message were removed to make it a legal post.]

Hi all,

I just found out about the VM::InstructionSequence.compile method for
turning Ruby code strings into ruby1.9 bytecode. Is there a standard method
of de/serializing this bytecode to/from files, and is there a way of running
bytecode directly? I'm looking at generating bytecode from another language
to get it to run on Ruby.

--
James Coglan
http://github.c...

5 Answers

Robert Dober

4/6/2009 7:28:00 PM

0

On Mon, Apr 6, 2009 at 2:48 PM, James Coglan <jcoglan@googlemail.com> wrote:
> Hi all,
>
> I just found out about the VM::InstructionSequence.compile method for
> turning Ruby code strings into ruby1.9 bytecode. Is there a standard method
> of de/serializing this bytecode to/from files, and is there a way of running
> bytecode directly? I'm looking at generating bytecode from another language
> to get it to run on Ruby.
Quoting from the Pickaxe book
no, because the bytecode verifier is not ready yet, that seems the
only missing bit.
HTH
Robert
>
> --
> James Coglan
> http://github.c...
>



--
There are some people who begin the Zoo at the beginning, called
WAYIN, and walk as quickly as they can past every cage until they get
to the one called WAYOUT, but the nicest people go straight to the
animal they love the most, and stay there. ~ A.A. Milne (from
Winnie-the-Pooh)

Rick DeNatale

4/6/2009 8:35:00 PM

0

[Note: parts of this message were removed to make it a legal post.]

On Mon, Apr 6, 2009 at 3:27 PM, Robert Dober <robert.dober@gmail.com> wrote:

> On Mon, Apr 6, 2009 at 2:48 PM, James Coglan <jcoglan@googlemail.com>
> wrote:
> > Hi all,
> >
> > I just found out about the VM::InstructionSequence.compile method for
> > turning Ruby code strings into ruby1.9 bytecode. Is there a standard
> method
> > of de/serializing this bytecode to/from files, and is there a way of
> running
> > bytecode directly? I'm looking at generating bytecode from another
> language
> > to get it to run on Ruby.
> Quoting from the Pickaxe book
> no, because the bytecode verifier is not ready yet, that seems the
> only missing bit.
> HTH
> Robert
>

Well that's part of it. But, if by "generating bytecode from another
language" means, for instance, executing JVM bytecodes, I don't think it
will fly. The term bytecode here is being used rather generically. The YARV
"bytecodes" aren't the same as the JVM bytecodes, any more than Smalltalk-80
bytecodes are the same as either.

It's like the difference between an Intel and Motorola processor, both have
instruction sets with binary representations, but those instruction sets
aren't necessarily interchangeable.

Getting another language to produce YARV bytecodes would be an exercise for
the reader.
--
Rick DeNatale

Blog: http://talklikeaduck.denh...
Twitter: http://twitter.com/Ri...
WWR: http://www.workingwithrails.com/person/9021-ric...
LinkedIn: http://www.linkedin.com/in/ri...

James Coglan

4/6/2009 9:03:00 PM

0

[Note: parts of this message were removed to make it a legal post.]

> Well that's part of it. But, if by "generating bytecode from another
> language" means, for instance, executing JVM bytecodes, I don't think it
> will fly. The term bytecode here is being used rather generically. The YARV
> "bytecodes" aren't the same as the JVM bytecodes, any more than
> Smalltalk-80
> bytecodes are the same as either..
>
> Getting another language to produce YARV bytecodes would be an exercise for
> the reader.


I meant that I'd like to try and generate YARV bytecode from non-Ruby
source. Mostly a pie-in-the-sky idea, only just writing my first AST-walking
interpreter, just wondering if it's possible.

Michael Malone

4/6/2009 9:47:00 PM

0

James Coglan wrote:
>> Well that's part of it. But, if by "generating bytecode from another
>> language" means, for instance, executing JVM bytecodes, I don't think it
>> will fly. The term bytecode here is being used rather generically. The YARV
>> "bytecodes" aren't the same as the JVM bytecodes, any more than
>> Smalltalk-80
>> bytecodes are the same as either..
>>
>> Getting another language to produce YARV bytecodes would be an exercise for
>> the reader.
>>
>
>
> I meant that I'd like to try and generate YARV bytecode from non-Ruby
> source. Mostly a pie-in-the-sky idea, only just writing my first AST-walking
> interpreter, just wondering if it's possible.
>
>
It's definitely possible. I suggest you take a look at the parrot
interpreter. It is a one-for-all interpreter (well, that's the aim,
anyway), which began life as an April Fool's joke that someone took one
step further. It officially hit version 1.0 the other day, so it should
be a good example for you. By one-for-all I mean, it's a generic
interpreter that can handle many languages, much like .NET and the clr,
I guess.

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================


Robert Dober

4/7/2009 9:04:00 AM

0

On Mon, Apr 6, 2009 at 11:03 PM, James Coglan <jcoglan@googlemail.com> wrote:
<snip>
>
> I meant that I'd like to try and generate YARV bytecode from non-Ruby
> source. Mostly a pie-in-the-sky idea, only just writing my first AST-walking
> interpreter, just wondering if it's possible.
Having YARV/Rubinius as a backend for other languages is certainly a
very reasonable idea.
And if I understood correctly it is planned to be possible in the
(near?) future.

Cheers
R.

>



--
There are some people who begin the Zoo at the beginning, called
WAYIN, and walk as quickly as they can past every cage until they get
to the one called WAYOUT, but the nicest people go straight to the
animal they love the most, and stay there. ~ A.A. Milne (from
Winnie-the-Pooh)