[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