|On-demand compilation of model elements [message #997255]
||Fri, 04 January 2013 13:16
| Konstantin Komissarchik
Registered: July 2009
I'd like to highlight a key change to how developers work with Sapphire that is coming in the 0.7 release.|
For the last several years Sapphire has used a Java annotation processor linked to @GenerateImpl annotation to produces implementation classes for the model element interfaces.
A better approach is to produce implementation classes on-demand at runtime by generating bytecode. This has the following key advantages:
1. No need to customize the build to run the annotation processor.
2. No need to tag interfaces with @GenerateImpl.
3. Smaller application binaries to distribute
4. Less complex compiler since generating bytecode is easier than generating readable Java source code.
Old Compiler: 17 classes, 3219 lines of code
New Compiler: 3 classes, 808 lines of code, ASM bytecode library
Powered by FUDForum
. Page generated in 0.03745 seconds