Single Target Compilation

Parent Previous Next

Single Target Compilation.

When we compile and build bytecode it is always targeted at being executed by a particular VM DLL execution engine. We refer to this as Single Target Compilation.


The VM DLL is used as a term which actually include both a 32 bit and a 64 bit DLL, and both can load and execute the same bytecode and produce similar results.


Each VM DLL is different from any other and uses completely unique virtual assembler instructions and encryption that only works for this particular VM DLL. The in-memory representation of the internal execution engine is the only one, that can understand and execute the unique bytecode produced by your compiler for this particular target.


The uniqueness of a VM DLL is due to:


When the compiler converts the source code to bytecode, it reads the files LicenseID.txt and PrivateKey.txt. The compiler uses this information to identify the possible instruction sets. Once the virtual assembler instructions have been created, the compiler generates a signature by using the secret private key, and the signature is finally included as an integrated part of the bytecode, ready for deployment.


Managing Multiple Targets.

Your license allows you to create a number of RSA key pairs, and for each key pair SCRAMBLECODE can create a personalized VM DLL for you.


This is defined as creating a target, with the understanding we are creating a unique VM DLL target for the compiler. The Integrated Development Environment (IDE) allows you to create and manage multiple targets, each referencing the involved physical files. This is described in detail here: Targets and DLL Management.


Once a target has been created, you can open the properties of any SCRAMBLECODE project and select the new target for the compiler to use.


SCRAMBLECODE has a default system target known as the EVALUATION target, which references the license and VM DLL files that are included as part of the downloaded installation. This target can be used by anyone, because the private key for the Evaluation License is available to everyone.


But the targets you have created as VM DLL files based on your private keys can only be used by you.