From Lazarus wiki
- New system crossplatform.
- os independent, but depends on CPU. Example targets i386-crossplatform ia64-crossplatform
- OOP interface (ojpas interfaces based) between host executable and package RTL, extensible to communicate with concrete packages.
- Host executable memory manager shared with package libs.
- Package binary file format.
- Require to be fully portable (not depends of target system and cpu)
- How exceptions objects should be transfered between executable and packages?
- The package binary format (ELF, FatELF based?)
- Can RTTI help to access objects from exe by package and vice versa? Use only interfaces or macpas external objects?
- manually loaded binary must be copied to another location to mark memory executable. On XP SP2+ Vista SP1+ & win7 file mapping object could be created with execute permission.
- Magic ELF ELF Loader (should run on win32 too)
- some kind of byte code, like Java, CLR, LLVM
- Executable and its plugins shares same rtl in statically linked library (memory manager shared so classes and longstrings can be passed between modules).
- Classes can be imported from dynamic library. It means that macpas extension should be enabled for "normal" classes and objects.
- library should be shipped with set of include files, wich defines interface of exported symbols as .h files in c/c++ do.