Difference between revisions of "User:AlexVinS/Packages"

From Free Pascal wiki
Jump to navigationJump to search
Line 1: Line 1:
==Some ideas on library [[packages]] design==
+
== Delphi style ==
 +
=== Platform dependent ===
 +
* [[packages|Described here]]
 +
=== Semi-crossplatform ===
 
* New system ''crossplatform''.  
 
* New system ''crossplatform''.  
 
** os independent, but depends on CPU. Example targets i386-crossplatform ia64-crossplatform
 
** os independent, but depends on CPU. Example targets i386-crossplatform ia64-crossplatform
Line 6: Line 9:
 
* Package binary file format.  
 
* Package binary file format.  
 
** Require to be fully portable (not depends of target system and cpu)
 
** Require to be fully portable (not depends of target system and cpu)
*
 
  
== Questions ==
+
==== Questions ====
 
* How exceptions objects should be transfered between executable and packages?
 
* How exceptions objects should be transfered between executable and packages?
 
* The package binary format (ELF, FatELF based?)
 
* The package binary format (ELF, FatELF based?)
Line 14: Line 16:
 
* Can RTTI help to access objects from exe by package and vice versa? Use only interfaces or macpas external objects?
 
* Can RTTI help to access objects from exe by package and vice versa? Use only interfaces or macpas external objects?
  
== Known issues ==
+
==== Known issues ====
=== win32 ===
+
; win32  
 
* manually loaded binary must (of this restriction could be circumvented?) be copied to another location to mark memory executable.
 
* manually loaded binary must (of this restriction could be circumvented?) be copied to another location to mark memory executable.
 +
 +
 +
=== Full crossplatform ===
 +
* some kind of byte code, like Java, CLR, LLVM
 +
 +
== C++ style ==
 +
* Executable and its plugins shares same rtl in statically linked library
 +
* Classes can be imported from dynamic library.

Revision as of 18:09, 11 January 2011

Delphi style

Platform dependent

Semi-crossplatform

  • 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)

Questions

  • How exceptions objects should be transfered between executable and packages?
  • The package binary format (ELF, FatELF based?)
  • The package main source file format (lpk?)
  • Can RTTI help to access objects from exe by package and vice versa? Use only interfaces or macpas external objects?

Known issues

win32
  • manually loaded binary must (of this restriction could be circumvented?) be copied to another location to mark memory executable.


Full crossplatform

  • some kind of byte code, like Java, CLR, LLVM

C++ style

  • Executable and its plugins shares same rtl in statically linked library
  • Classes can be imported from dynamic library.