[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Targets and Distribution Formats (was: Re: So, what the heck is a continuation anyway?)



At 12:24 AM 12/11/2001 -0800, Peter H. Froehlich wrote:
>Hi!
>
>On Monday, December 10, 2001, at 08:59 , S. Alexander Jacobson wrote:
>
>>On Mon, 10 Dec 2001, Dan Sugalski wrote:
>>>Still, the tack I'm taking with the engine is to make as much as reasonable
>>>part of the core. Yeah it violates the "small, simple, and elegant"
>>>principle, but that's OK with me. :)
>>>[snip]
>>So why not just translate/compile python/perl to scheme?
>>It seems like Scheme already has all the features you want.
>>Then you just work with the scheme people to optimize it to execute
>>python/perl.
>>[snip]
>
>While I am not an expert on it, I would think that GCC also has all the 
>things that would be needed to run Python or Perl. So do a lot of other 
>languages/compilers/infrastructures, e.g. FLINT/MLRISC if I am not 
>mistaken. In the extreme case, everything could also compile to something 
>like MIPS and we would use binary translation to get portability. :-)

Those compilers do, definitely. (Though the tendency of perl programs to 
define or redefine parts of themselves at runtime make it tricky) Bolting 
GCC, or DEC^WCompaq^WHP's GEM compiler onto parrot's a medium-term goal.

The issues with doing it are partially personnel (it's tough, and there 
aren't many people qualified), partly licensing (GPL doesn't cut it for 
us), and partially project startup time. (Rolling our own's faster. Go figure)

Also, there are performance issues--GCC's not got the most stellar (to say 
the least) code generation on a lot of platforms.

>I would guess that "rolling my own VM" like Dan does is mostly a matter of 
>convenience: He can tailor "his" VM to what kinds of languages he 
>"expects" it to run. Of course, as all the "weird" things running on the 
>JVM show, those "expectations" might not be what will actually happen.

You want to see weird? You should see some of the things people do to perl 
5's VM.

It's also a matter of portability and simplicity. Rolling our own VM (which 
is ultimately *not* required, mind) makes a lot of things easier, and Perl 
needs to run places that GCC, or any other compiler you might name, doesn't.

>Generally I would question the whole VM idea, but that is not surprising 
>since I am at UCI where all we do all day is JIT-compile compressed ASTs. 
>:-) Seriously, have the "Parrot People" ever given thought to going away 
>from a VM design?

Of course. Our own VM's the first cut. When that's running the next target 
is emitting JVM or .NET bytecode instead of our own, and welding ourselves 
onto other people's compiler back-ends. FWIW we've already the beginnings 
of a JIT for Parrot, though I consider JITted code still running under VM. 
(Just faster)

					Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
dan@sidhe.org                         have teddy bears and even
                                      teddy bears get drunk