* src/neverparse/neverclaimscan.ll: Make the space between `!' and
`(' optional. This fixes the patch from 2011-02-07 that made this
space mandatory...
* src/tgbatest/neverclaimread.test: Augment test case.
* src/tgba/tgbasafracomplement.cc
(tgba_safra_complement::tgba_safra_complement)
(tgba_safra_complement::succ_iter): Correct the declaration and
use of multiple acceptance conditions.
(state_complement::to_string): Output the L set, not U. The previous
code caused different states to share the same names, causing issues
with the text-based output (state with identical names get merged).
* src/tgba/tgbasafracomplement.hh
(tgba_safra_complement::acceptance_cond_vec_): Adjust type to
store BDDs.
* src/tgbatest/complementation.cc: Implement a new "-b" option
to output automata in Spot's syntax.
* src/tgbatest/complementation.test: Add a test-case supplied
by Martin Dieguez Lodeiro.
* THANKS: Add Martin.
* src/tgba/tgbasafracomplement.cc (print_safra_tree): Fix output in
case of hash collision. Use the actual states to get a number, not
their hash value.
(print_safra_automaton): Output a mapping of values to states names.
(safra_tree_automaton::get_sba): New method, used by
print_safra_automaton.
* src/evtgbaalgos/tgba2evtgba.cc (process_link): Fix prototype
to match tgba_reachable_iterator::process_link.
* src/ltlvisit/tunabbrev.hh: Add using super::visit, so that the
other visit() method are in scope when we overload one.
* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc (start, end,
process_link): Remove these empty methods. The default
implementations are empty too, and process_link had the
wrong prototype.
* src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc
(start, end, process_link): Likewise.
Spot 0.7.1 used to need 190 acceptance conditions to translate the
188 literature formulae. With this patch we are down to 185.
That's not an impressive, but there are only ~20 formulae that
require more than 1 acceptance conditions; hence little room for
improvement.
* src/misc/bddlt.hh (bdd_hash): New function.
* src/misc/accconv.hh, src/misc/accconv.cc: New files.
* src/misc/Makefile.am: Add them.
* src/tgbaalgos/scc.cc (scc_map::build_map): Adjust
to record all combination of acceptance conditions occurring in a SCC.
* src/tgbaalgos/scc.hh (scc_map::scc::useful_acc): Update description.
* src/tgbaalgos/sccfilter.cc (scc_filter): Simplify acceptance
conditions that are always implied by another acceptance
conditions. Previously, we only removed acceptance conditions
that where always present in accepting SCCs.
* src/tgbatest/sccsimpl.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add it.
This avoids a small regression on the size of degeneralized
automata of our usual list of literature formulae.
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
(tgba_tba_proxy::union_acceptance_conditions_of_original_state):
New method.
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): In accepting
states, ignore only the last expected acceptance condition if its
common to all outgoing transitions AND if it is not used by any
outgoing transitions of the destination.
states).
* src/tgbaalgos/tgbatba.cc: When degeneralizing to SBA, remove the
acceptance conditions that are common to all outgoing transitions
of this state. This helps to make the degeneralization
idempotent.
* src/tgbatest/degenid.test: New test case.
* src/tgbatest/Makefile.am: Add it.
* src/tgbaalgos/save.c (process_state): Escape quotes in the
name of source and destination states. This fixes a side bug
in the upcoming degenid.test test case.
after the simulation-reduction.
Report from Tomáš Babiak <xbabiak@fi.muni.cz>.
* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Take
a tgba as input.
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Call
state_is_accepting() only if this tgba turns out to be
a tgba_sba_proxy. Otherwise check the acceptance of one
outgoing transition as we do in dotty_bfs since 2011-03-05.
* src/tgbatest/ltl2tgba.cc: Do not redegeneralize before
calling never_claim_reachable() if we know the automaton is
degeneralized already.
* src/tgbatest/ltl2tgba.test: Add a test case.
Reported by Tomáš Babiak <xbabiak@fi.muni.cz>.
* src/tgba/tgbatba.cc (tgba_tba_proxy): Replace the std::map used
to record outgoing transitions by an Sgi::hash_map, and keep the
order of these transitions in a separate list.
* src/tgbatest/degendet.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add it.
* THANKS: Add Tomáš and convert to utf8.
* bench/ltl2tgba/algorithms: Reduce the number of Spot configuration
tested.
* bench/ltl2tgba/Makefile.am (run, small.txt, big.txt, known.txt):
New rules.
* bench/ltl2tgba/big, bench/ltl2tgba/small, bench/ltl2tgba/known:
Add a 15min timeout to the lbtt configuration.
* bench/ltl2tgba/defs.in: Adjust variable definitions to accept
variable inderections.
* bench/ltl2tgba/parseout.pl: Add an option to output the table in
LaTeX. Also consider all formulae, not just the positive
formulae.
* bench/ltl2tgba/README: Update.
the cached result for the requests. So that it survives
the browser's cache.
(finish): Prune the cache only once per hour, and only eraes
files that are older than 2 hours.
* wrap/python/ajax/spot.in (finish): Prune the cache once in a
while. We rely on hardlinks for garbage collecting the pictures
and dot sources that may be shared by different requests.
* wrap/python/ajax/spot.in (render_dot, render_dot_maybe)
(render_automaton, render_formula): Cache the dot source, so that
we do not have to regenerate two pictures from the same contents.
* wrap/python/spot.i: Typo in the ostringstream declaration.
* wrap/python/ajax/spot.in: Use the QUERY_STRING as a hash key to
cache the result of the script. Open stdout without buffering and
redirect it to a file that we can dump later on cache hits. Parts
of this change are extracted from code from Pierre Parutto
<parutto@lrde.epita.fr>.
* AUTHORS: Add him.
* iface/dve2/dve2.cc (dve2_kripke::dve2_kripke): Fill
a format_filter_ array with boolean indicating whether each
variable should be printed. Ignore variable with only one
possible value.
(dve2_kripke::~dve2_kripke): Destroy it.
(dve2_kripke::format_state): Use it.
* iface/dve2/finite.test: Adjust.
generate these formulae with "genltl".
* src/tgbatest/ltlcounter/: Remove this directory.
* src/tgbatest/Makefile.am: Adjust.
* src/tgbatest/ltlcounter.test, bench/ltlcounter/run: Use genltl
to generate the formulae.
* bench/ltlcounter/README: Do not mention src/tgbatest/ltlcounter/
anymore.
* src/ltlvisit/dotty.cc: Display "L" and "R" tail-labels
for binary operators. Gather all constants and atomic
propositions in a sub-graph with "rank=sink".
* src/ltltest/genltl.cc (fair_response, ltl_counter)
(ltl_counter_carry): New functions, constructing function from
gastin.03.cav and rozier.07.cav. The LTL counter will replace the
scripts in src/tgbatest/ltlcounter/.
(X_n): New helper function.
built output.
This is also a step towards better checks for things like
__attribute__ or std::tr1.
* m4/ax_prefix_config_h.m4: New file.
* configure.ac: Call AC_CONFIG_HEADERS and AX_PREFIX_CONFIG_H.
* src/misc/Makefile.am: Install misc/_config.h.
* src/misc/random.cc, src/misc/version.cc: Include misc/_config.h.
* wrap/python/ajax/ltl2tgba.html: Adjust to use
jQuery 1.6.1 and jQuery-UI 1.8.13. Remove a useless check
of $("#autoupdate").attr("checked") since this checkbox no longer
exists.
* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.8.custom.css:
Replace by ...
* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.13.custom.css: This.
* wrap/python/ajax/Makefile.am (EXTRA_DIST): Adjust.
* src/misc/intvcmp2.cc (stream_compression_base::run):
Implement a shift-less encoding for the 1-bit and 3-bit cases.
Also declare offsets as size_t, to help 64-bit compilers.
* src/misc/intvcmp2.cc (int_array_array_compression): Specify full
type of stream_compression_base<int_array_array_compression> in
constructor to please g++ versions <= 4.3.
* src/misc/intvcomp.cc (stream_compression_base::run): Limit
repeatitions to 40, not 42.
(stream_decompression_base::refill): Refill the end of the stream
with 0.
(stream_decompression_base::look_n_bits): Add assertion.
* src/tgbatest/intvcomp.cc: Add a new test case.