@mtf90 mtf90 released this May 12, 2018 · 105 commits to develop since this release

Assets 2

This is a bugfix release, which should work as a drop-in replacement for previous 0.13.* versions.


  • Fixed an out-of-bounds error in a cache implementation
  • Fixed visibility issues with exportable classes used for the ResumableLearner interface
  • Fixed an issue when adding a new symbol to a learner and the initial alphabet was already an instance of GrowableAlphabet
  • General consolidations (typos, wrong documentation, etc.)

For a complete changelog, see git log learnlib-0.13.0..learnlib-0.13.1

@mtf90 mtf90 released this Feb 27, 2018 · 121 commits to develop since this release

Assets 2

Breaking changes

  • Refactored the Maven artifact and Java package structure. Have a look at the List of LearnLib Artifacts for an updated overview of available artifacts. In general, no functionality should have been removed (except of code marked with @Deprecated). The easiest way to migrate your code to the new version is probably by using the Auto-Import feature of your IDE of choice.

    The non-trivial refactorings include:

    • API methods no longer use wildcards in generic return parameters. This allows your code to not having to deal with them.
    • Changes to AutomataLib.

New features

  • Added randomized version of W(p)-Method based equivalence oracles (see #40)
  • Added the ADT (adaptive distinguishing tree) active learning algorithm
  • Added two active learning algorithms for visibly pushdown languages.
  • Added the RPNI (regular positive-negative inference) passive learning algorithm, including EDSM (evidence-driven state merging) and MDL (minimum description length) variants.
  • Many active learning algorithms now support adding additional alphabet symbols after initial instantiation/starting of the learning process.
  • Added support for suspending the learning process to a savable / serializable state. The learning process may be resumed from this state at a later point in time.
  • Added the AbstractTestWordEQOracle class, which allows to implement custom equivalence oracles solely based on lazy (stream-based) test-word generation. Existing equivalence oracles (as far as possible) have been reworked to extend this class and thus profit from its built-in laziness and batch (parallelization) support.


  • Replaced System.out and JUL logging, with calls to a SLF4j facade.
  • Code improvements due to employment of several static code-analysis plugins (findbugs, checkstyle, PMD, etc.) as well as setting up continuous integration at Travis CI.
  • Tests, tests, tests.
  • Bugfixes, bugfixes, bugfixes.