New state coder. Previously VIATRA-DSE 0.7 had a slow and sometimes buggy state coder (which is needed for identifying recurring state in the search space) but at least worked for any problem domain. In 0.8 a new state coder is introduced which is much more simple and therefore faster but. It simply encodes 1) all the attribute values and 2) all the attribute values of the referenced EObjects of all the EObjects. The disadvantage of the new state coder is that it may fail in certain scenarios (e.g., if a rule can add "A"s, another can delete "A"s and a third one can make references between them). From 0.8 this is the default state coder. When used, the metamodel (EPackage) of the domain must be defined for the DSE framework. VIATRA/DSE/UserGuide/API#State_coding
The compiler responsible for mapping the user-defined complex event patterns and rules onto the execution model, have been redesigned. Previously implemented purely in Java, the current version is fully based on model-to-model transformations, powered by the VIATRA transformation engine.
Atomic event patterns support check expressions, which are statically evaluated constraints on the events' parameters. Similarly to EMF-IncQuery, check expressions can be specified via the Xbase language.
We modeled the EMF notification API via VEPL and packaged it into a small library. By importing org.eclipse.viatra.cep.emf.notification.model.*, the basic EMF operations become available in the current VEPL model.