Changes between Version 4 and Version 5 of LoritoDesignQuestions

Show
Ignore:
Timestamp:
07/21/10 18:34:37 (12 years ago)
Author:
cotto
Comment:

add some answers that I'm reasonably sure about

Legend:

Unmodified
Added
Removed
Modified
  • LoritoDesignQuestions

    v4 v5  
    33=== What are the main goals that Lorito should accomplish? === 
    44 
     5We want Lorito to have the same capabilities as C in a form that is easy to parse, instrument, transform, analyze, etc.  Much of the slowness in the current (circa 2.6.0) pre-Lorito Parrot comes from the impedance mismatch where C code and PIR code need to interact.  By creating Lorito and using it to implement code that is currently written in C, we can eliminate that bottleneck and make Parrot more amenable to further optimization and analysis. 
     6 
    57=== How much of Parrot's current core do we want to eventually rewrite in Lorito? === 
    68 
     9Ideally, everything.  Some very low-level code such as GC's stack walking may need to be partially implemented in C or assembly, but the endgame is that almost all of Parrot is implemented in a HLL that compiles down to Lorito ops. 
     10 
    711=== Will PIR compile down to Lorito assembly or will it be a superset of Lorito assembly? === 
     12 
     13We expect that current PIR code will continue to work unchanged on a Lorito-based Parrot. 
    814 
    915=== How many layers below PIR will exist in Lorito? === 
     
    1117=== Will Lorito have the option of compiling to C? === 
    1218 
     19Yes.  We will support transforming Lorito ops into equivalent snippets of C code as an alternative to the function-based runcore. 
     20 
    1321=== Will Lorito use a different bytecode format from the existing PBC? === 
    1422 
     23This hasn't been decided yet. 
     24 
    1525=== If there is a distinct LBC (Lorito bytecode) format, will instructions be fixed-length? === 
     26 
     27Yes.  All Lorito ops will take three arguments. 
    1628 
    1729=== Will Lorito have the same calling conventions as Parrot currently does? === 
     
    3749=== Will Lorito have a single op that does method dispatch at the lowest level or it will be simulated using a series of ops? === 
    3850 
     51MMD will be implemented in terms of Lorito ops. 
     52 
    3953=== Will Lorito have some declarative syntax at the lowest level for creating classes/types? === 
    4054 
     
    4357=== Will PMCs and Objects be merged? === 
    4458 
     59Yes. 
     60 
    4561=== Will Strings and PMCs/Objects be merged? === 
     62 
     63This hasn't been decided yet. 
    4664 
    4765=== What requirements will Lorito impose on the memory layout of objects? === 
     
    5472 
    5573=== Should method dispatch use strings or [http://en.wikipedia.org/wiki/Symbol_(Lisp) symbols]? === 
     74 
     75At this point symbols are likely but this design decision hasn't been discussed yet.