You mean how their approaches compare? (I would guess, there is no direct involvement of people in both projects.)
PyPy is a generator approach, your language specification i.e. the interpreter is used to generate a VM. You use a high-level language i.e. RPython to implement a classic interpreter, which is then transformed by a powerful tool-chain to your C implementation (and a JIT). Stuff like GC is just generated for you. The result is one specific VM, which is generated for your language. With Parrot it is much like with a classic VM like JVM or CLR/.NET. You are using one existing VM. Language developers use the Parrot Assembly language (PASM) or the Parrot Intermediate Representation (PIR) which can then be compiled to the bytecode set. Furthermore, they can extend the bytecode set with their own instructions (primitives). So, you are basically compiling your target language while using all the runtime features of the Parrot VM. So, here the 'power' is in the VM, not in a transformation tool chain. Best Stefan On 20 Jan 2010, at 09:02, Stéphane Ducasse wrote: > stefan > > do you know how this is linked with pypy? > > Stef > > On Jan 20, 2010, at 8:50 AM, Stefan Marr wrote: > >> >> On 20 Jan 2010, at 06:12, Miguel Enrique Cobá Martinez wrote: >> >>> Parrot has just been released: >>> http://www.parrot.org/news/2010/Parrot-2.0.0 >>> >>> I would like to know, from the VM experts from the community, if this VM >>> can be used to run Smalltalk. >> Well, as someone mentioned, there seems to be Smalltalk implementation... >> >> But, probably it is hard to get it fast. >> Parrot uses a very unique approach. >> Actually, they try to provide a language runtime for all kinds of languages, >> and the right tools to build them: http://www.linux-mag.com/cache/7373/1.html >> >> Eliot mentioned primitives, well, there is no concept of a primitive in >> Parrot. >> Instead, they have a unification of bytecodes and primitives. The idea is, >> to give you the tools to develop the bytecode you need for your language, >> which can be loaded dynamically during execution. >> It will be interesting to see, how they can get their JIT fast with this >> strategy. >> >> Best >> Stefan >> >> >>> The site says that >>> >>> "Parrot is a virtual machine aimed at running all dynamic languages.". >>> >>> but I don't know anything about VM so this sounds to me a bit like black >>> magic. >>> >>> Is there something in the squeak vm that is specific to the way >>> smalltalk works or a generic virtual machine (maybe with a upper layer >>> understanding Smalltalk specifics) can be used. >>> >>> Thanks for the answers >>> >>> -- >>> Miguel Cobá >>> http://miguel.leugim.com.mx >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [email protected] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> -- >> Stefan Marr >> Software Languages Lab >> Vrije Universiteit Brussel >> Pleinlaan 2 / B-1050 Brussels / Belgium >> http://soft.vub.ac.be/~smarr >> Phone: +32 2 629 3956 >> Fax: +32 2 629 3525 >> >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 3956 Fax: +32 2 629 3525 _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
