Changes between Version 3 and Version 4 of LoritoDesignQuestions
- Timestamp:
- 07/21/10 18:02:28 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
LoritoDesignQuestions
v3 v4 1 1 As [http://trac.parrot.org/parrot/wiki/Lorito Lorito] seems to be a somewhat nebulous concept about which people seem to be certain about only a few specific details (not that the specific details are the same between any two people), this is a list of questions we need to consider when designing, planning, and implementing Lorito. Feel free to add more or offer your opinion on a possible answer to any of them. 2 2 3 What are the main goals that Lorito should accomplish? 3 === What are the main goals that Lorito should accomplish? === 4 4 5 How much of Parrot's current core do we want to eventually rewrite in Lorito? 5 === How much of Parrot's current core do we want to eventually rewrite in Lorito? === 6 6 7 Will PIR compile down to Lorito assembly or will it be a superset of Lorito assembly? 7 === Will PIR compile down to Lorito assembly or will it be a superset of Lorito assembly? === 8 8 9 How many layers below PIR will exist in Lorito? 9 === How many layers below PIR will exist in Lorito? === 10 10 11 Will Lorito have the option of compiling to C? 11 === Will Lorito have the option of compiling to C? === 12 12 13 Will Lorito use a different bytecode format from the existing PBC? 13 === Will Lorito use a different bytecode format from the existing PBC? === 14 14 15 If there is a distinct LBC (Lorito bytecode) format, will instructions be fixed-length? 15 === If there is a distinct LBC (Lorito bytecode) format, will instructions be fixed-length? === 16 16 17 Will Lorito have the same calling conventions as Parrot currently does? 17 === Will Lorito have the same calling conventions as Parrot currently does? === 18 18 19 If Lorito's calling conventions differ from Parrot's current ones, what will they be? 19 === If Lorito's calling conventions differ from Parrot's current ones, what will they be? === 20 20 21 Will Parrot's calling conventions remain the same after Lorito? 21 === Will Parrot's calling conventions remain the same after Lorito? === 22 22 23 Will Lorito allow direct memory access/pointer arithmetic? 23 === Will Lorito allow direct memory access/pointer arithmetic? === 24 24 25 Will Lorito allow manual memory allocation/deallocation? 25 === Will Lorito allow manual memory allocation/deallocation? === 26 26 27 Will Lorito have a stack? 27 === Will Lorito have a stack? === 28 28 29 Will Lorito distinguish between data types at the lowest level? 29 === Will Lorito distinguish between data types at the lowest level? === 30 30 31 Will there be separate storage for different types of data at the lowest level? 31 === Will there be separate storage for different types of data at the lowest level? === 32 32 33 Will Lorito have a object model built-in? 33 === Will Lorito have a object model built-in? === 34 34 35 Will Lorito still have the same core object model as Parrot? 35 === Will Lorito still have the same core object model as Parrot? === 36 36 37 Will Lorito have a single op that does method dispatch at the lowest level or it will be simulated using a series of ops? 37 === Will Lorito have a single op that does method dispatch at the lowest level or it will be simulated using a series of ops? === 38 38 39 Will Lorito have some declarative syntax at the lowest level for creating classes/types? 39 === Will Lorito have some declarative syntax at the lowest level for creating classes/types? === 40 40 41 Will there be a declarative syntax at some level below HLLs for creating classes/types? 41 === Will there be a declarative syntax at some level below HLLs for creating classes/types? === 42 42 43 Will PMCs and Objects be merged? 43 === Will PMCs and Objects be merged? === 44 44 45 Will Strings and PMCs/Objects be merged? 45 === Will Strings and PMCs/Objects be merged? === 46 46 47 What requirements will Lorito impose on the memory layout of objects? 47 === What requirements will Lorito impose on the memory layout of objects? === 48 48 49 Will objects have a static vtable in addition to method dispatch? 49 === Will objects have a static vtable in addition to method dispatch? === 50 50 51 How should method dispatch work? 51 === How should method dispatch work? === 52 52 53 Should method dispatch be tied to classes, to objects, to some vtable/prototype object associated with each object? 53 === Should method dispatch be tied to classes, to objects, to some vtable/prototype object associated with each object? === 54 54 55 Should method dispatch use strings or [http://en.wikipedia.org/wiki/Symbol_(Lisp) symbols]? 55 === Should method dispatch use strings or [http://en.wikipedia.org/wiki/Symbol_(Lisp) symbols]? ===