The source project of this merge request has been removed.
Add support for bytecode generation to cpm and IDE
This adds support for generating binary and optimised ABC code to cpm and the IDE.
In target environments, four new options are added:
-
EnvironmentABCOptimise, path to the ABC optimiser (generates<module>.opt.abcfrom<module>.abc) -
EnvironmentByteCodeGen, path to the bytecode generator (generates<module>.bcfrom<module>[.opt].abc) -
EnvironmentByteCodeLink, path to the bytecode linker (generates one<application>.bcfrom all bytecode files) -
EnvironmentByteCodeStrip, path to the bytecode stripper (strips an<application>.bc, overwriting that file)
In project files, four new options are added:
-
ByteCode, path to the main bytecode file to generate (result of the bytecode linker) -
CodeGen/OptimiseABC, boolean indicating whether to generate optimised ABC code -
CodeGen/GenerateByteCode, boolean indicating whether to generate bytecode -
Link/StripByteCode, boolean indicating whether the bytecode stripper should be used
Notes:
- The default behaviour is unchanged: no bytecode is generated when these options are absent.
- When
ByteCodeis non-empty butCodeGen/GenerateByteCodeis false, some files may be missing which can lead to errors in the linking step. - If
CodeGen/GenerateByteCodeis true butCodeGen/OptimiseABCis false, we generate bytecode from the unoptimised ABC files. This has no real use case for now. -
Link/StripByteCodeshould be false to use the serialization library, but can be true if you just want to run the interpreter stand-alone for example). - In the IDE one can set all project options except
Link/StripBytecode, which has no real use case for now.
Edited by Ghost User