automatalib-0.8.0
·
460 commits
to master
since this release
Added
- Added support for model checking automata using the LTSmin model checker (thanks to Jeroen Meijer).
- Added a
CompactMooreimplementation. - Added an
AutomatonBuilderfor Moore Machines. - Added support for adding input symbols to incremental constructions (tree caches, DAG caches).
- Support for Java 11. Note: AutomataLib still targets Java 8, and thus needs classes provided by this environment (specifically: annotations from
javax.annotation). If you plan to use AutomataLib in a Java 11+ environment, make sure to provide these classes. They are not shipped with AutomataLib.
Changed
- Refactored the following packages/classes:
net.automatalib.automata.transout->net.automatalib.automata.transducersnet.automatalib.ts.transout->net.automatalib.ts.outputnet.automatalib.util.automata.transout->net.automatalib.util.automata.transducersnet.automatalib.automata.GrowableAlphabetAutomaton->net.automatalib.SupportsGrowingAlphabet
- Some runtime properties for dynamically configuring AutomataLib have been renamed. There now exists the
AutomataLibPropertyenum as a single reference point for all available properties. - Several of the
AbstractCompact*automata classes have been refactored to share common functionality. While this shouldn't affect its implementations (such asCompactDFAorCompactMealy) user-land code using the abstract classes may break. - The
BricsDFAwrapper previously allowed (via a boolean flag) to trigger determinization of the BRICS automaton. This determinization is now performed automatically if necessary. Instead the boolean flag now triggers a totalization of the transition function, which allows to properly useBricsDFAs in structural equivalence tests (as BRICS automata do not allow to limit their input alphabet to certain characters). - Adding new symbols to automata (via the
SupportsGrowingAlphabetinterface) now requires the automaton to be initialized with aGrowingAlphabetinstance. This is to make sure that the user has full control over which alphabet instance should be used instead of AutomataLib making decisions on behalf of the user.
Removed
- The mutable
Pairclass has been removed. The previously immutable pair classIPairhas been renamed toPair. - Some utility classes and functions (especially from the
automata-common-utilpackage) have been removed without replacement, since equivalent functionality is provided by the Google Guava library we depend on. If you used any of this code, switch to the Guava equivalent. RichArrayhas been removed. At least regarding storage,ArrayStoragecan be used as a replacement.SymbolHidingAlphabethas been removed without replacement. Changes to the logic of adding new input symbols should no longer make this class necessary.
Fixed
- Serializers now use platform dependent newlines. This shouldn't affect deserialization code.
- Several bugs detected by our ongoing efforts to write tests.