The Toolchain
MoSync uses a custom GCC backend that outputs MoSync Intermediate Language. This is fed into Pipe-tool, our transformation engine, which builds code trees, analyzes, optimizes and outputs bytecode or java ready for packaging with the appropriate runtime.
The MoSync Build Process
When you finalize your application, the MoSync IDE manages the entire build process for you, activating all the tools in the MoSync toolchain with the appropriate options and settings. The IDE uses GCC to compile your code and Pipe-Tool to link it with the MoSync libraries and your resources. The IDE then combines the resulting bytecode or java source code with the appropriate platform runtime to create the executable packages for each target device.

If needed, control over the options and settings for compilation, linking, and packaging is available through the build configurations for your project. It is also possible of course to run GCC and Pipe-Tool individually from the command line.
GCC
MoSync's implementation of GCC (the GNU Compiler Collection) compiles your program into an assembly-like format called MoSync Intermediate Language (MoSync IL).
The GCC backend defines a simple machine with a variable number of 32-bit registers and a flat memory model. Currently we are using GCC 3.4.6. For more information about GCC, see http://gcc.gnu.org/onlinedocs.
MoSync IL contains detailed metadata about your program, including symbol mappings and control flow information. MoSync IL is extremely rich, so much so in fact that you could pretty well convert it back to its source form if you wanted to.
Pipe-Tool
Pipe-Tool is our transformation engine. It combines the functions of a resource compiler, linker, and code optimizer.
Pipe-Tool combines the MoSync IL output from GCC with the pre-compiled MoSync libraries into various target formats, including MoSync bytecode, Java bytecode, and C/C++ source code, ready for packaging. In the process, it also performs code verification, optimization, and dead code elimination to produce highly optimized outputs.
Pipe-Tool also compiles and indexes the external resources (images, audio files, binary files, etc.) that your application needs. For more information, see our Resource Compiler Reference.
The MoSync Build Process
When you finalize your application, the MoSync IDE manages the entire build process for you, activating all the tools in the MoSync toolchain with the appropriate options and settings. The IDE uses GCC to compile your code and Pipe-Tool to link it with the MoSync libraries and your resources. The IDE then combines the resulting bytecode or java source code with the appropriate platform runtime to create the executable packages for each target device.
If needed, control over the options and settings for compilation, linking, and packaging is available through the build configurations for your project. It is also possible of course to run GCC and Pipe-Tool individually from the command line.
GCC
MoSync's implementation of GCC (the GNU Compiler Collection) compiles your program into an assembly-like format called MoSync Intermediate Language (MoSync IL).
The GCC backend defines a simple machine with a variable number of 32-bit registers and a flat memory model. Currently we are using GCC 3.4.6. For more information about GCC, see http://gcc.gnu.org/onlinedocs.
MoSync IL contains detailed metadata about your program, including symbol mappings and control flow information. MoSync IL is extremely rich, so much so in fact that you could pretty well convert it back to its source form if you wanted to.
Pipe-Tool
Pipe-Tool is our transformation engine. It combines the functions of a resource compiler, linker, and code optimizer.
Pipe-Tool combines the MoSync IL output from GCC with the pre-compiled MoSync libraries into various target formats, including MoSync bytecode, Java bytecode, and C/C++ source code, ready for packaging. In the process, it also performs code verification, optimization, and dead code elimination to produce highly optimized outputs.
Pipe-Tool also compiles and indexes the external resources (images, audio files, binary files, etc.) that your application needs. For more information, see our Resource Compiler Reference.
- Printer-friendly version
- Login or register to post comments
Share on Facebook