Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
libjit
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Robert Spier  
View profile  
(1 user)  More options Oct 25 2004, 11:00 pm
Newsgroups: perl.perl6.internals
From: rsp...@pobox.com (Robert Spier)
Date: Mon, 25 Oct 2004 20:00:58 -0700
Local: Mon, Oct 25 2004 11:00 pm
Subject: libjit

Is there anything that can be learned/reused from libjit?

http://www.southern-storm.com.au/libjit.html

-R


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Leopold Toetsch  
View profile  
 More options Oct 26 2004, 5:55 am
Newsgroups: perl.perl6.internals
From: l...@toetsch.at (Leopold Toetsch)
Date: Tue, 26 Oct 2004 11:55:56 +0200
Local: Tues, Oct 26 2004 5:55 am
Subject: Re: libjit

Robert Spier wrote:
> Is there anything that can be learned/reused from libjit?

> http://www.southern-storm.com.au/libjit.html

Thanks for the link. But I think, while the idea is quite nice, it's not
really useful for us. It looks rather mono-specific and is (of course)
running a stack machine.

> -R

leo

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rhys Weatherley  
View profile  
(1 user)  More options Oct 27 2004, 2:19 am
Newsgroups: perl.perl6.internals
From: rweat...@zip.com.au (Rhys Weatherley)
Date: Wed, 27 Oct 2004 16:19:39 +1000
Local: Wed, Oct 27 2004 2:19 am
Subject: Re: libjit
On Tuesday 26 October 2004 07:55 pm, Leopold Toetsch wrote:

> Robert Spier wrote:
> > Is there anything that can be learned/reused from libjit?

> > http://www.southern-storm.com.au/libjit.html

> Thanks for the link. But I think, while the idea is quite nice, it's not
> really useful for us.

Probably true.  Parrot is far enough along that changing fundamentals like
this wouldn't be wise.

> It looks rather mono-specific and is (of course) running a stack machine.

There is another .NET implementation besides Mono, you know.  Libjit is an
off-shoot of the DotGNU Portable.NET project.

Libjit internally uses three-address statements, similar to IMCC, to express
the internal representation.  Then the usual three-address optimizations,
register allocation, and code generation is performed.

One of the back ends is an interpreted stack machine instruction set.  The
interpreter is used purely for platforms that currently lack a CPU-specific
native back end.  It wouldn't be impossible to add a register-based
interpreter instead, except that I prefer simplicitly over silly flamewars
about which is faster: both suck at different things.

There's little advantage in creating an ultra-fast interpreter for something
like libjit: just write a native CPU back end!  And existing VM's (of the
Java and C# variety that this is targetted at) typically already have fast
interpreters of their own.

Libjit is also deliberately "just a JIT".  Runtime libraries, object layout,
garbage collection, on-disk bytecode representations, etc, are not dealt
with.  The aforementioned VM's already have all that.  Hooks are present, but
libjit mostly keeps to "mechanism, not policy" on these issues.

From what I can see, if I was writing a VM from scratch, Parrot would be
useful because I can design the VM around Parrot's idiosyncrasies from day 1.  
But if I'm retrofitting a JIT into an existing VM, I think Parrot would be
more trouble than it is worth.  But that's just me.  There's plenty of room
for both approaches.  Time will tell.

Cheers,

Rhys.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Leopold Toetsch  
View profile  
 More options Oct 27 2004, 8:48 am
Newsgroups: perl.perl6.internals
From: l...@toetsch.at (Leopold Toetsch)
Date: Wed, 27 Oct 2004 14:48:24 +0200
Local: Wed, Oct 27 2004 8:48 am
Subject: Re: libjit

Rhys Weatherley wrote:
> On Tuesday 26 October 2004 07:55 pm, Leopold Toetsch wrote:
>>Thanks for the link. But I think, while the idea is quite nice, it's not
>>really useful for us.

> Probably true.  Parrot is far enough along that changing fundamentals like
> this wouldn't be wise.

>>It looks rather mono-specific and is (of course) running a stack machine.

> There is another .NET implementation besides Mono, you know.  Libjit is an
> off-shoot of the DotGNU Portable.NET project.

Sorry, yes of course. I'm always mixing these two projects.

> Libjit internally uses three-address statements, similar to IMCC, to express
> the internal representation.  Then the usual three-address optimizations,
> register allocation, and code generation is performed.

Yep. Well, a low-level libjit-like library would be interesting, though.
One that just translates three-address statements to machine language.

> One of the back ends is an interpreted stack machine instruction set.  

Yes, I saw that.

> But if I'm retrofitting a JIT into an existing VM, I think Parrot would be
> more trouble than it is worth.  But that's just me.  There's plenty of room
> for both approaches.  Time will tell.

Of course. VMs are written for specific languages, they tend to become
very specific for one language and probably hard to use for a different
one. Parrot should be able to run a lot of dynamic languages ...

> Cheers,

> Rhys.

leo

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google