Eclipse Epsilon 2.0

There have been well over 1500 commits to Epsilon since 1.5, with many major changes, improvements, over 70 bug fixes, optimisations and new features in almost every aspect. A summary of the most prominent changes:

  • Major refactoring / tidying up of code, leading to improvements in performance and extensibility.
  • Short-circuiting mode for EVL: stop execution when any constraint is violated.
  • Parallel execution capabilities for EOL declarative operations, EVL, EGX, ECL and EPL.
  • EVL ConstraintTrace optimisation (enabled by default): only adds targets of dependencies to the trace.
  • Support for native lambda expressions, allowing Java functional interfaces to be invoked using EOL/OCL/JavaScript lambda syntax.
  • Common FunctionalInterface type constructors, e.g. runnable, supplier, function, consumer.
  • Ternary operator which works anywhere an expression is expected.
  • Thread-safe types: ConcurrentBag, ConcurrentMap, ConcurrentSet.
  • RefactoredIPropertyGetter / IPropertySetter interfaces to be stateless.
  • New EOL operations: count - an optimised select.(...).size() and NMatch - a short-circuiting way to do select.(...).size() [size comparison] [integer literal].
  • [NEW] Picto: infrastructure for orchestrating model visualisation through lazy model-to-text transformations.
  • [NEW] Flexmi: Allows for construction of EMF models using XML with shorthand notation based on string similarity.
  • Numerous improvements and additions to the Simulink EMC driver.
  • Major improvements to dependency management, feature.xml files, releng etc. - relying on Orbit where possible for third-party dependencies.
  • Removed Concordance as it's no longer maintained or useful (supercedeed by Hawk)
  • An API for easily running Epsilon programs standalone, with support for fine-grained rule profiling (i.e. more detailed than is available from the standard Epsilon profiler), parallel execution, repeating etc. - useful for testing, benchmarking and a concise way for users to run Epsilon without requiring deep knowledge of the internal structure.
  • Setup files for Oomph.
  • Self-contained P2 update site (we were using old-style pre-P2 "Update Manager" sites before).
Release Date
Release Type
Major release (API breakage)
Name Date Description
2.0 2020/05/06