automatalib-0.8.0
·
443 commits
to master
since this release
Added
- Added support for model checking automata using the LTSmin model checker (thanks to Jeroen Meijer).
- Added a
CompactMoore
implementation. - Added an
AutomatonBuilder
for 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.transducers
net.automatalib.ts.transout
->net.automatalib.ts.output
net.automatalib.util.automata.transout
->net.automatalib.util.automata.transducers
net.automatalib.automata.GrowableAlphabetAutomaton
->net.automatalib.SupportsGrowingAlphabet
- Some runtime properties for dynamically configuring AutomataLib have been renamed. There now exists the
AutomataLibProperty
enum 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 asCompactDFA
orCompactMealy
) user-land code using the abstract classes may break. - The
BricsDFA
wrapper 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 useBricsDFA
s 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
SupportsGrowingAlphabet
interface) now requires the automaton to be initialized with aGrowingAlphabet
instance. 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
Pair
class has been removed. The previously immutable pair classIPair
has been renamed toPair
. - Some utility classes and functions (especially from the
automata-common-util
package) 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. RichArray
has been removed. At least regarding storage,ArrayStorage
can be used as a replacement.SymbolHidingAlphabet
has 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.