Dogen v0.87.0, "Cambongue"
Ruins in the outskirts of town, Namibe, Angola. (C) Luis Abegão, 2007. Sourced from Panoramio.
Overview
This release is still mainly focused on internal refactorings of both the yarn and quilt.cpp models, but added a couple of user visible features:
- Support for cross-model inheritance: it is now possible to inherit types from referenced models. In addition, if the parent type was visitable, an "augmented" visitor is generated that takes into account the new derived types.
- Performance improvements: due to the changes required for cross-model inheritance, the overall performance of the code generator has gone up a bit; finger in the air measurements reveal its taking 60-50% of the time to generate the dogen models.
- Visitor's accept methods have been moved to the cpp file: in the past, adding a new descendant to a visitable parent resulted in large rebuilds because the parent included the visitor and the visitor had to change to accommodate the new descendant. Thus, all code that depended on the parent would get rebuilt. To avoid this, the accept methods have now been moved to the cpp file, resulting in smaller builds. We are also now using forward declarations in the visitor.
For more details see the sprint log.