Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[sapphire-dev] On-demand compilation of model elements

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

 

https://bugs.eclipse.org/bugs/show_bug.cgi?id=397466


Back to the top