automatalib-0.9.0
mtf90
released this
05 Feb 17:28
·
340 commits
to develop
since this release
Added
- A new alphabet implementation
MapAlphabet
that is based on the oldSimpleAlphabet
but without implementing theGrowingAlphabet
interface. IntRangeIterator
now implementsPrimitiveIterator.OfInt
.- A parser for
dot
files has been added and is available in theautomata-serialization-dot
module via theDOTParsers
factory. - A new
PaigeTarjanMinimization
factory that offers convenience methods for PaigeTarjan-based automata minimization (with support for e.g. partial automata) has been added. - Performance improvements for some alphabet implementations (
DefaultVPDAlphabet
,ListAlphabet
,{Int,Char}Range
, ...). - An
LTSminLTLParser
to verify if LTL properties match the expected syntax of LTSmin. - A
WordCollector
for collecting words from symbolStream
s.
Changed
- Refactored the following packages/classes:
net.automatalib.words.impl.SimpleAlphabet
->net.automatalib.words.impl.GrowingMapAlphabet
net.automatalib.serialization.AutomatonSerializationException
->net.automatalib.serialization.FormatException
net.automatalib.serialization.fsm.parser.FSMParseException
->net.automatalib.serialization.fsm.parser.FSMFormatException
net.automatalib.serialization.taf.parser.TAFParseException
->net.automatalib.serialization.taf.parser.TAFFormatException
net.automatalib.automata.transducers.impl.map.SimpleMapGraph
->net.automatalib.graphs.map.SimpleMapGraph
- The
BackedGeneralPriorityQueue(Class<T> c)
constructor was replaced with a more idiomaticBackedGeneralPriorityQueue(Supplier<T> s)
constructor. - The TAF serialization code now forwards (i.e.
throws
)IOException
s that occur when reading from the various data sources. - JSR305 annotations have been replaced with checker-framework annotations.
- AutomataLib now follows checker-framework's convention that (non-annotated) types are usually considered non-null unless explicitly annotated with
@Nullable
. - AutomataLib no longer has a (runtime-) dependency on JSR305 (and other
javax.*
) annotations or includes them in the distribution artifact. This now makes AutomataLib compliant with Oracle's binary code license and allows AutomataLib artifacts as-is to be bundled in binary distributions with Oracle's JDKs/JREs.
- AutomataLib now follows checker-framework's convention that (non-annotated) types are usually considered non-null unless explicitly annotated with
Removed
StringIndexGenerator
has been removed. Its (streamlined) functionality is now available asMapping
viaMappings#stringToIndex
andMappings#indexToString
.DelegatingIterator
: If you used this class, switch to Guavas equivalentForwardingIterator
.ParameterMismatchException
: Was unused and never thrown.StateIDDynamicMapping
: Equivalent functionality is provided byArrayMapping
.ResizingIntArray
: Internal data structure was unused.- The
VPDAlphabet
interface no longer specifies theget{Internal,Call,Return}Symbols()
methods, as theget{Internal,Call,Return}Alphabet()
methods supersede their functionality. PaigeTarjan{Initializers,Extractors}
methods for nonIntAbstraction
s have been removed. You may use the new convenience methods provided byPaigeTarjanMinimization
.- Further
@Deprecated
methods have been removed. - Removed
ProbMealyTransition
and replaced it with the genericMealyTransition
directly carrying theProbabilisticOutput
. It is no longer allowed to passnull
as transition property. - Removed
OutputAndLocalInputs
,StateLocalInputIncrementalMealyTreeBuilder
andStateLocalInputMealyUtil
. The (LearnLib) code related to inferring partial Mealy machines no longer requires these transformed automata. Whoever used this code for transforming a partial Mealy machine to a complete one, may useMealyMachines#complete
instead.
Fixed
- Fixed a bug, where the PaigeTarjan-based minimization would return a wrong automaton when pruning was enabled and the initial automaton was partial.
- Fixed a bug in our Tarjan SCC implementation (#35, thanks to Malte Mues)
- Fixed a bug in the computation of characterizing sets (#36).
- Several (null-related) bugs detected by our ongoing efforts to write tests.