before some optional operations (like more optimizations, or a product). * src/tgbatest/ltl2tgba.cc (-N, -NN): Make sure we print the last automaton computed, not just the automaton when we degeneralized it. We may have applied other algorithms since the original degeneralization.
8477 lines
320 KiB
Text
8477 lines
320 KiB
Text
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Never claim output used to print the degeneralized automaton
|
||
before some optional operations (like more optimizations, or a
|
||
product).
|
||
|
||
* src/tgbatest/ltl2tgba.cc (-N, -NN): Make sure we print the last
|
||
automaton computed, not just the automaton when we degeneralized
|
||
it. We may have applied other algorithms since the original
|
||
degeneralization.
|
||
|
||
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.test: Test both -l and -f. This should
|
||
have been done on 2010-01-30 when the default translation was
|
||
changed from -l to -f.
|
||
|
||
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.hh: Typos in the documentation.
|
||
|
||
2010-11-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/sccfilter.hh: Fix some typos in the documentation.
|
||
|
||
2010-11-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Suggest using bddtrue and bddfalse instead of bdd_true() and
|
||
bdd_false().
|
||
|
||
* src/sanity/style.test: Catch uses of bdd_true() or bdd_false().
|
||
|
||
2010-11-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix some struct/class missmatches reported by clang.
|
||
|
||
* src/ltlast/predecl.hh: Predeclare the LTL AST nodes as class,
|
||
not struct.
|
||
* src/ltlast/nfa.hh (formula_tree::node): Predeclare as struct,
|
||
not class.
|
||
|
||
2010-11-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add interface for and test the bdd_setxor() function added to Buddy.
|
||
|
||
* wrap/python/buddy.i (bdd_setxor): New function.
|
||
* wrap/python/tests/setxor.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add setxor.py.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/Makefile.am (libspot_la_LIBADD): Rename libneverclaimparse.la
|
||
as libneverparse.la.
|
||
* src/neverparse/Makefile.am: Install files in
|
||
$(pkgincludedir)/neverparse, not $(pkgincludedir)/neverclaimparse.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cosmetics to please sanity checks.
|
||
|
||
* src/neverparse/public.hh, src/neverparse/parsedecl.hh: Fix
|
||
inclusion guards.
|
||
* src/tgba/tgbaexplicit.hh, src/tgbatest/emptchk.test,
|
||
src/tgbatest/ltl2tgba.cc: Fix trailing whitespaces.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Clock the time spent reading -P file.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/neverclaimread.test: Check that Spot can read the
|
||
neverclaims it outputs.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not output a counterexample by default in ltl2tgba, introduce
|
||
options -C and -CR for that.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add option -C and -CR to control
|
||
whether we want the accepting run to be printed or replayed.
|
||
* src/tgbatest/dfs.test, src/tgbatest/eltl2tgba.test,
|
||
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlcounter.test: Use -CR.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make sure the neverclaim parser works on the output of spin and
|
||
ltl2ba.
|
||
|
||
* src/neverparse/neverclaimparse.yy: Accept multiple labels
|
||
for the same state. Honor accepting states. Forward parse
|
||
error from the parser used for guards. Accept "false" as a
|
||
single instruction for a state.
|
||
* src/neverparse/neverclaimscan.ll: Recognize "false" specifically,
|
||
and remove the ";" hack.
|
||
* src/tgba/tgbaexplicit.cc
|
||
(tgba_explicit_string::~tgba_explicit_string): Adjust not to
|
||
destroy a state twice.
|
||
* src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit_string::add_state_alias): New function.
|
||
* src/tgbatest/defs.in (SPIN, LTL2BA): New variables.
|
||
* src/tgbatest/neverclaimread.test: Check error messages for
|
||
syntax errors in guards. Make sure we can read the output
|
||
of `spin -f' and `ltl2ba -f' on a few test formulae.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cleanup neverclaim support.
|
||
|
||
* src/neverclaimparse/: Shorthen as ...
|
||
* src/neverparse/:... this.
|
||
* src/Makefile.am: Adjust, and add back the directories mistakenly
|
||
removed by previous patch.
|
||
* README: Adjust, and keep the file's width under 80 columns.
|
||
* configure.ac: Adjust.
|
||
* src/neverparse/Makefile.am, src/neverparse/fmterror.cc,
|
||
src/neverparse/neverclaimparse.yy,
|
||
src/neverparse/neverclaimscan.ll, src/neverparse/public.hh:
|
||
Fix copyright.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove neverclaimread.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -XN to read a neverclaim.
|
||
* src/tgbatest/readneverclaim.cc: Delete.
|
||
* src/tgbatest/neverclaimread.test: Use ltl2tgba instead of
|
||
neverclaimread.
|
||
|
||
2010-05-25 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Add never claim parser.
|
||
|
||
* src/neverclaimparse/: New directory.
|
||
* src/neverclaimparse/fmterror.cc: New file. Print a formatted parse
|
||
error on a output stream.
|
||
* src/neverclaimparse/neverclaimparse.yy: New file. Parser declaration
|
||
for Bison.
|
||
* src/neverclaimparse/neverclaimscan.ll: New file. Scanner declaration
|
||
for Flex.
|
||
* src/neverclaimparse/public.hh: New file. Public header for external
|
||
use.
|
||
* src/neverclaimparse/parsedecl.hh: New file. Header file for
|
||
Flex-Bison interaction.
|
||
* src/neverclaimparse/Makefile.am: New Makefile.
|
||
* src/tgbatest/neverclaimread.cc: New file. Test program for the
|
||
never claim parser.
|
||
* src/tgbatest/neverclaimread.test: New file. Test script for the
|
||
never claim parser.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* configure.ac : Adjust.
|
||
* README: Adjust.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove `readsave' and fix line numbers in tgbaparse error messages.
|
||
|
||
* src/tgbaparse/tgbaparse.yy (line): Fix computation of line number
|
||
for error messages when parsing conditions.
|
||
* src/tgbatest/readsave.test: Check the syntax position of syntax errors
|
||
in the diagnostics. Use ltl2tgba instead of readsave.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove readsave.
|
||
|
||
2010-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/emptchk/pml2tgba.pl: Adjust to work with Spin 5.2.5.
|
||
|
||
2010-10-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac: Do not run CF_GXX_WARNINGS unless they are enabled.
|
||
|
||
2010-10-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Hide the safra_tree_automaton type from the public interface.
|
||
|
||
We do that because the declaration of this type, which is local to
|
||
src/tgba/tgbasafracomplement.cc has a member in an anonymous
|
||
namespace, and some versions of g++-4.2 issue a very annoying
|
||
warning about this legitimate code. See Bug 29365 on GCC's
|
||
Bugzilla. Report by Silien Hong <silien.hong@lip6.fr>.
|
||
|
||
* src/tgba/tgbasafracomplement.hh (safra_tree_automaton): Do not
|
||
forward declare.
|
||
(tgba_safra_complement): Use void* instead of
|
||
safra_tree_automaton*.
|
||
* src/tgba/tgbasafracomplement.cc: static_cast void* to
|
||
safra_tree_automaton* anywhere needed.
|
||
|
||
2010-05-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix the --enable-optimizations check.
|
||
|
||
* m4/gccoptim.m4: Add missing AC_LANG_PUSH/AC_LANG_POP around the
|
||
C test. It was using the C++ compiler instead...
|
||
|
||
2010-04-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Typo.
|
||
|
||
2010-04-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.6a.
|
||
|
||
2010-04-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.6.
|
||
|
||
* NEWS, configure.ac: Bump version to 0.6.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Reorder recent additions to reduccmp.test.
|
||
|
||
* src/ltltest/reduccmp.test: Reorder the test added by the
|
||
previous patches. Some are not supposed to be reduced by
|
||
reductaustr.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a long-standing bug in the stronger rule for R and its recent
|
||
clone for M.
|
||
|
||
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove
|
||
the stronger rules for R and M. They were wrong.
|
||
* src/ltltest/reduccmp.test: Test a simpple counterexample.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More simplifications rules for M.
|
||
|
||
* src/ltlvisit/reduce.cc (reduce_visitor): Add the following
|
||
implication rewriting rules:
|
||
a M (b M c) = a M c if a implies b.
|
||
a M (b R c) = a M c if a implies b.
|
||
a R (b R c) = a R c if a implies b.
|
||
a R (b M c) = b M c if b implies a.
|
||
a M (b M c) = b M c if b implies a.
|
||
The latter rule was fixed from an incorrectly copied&pasted
|
||
rule for a M (b R c) = b R c if b implies a (this is wrong).
|
||
Also remove the wrong rule for a W (b U c) = b U c if a implies b.
|
||
* src/ltltest/reduccmp.test: Add more tests.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speed up syntactic_implication() for constants.
|
||
|
||
* src/ltlvisit/syntimpl.cc (syntactic_implication): Do not
|
||
create visitors if arguments are constant.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix simplification of "a M true" as Fa.
|
||
|
||
* src/ltlvisit/simpfg.cc: Typo.
|
||
* src/ltltest/reduccmp.test: Add more tests.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* HACKING: Bison 2.4.2 has a bugfix we rely on.
|
||
|
||
2010-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Add missing black line in
|
||
help output.
|
||
|
||
2010-04-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Mention W and M.
|
||
|
||
2010-04-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More LTL reductions for W and M.
|
||
|
||
* src/ltlvisit/basicreduce.cc: Perform the following reductions:
|
||
(a R b) | Gb = a R b
|
||
(a M b) | Gb = a R b
|
||
(a U b) & Fb = a U b
|
||
(a W b) & Fb = a U b
|
||
* src/ltltest/reduccmp.test: Test them.
|
||
|
||
2010-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Document W and M operators.
|
||
|
||
2010-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More LTL reductions for W and M.
|
||
|
||
* src/ltlvisit/basicreduce.cc: Perform the following reductions:
|
||
(a U b) & (c W b) = (a & c) U b
|
||
(a W b) & (c W b) = (a & c) W b
|
||
(a R b) | (c M b) = (a | c) R b
|
||
(a M b) | (c M b) = (a | c) M b
|
||
* src/ltltest/reduccmp.test: Test them.
|
||
|
||
2010-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add LTL reductions for strong release.
|
||
|
||
* src/ltlvisit/basicreduce.cc: Perform the following reductions.
|
||
a R (b & F(a)) = a M b
|
||
a M (b & F(a)) = a M b
|
||
a R Fa = Fa
|
||
a M Fa = Fa
|
||
a R b & Fa = a M b
|
||
a R b & a M c = a M (b & c)
|
||
a M b & a M c = a M (b & c)
|
||
* src/ltltest/reduccmp.test: More tests.
|
||
|
||
2010-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add LTL reductions for weak until.
|
||
|
||
* src/ltlvisit/basicreduce.cc: Perform the following reductions.
|
||
a U (b | Ga) = a W b
|
||
a W (b | Ga) = a W b
|
||
a U b | Ga = a W b
|
||
a U b | a W c = a W (b | c)
|
||
a W b | a W c = a W (b | c)
|
||
a U Ga = Ga
|
||
a W Ga = Ga
|
||
* src/ltltest/reduccmp.test: More tests.
|
||
|
||
2010-04-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add support for W (weak until) and M (strong release) operators.
|
||
|
||
* src/ltlast/binop.cc, src/ltlast/binop.cc: Add support for
|
||
these new operators.
|
||
* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse them.
|
||
* src/ltltest/reduccmp.test: Add new tests for W and M.
|
||
* src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
|
||
src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
|
||
src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
|
||
src/ltlvisit/reduce.cc, src/ltlvisite/simpfg.cc,
|
||
src/ltlvisit/simpfg.hh, src/ltlvisit/syntimpl.cc,
|
||
src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
|
||
src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
|
||
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
|
||
Add support for W and M.
|
||
* src/tgbatest/ltl2neverclaim.test: Test never claim output
|
||
using LBTT, this is more thorough. Also we cannot use -N
|
||
any more in the spotlbtt.test.
|
||
* src/tgbatests/ltl2tgba.cc: Define M and W for ELTL.
|
||
* src/tgbatest/ltl2neverclaim.test: Test W and M, and use
|
||
-DS instead of -N, because lbtt-translate does not want
|
||
to translate these operators for tools that masquerade as Spin.
|
||
|
||
2010-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Adjust ltl2tgba.py to call scc_filter() with the "full" option as
|
||
appropriate.
|
||
|
||
* wrap/python/spot.i (spot::scc_filter): Make it available.
|
||
* wrap/python/cgi-bin/ltl2tgba.in (reduce_scc): Call scc_filter.
|
||
Use the "full" option unless the show_degen_png or
|
||
show_never_claim are set. Also reduce_scc the default.
|
||
|
||
2010-04-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlvisit/basicreduce.cc: Typo in comment.
|
||
|
||
2010-04-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Summarize recent noteworthy changes.
|
||
|
||
2010-04-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Modernize Bison parsers.
|
||
|
||
* src/ltlparse/ltlparse.yy, src/tgbaparse/tgbaparse.yy,
|
||
src/evtgbaparse/evtgbaparse.yy, src/eltlparse/eltlparse.yy: Use
|
||
token types for %destructor and %printer. Remove the yylex hack,
|
||
since %name-prefix is now honored by Bison. Also remove the
|
||
useless <token> type. Suggested by Akim Demaille.
|
||
|
||
2010-03-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix column in LTL error messages, it was off by one.
|
||
|
||
* src/ltlparse/fmterror.cc (format_parse_errors): Count columns
|
||
starting at 1. Older Bison used to start at 0 but changed to
|
||
match the GNU Coding Standards.
|
||
* src/ltltest/parseerr.test: Add a test case.
|
||
|
||
2010-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not rewrite F(a & GF(b)) = F(a) & GF(b), this can be harmful.
|
||
|
||
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::recurse):
|
||
Disable this rule unconditionally.
|
||
* src/ltltest/reduccmp.test: Adjust tests.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbatba.cc: Fix English in comments.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Reverse the order of expected acceptance conditions in
|
||
degeneralization.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_tba_proxy): Build the
|
||
list of acceptance condition in the reverse order. The order is
|
||
still arbitrary, but the bdd_satone() call seems to output the
|
||
acceptance conditions that are more used first, and this helps the
|
||
degeneralization process.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Tweak precedence of "->" and <->.
|
||
|
||
* src/ltlparse/ltlparse.yy: Change the precedence of "->" and
|
||
"<->" so that "a & b -> c" is interpreted as "(a & b) -> c"
|
||
instead of "a & (b -> c)". The new interpretation is more
|
||
intuitive, and matches that of LBTT.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/ltl2tgba/formulae.ltl: Fix three formulae to match the
|
||
original paper by Somenzi and Bloem. Reported by Ruediger Ehlers.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix memory leak introduced in yesterday's change.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_sba_proxy): Do not
|
||
forget to free the initial state after usage.
|
||
|
||
2010-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Keep acceptance conditions on transitions going to accepting SCCs
|
||
by default in scc_filter().
|
||
|
||
Doing so helps the degeneralization algorithm, because it will
|
||
have more opportunity to be in an accepting level when it reaches
|
||
the accepting SCCs.
|
||
|
||
* src/tgbaalgos/sccfilter.cc (filter_iter::filter_iter): Take a
|
||
remove_all_useless argument.
|
||
(filter_iter::process_link): Use the flag to decide whether to
|
||
filter acceptance conditions going to accepting SCCs.
|
||
(scc_filter): Take a remove_all_useless argument and pass it to
|
||
filter_iter.
|
||
* src/tgbaalgos/sccfilter.hh (filter_iter): Add the new argument
|
||
and document the function.
|
||
* src/tgbatest/tgbatests/ltl2tgba.cc (main): Add option use -R3
|
||
for remove_all_useless=false and add -R3f for
|
||
remove_all_useless=true.
|
||
* src/tgbatest/ltl2tgba.test: Show one case where -R3f makes
|
||
the degeneralization worse than -R3.
|
||
|
||
2010-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Simplify F(a)|F(b) as F(a|b). Add similar rule for G(a)&G(b).
|
||
|
||
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Replace
|
||
the FG(a)|FG(b) == F(Ga|Gb) rule by the above more generic one.
|
||
Add the dual rule for G(a)&G(b), as we had none (this one won't
|
||
improve anything in the translation, but it is more symmetric
|
||
this way). Also simplify some pointer checks.
|
||
|
||
2010-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Better selection of the acceptance of the initial state in SBA.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_sba_proxy): Set
|
||
cycle_start_ to start in the accepting layer of the degeneralized
|
||
automaton if the initial state has an accepting self-loop.
|
||
Otherwise, starts at the level of the first acceptance condition
|
||
as previously.
|
||
(tgba_sba_proxy::get_init_state): Use cycle_start_.
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::a_): Make it protected so
|
||
that we can use it in tgba_sba_proxy::tgba_sba_proxy.
|
||
(tgba_sba_proxy::cycle_start_, tgba_sba_proxy::get_init_state):
|
||
Declare.
|
||
* src/tgbatest/ltl2tgba.test: More tests.
|
||
|
||
2010-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Generalize the previous patch to accepting states in SBA.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::sync_): Move
|
||
the optimization step added by the previous patch outside the
|
||
before the bddtrue check, so that it also applies to accepting
|
||
states in SBA.
|
||
|
||
2010-03-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Optimize tgba_tba_proxy and tgba_sba_proxy for states that share
|
||
an acceptance condition on all outgoing transitions.
|
||
|
||
This was motivated by experiments from R<>diger Ehlers, showing
|
||
that "ltl2ba -f 'a U (b U c)'" outperformed "ltl2tgba -f -N -R3 'a
|
||
U (b U c)'". With this change and the previous one, it is no
|
||
longer the case.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::aut_): Store
|
||
a pointer to the source automaton and...
|
||
(tgba_tba_proxy_succ_iterator::sync_): ... use it in an extra
|
||
optimization step to gather the acceptance conditions common
|
||
to all outgoing transitions of the destination state, and pretend
|
||
they are on the current (ingoing) transition.
|
||
(tgba_tba_proxy::succ_iter): Pass the
|
||
source automaton to the constructed iterator.
|
||
* src/tgbatest/spotlbtt.test: Test -f -N -R3 -r7.
|
||
* src/tgbatest/ltl2tgba.test: Add a test case for 'a U (b U c)'.
|
||
|
||
2010-03-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
ltl2tgba: apply -R3 before -D or -DS.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Call scc_filter() before the
|
||
degeneralization, because it might remove useless acceptance
|
||
conditions. I realized this while looking at experiments from
|
||
R<>diger Ehlers.
|
||
|
||
2010-02-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/sanity/style.test: Better fix for the previous error.
|
||
|
||
2010-02-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Work around a spurious style.test error.
|
||
|
||
* src/saba/sabacomplementtgba.hh (spot): Rewrite B<>chi as B\"uchi
|
||
is the BibTex entry used as comment, because some version of sed
|
||
will choke on non-ascii character and cause sanity/style.test to
|
||
fail.
|
||
|
||
2010-02-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix random_graph() not to generate dead states.
|
||
|
||
This is actually the third time I fix random_graph(). On
|
||
2007-02-06 I changed the function not to generated dead states,
|
||
but in a way that made it non-deterministic. On 2010-01-20 I made
|
||
the function deterministic again, but it started to generate dead
|
||
states as a side effect. This time, I'm making sure that dead
|
||
states won't come again with a test-case that we should have had
|
||
from the beginning.
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Add an extra
|
||
indirection array, state_randomizer[], so that we can reorder
|
||
states indices after a random selection without actually changing
|
||
the value of the indices used by unreachable_states and
|
||
nodes_to_process.
|
||
* src/tgbatest/randtgba.test: New file.
|
||
* src/tgbatest/Makefile.am: Add randtgba.test.
|
||
|
||
2010-02-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
ltl2tgba cgi updates.
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in (dot): Use the value computed by
|
||
configure.
|
||
(os.system): Cleanup stale files only when the form has been
|
||
submitted.
|
||
(list options): Keep track of the selected value.
|
||
(draw_acc_run|print_acc_run): set ec=0 to detect if it has been
|
||
later set or not. Fix error message when using generalized
|
||
automata with degeneralized emptiness checks.
|
||
* wrap/python/cgi-bin/Makefile.am (ltl2tgba.py): Substitute @DOT@.
|
||
|
||
2010-02-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Reword description of svg_output.
|
||
|
||
2010-02-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add SVG output and language containment options to the cgi script.
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in (new): Mark new options as new.
|
||
(svg_output, reduce_langcout): Add these new options.
|
||
(render_dot): Support svg_output.
|
||
|
||
2010-02-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Typo.
|
||
|
||
2010-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.5a.
|
||
|
||
2010-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.5.
|
||
|
||
* NEWS, configure.in: Bump version to 0.5.
|
||
|
||
2010-01-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* doc/Makefile.am ($(srcdir)/stamp): Do not depend on dot
|
||
explicitly, otherwise the documentation is always built and
|
||
distcheck fails.
|
||
|
||
2010-01-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More Doxygen fixes.
|
||
|
||
* src/sabaalgos/sabareachiter.hh (process_link): Document argument SI.
|
||
* src/eltlparse/public.hh (format_parse_errors): Remove the
|
||
non-existing eltl_string argument from the description.
|
||
(parse_file): Fix name of parameters in documentation.
|
||
|
||
2010-01-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Build doxygen pictures with libgd to reduce their size.
|
||
|
||
Doxygen only knows how to call dot with -Tpng, while using
|
||
-Tpng:gd produces pictures that are 10 times smaller. Use a
|
||
simple wrapper around dot to simplify this.
|
||
|
||
* doc/dot.in: New file, that wrap the system's dot and replace
|
||
-Tpng by -Tpng:gd.
|
||
* doc/Makefile.am ($(srcdir)/stamp): Depend on dot.
|
||
* doc/Doxyfile.in: Update to 1.6.2.
|
||
(DOT_PATH): Set to @srcdir@ to use doc/dot instead of the
|
||
system's dot.
|
||
* configure.ac: Find the absolute path of dot, and generate
|
||
the doc/dot script.
|
||
|
||
2010-01-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More Doxygen fixes.
|
||
|
||
* src/tgba/tgbakvcomplement.hh: Use \verbatim around the bibtex
|
||
entry.
|
||
* src/saba/sabacomplementtgba.hh: Use latin1.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/split-product/Makefile.am (nodist_noinst_DATA): Do not
|
||
depend on files that cannot be built.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Replace spot::ltl_file by a rewritten spot::ltl::ltl_file.
|
||
|
||
* src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh: Delete these
|
||
files.
|
||
* src/tgba/Makefile.am: Remove them.
|
||
* src/ltl/ltlparse/ltlfile.hh, src/ltl/ltlparse/ltlfile.cc: New
|
||
files.
|
||
* src/ltl/ltlparse/Makefile.am: Add them.
|
||
* bench/scc-stats/stats.cc, bench/split-product/cutscc.cc: Rewrite
|
||
using the new class.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Check for missing Copyright blurbs, and add them.
|
||
|
||
* src/sanity/style.test: Check for missing Copyrights blurbs.
|
||
* src/sanity/Makefile.am: Run style.test before includes.test.
|
||
* iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test,
|
||
iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
|
||
iface/gspn/simple.test, iface/gspn/udcsefm.test,
|
||
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
|
||
iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test,
|
||
iface/nips/nipstest/emptiness.test, src/eltltest/acc.test,
|
||
src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc,
|
||
src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test,
|
||
src/tgbatest/taatgba.test: Add missing Copyright blurb.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: More text.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Touch up some doxygen comments and copyrights.
|
||
|
||
* eltlparse/public.hh, saba/saba.hh, tgba/tgbakvcomplement.hh,
|
||
tgba/tgbasafracomplement.hh, tgbaalgos/eltl2tgba_lacim.cc,
|
||
tgbaalgos/eltl2tgba_lacim.hh, tgbaalgos/ltl2taa.hh: Comment
|
||
changes.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add SCC pruning options to the CGI script.
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Add options to symbolically
|
||
prune unaccepting SCCs in LaCIM, and explicitely pruns unaccepting
|
||
SCCs in all algorithms.
|
||
* src/tgbaalgos/reductgba_sim.hh: Conceal most of the file to
|
||
SWIG.
|
||
* wrap/python/spot.i: Include reductgba_sim.hh.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/evtgbatest/ltl2evtgba.test: Replace * by &.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make it possible to use the cgi script without installing a web
|
||
server.
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Starts a web server if the
|
||
script is not called as a CGI. Arrange to load libraries from
|
||
the build directory. Create the spotimg/ if needed when run as
|
||
a web server.
|
||
* wrap/python/cgi-bin/Makefile.am: Adjust build rule and clean
|
||
the spotimg directory.
|
||
* wrap/python/cgi-bin/README, NEWS: Update.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More * -> & replacements.
|
||
|
||
* src/ltltest/parse.test, src/ltltest/syntimpl.test: Replace * by &.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove the theoretically bogus "containment" option of ltl2tgba_fm.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
|
||
Remove the containment option.
|
||
* src/tgbafromfile.cc, src/tgbafromfile.hh: Remove the
|
||
containment_ member.
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Remove -c option for
|
||
FM algorithm, use it exclusively for TAA.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbasafracomplement.hh: Add missing copyright and
|
||
fix some comments.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rename tgba_complement as tgba_kv_complement.
|
||
|
||
* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: Rename
|
||
as...
|
||
* src/tgba/tgbakvcomplement.hh, src/tgba/tgbakvcomplement.cc:
|
||
... these. It makes more sense since we also have
|
||
tgba_safra_complement.
|
||
* src/tgba/Makefile.am, src/tgbatest/complement.cc, NEWS: Adjust.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not recognize "*" as "and". This leaves room for an
|
||
implementation of rational operators in a future version.
|
||
|
||
* src/ltlparse/ltlscan.ll: Do not recognize "*".
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Undocument it.
|
||
* NEWS: Mention this.
|
||
* src/tgbatest/kv.test, src/tgbatest/ltl2tgba.test,
|
||
src/tgbatest/reductgba.test: Replace "*" by "&".
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make Couvreur/FM the default translation.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax, main): Do it.
|
||
* NEWS: Mention it.
|
||
* src/tgbatest/emptchk.test: Add missing -l.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Overhaul LaCIM's ELTL options.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax, main): Introduce -le to select
|
||
this algorithm and -lo to add the default LTL operators. This
|
||
replace the undocumented hack to add LTL operators when the
|
||
formula with read for command-line, or the automaton was output
|
||
for LBTT.
|
||
* src/tgbatest/eltl2tgba.test, src/tgbatest/spotlbtt.test: Update
|
||
call syntax.
|
||
* NEWS: Mention -le, -lo, and -taa.
|
||
|
||
2010-01-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Touch up -R3b handling.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Move -R3b with the other
|
||
LaCIM options.
|
||
(main): Speak of "symbolic SCC pruning" instead of "deleting
|
||
unaccepting SCC", and do that right after the translation, before
|
||
degeneralization. Also error out when -R3b is used on non
|
||
symbolic automata.
|
||
|
||
2010-01-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Update some text files for upcoming 0.5.
|
||
|
||
* NEWS: Update for upcoming 0.5.
|
||
* HACKING: Update Automake requirement.
|
||
* README: Mention the mailing list.
|
||
* bench/ltlcounter/README: More text.
|
||
* configure.ac: Report bugs to spot@lrde.epita.fr.
|
||
|
||
2010-01-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rename wrap/python/cgi/ as wrap/python/cgi-bin/.
|
||
|
||
* wrap/python/cgi/: Rename as ...
|
||
* wrap/python/cgi-bin/: ... this.
|
||
* configure.ac, spot/wrap/python/Makefile.am, README: Adjust.
|
||
|
||
2010-01-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh: Fix copyright.
|
||
|
||
2010-01-29 Felix Abecassis <felix.abecassis@lrde.epita.fr>
|
||
|
||
* src/tgba/taatgba.cc, src/tgba/taatbga.hh: Fix a memory issue on
|
||
Darwin.
|
||
|
||
2010-01-25 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in, wrap/python/spot.i: Add a new
|
||
translation algorithm: Tauriainen/TAA.
|
||
|
||
2010-01-25 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Use the uuid Python module instead
|
||
of the UNIQUE_ID environment variable to avoid being
|
||
Apache-specific.
|
||
|
||
2010-01-24 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Fix copyrights.
|
||
|
||
* bench/Makefile.am, bench/gspn-ssp/Makefile.am,
|
||
bench/gspn-ssp/defs.in, bench/scc-stats/Makefile.am,
|
||
bench/split-product/Makefile.am, configure.ac,
|
||
iface/Makefile.am, iface/gspn/Makefile.am, iface/gspn/ssp.hh,
|
||
iface/nips/Makefile.am, iface/nips/common.cc,
|
||
iface/nips/common.hh, iface/nips/dottynips.cc,
|
||
iface/nips/nips.cc, iface/nips/nips.hh, src/Makefile.am,
|
||
src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
|
||
src/eltlparse/eltlscan.ll, src/eltlparse/fmterror.cc,
|
||
src/eltlparse/parsedecl.hh, src/eltltest/Makefile.am,
|
||
src/eltltest/defs.in, src/eltltest/nfa.cc, src/evtgba/evtgba.hh,
|
||
src/evtgba/product.cc, src/evtgba/product.hh,
|
||
src/evtgbaalgos/tgba2evtgba.cc, src/evtgbaparse/Makefile.am,
|
||
src/evtgbaparse/evtgbaparse.yy, src/evtgbatest/defs.in,
|
||
src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.cc,
|
||
src/evtgbatest/ltl2evtgba.test, src/evtgbatest/product.cc,
|
||
src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
|
||
src/evtgbatest/readsave.test, src/ltlast/atomic_prop.cc,
|
||
src/ltlast/atomic_prop.hh, src/ltlast/binop.cc,
|
||
src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/formula.cc,
|
||
src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
|
||
src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
|
||
src/ltlast/multop.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh,
|
||
src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlenv/declenv.cc,
|
||
src/ltlenv/declenv.hh, src/ltlenv/environment.hh,
|
||
src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
|
||
src/ltltest/Makefile.am, src/ltltest/defs.in,
|
||
src/ltltest/equals.cc, src/ltltest/equals.test,
|
||
src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
|
||
src/ltltest/parse.test, src/ltltest/parseerr.test,
|
||
src/ltltest/randltl.cc, src/ltltest/readltl.cc,
|
||
src/ltltest/reduccmp.test, src/ltltest/syntimpl.cc,
|
||
src/ltltest/syntimpl.test, src/ltltest/tostring.cc,
|
||
src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
|
||
src/ltltest/tunenoform.test, src/ltlvisit/basicreduce.cc,
|
||
src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
|
||
src/ltlvisit/contain.cc, src/ltlvisit/destroy.cc,
|
||
src/ltlvisit/destroy.hh, src/ltlvisit/lunabbrev.cc,
|
||
src/ltlvisit/nenoform.cc, src/ltlvisit/randomltl.cc,
|
||
src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
|
||
src/ltlvisit/tostring.cc, src/misc/bddalloc.cc,
|
||
src/misc/bddop.cc, src/misc/bddop.hh, src/misc/freelist.hh,
|
||
src/misc/hash.hh, src/misc/minato.cc, src/misc/minato.hh,
|
||
src/misc/optionmap.cc, src/misc/timer.cc, src/misc/timer.hh,
|
||
src/saba/Makefile.am, src/saba/explicitstateconjunction.cc,
|
||
src/saba/explicitstateconjunction.hh, src/saba/saba.cc,
|
||
src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
|
||
src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
|
||
src/saba/sabasucciter.hh, src/sabaalgos/Makefile.am,
|
||
src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
|
||
src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
|
||
src/sabatest/Makefile.am, src/sabatest/defs.in,
|
||
src/sanity/Makefile.am, src/tgba/Makefile.am,
|
||
src/tgba/bdddict.cc, src/tgba/bddprint.cc,
|
||
src/tgba/formula2bdd.cc, src/tgba/state.hh,
|
||
src/tgba/succiterconcrete.cc, src/tgba/taatgba.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbacomplement.cc,
|
||
src/tgba/tgbacomplement.hh, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
|
||
src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
|
||
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
|
||
src/tgba/tgbasgba.hh, src/tgba/tgbaunion.cc,
|
||
src/tgba/tgbaunion.hh, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/eltl2tgba_lacim.cc,
|
||
src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.cc,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/ltl2taa.cc,
|
||
src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
|
||
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
|
||
src/tgbaalgos/powerset.cc, src/tgbaalgos/reachiter.cc,
|
||
src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/reductgba_sim.hh,
|
||
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/stats.cc,
|
||
src/tgbaalgos/stats.hh, src/tgbaparse/Makefile.am,
|
||
src/tgbaparse/tgbaparse.yy, src/tgbatest/Makefile.am,
|
||
src/tgbatest/bddprod.test, src/tgbatest/complementation.cc,
|
||
src/tgbatest/complementation.test, src/tgbatest/defs.in,
|
||
src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
|
||
src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro3.test, src/tgbatest/explpro4.test,
|
||
src/tgbatest/explprod.cc, src/tgbatest/explprod.test,
|
||
src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.cc,
|
||
src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.cc,
|
||
src/tgbatest/mixprod.test, src/tgbatest/powerset.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/readsave.test,
|
||
src/tgbatest/reduccmp.test, src/tgbatest/reductgba.cc,
|
||
src/tgbatest/reductgba.test, src/tgbatest/taatgba.cc,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.cc, src/tgbatest/tripprod.test,
|
||
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/ltl2tgba.py,
|
||
wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py:
|
||
Fix copyrights.
|
||
|
||
2010-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: More comments.
|
||
|
||
2010-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Check that all directories are documented.
|
||
|
||
* src/sanity/readme.test: For each AC_OUTPUT Makefile, check that
|
||
the directory is documented in README. Also skip non distributed
|
||
directories in readme.test.
|
||
* README: Fit on 80 columns.
|
||
|
||
2010-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* README: Typo.
|
||
|
||
2010-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/sanity/Makefile.am (EXTRA_DIST): Distribute readme.test.
|
||
|
||
2010-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* README: Add descriptions for subdirectories of bench/, src/sanity,
|
||
and src/kripke.
|
||
|
||
2010-01-24 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/sanity/readme.test: A script to check whether all the
|
||
directories referenced in README exist.
|
||
* src/sanity/Makefile.am: Adjust to call `readme.test' when make
|
||
check is invoked.
|
||
|
||
2010-01-24 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Update the README.
|
||
|
||
* README: Reference src/saba/, src/sabaalgos/, src/sabatest/,
|
||
iface/nips/, iface/nips/nipstest/ and iface/nips/nips_vm/.
|
||
|
||
2010-01-22 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Turn parse_error_list into an opaque type for Swig. This
|
||
kills a memory leak warning from swig/python.
|
||
|
||
* src/ltlparse/public.hh (parse_error_list): Declare
|
||
as an empty struct for Swig.
|
||
* wrap/python/tests/ltlparse.py: Fix copyright.
|
||
|
||
2010-01-22 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix the computation of the length of multops.
|
||
|
||
* src/ltlvisit/length.cc (visit(multop*)): New function. "a & b &
|
||
c" has length 5, not 4, even though it is stored as And(a,b,c).
|
||
This caused reduc.test to fail on some formulae.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Please the style checks...
|
||
|
||
* src/tgbaalgos/randomgraph.cc: Fix the copyright and make it fit
|
||
on 80 columns.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/reduc.cc (main): Fix harmless memory leak introduced
|
||
today.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix taa_tgba_formula's destructor.
|
||
|
||
* src/tgba/taatgba.cc (taa_tgba_formula::~taa_tgba_formula):
|
||
Really destroy all formulae, not only half of them.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Do not include <string> twice.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speedup reduc.test by not spawning one process per formula.
|
||
|
||
* src/ltltest/reduc.cc: Add an option -f to read a lot of
|
||
formulae from a file. Running a process for each formula was
|
||
too slow. Also add an option -h to hide reduced formulae.
|
||
* src/ltltest/reduc.test: Simplify accordingly.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Move the last test from emptchk.test to emptchke.test.
|
||
|
||
* src/tgbatest/emptchk.test: Move the newly added test ...
|
||
* src/tgbatest/emptchke.test: ... here, with other explicit test.
|
||
Also test more algorithms.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a memory leak in Cou99 statistics.
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::acss_states):
|
||
Delete the iterator after using it.
|
||
* src/tgbatest/emptchkr.test: Run 'randtgba -z' with valgrind too.
|
||
|
||
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a longstanding bug in our implementation of GV04.
|
||
|
||
* src/tgbaalgos/gv04.cc (push): Fix the tracking of the accepting
|
||
link. This bug was discovered on a random generated graph with
|
||
a complex accepting cycle.
|
||
* src/tgbatest/emptchk.test: Add the troublesome graph as
|
||
test case.
|
||
|
||
2010-01-20 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
When iterating a hash_map, be careful not to delete i->first
|
||
before doing ++i to avoid memory issues.
|
||
|
||
* src/tgba/taatgba.cc, src/tgba/taatgba.hh,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Fix them.
|
||
|
||
2010-01-20 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Minor fixes to compile with GCC 3.3
|
||
|
||
* src/ltlast/automatop.cc, src/ltlast/automatop.hh: Rename nfa as
|
||
get_nfa to avoid a name clash with the `nfa' class.
|
||
* src/ltlvisit/clone.cc, src/ltlvisit/nenoform.cc,
|
||
src/ltlvisit/tostring.cc, src/tgbaalgos/eltl2tgba_lacim.cc: Use
|
||
get_nfa instead of nfa.
|
||
* src/tgba/tgbasafracomplement.cc: Don't use a
|
||
const_reverse_iterator.
|
||
|
||
2010-01-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove some non-determinism in random_graph()
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Revert the part of
|
||
the patch from 2007-02-06 which silently replaced the use of state
|
||
index by state pointers. Storing states pointer in this map cause
|
||
some non-determinism because of the memory layout. It was almost
|
||
impossible to reproduce bugs found by tests based on randtgba.
|
||
|
||
2010-01-19 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/ltl2taa.cc: Fix the previous patch.
|
||
|
||
2010-01-18 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Fix memory issues
|
||
occuring when labels are pointers.
|
||
* src/tgbaalgos/ltl2taa.cc: Fix a bug.
|
||
* src/tgbatest/ltl2tgba.cc: Fix a bug.
|
||
|
||
2010-01-16 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/saba/sabacomplementtgba.cc: Fix a bug.
|
||
|
||
2010-01-16 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Use taa_tgba_formula instead of taa_tgba_string in ltl_to_taa to
|
||
speed up a little the translation.
|
||
|
||
* src/tgbaalgos/ltl2taa.cc: Adjust. Also fix a bug with
|
||
acceptance conditions in all_n_tuples.
|
||
* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Adjust.
|
||
|
||
2010-01-16 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Introduce taa_tgba_labelled<label> so that we can build
|
||
taa_tgba instances labelled by other objects than strings
|
||
in the same way Alexandre did for tgba_explicit.
|
||
|
||
* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Split taa_tgba in two
|
||
levels: taa_tgba with no label and taa_tgba_labelled templated by
|
||
the type of the label. Define taa_tgba_string (with the interface
|
||
of the former taa_tgba class) and taa_tgba_formula for future use
|
||
in ltl2taa.cc.
|
||
* src/tgbaalgos/ltl2taa.cc, src/tgbatest/taatgba.cc: Adjust to use
|
||
taa_tgba_string.
|
||
|
||
2010-01-06 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Fix a longstanding bug reported by Guillaume Sadegh.
|
||
|
||
* src/eltlparse/eltlscan.ll: Fix a typo.
|
||
|
||
2010-01-05 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Merge eltl2tgba.cc into ltl2tgba.cc.
|
||
|
||
* src/tgbatest/eltl2tgba.cc: Remove.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: New option: -xltl to translate an
|
||
extended LTL instead of an LTL, a feature previously offered by
|
||
eltl2tgba.cc. Also: -R3b to use delete_unaccepting_scc.
|
||
* src/tgbatest/spotlbtt.test, src/tgbatest/eltl2tgba.test: Adjust.
|
||
|
||
2009-11-10 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbabddcoredata.cc (delete_unaccepting_scc): Fix a bug.
|
||
* src/tgbatest/spotlbtt.test: Use the above function with LaCIM
|
||
for ELTL which greatly reduce the size of the automata!
|
||
|
||
2009-12-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/timer.hh (timer::timer): Initialize running...
|
||
|
||
2009-12-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/Makefile.am (SUBDIRS): Fix missing ".", mistakenly removed
|
||
by previous patch.
|
||
|
||
2009-11-30 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
An algorithm to complement TGBA into SABA.
|
||
|
||
* src/saba/sabacomplementtgba.hh,
|
||
src/saba/sabacomplementtgba.cc: New. The algorithm.
|
||
* src/saba/Makefile.am: Adjust.
|
||
* src/sabatest/sabacomplementtgba.cc, src/sabatest/Makefile.am,
|
||
src/sabatest/defs.in: New. Test the algorithm.
|
||
* configure.ac, src/Makefile.am: Adjust to the new directory
|
||
`sabatest'.
|
||
|
||
2009-11-30 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Add a new type of automata: State-labeled Alternating B<>chi
|
||
Automata (SABA).
|
||
|
||
* src/saba/saba.hh, src/saba/saba.cc, src/saba/sabastate.hh,
|
||
src/saba/sabasucciter.hh: New. Interface for
|
||
SABA (State-labeled Alternating B<>chi Automata).
|
||
* src/saba/explicitstateconjunction.cc,
|
||
src/saba/explicitstateconjunction.hh: New. Default
|
||
implementation for a conjunction of states.
|
||
* src/saba/Makefile.am: New.
|
||
* src/Makefile.am, configure.ac: Adjust.
|
||
* src/sabaalgos/sabareachiter.cc,
|
||
src/sabaalgos/sabareachiter.hh: New. Iterate over all reachable
|
||
states of a spot::saba.
|
||
* src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh: New.
|
||
Print reachable states in dot format.
|
||
* src/sabaalgos/Makefile.am: New.
|
||
|
||
2009-11-27 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Rename the class taa as taa_tgba.
|
||
|
||
* src/tgba/taa.cc, src/tgba/taa.hh: Rename as ...
|
||
* src/tgba/taatgba.cc, src/tgba/taatgba.hh: ... these, and
|
||
rename the class taa as taa_tgba.
|
||
* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh,
|
||
src/tgbaalgos/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/taa.test: Rename as ...
|
||
* src/tgbatest/taatgba.test ... this.
|
||
* src/tgbatest/taa.cc: Rename as ...
|
||
* src/tgbatest/taatgba.cc ... this, and adjust.
|
||
|
||
2009-11-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Fix typo to re-enable
|
||
reductions by simulation.
|
||
|
||
2009-11-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* m4/buddy.m4 (AX_CHECK_BUDDY): Check for bdd_satprefix, the
|
||
latest function added to BuDDy.
|
||
|
||
2009-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Stop the SCC timer. I mean
|
||
really stop it!
|
||
|
||
2009-11-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Detect running timers, and stop a timer in ltl2tgba.
|
||
|
||
* src/misc/timer.hh (time_info::running): New attribute.
|
||
(time_info::start, time_info::stop): Update and check
|
||
time_info::running.
|
||
* src/misc/timer.cc (timer_map::print): Mark running timers with
|
||
a "+" in the output.
|
||
* src/tgbatest/ltl2tgba.cc (main): Rename the name of the timers
|
||
for SCC and simulation reduction, and actually stop the SCC timer.
|
||
|
||
2009-11-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/sccfilter.cc (create_transition): Do not clone
|
||
the same node twice when dealing with loops.
|
||
|
||
2009-11-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use bdd_satprefix() to speedup minato on BDDs that are almost cubes.
|
||
|
||
* src/misc/minato.cc (minato_isop::minato_isop): Call bdd_satprefix.
|
||
(minato_isop::next): Avoid useless intermediate variables.
|
||
* src/misc/minato.hh: Typo in comments.
|
||
|
||
2009-11-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Specialize scc_filter when handling tgba_explicit_formula automata.
|
||
|
||
If the input is a tgba_explicit_formula we can output a
|
||
tgba_explicit_formula too, and we want to do that because it is
|
||
more space efficient.
|
||
|
||
* src/tgba/tgbaexplicit.hh (get_label): New method.
|
||
* src/tgbaalgos/sccfilter.cc (create_transition): New function,
|
||
to handle tgba_explicit_formula and tgba_explicit_string output
|
||
differently.
|
||
(filter_iter): Template it on the output tgba type, and adjust
|
||
to call create_transition.
|
||
(scc_filter): Use filter_iter<tgba_explicit_formula> or
|
||
filter_iter<tgba_explicit_string> depending on the input tgba
|
||
type.
|
||
|
||
2009-11-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Strip useless acceptance conditions in scc_filter().
|
||
|
||
A useless acceptance conditions is one that is always implied by
|
||
another.
|
||
|
||
* src/misc/bddop.hh, src/misc/bddop.cc
|
||
(compute_neg_acceptance_conditions): New function.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
|
||
(set_acceptance_conditions): New function.
|
||
* src/tgbaalgos/scc.cc (build_map, build_scc_stats, dump_scc_dot):
|
||
Keep track of useful acceptance conditions.
|
||
(useful_acc_of): New function.
|
||
* src/tgbaalgos/scc.hh (scc_stats, scc_map::scc::useful_scc): New
|
||
attributes.
|
||
* src/tgbaalgos/sccfilter.cc (filter_iter): Adjust to filter
|
||
useless acceptance conditions.
|
||
(scc_filter): Compute useful acceptance conditions and pass them
|
||
to filter_iter.
|
||
|
||
2009-11-20 Alexandre Duret-Lutz <adl@va-et-vient.net>
|
||
|
||
* src/tgbaalgos/sccfilter.cc (scc_filter): Merge transitions
|
||
after removing acceptance conditions.
|
||
|
||
2009-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove prune_scc(), prune_acc(), and related fonctions.
|
||
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh (prune_scc,
|
||
prune_acc, remove_component, compute_scc, remove_acc,
|
||
is_not_accepting, delete_scc, is_terminal, remove_scc,
|
||
display_scc): Remove anything related to the simplification of
|
||
SCCs.
|
||
|
||
2009-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Replace prune_scc() by scc_filter().
|
||
|
||
prune_scc() leaked memory and failed to remove chains of useless SCCs.
|
||
|
||
* src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Call
|
||
scc_filter() instead of prune_scc(), and do it before running
|
||
any simulation-based reduction.
|
||
* src/tgbaalgos/reductgba_sim.hh (reduc_tgba_sim): Return a const
|
||
tgba*.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/reductgba.cc: Call
|
||
scc_filter() instead of prune_scc().
|
||
* src/tgbatest/scc.test: Add two more tests that failed with
|
||
prune_scc().
|
||
|
||
2009-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Quick implementation of a "useless SCC" filter using scc_map.
|
||
|
||
* src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccfilter.cc: New
|
||
files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
|
||
2009-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix acceptance check in scc_map: trivial SCCs are not accepting.
|
||
Also compute useless SCCs.
|
||
|
||
* src/tgbaalgos/scc.cc (scc_map::scc::trivial): New field.
|
||
(scc_stats::useless_scc_map): New field.
|
||
* src/tgbaalgos/scc.cc (scc_map::build_map): Mark SCCs that are
|
||
not trivial.
|
||
(scc_map::accepting): Always return false for trivial SCC.
|
||
(build_scc_stats): Fill in useless_scc_map.
|
||
|
||
2009-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make it easy to filter states while iterating over an automaton.
|
||
|
||
* src/tgbaalgos/reachiter.hh (tgba_reachable_iterator::want_state):
|
||
New method.
|
||
* src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::want_state):
|
||
Implement it.
|
||
(tgba_reachable_iterator::run): Call want_state before processing
|
||
a state.
|
||
|
||
2009-11-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/cutscc.cc (cut_scc): Pass `s' by reference instead
|
||
of by pointer.
|
||
* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh: Fix copyright
|
||
header.
|
||
|
||
2009-11-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Replace the hash key construction of LTL formulae by a simple
|
||
counter updated each time we create a new (unique) formula.
|
||
|
||
Doing so saves a lot of memory during the translation of the
|
||
ltlcounter formulae, because the formulae are quite big and
|
||
storing a string representation of each formula on its node was a
|
||
bad idea. For instance with n=12, the translation now uses 40MB
|
||
where it used 290MB. (Note: in both cases, 20MB is being used by
|
||
the BDD cache.)
|
||
|
||
* src/ltlast/formula.hh (hash_key_): Rename as ...
|
||
(count_): ... this.
|
||
(hash): Adjust.
|
||
(max_count): New static variable to count the number of
|
||
formulae created.
|
||
(formula): Update max_count and set count_.
|
||
(dump): Make it a virtual pure method.
|
||
(set_key_): Remove.
|
||
(formula_ptr_less_than): Speed up and return false when
|
||
the two formula pointer are equal.
|
||
* src/ltlast/formula.cc (set_key_, dump): Remove.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/automatop.cc, src/ltlast/automatop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/multop.cc,
|
||
src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
|
||
Empty the constructor (do not precompute the dump_ anymore),
|
||
and add a dump() implementation.
|
||
|
||
2009-11-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use -l wherever we where expecting ltl2tgba to default to LaCIM.
|
||
|
||
* bench/ltl2tgba/algorithms: Use -l for all LaCIM invocations.
|
||
* src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
|
||
src/tgbatest/spotlbtt.test: Likewise.
|
||
|
||
2009-11-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cleanup the help of ltl2tgba.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Reorganize the help text, so
|
||
that we can find options without resorting to grep... Also
|
||
cleanup the program name if it is a libtool wrapper.
|
||
|
||
2009-11-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (-l): New option to select the lacim
|
||
translation. It still is the default translation.
|
||
(opt_fm, opt_taa): Replace these two variables by ...
|
||
(translation): ... this enum. And use a switch to call the
|
||
correct translation.
|
||
|
||
2009-11-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove python bindings for ltl::clone and ltl::destroy.
|
||
|
||
* wrap/python/spot.i: Do not include clone.hh and destroy.hh.
|
||
|
||
2009-11-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Typo from a previous patch.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix a typo
|
||
introduced three patches ago in the handling of unobserved events.
|
||
|
||
2009-11-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not comment states in the never claim by default. It takes too
|
||
much time when the formula is large, and it is useless when the
|
||
purpose is model-checking with Spin.
|
||
|
||
* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Add the
|
||
comments option.
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs,
|
||
never_claim_reachable): Honor the comment option.
|
||
* src/tgba/tests/ltl2tgba.cc (-N): Do not comment states.
|
||
(-NN) New option to output a commented never claim.
|
||
|
||
2009-11-10 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgba/taa.cc, src/tgba/taa.hh: Fix it.
|
||
* src/tgbaalgos/ltl2taa.cc: Do NOT use the same bdd_dict for both
|
||
the translation and the language containment checker.
|
||
* src/tgbatest/spotlbtt.test: Update TAA related tests.
|
||
|
||
2009-11-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use tgba_explicit_formula instead of tgba_explicit_string in FM.
|
||
|
||
This gives a nice speedup (>1.4) in the ltlcounter benchmark,
|
||
because we no longer have to generate a copy the string
|
||
representations of the LTL formulae.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Adjust. Also get rid of the
|
||
formulae_seen map, since we can now ask the tgba_explicit_formula
|
||
if it knows the state.
|
||
|
||
2009-11-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Ease debugging of LTL formulae leaks.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Dump all LTLinstances with their
|
||
reference count.
|
||
|
||
2009-11-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduce tgba_explicit_labelled<label> so that we can build
|
||
tgba_explicit instances labelled by other objects than strings.
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
|
||
Split tgba_explicit in two levels: tgba_explicit with unlabelled
|
||
states, and tgba_explicit_labelled templated by the type of
|
||
the label. Define tgba_explicit_string (with the interface
|
||
of the former tgba_explicit class) and tgba_explicit_formula
|
||
for future use in ltl2tgba.cc.
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
|
||
src/tgbaalgos/cutscc.cc, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
|
||
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
|
||
src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc: Adjust to
|
||
use tgba_explicit_string when appropriate.
|
||
|
||
2009-11-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not use the Boost macro from the Autoconf macro archive.
|
||
|
||
* m4/boost.m4: Rewrite like I already did in Vaucanson.
|
||
|
||
2009-11-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltlcounter.test (run): Do not run with n=12, as
|
||
the test case might become too slow for the autobuilder.
|
||
|
||
2009-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add a benchmark using Kristin Y. Rozier's LTLcounter scripts.
|
||
|
||
* bench/ltlcounter/README, bench/ltlcounter/run,
|
||
bench/ltlcounter/plot.gnu, bench/ltlcounter/defs.in,
|
||
bench/ltlcounter/Makefile.am: New files.
|
||
* bench/Makefile.am (SUBDIRS): Add ltlcounter.
|
||
* configure.ac (AC_CONFIG_FILES): Adjust.
|
||
* THANKS: Add her.
|
||
|
||
2009-11-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use a timer to clock the different phases of the translation.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add option -T.
|
||
|
||
2009-11-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Deprecate ltl::destroy(f) in favor of f->destroy()
|
||
|
||
* src/ltlast/formula.cc, src/ltlast/formula.hh (formula::clone):
|
||
Transform this static function into a member function.
|
||
* src/ltlvisit/destroy.hh (destroy): Document and declare as
|
||
deprecated.
|
||
* bench/split-product/cutscc.cc, iface/gspn/ltlgspn.cc,
|
||
src/eltlparse/eltlparse.yy, src/eltltest/acc.cc,
|
||
src/evtgbaalgos/tgba2evtgba.cc, src/evtgbatest/ltl2evtgba.cc,
|
||
src/ltlast/automatop.cc, src/ltlast/binop.cc,
|
||
src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
|
||
src/ltlenv/declenv.hh, src/ltlparse/ltlparse.yy,
|
||
src/ltltest/equals.cc, src/ltltest/randltl.cc,
|
||
src/ltltest/readltl.cc, src/ltltest/reduc.cc,
|
||
src/ltltest/syntimpl.cc, src/ltltest/tostring.cc,
|
||
src/ltlvisit/destroy.cc src/ltlvisit/basicreduce.cc,
|
||
src/ltlvisit/contain.cc, src/ltlvisit/reduce.cc,
|
||
src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
|
||
src/tgba/bddprint.cc, src/tgba/taa.cc,
|
||
src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbafromfile.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
|
||
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
|
||
src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
|
||
src/tgbatest/complementation.cc, src/tgbatest/eltl2tgba.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/randtgba.cc,
|
||
src/tgbatest/reductgba.cc, wrap/python/cgi/ltl2tgba.in,
|
||
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
|
||
wrap/python/tests/ltlsimple.py: Adjust destroy() usage, and remove
|
||
the #include "destroy.hh" when appropriate.
|
||
|
||
2009-11-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Deprecate ltl::clone(f) in favor of f->clone().
|
||
|
||
* src/ltlvisit/clone.hh (clone): Document and declare as deprecated.
|
||
* src/ltlast/formula_tree.cc, src/ltlvisit/basicreduce.cc,
|
||
src/ltlvisit/clone.cc, src/ltlvisit/contain.cc,
|
||
src/ltlvisit/lunabbrev.cc, src/ltlvisit/reduce.cc,
|
||
src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
|
||
src/tgba/formula2bdd.cc, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbatest/complementation.cc, wrap/python/tests/ltlsimple.py:
|
||
Adjust clone() usage, and remove the #include "clone.hh" when
|
||
appropriate.
|
||
|
||
2009-11-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make it possible to clone const formulae.
|
||
|
||
* src/ltlast/formula.hh, src/ltlast/formula.cc (clone): Declare
|
||
as const.
|
||
|
||
2009-11-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rename formula::ref and formula::unref as formula::clone
|
||
and formula::destroy.
|
||
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
|
||
src/ltlast/binop.cc, src/ltlast/formula.hh, src/ltlast/formula.cc,
|
||
src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
|
||
src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
|
||
src/ltlvisit/destroy.cc, src/ltlvisit/nenoform.cc,
|
||
src/ltlvisit/randomltl.cc, src/ltlvisit/reduce.cc,
|
||
src/tgbatest/randtgba.cc: Adjust.
|
||
|
||
2009-11-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Change the way references are counted to speedup cloning.
|
||
|
||
Before this patch, every time you cloned a formula, the clone
|
||
visitor would recurse into the entire AST to increment the
|
||
reference count of all nodes. When running ltl2tgba_fm on
|
||
the formula generated by "LTLcounterLinear.pl 8", approx 27% of
|
||
the time was spent in the clone visitor.
|
||
|
||
After this patch, cloning a formula is just an increment of the
|
||
reference count of the top node. Children are decremented only
|
||
when the top node's ref count is decremented to zero. With this
|
||
change, clone() and destroy() become constant time, the
|
||
ltl2tgba_fm spend only 0.01% of the time cloning formulae.
|
||
|
||
|
||
* src/ltlast/automatop.cc (~automatop): Decrement children.
|
||
(instance): Decrement children if the instance already exists.
|
||
* src/ltlast/binop.cc, src/ltlast/multop.cc, src/ltlast/unop.cc:
|
||
Likewise.
|
||
* src/ltlvisit/clone.cc (clone): Simplify, now we only need to
|
||
call ref().
|
||
* src/ltlvisit/destroy.cc (destroy): Simplify, now we only need
|
||
to call unref().
|
||
(destroy_visitor): Remove, no longer needed.
|
||
|
||
2009-11-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make it easier to debug reference counts in LTL nodes.
|
||
|
||
* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/multop.cc,
|
||
src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
|
||
Add a dump_instance() static method to all class.
|
||
* src/ltltest/readltl.cc: Add option -r to dump all instances
|
||
with their reference count, after parsing and after deletion.
|
||
|
||
2009-11-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Better types for instance maps.
|
||
|
||
* src/ltlast/unop.hh (map): Use unop* as values.
|
||
* src/ltlast/binop.hh (map): Use binop* as values.
|
||
* src/ltlast/multop.hh (map): Use multop* as values.
|
||
* src/ltlast/automatop.hh (paircmp): Rename as tripletcmp.
|
||
(map): Use automaton* as values, not formula*.
|
||
|
||
2009-11-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add missing instance_count() in automatop and eltl2tgba.
|
||
|
||
* src/ltlast/automatop.hh, src/ltlast/automatop.cc: Add missing
|
||
instance_count() functions.
|
||
* src/tgbatests/eltl2tgba.cc: Add missing instance_count()
|
||
assertions at the end.
|
||
* src/tgbatests/ltl2tgba.cc: Also call automatop::instance_count(),
|
||
even if automatop are not used in ltl2tgba yet. This way we won't
|
||
forget once eltl2tgba and ltl2tgba are merged.
|
||
|
||
2009-11-07 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgba/taa.cc, src/tgbatest/taa.cc: Adjust.
|
||
|
||
2009-11-07 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/tgba/taa.cc, src/tgba/taa.hh: Speed up the cartesian product
|
||
in taa_succ_iterator and allow multiple initial states in taa.
|
||
* src/tgba/ltl2taa.cc: Remove temporary printing.
|
||
|
||
2009-11-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix ltlcounter.test for VPATH builds and n > 2.
|
||
|
||
* src/tgbatest/defs.in (srcdir): Adjust from VPATH builds.
|
||
* src/tgbatest/ltlcounter.test (lcdir): Adjust definition to
|
||
new value of $srcdir.
|
||
(run): Fix setting of $run after $n = 2. Using run=: would in
|
||
fact disable all the big tests...
|
||
|
||
2009-11-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltlcounter.test (run): Only construct small
|
||
formulae (i.e. n<=2) under valgrind. The test case is too
|
||
slow otherwise.
|
||
|
||
2009-11-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix spurious failure of style.test.
|
||
|
||
* src/sanity/style.test: Make sure sh does not abort when read
|
||
exits with false.
|
||
|
||
2009-11-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a longstanding bug reported by Kristin Y. Rozier.
|
||
|
||
* src/ltlast/formula.hh (formula_ptr_less_than::operator()):
|
||
Fix a typo where `l' was typed as `1'.
|
||
* src/tgbatest/ltlcounter/: New files from Kristin Y. Rozier.
|
||
* src/tgbatest/ltlcounter.test: New
|
||
* src/tgbatest/Makefile.am (TESTS): Add ltlcounter.test.
|
||
(EXTRA_DIST): Add files in ltlcounter/.
|
||
|
||
2009-11-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix the help text of ltl2tgba.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Add missing std::endl
|
||
before -taa. Remove -r8 and -fr8, since they do not exist.
|
||
|
||
2009-10-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc (state_complement): Remove the copy
|
||
constructor. It does the same thing as the default copy
|
||
constructor, and g++ 4.2.3 complained that the copy constructor
|
||
of spot::state was not called. Reported by Denis Poitrenaud.
|
||
|
||
2009-10-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlast/formula_tree.cc (instanciate, arity): Add a useless
|
||
return 0 at the end to prevent g++ 4.2.3 from complaining about
|
||
a missing return. Reported by Denis Poitrenaud.
|
||
|
||
2009-10-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/kv.test: Don't run valgrind on dot!
|
||
|
||
2009-10-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Escape labels in -KV output.
|
||
|
||
* src/tgbaalgos/scc.cc (dump_scc_dot): Escape labels and other
|
||
strings output between quote in dot.
|
||
* src/tgbatest/kv.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS): Add it.
|
||
|
||
2009-10-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Typos.
|
||
|
||
2009-10-22 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Improve ltl_to_taa.
|
||
|
||
* src/tgba/taa.cc, src/tgba/taa.hh: taa_succ_iterator is not
|
||
on-the-fly anymore allowing some redundant transitions to be
|
||
removed. Also a new function to output a TAA.
|
||
* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: Add the
|
||
refined rules from Tauriainen.
|
||
* src/tgbatest/ltl2tgba.cc: Use -c to activate refined rules in
|
||
ltl_to_taa.
|
||
* src/tgbatest/spotlbtt.test: More tests.
|
||
|
||
2009-10-17 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Fix make check in sanity.
|
||
|
||
* src/tgba/taa.cc, src/tgbaalgos/ltl2taa.cc: Fix style.
|
||
|
||
2009-10-16 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Minor fixes.
|
||
|
||
* src/misc/bddop.hh, src/tgba/taa.hh, src/tgbaalgos/ltl2taa.hh:
|
||
Fix sanity (incorrect include guard).
|
||
* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh:
|
||
Copyright 2009.
|
||
* src/tgbaalgos/eltl2tgba_lacim.cc: Use abbreviations.
|
||
* src/tgbatest/taa.cc: Fix it.
|
||
|
||
2009-10-16 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Add a new algorithm (from Tauriainen) to translate LTL formulae to
|
||
TGBA which uses TAA as an intermediate representation. This is a
|
||
basic version, optimizations and enhancements will come later.
|
||
|
||
* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: The algortihm.
|
||
* src/tgbaalgos/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: New option: -taa, which uses this new
|
||
translation algorithm.
|
||
* src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.
|
||
|
||
2009-10-04 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Add a class to represent Transition-based Alternating Automata (TAA).
|
||
|
||
* misc/Makefile.am, misc/bbop.cc, misc/bddop.hh: Factorize some
|
||
code on BDDs to compute all_acceptance_conditions from
|
||
neg_acceptance_condition.
|
||
* src/tgba/Makefile.am, src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgba/taa.cc, src/tgba/taa.hh: The TAA class.
|
||
* src/tgba/tgbaexplicit.hh: Use the factorized code in bddop.hh.
|
||
* src/tgbatest/taa.cc, src/tgbatest/taa.test: Some test cases.
|
||
|
||
2009-10-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* AUTHORS: Add Damien Lefortier, Guillaume Sadegh, and F<>lix
|
||
Abecassis.
|
||
|
||
2009-10-01 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
The sgba proxy adds an acceptance condition to every states when
|
||
the original automaton has no acceptance condition.
|
||
|
||
* src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh: New option:
|
||
when the original automaton has no accepting condition, it
|
||
explicitly considers that every state is accepting.
|
||
|
||
2009-09-30 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc: Move functions related to
|
||
shared_ptr on states...
|
||
* src/tgba/state.hh: ... here.
|
||
* src/tgbatest/complementation.test: Do not apply some tests on
|
||
the new algorithm because it takes to much time to run.
|
||
|
||
2009-09-29 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
A new complementation construction based on ranking.
|
||
|
||
* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh: The
|
||
construction.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/complementation.cc: Add options to support this
|
||
construction in addition to Safra construction.
|
||
* src/tgba/Makefile.am: Adjust.
|
||
* src/tgbatest/complementation.test: Adjust to test also this
|
||
complementation.
|
||
|
||
2009-09-29 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/ltltest/randltl.cc, src/ltltest/reduc.test,
|
||
src/tgbatest/dfs.test: Adjust headers to 80 columns.
|
||
|
||
2009-09-24 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
A wrapper around tgba to produce state-labeled automata.
|
||
|
||
* src/tgba/tgbasgba.hh, src/tgba/tgbasgba.hh: Here.
|
||
* src/tgbatest/ltl2tgba.cc: New option `-lS' for state-labeled
|
||
automata.
|
||
* src/tgba/Makefile.am: Adjust and sort files in tgba_HEADERS
|
||
and libtgba_la_SOURCES.
|
||
|
||
2009-09-21 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Rename files related to Safra complementation.
|
||
|
||
* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh: Rename
|
||
as...
|
||
* src/tgba/tgbasafracomplement.cc,
|
||
src/tgba/tgbasafracomplement.hh: ... these, and adjust class name.
|
||
* src/tgba/Makefile.am, src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/complementation.cc: Adjust.
|
||
|
||
2009-09-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix previous patch.
|
||
|
||
* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): Also take the
|
||
label of the outgoing edges into account.
|
||
|
||
2009-09-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Optimize previous patch.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::scc::supp_rec): Initialize to
|
||
bddfalse, since this cannot occur in reallife.
|
||
* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): Adjust.
|
||
|
||
2009-09-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Have scc_map keep track of APs that are reachable from a SCC.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::scc): Add a supp_rec member to
|
||
hold reachable APs.
|
||
* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): New function,
|
||
to update supp_rec.
|
||
(scc_map::build_map): Call it.
|
||
(scc_map::aprec_set_of): New function.
|
||
(dump_scc_dot): Show the output of aprec_set_of().
|
||
|
||
2009-09-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Have scc_map keep track of APs that are occurring in a SCC.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::scc): Add a supp member to hold APs.
|
||
* src/tgbaalgos/scc.cc (scc_map::build_map): Update supp.
|
||
(scc_map::ap_set_of): New function.
|
||
(dump_scc_dot): Show the output of ap_set_of().
|
||
|
||
2009-09-07 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Fix some memory leaks.
|
||
|
||
* src/eltlparse/eltlparse.yy: Free the automatop::vec when
|
||
CHECK_ARITY fails while parsing an automatop.
|
||
* src/eltltest/acc.cc: Free all constructed formulae.
|
||
|
||
2009-09-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a memory leak in reduce_tau03().
|
||
|
||
* src/ltlvisit/contain.cc (reduce_tau03_visitor::visit): Free
|
||
the operand array when a multop reduces to a constant.
|
||
|
||
2009-09-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a memory leak in randltl.
|
||
|
||
* src/ltltest/randltl.cc: Free the atomic properties from AP
|
||
before exit.
|
||
|
||
2009-09-04 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Add an algorithm (from Couvreur) working on BDDs to reduce the
|
||
size of TGBAs represented as BDDs by deleting unaccepting SCCs.
|
||
|
||
* src/eltlparse/eltlparse.yy: Remove a warning.
|
||
* src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh: Add a
|
||
new function delete_unaccepting_scc in both classes.
|
||
* src/tgbatest/eltl2tgba.cc, src/tgbatest/spotlbtt.test: Use this
|
||
new function in LaCIM for ELTL and bench it.
|
||
* src/tgbatest/defs.in: Fix it.
|
||
* bench/ltl2tgba/algorithms, bench/ltl2tgba/defs.in: Add LaCIM for
|
||
ELTL in benchs.
|
||
|
||
2009-09-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix path to libtool in test suites.
|
||
|
||
* src/ltltest/defs.in, src/eltltest/defs.in, src/tgbatest/defs.in,
|
||
src/evtgbatest/defs.in (run): Use ../../../libtool instead of
|
||
../../libtool, now that testcases have been moved down one directory.
|
||
|
||
2009-08-31 Alexandre Duret-Lutz <adl@va-et-vient.net>
|
||
|
||
Use Automake 1.11's parallel-tests feature.
|
||
|
||
* configure.ac: Enable parallel-tests.
|
||
* src/eltltest/defs.in, src/evtgbatest/defs.in,
|
||
src/ltltest/defs.in, src/tgbatest/defs.in: Always output verbose
|
||
tests. Make a subdirectory for each test case.
|
||
* src/ltltest/Makefile.am, src/eltltest/Makefile.am,
|
||
src/tgbatest/Makefile.am, src/evtgbatest/Makefile.am: Remove
|
||
CLEANFILES and clean the test subdirectories in a distclean-local
|
||
rule instead.
|
||
* src/eltltest/acc.test, src/eltltest/nfa.test,
|
||
src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.test,
|
||
src/evtgbatest/product.test, src/evtgbatest/readsave.test,
|
||
src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parse.test,
|
||
src/ltltest/parseerr.test, src/ltltest/reduc.test,
|
||
src/ltltest/reduccmp.test, src/ltltest/syntimpl.test,
|
||
src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
|
||
src/ltltest/tunenoform.test, src/tgbatest/bddprod.test,
|
||
src/tgbatest/complementation.test, src/tgbatest/dfs.test,
|
||
src/tgbatest/dupexp.test, src/tgbatest/eltl2tgba.test,
|
||
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
|
||
src/tgbatest/emptchkr.test, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.test,
|
||
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
|
||
src/tgbatest/readsave.test, src/tgbatest/reduccmp.test,
|
||
src/tgbatest/reductgba.test, src/tgbatest/scc.test,
|
||
src/tgbatest/spotlbtt.test, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.test: Adjust to run from a subdirectory.
|
||
|
||
2009-08-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac: Switch to Automake 1.11 and enable color-tests.
|
||
|
||
2009-08-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac: Switch from Libtool 1.5.x to Libtool 2.x, and
|
||
add an AC_CONFIG_MACRO_DIR call.
|
||
* m4/libtool.m4, tools/ltmain.sh: Remove.
|
||
|
||
2009-07-30 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Add TGBA union implementation.
|
||
|
||
* src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh: New files.
|
||
Union of two TGBAs.
|
||
* src/tgba/Makefile.am: Adjust.
|
||
|
||
2009-07-09 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* m4/intel.m4: Fix to support the cache.
|
||
|
||
2009-07-08 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc: Stay on 80 columns.
|
||
|
||
2009-07-08 F<>lix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Add 2 benchmarks directories.
|
||
Add an algorithm to split an automaton in several automata.
|
||
|
||
* bench/scc-stats: New directory. Contains input files and test
|
||
program for computing statistics.
|
||
* bench/split-product: New directory. Contains test program for
|
||
synchronised product on splitted automata.
|
||
* bench/split-product/models: New directory. Contains Promela
|
||
files, and LTL formulae that should be verified by the models.
|
||
* src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh:
|
||
New files. Small class to avoid long initializations with numerous
|
||
constants when translating to TGBA many LTL formulae from a
|
||
given file.
|
||
* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh:
|
||
New file. From a single automaton, create, at most,
|
||
X sub automata.
|
||
* src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh:
|
||
Adjust to compute self-loops count.
|
||
|
||
2009-07-07 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc: Fix the transformation from
|
||
Streett to TGBA.
|
||
* src/tgbatest/complementation.test: Modify tests.
|
||
|
||
2009-06-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/emptchk/pml2tgba.pl: Adjust to work with Spin 5.2.0.
|
||
|
||
2009-06-12 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Adjust the build system for ICC.
|
||
|
||
* m4/intel.m4: Remove the `-W' option from CXXFLAGS since icpc
|
||
does not support it. Inhibit the warning ``method was declared
|
||
but never referenced''.
|
||
|
||
2009-06-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Kill a g++-4.2 warning.
|
||
|
||
* src/tgba/tgbacomplement.cc (state_complement::state_complement)
|
||
explicitly initialize the base class spot::state.
|
||
|
||
2009-06-10 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
During the complementation, transform the auxiliary Streett
|
||
automaton into a TGBA instead of a TBA.
|
||
|
||
* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc:
|
||
Adjust the transformation from Streett to B<>chi to support
|
||
generalized acceptance conditions.
|
||
* src/tgbatest/complementation.cc: Improve output messages.
|
||
* src/tgbatest/complementation.test: New tests.
|
||
|
||
2009-06-09 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc, src/tgbatest/complementation.cc:
|
||
Fix style.
|
||
|
||
2009-06-07 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbacomplement.cc (state_complement::hash): Improve
|
||
the hash function.
|
||
|
||
2009-06-09 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/eltlparse/eltlparse.yy: Fix a memory leak.
|
||
* src/eltltest/nfa.cc: Adjust.
|
||
* src/tgbaalgos/eltl2tgba_lacim.cc: Fix a memory leak.
|
||
|
||
2009-06-05 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Remove generated files that git follows.
|
||
|
||
* INSTALL, lbtt/INSTALL, lbtt/doc/texinfo.tex: Do not track
|
||
anymore these generated files.
|
||
|
||
2009-06-05 Guillaume Sadegh <sadegh@lrde.epita.fr>
|
||
|
||
Add an algorithm to complement B<>chi automata.
|
||
|
||
* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: New
|
||
files. The complementation algorithm.
|
||
* src/tgba/Makefile.am: Adjust.
|
||
* src/tgbatest/complementation.test,
|
||
src/tgbatest/complementation.cc: New files. Test suite for the
|
||
complementation algorithm.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbaalgos/Makefile.am: Reformat the header using 80
|
||
columns.
|
||
|
||
2009-06-05 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Modify the ELTL parser to be able to support PSL operators. Add a
|
||
new keyword in the ELTL format: finish, which applies to an
|
||
automaton operator and tells whether it just completed.
|
||
|
||
* src/eltlparse/eltlparse.yy: Clean it. Add finish.
|
||
* src/eltlparse/eltlscan.ll: Add finish.
|
||
* src/formula_tree.cc, src/formula_tree.hh: New files. Define a
|
||
small AST representing formulae where atomic props are unknown
|
||
which is used in the ELTL parser.
|
||
* src/ltlast/automatop.cc, ltlast/automatop.hh, ltlast/nfa.cc,
|
||
ltlast/nfa.hh: Adjust.
|
||
* src/ltlast/unop.cc, src/ltlast/unop.hh: Finish is an unop.
|
||
* src/ltlvisit/basicreduce.cc, src/ltlvisit/nenoform.cc,
|
||
src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
|
||
src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc,
|
||
src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbaalgos/ltl2tgba_lacim.cc: Handle finish in switches.
|
||
* src/tgbaalgos/eltl2tgba_lacim.cc: Translate finish.
|
||
* src/tgbatest/eltl2tgba.test: More tests.
|
||
|
||
2009-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/scc.test: Redirect stdout into file `stdout'
|
||
instead of `out', to conform to other tests, and add a missing
|
||
call to diff.
|
||
|
||
2009-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduce some experimental kripke classes to simplify writing
|
||
interfaces.
|
||
|
||
* src/kripke/Makefile.am, src/kripke/fairkripke.cc,
|
||
src/kripke/fairkripke.hh, src/kripke/kripke.cc,
|
||
src/kripke/kripke.hh: New files.
|
||
* src/Makefile.am: Recurse into kripke and link libkripke.la.
|
||
* configure.ac: Output src/kripke/Makefile.
|
||
|
||
2009-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/scc.test: New file.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbaalgos/scc.hh: More documentation.
|
||
* src/tgbaalgos/scc.cc (scc_recurse): Fix computation of
|
||
acc_paths and dead_paths. Prevent recursions in states that
|
||
have already been visited.
|
||
|
||
2009-05-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Lift the SCC computation off future_condition_collectors, into
|
||
a new tgba_scc class.
|
||
|
||
* src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh: Move
|
||
all delegation functions and scc_map into ...
|
||
* src/tgba/tgbascc.cc, src/tgba/tgbascc.hh: ... these new files.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Test "ltl2tgba -FC" and plug the memory leaks of scc_map.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::~scc_map): Declare it.
|
||
* src/tgbaalgos/scc.cc (scc_map::~scc_map): Implement it.
|
||
(scc_map::build_map): Delete duplicate states.
|
||
* src/tbbatest/ltl2tgba.test: Run ltl2tgba -FV to catch
|
||
memory leaks with valgrind.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Implement spot::future_conditions_collector.
|
||
|
||
* src/tgba/futurecondcol.hh, src/tgba/futurecondcol.cc:
|
||
New files.
|
||
* src/tgba/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -FC.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.cc (dump_scc_dot): Use a bit vector instead of
|
||
a map to track visited SCC since they are sequentially numbered.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Number states using negative values and SCCs using nonnegative
|
||
values.
|
||
|
||
Before this change states were numbered using positive values and
|
||
SCCs using negative values. That meant the user had to work with
|
||
negative values. With this changes, the nonnegative values used
|
||
to label SCCs can also directly be used as index in the scc_map_.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::scc_of_state,
|
||
scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of,
|
||
scc_map::initial, scc_map::scc_type, scc_map::succ,
|
||
scc_map::accepting): Adjust prototypes to take or return unsigned
|
||
arguments.
|
||
* src/tgbaalgos/scc.cc: Adjust prototypes of the above functions.
|
||
(scc_map::build_map, scc_map::relabel_component): Number states
|
||
using negative values, and SCCs using nonnegative values.
|
||
(dump_scc_dot): Adjust to use nonnegative values.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Store the scc_map_ as a vector instead of a std::map. There is no
|
||
point in using a map since the SCC are numbered in sequence.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::relabel_component): Return the
|
||
number of the SCC instead of taking it as argument.
|
||
(scc_map::scc_num_): Delete this variable. scc_map_.size() gives
|
||
the same information.
|
||
(scc_map::scc_map_type): Define using std::vector instead of
|
||
std::map.
|
||
* src/tgbaalgos/scc.cc: Adjust all uses.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Keep track of conditions in SCC, and add a more verbose dump.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_map::scc_of_state,
|
||
scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
|
||
New functions.
|
||
(scc_map::scc::conds): New attribute.
|
||
(dump_scc_dot): Take an optional VERBOSE argument.
|
||
* src/tgbaalgos/scc.cc (scc_map::scc_of_state,
|
||
scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
|
||
Implement these new functions.
|
||
(dump_scc_dot): Display number of states, conditions and
|
||
acceptance conditions, with VERBOSE is set.
|
||
(build_map): Fill the new scc_map::scc::cond field.
|
||
|
||
2009-05-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.cc (scc_map::relabel_component): Make sure
|
||
that the old label of each state is strictly positive. The
|
||
previous assertion (inherited from gtec) of "!= -1" is wrong,
|
||
because all negative values are now used to number SCCs.
|
||
|
||
2009-05-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgba.hh (format_state): s/automata who/automata that/.
|
||
* src/evtgba/evtgba.hh (format_state): Likewise.
|
||
* src/evtgba/product.hh (format_state): Likewise.
|
||
|
||
2009-04-18 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Extend the ELTL parser to support more complex aliases of
|
||
automaton operators such as Strong=G(F($0))->G(F($1)) and
|
||
G=R(false, $0).
|
||
|
||
* src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
|
||
support for more complex aliases.
|
||
* src/eltltest/acc.cc, src/eltltest/acc.test: Adjust.
|
||
* src/ltlast/nfa.cc, src/ltlast/nfa.hh (arity): Now returns an
|
||
unsigned value.
|
||
* src/tgbatest/eltl2tgba.test: Adjust.
|
||
* src/tgbalagos/eltl2tgba_lacim.cc: Fix sanity.
|
||
|
||
2009-04-09 Guillaume SADEGH <sadegh@lrde.epita.fr>
|
||
|
||
Minor fixes to compile with GCC 4.4.
|
||
|
||
* src/eltlparse/eltlparse.yy (subformula): Avoid a comparaison
|
||
between a signed and an unsigned value.
|
||
* src/ltlast/automatop.hh, src/ltlast/automatop.cc (nfa): Avoid
|
||
a name clash with the `nfa' class.
|
||
|
||
2009-04-08 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Correct LaCIM for ELTL and make it work with LBTT.
|
||
|
||
* src/eltlparse/eltlparse.yy: Adjust.
|
||
* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
|
||
src/ltlvisit/clone.cc, src/ltlvisit/nenoform.cc: Clean the way we
|
||
handle the negation of automaton operators.
|
||
* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh: Add an
|
||
optional argument to output a fully parenthesized string.
|
||
* src/tgbaalgos/eltl2tgba_lacim.cc: Fix it.
|
||
* src/tgbatest/eltl2tgba.cc: Add a new option (-L) to read formulae
|
||
from an LBTT-compatible file.
|
||
* src/tgbatest/eltl2tgba.test: A new tests.
|
||
* src/tgbatest/spotlbtt.test: Add LaCIM for ELTL.
|
||
|
||
2009-04-04 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Extend the ELTL parser to support basic aliases of automaton
|
||
operators such as F=U(true,$0) or R=!U(!$0,!$1), and infix
|
||
notation for binary automaton operators.
|
||
|
||
* README: Document the ELTL directories.
|
||
* src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
|
||
support for aliases and infix notation.
|
||
* src/eltlparse/public.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh:
|
||
Clean them.
|
||
* src/eltltest/acc.test, src/tgbatest/eltl2tgba.test: Add tests
|
||
for the ELTL parser's extensions.
|
||
* src/tgbatest/eltl2tgba.cc: Adjust.
|
||
|
||
2009-03-26 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
Add support for ELTL (AST & parser), and an adaptation of LaCIM
|
||
for ELTL.
|
||
|
||
* configure.ac: Adjust for src/eltlparse/ and src/eltltest/
|
||
directories, and call AX_BOOST_BASE.
|
||
* m4/boost.m4: New file defining AX_BOOST_BASE([MINIMUM-VERSION]).
|
||
* src/Makefile.am: Add eltlparse and eltltest.
|
||
* src/eltlparse/: New directory. Contains the ELTL parser.
|
||
* src/eltltest/: New directory. Contains tests related to
|
||
ELTL (parser and AST).
|
||
* src/ltlast/Makefile.am: Adjust for ELTL AST files.
|
||
* src/ltlast/automatop.cc, src/ltlast/automatop.hh: New files.
|
||
Represent automaton operators nodes used in ELTL ASTs.
|
||
* src/ltlast/nfa.cc, src/ltlast/nfa.hh: New files. Represent
|
||
simple NFAs used internally by automatop nodes.
|
||
* src/ltlast/allnode.hh, src/ltlast/predecl.hh,
|
||
src/ltlast/visitor.hh: Adjust for automatop.
|
||
* src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
|
||
src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/nenoform.cc,
|
||
src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
|
||
src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
|
||
src/ltlvisit/tostring.cc: Because LTL and ELTL formulae share the
|
||
same class hierarchy, LTL visitors need to handle automatop nodes
|
||
to compile. When it's meaningful the visitor applies on automatop
|
||
nodes or simply assert(0) otherwise.
|
||
* src/tgba/tgbabddconcretefactory.cc (create_anonymous_state),
|
||
src/tgba/tgbabddconcretefactory.hh (create_anonymous_state): New
|
||
function used by the LaCIM translation algorithm for ELTL.
|
||
* src/tgbaalgos/Makefile.am: Adjust for eltl2tgba_lacim* files.
|
||
* src/tgbaalgos/eltl2tgba_lacim.cc,
|
||
src/tgbaalgos/eltl2tgba_lacim.hh: New files. Implementation of
|
||
the LaCIM translation algorithm for ELTL.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
|
||
Handle automatop nodes in the translation by an assert(0).
|
||
* src/tgbatest/Makefile.am: Adjust for eltl2tgba.* files.
|
||
* src/src/tgbatest/eltl2tgba.cc, src/tgbatest/eltl2tgba.test: New
|
||
files.
|
||
|
||
2009-03-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/evtgbaparse/evtgbaparse.yy: Stay on 80 columns.
|
||
|
||
2009-03-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Update parsers to work with Bison 2.4.1.
|
||
|
||
* HACKING: Mention that we require Bison >= 2.4 for developers.
|
||
* src/evtgbaparse/evtgbaparse.yy, src/tgbaparse/tgbaparse.yy,
|
||
src/ltlparse/ltlparse.yy: The sections "%{ ... %}" should now be
|
||
renamed "%code requires { ... }" or "%code { ... }" depending on
|
||
whether they should end up in the parser's header file or its cc
|
||
file. Also use %language, %locations, %defines, instead of
|
||
command-line arguments.
|
||
* src/evtgbaparse/Makefile.am, src/tgbaparse/Makefile.am,
|
||
src/ltlparse/Makefile.am: Remove the --locations, --defines
|
||
and --languages in the call to bison. Add -Wall -Werror to
|
||
catch more errors.
|
||
Thanks to Akim Demaille <akim@lrde.epita.fr> for the help.
|
||
|
||
2009-03-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.hh: Add missing misc/hash.hh inclusion.
|
||
|
||
2009-02-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbaproduct.cc (tgba_succ_iterator_product::first):
|
||
Typo in comment.
|
||
|
||
2009-02-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgba.hh: Typos.
|
||
|
||
2009-02-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Typos.
|
||
|
||
2008-12-17 Guillaume SADEGH <sadegh@lrde.epita.fr>
|
||
Update to compile with GCC 4.4.0 (trunk).
|
||
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
|
||
Rename `state' as `local_state'.
|
||
|
||
2008-12-11 Guillaume SADEGH <sadegh@lrde.epita.fr>
|
||
|
||
Update to compile with the Intel compiler.
|
||
|
||
* m4/intel.m4: New file.
|
||
* configure.ac: Update.
|
||
* src/tgbaalgos/emptiness.cc (tgba_run): Modify s.s->clone() in
|
||
i->s->clone().
|
||
* src/misc/optionmap.hh, src/misc/optionmap.cc: Remove the extra
|
||
`;' after the namespace.
|
||
* src/tgbaalgos/tau03opt.cc
|
||
(tau03_opt_search::add_new_state): Remove unreferenced method.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc
|
||
(translate_dict::dump): Remove unreferenced method.
|
||
* src/tgbaalgos/lbtt.cc
|
||
(acceptance_cond_splitter::count): Remove unreferenced method.
|
||
* src/tgba/tgbabddconcreteproduct.cc
|
||
(tgba_bdd_product_factory::get_dict): Remove unreferenced method.
|
||
* src/ltlvisit/syntimpl.cc
|
||
(eventual_universal_visitor::recurse): Remove unreferenced method.
|
||
* src/tgbaalgos/reductgba_sim.cc: Reindent.
|
||
|
||
2008-12-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Compute more statistics about SCCs.
|
||
|
||
* src/tgbaalgos/scc.hh (scc_stats): Add new attributes:
|
||
acc_scc, dead_scc, acc_paths, dead_paths.
|
||
* src/tgbaalgos/scc.hh (scc_stats::dump): Display them.
|
||
(build_scc_stats): Compute them.
|
||
(scc_recurse_data, scc_recurse): New helper structure and function.
|
||
|
||
2008-12-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix tracking of SCCs on the search stack.
|
||
|
||
* src/tgbaalgos/scc.hh (scc::arc_): Rename as ...
|
||
(scc::arc_acc_): ... this.
|
||
(scc::arc_cond_): New attribute.
|
||
* src/tgbaalgos/scc.cc (build_map): Adjust and keep
|
||
track of transitions between SCCs on the search stack.
|
||
|
||
2008-12-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.hh, src/tgbaalgos/scc.cc: New files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/ltl2tgba.cc (-k): Also call build_scc_stats().
|
||
(-K): New option that dumps the SCCs for dot.
|
||
|
||
2008-12-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (-k): New option that calls
|
||
stats_reachable(a).dump().
|
||
* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh:
|
||
Add tgba_statistics::dump().
|
||
|
||
2008-08-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/tools/modelgen-create: Remove and fold into ...
|
||
* bench/gspn-ssp/tools/bench-create: ... this.
|
||
* bench/gspn-ssp/Makefile.am: Update.
|
||
* bench/gspn-ssp/bench.mk: Regen.
|
||
|
||
2008-08-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/tools/defs.in (TMPDIR): New variable.
|
||
* bench/gspn-ssp/tools/runbench: Use it.
|
||
|
||
2008-08-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/tools/sum: Fix the order of stats in -e4.
|
||
If the MAXLINES environment variable is defined, flush the page
|
||
as needed. Sort the models only once.
|
||
|
||
2008-08-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/README: New file.
|
||
* bench/gspn-ssp/Makefile.am (EXTRA_DIST): Distribute it.
|
||
|
||
2008-08-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/tools/sum: Output WCSsym* and WCSasym* on
|
||
separate lines. Canonize the names used as keys to that
|
||
WCSsymN appears always in the same column as WCSasymN. Read the
|
||
*.log files directly, we don't need the *.all files anymore.
|
||
* bench/gspn-ssp/tools/collate: Delete.
|
||
* bench/gspn-ssp/tools/Makefile.am: Adjust.
|
||
* bench/gspn-ssp/tools/bench-create: Do not output rules to
|
||
build *.all files.
|
||
|
||
2008-08-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Build the benchmark in bench/gspn-ssp/ using makefiles, so we
|
||
can run them easily in parallel using "make -j2".
|
||
|
||
* bench/gspn-ssp/bench: Remove, it is now replaced by Makefile rules.
|
||
* bench/gspn-ssp/benchaux: Remove, now implemented by...
|
||
* bench/gspn-ssp/tools/runbench, bench/gspn-ssp/tools/collate:
|
||
... these new files.
|
||
* bench/gspn-ssp/defs.in: Use absolute filenames.
|
||
* bench/gspn-ssp/gen: Remove, it is now replaced
|
||
by tools/modelgen-create.
|
||
* bench/gspn-ssp/sumall: Delete.
|
||
* bench/gspn-ssp/templates/WCSsym/gen,
|
||
bench/gspn-ssp/templates/bagrodia/gen,
|
||
bench/gspn-ssp/templates/common,
|
||
bench/gspn-ssp/templates/gen, bench/gspn-ssp/templates/predef/gen,
|
||
* bench/gspn-ssp/Makefile.am: Inlucde modelgen.mk, bench.mk, as
|
||
well as all the tools.
|
||
* bench/gspn-ssp/bench.mk, bench/gspn-ssp/modelgen.mk: New
|
||
files, generated by ...
|
||
* bench/gspn-ssp/tools/bench-create,
|
||
bench/gspn-ssp/tools/modelgen-create: ... these new files.
|
||
* bench/gspn-ssp/sum: Rename as ...
|
||
* bench/gspn-ssp/tools/sum: ... this, adjust for the new system,
|
||
and keep track of the inclusion count created by the previous patch.
|
||
|
||
2008-08-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/gspn/ssp.cc (numbered_state_heap_ssp_semi): Keep track
|
||
of the number of inclusions detected.
|
||
|
||
2008-08-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/Makefile.am, bench/gspn-ssp/trans2prop.pl: New files.
|
||
* bench/gspn-ssp/config: Rename as bench/gspn-ssp/defs.in.
|
||
* bench/Makefile.am (SUBDIRS): Add gspn-ssp.
|
||
* configure.ac: Output bench/gspn-ssp/Makefile and bench/gspn-ssp/defs.
|
||
* bench/gspn-ssp/bench: Include defs.
|
||
|
||
2008-08-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/gspn-ssp/: New directory. Contains some of the benches
|
||
used in baarir.06.tr03, baarir.07.acsd, and baarir.07.msr.
|
||
|
||
2008-08-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: New option: -e54.
|
||
* iface/gspn/ssp.hh, iface/gspn/ssp.cc: Add the
|
||
reversed_double_inclusion boolean for this.
|
||
|
||
2008-06-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/nips/nipstest/dotty.test,
|
||
iface/nips/nipstest/emptiness.test: Prefix bytecode filenames
|
||
with $srcdir so the tests work in VPATH builds.
|
||
|
||
2008-06-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/nips/dottynips.cc: Include ctsdlib for exit().
|
||
* iface/nips/emptiness_check.cc: Likewise.
|
||
|
||
* src/sanity/includes.test: Remove empty line at beginning of file.
|
||
|
||
2008-06-02 Guillaume SADEGH <sadegh@lrde.epita.fr>
|
||
|
||
Test suite for the NipsVM front-end.
|
||
|
||
* iface/nips/nipstest/Makefile.am, iface/nips/Makefile.am,
|
||
configure.ac, iface/nips/nipstest/emptiness.test,
|
||
iface/nips/nipstest/dotty.test: Test suite for the NipsVM
|
||
front-end.
|
||
* iface/nips/emptiness_check.cc, iface/nips/dottynips.cc: `catch'
|
||
don't throw anymore an exception, but exit with 1.
|
||
* iface/nips/common.cc, iface/nips/nips.cc (nips_interface):
|
||
Change messages of nips_exception.
|
||
|
||
2008-06-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/sanity/includes.test (INCDIR): Remove any trailing slash.
|
||
|
||
2008-06-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Install interfaces' headers in the spot/iface/ directory, not
|
||
directly in the spot/ directory.
|
||
|
||
* iface/gspn/Makefile.am (gspndir): Install in spot/iface/gspn/.
|
||
* iface/nips/Makefile.am (nipsdir): Install in spot/iface/nips/.
|
||
|
||
2008-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/nips/nips_vm/Makefile.am: Do not install NipsVM.
|
||
|
||
* iface/nips/Makefile.am (empt_check_LDADD, dottynips_LDADD):
|
||
Do not link libnipsvm.la here...
|
||
(libspotnips_la_LIBADD): ... do it here.
|
||
|
||
2008-05-29 Guillaume SADEGH <sadegh@lrde.epita.fr>
|
||
|
||
* iface/nips/nips.cc, iface/nips/nips.hh, iface/nips/common.cc,
|
||
iface/nips/common.hh, iface/nips/Makefile.am: TGBA implementation
|
||
with the NIPS library.
|
||
* iface/nips/emptiness_check.cc: Emptiness check on a Promela
|
||
interface.
|
||
* iface/nips/dottynips.cc: Dot printer on the NIPS interface.
|
||
* iface/nips/compile.sh: Add. Wrapper around nips compiler to
|
||
compile Promela to NIPS bytecode.
|
||
* iface/nips/nips_vm,iface/nips/nips_vm/bytecode.h,
|
||
iface/nips/nips_vm/ChangeLog, iface/nips/nips_vm/COPYING,
|
||
iface/nips/nips_vm/hashtab.c, iface/nips/nips_vm/hashtab.h,
|
||
iface/nips/nips_vm/INSTALL, iface/nips/nips_vm/instr.c,
|
||
iface/nips/nips_vm/instr.h, iface/nips/nips_vm/instr_step.c,
|
||
iface/nips/nips_vm/instr_step.h,
|
||
iface/nips/nips_vm/instr_tools.c,
|
||
iface/nips/nips_vm/instr_tools.h,
|
||
iface/nips/nips_vm/instr_wrap.c,
|
||
iface/nips/nips_vm/instr_wrap.h,
|
||
iface/nips/nips_vm/interactive.c,
|
||
iface/nips/nips_vm/interactive.h, iface/nips/nips_vm/main.c,
|
||
iface/nips/nips_vm/Makefile, iface/nips/nips_vm/Makefile.am,
|
||
iface/nips/nips_vm/nips_asm_help.pl,
|
||
iface/nips/nips_vm/nips_asm_instr.pl,
|
||
iface/nips/nips_vm/nips_asm.pl,
|
||
iface/nips/nips_vm/nips_disasm.pl, iface/nips/nips_vm/nipsvm.c,
|
||
iface/nips/nips_vm/nipsvm.h, iface/nips/nips_vm/README,
|
||
iface/nips/nips_vm/rt_err.c, iface/nips/nips_vm/rt_err.h,
|
||
iface/nips/nips_vm/search.c, iface/nips/nips_vm/search.h,
|
||
iface/nips/nips_vm/split.c, iface/nips/nips_vm/split.h,
|
||
iface/nips/nips_vm/state.c, iface/nips/nips_vm/state.h,
|
||
iface/nips/nips_vm/state_inline.h,
|
||
iface/nips/nips_vm/state_parts.c,
|
||
iface/nips/nips_vm/state_parts.h, iface/nips/nips_vm/timeval.h,
|
||
iface/nips/nips_vm/tools.h: NIPS VM added to the SPOT
|
||
distribution.
|
||
* configure.ac, iface/Makefile.am: Build system updated for the
|
||
NIPS front-end.
|
||
|
||
* src/Makefile.am (_.cc): Fix for `make tags`.
|
||
|
||
2008-04-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Kill some FIXMEs.
|
||
|
||
* src/ltlenv/environment.hh, src/ltlvisit/basicreduce.cc: Remove
|
||
useless FIXMEs.
|
||
* src/ltlvisit/reduce.cc (reduce_visitor::visit(binop)): Compute
|
||
syntactic implications only when needed.
|
||
* src/tgbaalgos/reductgba_sim_del.cc
|
||
(build_recurse_successor_spoiler): Remplace the FIXME by an assert.
|
||
* src/tgba/tgbareduc.cc: Reword some comments, discard old
|
||
commented code.
|
||
|
||
2008-03-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/evtgbaparse/Makefile.am (AM_CXXFLAGS): Remove -Werror
|
||
so we tolerate more flex versions.
|
||
* src/ltlparse/Makefile.am (AM_CXXFLAGS): Likewise.
|
||
* src/tgbaparse/Makefile.am (AM_CXXFLAGS): Likewise.
|
||
|
||
2008-03-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/hash.hh: Second thinko in #if/#else.
|
||
|
||
2008-03-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/hash.hh: Thinko in #if/#else.
|
||
|
||
2008-03-21 Damien Lefortier <dam@lrde.epita.fr>
|
||
|
||
* src/misc/freelist.hh: Avoid <iostream> in headers, better use <iosfwd>.
|
||
|
||
2008-03-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc, src/misc/hash.hh: Reformat the header
|
||
using 80 columns.
|
||
|
||
2008-03-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make sure Spot compiles with g++-4.3.
|
||
|
||
* src/ltlast/formula.hh (hash): Remove const from return type.
|
||
This kills a g++-4.3 warning.
|
||
* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
|
||
from TR1 when g++-4.3 is used.
|
||
* src/evtgba/product.cc, src/ltltest/randltl.cc,
|
||
src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
|
||
src/misc/freelist.hh, src/misc/optionmap.cc,
|
||
src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
|
||
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
|
||
src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
|
||
src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
|
||
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
|
||
src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
|
||
src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
|
||
src/evtgbatest/readsave.cc: Add missing includes.
|
||
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
|
||
src/tgbatest/emptchk.test: Cope with different outputs.
|
||
|
||
2008-03-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* doc/Doxyfile.in (LATEX_HIDE_INDICES): Do not generate indices
|
||
until Doxygen is fixed. Doxygen 1.5.5 generates incorrect LaTeX
|
||
code.
|
||
|
||
2008-02-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/reachiter.hh: Typos in comments.
|
||
|
||
2008-02-22 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbabddconcretefactory.hh (create_state):
|
||
Clarify comments.
|
||
|
||
2008-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::dump_queue):
|
||
Remove superfluous semicolon.
|
||
|
||
2008-01-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Add two
|
||
assert(). This patch has been lying in my tree since 2007-04-30.
|
||
|
||
2008-01-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
This is something Soheib and I worked on back in July, but a
|
||
intricate memory corruption bug prevented me to check the patch
|
||
in. It took me two days to realize why find_state() must do a
|
||
double loop over the candidates to check for equality before
|
||
checking for inclusion(s).
|
||
|
||
* iface/gspn/ltlgspn.cc: New options, -e45 and -n.
|
||
* iface/gspn/ssp.cc, iface/gspn/ssp.hh: Handle these.
|
||
* src/tgbaalgos/gtec/gtec.cc (TRACE): Add some debugging traces.
|
||
(couvreur99_check_shy::dump_queue): New function.
|
||
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::dump_queue):
|
||
New function.
|
||
|
||
2007-11-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Keep libtool's files under CVS so that we don't use the broken
|
||
Debian versions installed in build hosts during automatic builds.
|
||
|
||
* m4/libtool.m4: New file, from GNU Libtool 1.4.24.
|
||
* tools/ltmain.sh: New file, from GNU Libtool 1.4.24.
|
||
* HACKING: Installing Libtool is no longer required.
|
||
|
||
2007-11-22 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* m4/valgrind.m4: New file.
|
||
* configure.ac: Use it.
|
||
|
||
2007-10-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Adjust to newer versions of swig.
|
||
|
||
2007-09-19 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::initialize):
|
||
Disable the default GC handler. Reported by
|
||
Kristin Yvonne Rozier <kyrozier@cs.rice.edu>.
|
||
|
||
2007-07-26 Alexandre Duret-Lutz <adl@gnu.org>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Correctly destroy unobservable
|
||
events.
|
||
|
||
2007-07-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: New option -L.
|
||
* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
|
||
support for a new option "pushfront".
|
||
|
||
* NEWS, configure.in: Bump version to 0.4a.
|
||
|
||
2007-07-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* NEWS, configure.in: Bump version to 0.4.
|
||
* HACKING, INSTALL, doc/Doxyfile.in, lbtt/INSTALL: Update to newer
|
||
tools.
|
||
|
||
2007-07-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ssp.cc (tgba_gspn_ssp_private_::~tgba_gspn_ssp_private_):
|
||
Fix the declaration for GCC 4.1.2.
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_::~tgba_gspn_private_):
|
||
Likewise.
|
||
|
||
2007-06-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/spotlbtt.test: Do not check -R1q -R1t -R2q -R2t.
|
||
|
||
2007-04-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Fix handling of -R1q -R1t -R2q -R2t.
|
||
Add support for -r8/-fr8.
|
||
|
||
* src/tgbatest/spotlbtt.test: Also check -R1q -R1t -R2q -R2t.
|
||
|
||
2007-04-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/reduce.cc (reduce): Repeat the reduction as
|
||
long as the formula changes, it makes more sense when
|
||
combining algorithm. E.g. basic reductions can help language
|
||
containment and vice-versa.
|
||
|
||
2007-04-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/spotlbtt.test: Disable formula rewriting during
|
||
construction.
|
||
|
||
2007-04-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/reduc.cc (main): More cases to test.
|
||
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit):
|
||
Simplify the formula again after FX->XF and GX->XG permutations.
|
||
This is so that formulae like GFXXa become GFa and not just GFXa.
|
||
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Fix a typo
|
||
in the rules for i|j or i&j, resulting in missing simplifications.
|
||
|
||
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Simplify the
|
||
rules for "a U b" and "a R b", an implication check is enough.
|
||
|
||
2007-04-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::initialize): Call
|
||
bdd_isrunning() and don't run bdd_init() if it has already been
|
||
called.
|
||
|
||
2007-02-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Fix the
|
||
generation of the graph. Some states had no successors or
|
||
duplicate transitions because of that bug.
|
||
|
||
2006-08-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* HACKING: We need Bison 2.3.
|
||
|
||
* evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
|
||
tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.
|
||
|
||
* src/tgbaparse/Makefile.am (tgbaparse_HEADERS): Also
|
||
install location.hh and position.hh, since we no longer share
|
||
those of ltlvisit.
|
||
* src/evtgbaparse/Makefile.am (evtgbaparse_HEADERS): Likewise.
|
||
|
||
2006-08-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlparse/public.hh: Work around Bison 2.3 unique guards.
|
||
|
||
2006-08-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbaparse/public.hh: Work around Bison 2.3 unique guards.
|
||
* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.hh:
|
||
Add Reduce_Containment_Checks and Reduce_Containment_Checks_Stronger
|
||
flags, and call reduce_tau03.
|
||
* src/ltlvisit/contain.hh (reduce_tau03): Make "stronger" the
|
||
default.
|
||
* src/ltlvisit/contain.cc: Style.
|
||
* src/ltltest/reduc.cc: Simplify using the reduce() interface
|
||
instead of reduce_tau03.
|
||
* src/tgbatest/ltl2tgba.cc: Likewise. Add -fr5, -fr6, and -fr7
|
||
options.
|
||
* src/tgbatest/spotlbtt.test: Remove cases using "-c", since its
|
||
current implementation is not always correct (and apparently
|
||
reduces less than -fr7).
|
||
|
||
2006-08-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbatest/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
|
||
src/evtgbaparse/parsedecl.hh, src/evtgbaparse/public.hh,
|
||
src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
|
||
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
|
||
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
|
||
src/tgbaparse/tgbascan.ll: Adjust for Bison 2.3. Use %name-prefix
|
||
instead of the "#define yy ... " kludge.
|
||
|
||
2006-07-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/contain.hh, src/ltlvisit/contain.cc: Adjust to only
|
||
check containment on demand.
|
||
|
||
2006-07-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/contain.hh, src/ltlvisit/contain.cc (reduce_tau03):
|
||
New function, performing LTL reduction a la tauriainen.03.a83.
|
||
* src/ltltest/equals.cc, src/ltltest/reduc.cc: Add support for
|
||
the new reduction.
|
||
* src/ltltest/reduc.test: Cut the test in half, and additionally
|
||
test the new reduction.
|
||
* src/ltltest/reduccmp.test: Run on the new reduction.
|
||
* src/ltltest/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: Add new options to apply the reduction.
|
||
* src/tgbatest/spotlbtt.test: Use them.
|
||
|
||
* src/tgba/tgbaproduct.cc: Fix computation of common acceptance
|
||
conditions.
|
||
|
||
* src/tgba/bdddict.cc, src/tgba/bdddict.cc (register_clone_acc):
|
||
New function.
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Use it to
|
||
distinguish acceptance conditions that are identical in both
|
||
operands.
|
||
|
||
* src/tgbatest/explpro4.test: New file.
|
||
* src/tgbatest/explpro2.test, src/tgbatest/Makefile.am: Adjust.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (language_containment_checker): Move ...
|
||
* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh
|
||
(spot::ltl::language_containment_checker): ... in these new files.
|
||
* src/ltlvisit/Makefile.am: Adjust.
|
||
|
||
2006-07-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/memusage.cc, src/misc/memusage.hh: New files.
|
||
* src/misc/Makefile.am: Add them.
|
||
* src/tgbaalgos/gtec/gtec.cc,
|
||
src/tgbaalgos/gtec/gtec.hh: Add a "vmsize" statistic.
|
||
|
||
2006-07-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/bdddict.cc, src/tgba/bdddict.hh (free_annonymous_list_of):
|
||
Rename as ...
|
||
(free_anonymous_list_of): ... this, and correct their update on
|
||
release. Also correct yesterday's the correction (ahem!).
|
||
(dump): Improve verbosity.
|
||
* src/misc/freelist.cc (free_list::remove, free_list::insert): Fix
|
||
longstanding thinkos.
|
||
(free_list::free_count): New function.
|
||
|
||
Merge this fix from proviso-branch:
|
||
2006-05-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Count the
|
||
number of BDD variable after they have been allocated. Otherwise
|
||
the first bdd_dict() created was leaking BDD variable #1.
|
||
|
||
* src/tgba/tgbabddconcrete.hh, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh, src/tgba/tgbatba.hh:
|
||
Remove superfluous class qualifiers worrying gcc 4.1.2.
|
||
|
||
2006-07-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc
|
||
(ltl_to_tgba_fm): Add a new option "containment_checks" to enable
|
||
some language containment checks (via emptiness checks) during the
|
||
translation. This first attempt currently only use containment
|
||
checks to merge states bisimulating each other.
|
||
* src/tgbatest/ltl2tgba.cc: Bind this to option "-c".
|
||
* src/tgbatest/spotlbtt.test: Check it.
|
||
|
||
* src/tgba/bdddict.cc (bdd_dict::unregister_variable): Correctly
|
||
call release_n(), not remove() to repopulated the freelist of
|
||
anonymous BDD variables. New code I'm working on triggered an
|
||
assertion inside remove(), but I'm surprised this bug hadn't
|
||
manifested before !
|
||
|
||
2006-06-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/common.hh, iface/gspn/common.cc, iface/gspn/gspn.cc,
|
||
iface/gspn/ltlgspn.cc, iface/gspn/dottygspn.cc, iface/gspn/ssp.cc,
|
||
iface/gspn/dottyssp.cc: s/exeption/exception/g.
|
||
|
||
2006-04-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
|
||
(couvreur99_check_shy_ssp): Add a onepass_ attribute to
|
||
disable the "shyness", and do not increment pos before calling
|
||
find_state since gspn's implementation uses it.
|
||
* iface/gspn/ssp.cc: Enable "onepass_" for all "shy" variants,
|
||
and also fix find_state for the case where onepass_ is
|
||
disabled (but I do not yet know why the latter fix isn't enough).
|
||
|
||
2006-02-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc: Add a third level hash, to split
|
||
each container into lists of states with identical formula states.
|
||
|
||
* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
|
||
src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
|
||
inclusion check in the stack.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
|
||
Count the number of removed components.
|
||
|
||
2006-02-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
|
||
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state,
|
||
numbered_state_heap_ssp_semi): Implement a double hash_map using
|
||
greatspn's new container() function.
|
||
* iface/gspn/ssp.hh (gspn_ssp_interface): Add a doublehash option.
|
||
* iface/gspn/ltlgspn.cc: Add option -1 to disable this optimization.
|
||
|
||
2006-02-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Pacify sanity.test.
|
||
|
||
2006-02-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/public.hh (tgba_parse): Take two environments
|
||
instead of one : one for the atomic propositions, and one
|
||
for the acceptance conditions. This way it's easy for
|
||
the tools in iface/gspn/ to require some atomic proposition
|
||
to be declared and allow any acceptance conditions (there is nothing
|
||
to adjust in this files because of the default value of the argument).
|
||
* src/tgbaparse/tgbaparse.yy: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/readsave.cc,
|
||
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc: Adjust calls.
|
||
|
||
* src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
|
||
conditions rejected by the environment.
|
||
|
||
* iface/gspn/ltlgspn.cc (display_stats): New function.
|
||
(main): Use it.
|
||
* iface/gspn/ssp.cc: Add more counters for statistics.
|
||
|
||
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
|
||
update the emptiness statistics.
|
||
|
||
* m4/gspnlib.m4: Typo.
|
||
|
||
2006-02-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ssp.cc: Pacify sanity.test.
|
||
|
||
2006-02-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Typo.
|
||
|
||
2006-02-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check):
|
||
Reorganize this function so that syntactically there is only one
|
||
loop over the successors, and not two. Call reintroduce the call
|
||
to couvreur99_check_shy::state_index(), needed by SSP, and
|
||
suppress that to index_and_insert introduced on 2004-12-29. Also
|
||
split the "group" option in two: "group" and "group2". "group2"
|
||
is the equivalent of the older "group", while the new "group" is
|
||
weaker and faster.
|
||
(couvreur99_check_shy::find_state): Change prototype as needed by
|
||
the algorithm.
|
||
* src/tgbaalgos/gtec/gtec.hh: Adjust.
|
||
* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
|
||
(index_and_insert): Remove.
|
||
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Adjust
|
||
to new prototype.
|
||
* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
|
||
to group/group2.
|
||
|
||
2006-01-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.3a.
|
||
|
||
2006-01-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* NEWS, README, configure.ac: Update for version 0.3.
|
||
|
||
2006-01-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix degeneralisation and output of
|
||
accepting runs.
|
||
|
||
2006-01-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/spot.i: Wrap spot::emptiness_check_instantiator.
|
||
* wrap/python/cgi/ltl2tgba.in: Offers all 6 emptiness
|
||
check algorithms, and a text box for options.
|
||
|
||
2006-01-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hxx (ndfs_result::construct_cycle):
|
||
Initialize tmp to suppress a GCC 4.0.1 warning (seen on Darwin).
|
||
|
||
2006-01-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/defs.in (VALGRIND): Use --log-fd instead of
|
||
--logfile-fd to please newer versions of Valgrind.
|
||
* src/ltltest/defs.in, src/evtgbatest/defs.in: Likewise.
|
||
|
||
2005-09-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
|
||
Suggested by Akim.
|
||
|
||
* src/tgbatest/randtgba.cc: New option -H.
|
||
* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
|
||
class.
|
||
|
||
2005-09-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: New option -S.
|
||
|
||
2005-09-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/lbtt.cc: Typo.
|
||
|
||
2005-09-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc (default_algos): Test the "ordering"
|
||
heuristic.
|
||
|
||
2005-09-20 Heikki Tauriainen <heikki.tauriainen@tkk.fi>
|
||
|
||
* src/tgbaalgos/tau03opt.cc: Include <vector>.
|
||
(tau03_opt_search): Add option "ordering" (off by default).
|
||
If enabled, initialize an explicit ordering for acceptance
|
||
conditions into the new member "cond" (a vector of bdds).
|
||
(project_acc): New helper function for projecting a set of
|
||
acceptance conditions to a subset that maximizes the number
|
||
of initial consecutive conditions covered by the set in the
|
||
condition ordering.
|
||
(dfs_blue): Implement the ordering heuristic.
|
||
(dfs_red): Use a sentinel in condition_stack to avoid explicit
|
||
checks for the stack's emptiness.
|
||
Consider also the conditions in acc when checking for the
|
||
completion of an accepting cycle.
|
||
Fix the implementation of condition heuristic.
|
||
Implement the ordering heuristic.
|
||
Simplify the removal of elements from condition_stack (due to
|
||
the way in which elements are pushed on the stack, there can
|
||
be at most one element with a given depth in the stack at any
|
||
one time).
|
||
|
||
2005-09-05 Heikki Tauriainen <heikki.tauriainen@tkk.fi>
|
||
|
||
* src/tgbaalgos/ndfs_result.hxx (ndfs_result::construct_prefix):
|
||
Initialize tmp to suppress a GCC 4.0 warning.
|
||
* src/ltltest/randltl.cc (main): Likewise with another variable.
|
||
|
||
2005-09-05 Heikki Tauriainen <heikki.tauriainen@tkk.fi>
|
||
|
||
* src/ltlast/visitor.hh (visitor, const_visitor): Add empty
|
||
virtual destructors.
|
||
* src/tgba/tgbabddfactory.hh (tgba_bdd_factory): Likewise.
|
||
* src/misc/hash.hh: Use the std namespace only with GCC 3.0,
|
||
not with all compiler versions with minor version 0.
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): Fix
|
||
friend declaration of ::spot::tgba_tba_proxy.
|
||
|
||
2005-09-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.hh: \fixme is not a doxygen command. Use \bug.
|
||
|
||
2005-08-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* README: Update lbtt references.
|
||
|
||
* iface/gspn/ssp.cc: Typo in comment.
|
||
|
||
* lbtt/: Merge lbtt 1.2.0.
|
||
|
||
2005-06-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/reductgba_sim_del.cc
|
||
(parity_game_graph_delayed::get_relation): Disable for generalized
|
||
automata, it's wrong.
|
||
|
||
2005-05-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/reductgba_sim_del.cc
|
||
(parity_game_graph_delayed::nb_set_acc_cond): Simplify.
|
||
|
||
* sanity/style.test: Catch misuses of Sgi::.
|
||
* tgba/tgbareduc.hh, tgbaalgos/reductgba_sim.cc,
|
||
tgbaalgos/reductgba_sim.hh, tgbaalgos/reductgba_sim_del.cc: Fix them.
|
||
|
||
2005-05-16 Denis Poitrenaud <dp@src.lip6.fr>
|
||
|
||
* src/ltlvisit/syntimpl.cc: Fix a typo.
|
||
|
||
2005-05-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/syntimpl.cc: Fix detection of purely eventual formulae.
|
||
|
||
2005-05-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Fix handling of fair_loop_approx.
|
||
|
||
2005-05-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/hashfunc.hh (knuth32_hash): New function.
|
||
* src/misc/hash.hh (ptr_hash): Use knuth32_hash.
|
||
* src/tgba/tgbabddconcretefactory.hh (tgba_bdd_concrete_factory): Use
|
||
ltl::formula_ptr_hash for acc_map_.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc: Add
|
||
the reduce_ltl argument.
|
||
* src/tgbatest/ltl2tgba.cc: Add options -fr1, -fr2, -fr3, and -fr4.
|
||
* src/tgbatest/spotlbtt.test, bench/ltl2tgba/algorithms: Test -fr4.
|
||
* bench/ltl2tgba/parseout.pl: Suppress Perl warnings on disabled
|
||
algorithms.
|
||
|
||
2005-04-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* bench/ltl2tgba/README: More instructions.
|
||
* bench/Makefile.am (SUBDIRS): Add ltl2tgba.
|
||
* README: Mention bench/ltl2tgba.
|
||
|
||
2005-04-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/README,
|
||
bench/ltl2tgba/algorithms, bench/ltl2tgba/big,
|
||
bench/ltl2tgba/defs.in, bench/ltl2tgba/formulae.ltl,
|
||
bench/ltl2tgba/known, bench/ltl2tgba/parseout.pl,
|
||
bench/ltl2tgba/small: New files.
|
||
* src/tgbatest/ltl2baw.pl: Move ...
|
||
* bench/ltl2tgba/ltl2baw.in: ... here.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* configure.ac: Adjust.
|
||
|
||
2005-04-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Delete the reduced automaton
|
||
before the degeneralized automaton.
|
||
|
||
2005-04-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Makefile.am (doc, $(srcdir)/stamp): Ignore rm's errors.
|
||
|
||
2005-04-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* README: Typos.
|
||
|
||
2005-04-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.2a.
|
||
|
||
2005-04-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.2.
|
||
|
||
* bench/emptchk/README: Mention
|
||
http://spot.lip6.fr/wiki/EmptinessCheckOptions for the syntax.
|
||
|
||
2005-04-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy (acc_list): Do not explicitly delete
|
||
an undeclared acceptance condition.
|
||
* src/tgbaalgos/save.cc (print_acc): Unquote atomic propositions.
|
||
|
||
* bench/emptchk/Makefile.am: Create reduced versions of the graphs.
|
||
* bench/emptchk/pml2tgba.pl: Add option -r.
|
||
* bench/emptchk/pml-clserv.sh, bench/emptchk/pml-eeaean.sh:
|
||
Also run on reduced graphs (this is fast).
|
||
* bench/emptchk/README: Adjust.
|
||
|
||
2005-02-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/length.cc (length_visitor): Rewrite using
|
||
postfix_visitor.
|
||
|
||
2005-02-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Add options "weights"
|
||
and "redweights" (on by default).
|
||
|
||
* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Do not
|
||
account for the size of condition_stack.
|
||
|
||
2005-02-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Catch occurrences of "accepting condition".
|
||
* bench/emptchk/ltl-human.sh, bench/emptchk/ltl-random.sh,
|
||
src/sanity/style.test, src/tgba/bdddict.cc,
|
||
src/tgba/succiterconcrete.hh, src/tgba/tgbabddcoredata.hh,
|
||
src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
|
||
src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
|
||
src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
|
||
src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
|
||
src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
|
||
src/tgbatest/dfs.test: Replace them by "acceptance condition".
|
||
|
||
* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03.hh: Include
|
||
misc/optionmap.hh.
|
||
|
||
2005-02-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* bench/emptchk/README: Document the file `algorithms'.
|
||
|
||
* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Implement the
|
||
"condition heuristic". Suggested by Heikki Tauriainen.
|
||
* src/tgbatest/randtgba.cc: Test it.
|
||
|
||
* src/tgbatest/randtgba.cc: Remplace the -O option by -A, reading
|
||
all algorithms from a file. Use the emptiness_check_instantiator
|
||
syntax as name in the output.
|
||
* bench/emptchk/defs.in: DEfine ALGORITHMS here.
|
||
* bench/emptchk/ltl-human.sh, bench/emptchk/ltl-random.sh,
|
||
bench/emptchk/pml-clserv.sh, bench/emptchk/pml-clserv.sh: Use
|
||
$ALGORITHMS.
|
||
* src/misc/timer.cc: Truncate long keys in display.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Simplify using
|
||
emptiness_check_instantiator.
|
||
* src/tgba/tgba.cc, src/tgba/tgba.hh
|
||
(tgba::number_of_acceptance_conditions): Return an unsigned.
|
||
* bench/emptchk/algorithms, bench/emptchk/README,
|
||
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Adjust
|
||
references to algorithms.
|
||
* bench/emptchk/pml-clserv.sh, bench/emptchk/pml-eeaean.sh: Quote
|
||
variables properly.
|
||
|
||
2005-02-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness.cc
|
||
(emptiness_check_instantiator): New class.
|
||
* src/misc/optionmap.hh (set (const option_map&)): New method.
|
||
* src/tgbatest/randtgba.cc: Create every emptiness check via
|
||
emptiness_check_instantiator.
|
||
|
||
* src/tgbaalgos/emptiness.hh,
|
||
src/tgbaalgos/emptiness.cc (emptiness_check::safe): New method.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
|
||
src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc: Implement it.
|
||
* src/tgbatest/randtgba.cc: Simplify.
|
||
|
||
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc: Provide wrapper
|
||
functions that read the hash-map size from a "bsh" option.
|
||
* src/tgbatest/randtgba.cc: Simplify.
|
||
|
||
* src/misc/optionmap.hh, src/misc/optionmap.cc
|
||
(option_map::parse_options): Rewrite. Do not modify the input
|
||
string, allow !foo as a shorthand for foo=0, and support K and
|
||
M suffixes for values.
|
||
* src/tgbatest/randtgba.cc (cons_emptiness_check): Simplify.
|
||
* wrap/python/spot.i: Process optionmap.hh.
|
||
* wrap/python/tests/optionmap.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
2005-02-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/optionmap.cc, src/misc/optionmap.hh (option_map::get,
|
||
option_map::set): Handle default values.
|
||
(anonymous::to_int): Do not print anything.
|
||
* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
|
||
src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
|
||
src/tgbaalgos/ce.cc, src/tgbaalgos/ce.hh: Take an option_map in
|
||
the constructor.
|
||
* src/tgbaalgos/gtec.cc, src/tgbaalgos/gtec.hh: Likewise. Handle
|
||
the "poprem", "group", and "shy" options via the option_map.
|
||
Supply a couvreur99() wrapper to the shy/non-shy variant.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
|
||
iface/gspn/ssp.cc: Adjust.
|
||
|
||
2005-02-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Factorize more code using the
|
||
unsigned_statistics interface.
|
||
* bench/emptchk/README: Adjust description of output.
|
||
|
||
2005-02-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Strip all strings before checking the
|
||
file, so that strings are not checked for our C++ style.
|
||
Reported by Denis (with a chainsaw).
|
||
|
||
2005-02-07 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/misc/optionmap.cc, src/misc/optionmap.hh: Typo (Hummm).
|
||
|
||
2005-02-07 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/misc/optionmap.cc, src/misc/optionmap.hh (option_map): New class.
|
||
* src/misc/Makefile.am: Add it.
|
||
* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: Add option
|
||
facilities to the classes emptiness_check and emptiness_result
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
|
||
src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh: Compute optionnaly
|
||
accepting runs from stack.
|
||
* src/tgbatest/randtgba.cc: Make this option public.
|
||
|
||
2005-02-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/ltstr.hh: Include <functional>
|
||
|
||
2005-02-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc (stat_collector): New class, replacing...
|
||
(ec_stat, acss_stat, ars_stat, print_ec_stats, print_acss_stats,
|
||
print_ars_stats): ... these.
|
||
* tgbaalgos/emptiness_stats.hh (unsigned_statistics): Make the
|
||
map public.
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics::stats_map_):
|
||
Use char_ptr_less_than.
|
||
|
||
* src/misc/ltstr.hh: New file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add it.
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics::stats_map_):
|
||
Use char* for keys, not std::string.
|
||
|
||
2005-02-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* tgbaalgos/emptiness_stats.hh (unsigned_statistics): New base
|
||
class for ec_statistics and ars_statistics.
|
||
(acss_statistics): Inherit from ars_statistics.
|
||
* tgbaalgos/emptiness.cc, tgbaalgos/emptiness.hh:
|
||
(emptiness_check::statistics, emptiness_check_result::statistics):
|
||
New methods.
|
||
* tgbatest/randtgba.cc: Adjust to use the above.
|
||
* tgbaalgos/gv04.cc, tgbaalgos/ndfs_result.hxx, tgbaalgos/gtec/ce.cc,
|
||
tgbaalgos/gtec/ce.hh: Do not inherit from ars_statistics if
|
||
acss_statistics is used.
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check): Add pseudo code.
|
||
|
||
2005-02-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Make sure n > 0.
|
||
* src/tgbatest/randtgba.cc: Check the range of all arguments.
|
||
|
||
* bench/emptchk/models/eeaean1.pml: New file, from schwoon.05.tacas.
|
||
* bench/emptchk/Makefile.am: Distribute models/eeaean1.pml
|
||
and build models/eeaean1.tgba.
|
||
* bench/emptchk/pml-eeaean.sh: Check models/eeaean1.pml.
|
||
* bench/emptchk/README: Adjust.
|
||
* bench/emptchk/defs.in (RANDTGBA, LTL2TGBA): These tools are in
|
||
the build tree, not the source tree...
|
||
|
||
These tests are huge, and are obsoleted by randtgba-based checks,
|
||
and by bench/emptchk/.
|
||
* src/tgbatest/tba_samples_from_spin.test: Delete.
|
||
* src/tgbatest/tba_samples_from_spin/: Delete.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
|
||
2005-02-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbaparse/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
|
||
src/evtgbaparse/fmterror.cc, src/evtgbaparse/parsedecl.hh,
|
||
src/evtgbaparse/public.hh, src/evtgbatest/product.cc,
|
||
src/evtgbatest/readsave.cc, src/ltlparse/fmterror.cc,
|
||
src/ltlparse/ltlparse.yy, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
|
||
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy: Update
|
||
to Bison 2.0.
|
||
|
||
* bench/emptchk/pml2tgba.pl (usage): Correct description. From Denis.
|
||
|
||
* bench/emptchk/README: Timing info from Denis.
|
||
|
||
* src/tgbatest/randtgba.cc (main): Skip empty lines.
|
||
(syntax): Categorize options.
|
||
|
||
2005-01-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/tripprod.test,
|
||
src/evtgbatest/explicit.test: Do not reorder the output.
|
||
It's pointless since 2005-01-20.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.1a.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.1.
|
||
|
||
2005-01-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* bench/emptchk/Makefile.am (dist_noinst_SCRIPTS): Add pml-clserv.sh
|
||
and pml-eeaean.sh.
|
||
* bench/emptchk/ltl-human.sh: Typo in densities.
|
||
Reported by Denis.
|
||
|
||
2005-01-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/mainpage.dox: More text, and a link to "Modules".
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Silence the "filename.tgba read"
|
||
message if -0 is used.
|
||
|
||
* bench/emptchk/formulae.ltl: New file.
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check): Document poprem.
|
||
|
||
* bench/emptchk/README: Make clearer that spin is needed.
|
||
|
||
* src/tgbatest/randtgba.cc (syntax): Missing std::endl.
|
||
|
||
2005-01-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* bench/Makefile.am, bench/emptchk/Makefile.am,
|
||
bench/emptchk/README, bench/emptchk/algorithms,
|
||
bench/emptchk/defs.in, bench/emptchk/ltl-human.sh,
|
||
bench/emptchk/ltl-random.sh, bench/emptchk/pml-clserv.sh,
|
||
bench/emptchk/pml-eeaean.sh, bench/emptchk/pml2tgba.pl,
|
||
bench/emptchk/models/cl3serv1.pml,
|
||
bench/emptchk/models/cl3serv3.pml,
|
||
bench/emptchk/models/clserv.ltl, bench/emptchk/models/eeaean.ltl,
|
||
bench/emptchk/models/eeaean2.pml: New files.
|
||
* README: Adjust.
|
||
* configure.ac: Output bench/Makefile and bench/emptchk/Makefile.
|
||
Check for PERL, and define the NEVER conditional.
|
||
* Makefile.am (SUBDIRS) [NEVER]: Add bench.
|
||
|
||
|
||
2005-01-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh: Make sure depth() >= 0.
|
||
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check, couvreur99_check_shy):
|
||
Add the poprem option.
|
||
* src/tgbaalgos/gtec/gtec.cc: Implement it.
|
||
* src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh
|
||
(scc_stack::rem, scc_stack::clear_rem,
|
||
scc_stack::connected_component::rem): New.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Add rem variants.
|
||
|
||
2005-01-28 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/dfs.test, src/tgbatest/emptchk.test,
|
||
src/tgbatest/emptchke.test, src/tgbatest/ltl2tgba.cc,
|
||
src/tgbatest/randtgba.cc, src/tgbatest/tba_samples_from_spin.test:
|
||
Adjust names of emptiness check algorithms.
|
||
|
||
2005-01-27 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc: Adjust statistics count to match
|
||
how the algorithm will behave once remove_component() is revamped. From
|
||
Alexandre.
|
||
|
||
2005-01-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_cycle):
|
||
More ref in comment.
|
||
|
||
2005-01-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gv04.cc, src/tgbaalgos/ndfs_result.hxx,
|
||
src/tgbaalgos/gtec/ce.cc: Do not account for states that are
|
||
computed but not visited by the BFS&DFS used to construct
|
||
accepting runs.
|
||
|
||
2005-01-25 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Complete performance measurements.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Typo.
|
||
|
||
* src/tgbaalgos/magic.hh: Correct pseudo-code.
|
||
|
||
2005-01-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/se05.hh: Correct
|
||
pseudo-code. From Denis.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc: Fake statistics count to match
|
||
how the algorithm will behave once remove_component() is revamped.
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (ars_statistics): Distinguish
|
||
states visited to compute the prefix and those for the cycle.
|
||
* src/tgbaalgos/gv04.cc, src/tgbaalgos/ndfs_result.hxx,
|
||
src/tgbaalgos/gtec/ce.cc: Adjust.
|
||
* src/tgbatest/randtgba.cc: Print both statistics.
|
||
|
||
2005-01-24 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc, src/tgbatest/ltl2tgba.cc: Add options
|
||
dedicated to display of stats.
|
||
|
||
2005-01-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Some fixes from Denis for ratio stats.
|
||
|
||
2005-01-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlast/formula.hh (formula_ptr_less_than): Two
|
||
formulae with the same hash key are not necessary equal!
|
||
|
||
* src/ltlast/formula.hh (hash, dump, dump_, hash_key_): New members.
|
||
(formula_ptr_less_than, formula_ptr_hash): New class.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
|
||
src/ltlast/constant.cc, src/ltlast/formula.cc,
|
||
src/ltlast/multop.cc, src/ltlast/unop.cc: Adjust to handle dump_.
|
||
* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh:
|
||
Sort the set using formula_ptr_less_than.
|
||
* src/ltlvisit/dump.cc: Simplify using ->dump().
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Sort all maps to get deterministic
|
||
results.
|
||
|
||
2005-01-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.hh (explicit_tau03_opt_search): Doco.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::clear_todo,
|
||
couvreur99_check_shy::check): Sum all successors in the
|
||
todo stack AND all items on the stack.
|
||
|
||
2005-01-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (ec_statistics::depth): New function.
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::clear_todo,
|
||
couvreur99_check_shy::check): Count all successors in the
|
||
todo stack rather than all items on the stack.
|
||
|
||
2005-01-13 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Close the formula file and remove a trace.
|
||
|
||
2005-01-13 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Add products with formulae issued of a file
|
||
and more statistics.
|
||
* src/tgbatest/readsave.test: Undo previous change.
|
||
|
||
2005-01-13 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/readsave.test: Fix parameter of randtgba call.
|
||
|
||
2005-01-12 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Add products with randomized formulae and
|
||
more statistics.
|
||
|
||
2005-01-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gv04.cc (result): Implement the acss_statistics,
|
||
and ars_statistics interfaces.
|
||
|
||
2005-01-11 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/ltltest/randltl.cc: Typo.
|
||
|
||
2005-01-11 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy: Accept automaton without state.
|
||
|
||
* src/ltltest/randltl.cc: Typo.
|
||
|
||
2005-01-10 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Typo.
|
||
|
||
2005-01-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Typo.
|
||
|
||
* src/tgbatest/randtgba.cc: Add option -P.
|
||
|
||
2005-01-10 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03.cc: Typo.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -b.
|
||
|
||
2005-01-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hxx (ndfs_result, acss_interface):
|
||
Conditionally inherit from acss_statistics.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
|
||
src/tgbaalgos/tau03opt.cc: Define Has_Size in all heaps.
|
||
|
||
2005-01-06 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/ltltest/randltl.cc: Include cassert.
|
||
|
||
* src/tgbaalgos/ndfs_result.hxx: Implement the spot::acss_statistics
|
||
interface.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
|
||
src/tgbaalgos/tau03opt.cc: Add to each heap class a method returning its
|
||
size.
|
||
|
||
2005-01-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/randltl.cc: Add options -r and -u.
|
||
* src/ltltest/reduc.test: Use randltl -u, and run it through valgrind.
|
||
|
||
2005-01-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh: New files.
|
||
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS,
|
||
libltlvisit_la_SOURCES): Distribute them.
|
||
* src/ltltest/randltl.cc: New file.
|
||
* src/ltltest/Makefile.am (LDADD): Link with ../libspot.la directly.
|
||
(noinst_PROGRAMS, randltl_SOURCES): New.
|
||
(EXTRA_DIST, CLEANFILES): The list of random formulae is now generated.
|
||
* src/ltltest/formulae.txt: Delete.
|
||
* src/ltltest/reduc.test: Use randltl to generate formulae.
|
||
* src/ltlvisit/length.cc (length_visitor): Fix computation
|
||
of the length of multops.
|
||
* src/ltlvisit/length.hh (length): Document the length of multops.
|
||
|
||
2005-01-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/includes.test: Also check *.hxx files.
|
||
* src/tgbaalgos/ndfs_result.hxx: Rename the include guard.
|
||
|
||
2005-01-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Doxyfile.in (FILE_PATTERNS): Remove *.hxx.
|
||
* src/sanity/80columns.test, src/sanity/style.test: Process *.hxx files.
|
||
* src/tgbaalgos/ndfs_result.hh: Rename as ..
|
||
* src/tgbaalgos/ndfs_result.hxx: ... this, so it does not get
|
||
documented (and so Doxygen do not complain).
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
|
||
src/tgbaalgos/tau03opt.cc: Adjust include.
|
||
* src/tgbaalgos/Makefile.am: Rename ndfs_result.hh as ndfs_result.hxx
|
||
and do not install it, this is a private header.
|
||
|
||
* src/tgbaalgos/emptiness.hh: Declare Doxygen group
|
||
emptiness_check_stats.
|
||
* src/tgbaalgos/emptiness_stats.hh: Use it.
|
||
|
||
* doc/Doxyfile.in: Update for Doxygen 1.4.0, set
|
||
DOT_MULTI_TARGETS, and disable GROUP_GRAPH (it causes segfault).
|
||
* src/tgbaparse/public.hh (format_tgba_parse_errors): Complete
|
||
Doxygen comment.
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (ars_statistics): New class.
|
||
* src/tgbaalgos/ndfs_result.hh (ndfs_result): Inherit from
|
||
ars_statistics.
|
||
(ndfs_result::dfs): Call inc_ars_states().
|
||
(ndfs_result::test_path, ndfs_result::min_path): Update ars_statistics.
|
||
* tgbaalgos/gtec/ce.hh (couvreur99_check_result): Inherit
|
||
from ars_statistics.
|
||
* tgbaalgos/gtec/ce.cc (shortest_path,
|
||
couvreur99_check_result::accepting_cycle::scc_bfs):
|
||
Update ars_statistics.
|
||
* src/tgbatest/randtgba.cc: Display statistics about accepting run
|
||
search.
|
||
|
||
* src/tgbaalgos/bfssteps.hh (bfs_steps::finalize): Document.
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh (accs_statistics): New class.
|
||
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh
|
||
(couvreur99_check_result): Inherit from acss_statistics.
|
||
(couvreur99_check_result::acss_states): Implement it.
|
||
* src/tgbatest/randtgba.cc: Display statistics about accepting cycle
|
||
search space.
|
||
|
||
* src/tgbaalgos/ndfs_result.hh (construct_prefix): Do not call
|
||
erase() after splice(), splice() already removes the elements.
|
||
|
||
* src/evtgba/evtgbaiter.hh, src/ltlast/formula.hh,
|
||
src/ltlast/refformula.hh, src/ltlenv/defaultenv.hh,
|
||
src/misc/bareword.hh, src/tgba/succiter.hh,
|
||
src/tgba/tgbabddfactory.hh, src/tgba/tgbareduc.hh,
|
||
src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness_stats.hh,
|
||
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
|
||
src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/tau03opt.hh: Add
|
||
or fix include guards.
|
||
* src/sanity/includes.test: Check the presence of the include
|
||
guard.
|
||
|
||
2004-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
|
||
(index_and_insert): New function.
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check): Rewrite.
|
||
(couvreur99_check_shy::clear_todo): New method.
|
||
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::todo_item): New
|
||
struct.
|
||
* iface/gspn/ssp.cc (numbered_state_heap_ssp_semi::index_and_insert):
|
||
New method.
|
||
|
||
2004-12-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Doxyfile.in (EXCLUDE_SYMLINKS): Set to YES, since we have no
|
||
legitimate symlink in our source tree. Requested by Akim Demaille.
|
||
|
||
2004-12-20 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hh: Rewrite the computation of accepting
|
||
runs.
|
||
* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: Add the method
|
||
finalize witch compute (by default) the traversed path.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc: Fix a bug concerning
|
||
the heap used for bit state hashing version and adjust the prototype of
|
||
has_been_visited and pop_notify.
|
||
* src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: adjust the
|
||
prototype of has_been_visited and pop_notify.
|
||
|
||
2004-12-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hh: Include misc/hash.hh.
|
||
|
||
2004-12-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/reducerun.cc (reduce_run): Do not call erase() after
|
||
splice(), splice() already removes the elements.
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run):
|
||
Likewise.
|
||
|
||
* src/tgbatest/randtgba.cc: Add option -O, so we can profile each
|
||
emptiness-check on its own.
|
||
|
||
* src/ltlparse/ltlscan.ll: Pass yyleng to the std::string constructor,
|
||
so it doesn't have to compute it.
|
||
* src/tgbaparse/tgbascan.ll: Likewise.
|
||
(YY_USER_INIT, current_file): Remove, it is too costly to use
|
||
yy::Location::filename in the current implementation
|
||
of yy::Location (this attribute is duplicated for each token).
|
||
Leaving it empty divides the parsing time by 3.
|
||
* src/tgbaparse/fmterror.cc, src/tgbaparse/public.hh
|
||
(format_tgba_parse_errors): Take the filename as argument.
|
||
* src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/reductgba.cc,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc,
|
||
iface/gspn/dottyssp.cc, iface/gspn/ltlgspn.cc: Adjust calls
|
||
to format_tgba_parse_errors.
|
||
|
||
2004-12-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy: Cache parsed formulae to speedup
|
||
reading of TGBAs with lots of identical conditions.
|
||
|
||
* src/tgba/bdddict.hh (bdd_dict) <fv_map, vf_map, ref_set,
|
||
vr_map, free_annonymous_list_of_type>: Redeclare as std::map,
|
||
instead of Sgi::hash_map. It proved to be faster.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict) <fv_map, vf_map>:
|
||
Use the same definition as in bdd_dict.
|
||
* tgbaalgos/reachiter.hh, tgbaalgos/replayrun.cc: Explicitly
|
||
include misc/hash.hh.
|
||
|
||
Adjust Swig rules for Swig 1.3.24 (and probably 1.3.23 too).
|
||
Compiling the runtime in a separate modules is no longer required,
|
||
and actually it does not work anymore...
|
||
* wrap/python/swigpy.i: Remove.
|
||
* wrap/python/Makefile.am (_swigpy.la): Remove all references.
|
||
($(srcdir)/spot_wrap.cxx, $(srcdir)/buddy_wrap.cxx): Do not
|
||
use -noruntime.
|
||
|
||
2004-12-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add option -P.
|
||
|
||
2004-12-14 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hh: Define the trace output stream.
|
||
|
||
2004-12-13 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/ndfs_result.hh: New file factorizing the computation of
|
||
accepting runs for ndfs emptiness check algoritms.
|
||
* src/tgbaalgos/Makefile.am: Add it.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Remove the old
|
||
result classes and use the new one.
|
||
|
||
2004-12-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/status.hh
|
||
(couvreur99_check_status::cycle_seed): New attribute.
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check::check,
|
||
couvreur99_check_shy::check): Fill cycle_seed.
|
||
* src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/ce.cc:
|
||
(couvreur99_check_result::accepting_run,
|
||
couvreur99_check_result::accepting_cycle): Revamp to compute a
|
||
cycle from the cycle_start, and then the shortest prefix to this
|
||
cycle.
|
||
|
||
* iface/gspn/ltlgspn.cc, iface/gspn/ssp.hh, iface/gspn/ssp.cc: Disable
|
||
the functions that were using the interface I have just broken.
|
||
|
||
* src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap::find): Clarify
|
||
comment.
|
||
|
||
* src/tgba/tgbareduc.hh: Include tgbaalgos/gtec/nsheap.hh,
|
||
not tgbaalgos/gtec/status.hh.
|
||
|
||
2004-12-10 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/misc/timer.cc, src/tgbatest/randtgba.cc: Format the statistics.
|
||
|
||
2004-12-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/emptchkr.test: Tune the "big degeneralized" test
|
||
so it actually explore some accepting automata.
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
|
||
(couvreur99_check_shy::couvreur99_check_shy): Add the group option,
|
||
and redefine todo as a list so it can be iterated over.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Introduce
|
||
couvreur99_shy- (for group=false) in addition to couvreur99_shy
|
||
(for group=true).
|
||
* iface/gspn/ssp.cc (couvreur99_check_ssp_shy_semi,
|
||
couvreur99_check_ssp_shy): Use group=true;
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Do not use the
|
||
pointer of the state created as keys in sets; otherwise the graph
|
||
created depends on the memory layout.
|
||
|
||
2004-12-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::create_transition):
|
||
Make sure to create the source state before the destination state.
|
||
|
||
2004-12-08 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness.cc: Suppress a horrible space before a ')'.
|
||
|
||
2004-12-08 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
|
||
(set_init_state): Return a pointer to the initial state.
|
||
|
||
* src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness.cc
|
||
(tgba_run_to_tgba): New function.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -G.
|
||
|
||
2004-12-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): More comments.
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit::create_transition(state*, const state*)): New function.
|
||
* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh:
|
||
(random_graph): Revamp the algorithm to call rand() less often.
|
||
* src/tgbatest/randtgba.cc: Add option -0 to easy profiling.
|
||
|
||
* src/misc/random.hh: Add include guard.
|
||
|
||
2004-12-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/random.hh (nrand, bmrand, prand): New functions.
|
||
(barand): New class.
|
||
* src/misc/random.cc (nrand, bmrand, prand): New functions.
|
||
* wrap/python/spot.i: Process src/misc/random.hh.
|
||
|
||
* src/misc/timer.cc: Do not include cassert, then.
|
||
|
||
2004-12-07 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.cc: Fix a memory leak in the computation of
|
||
accepting runs
|
||
|
||
* src/misc/timer.hh: Include cassert.
|
||
|
||
2004-12-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/timer.cc: Include cassert.
|
||
|
||
2004-11-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/timer.hh, src/misc/timer.cc: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
* src/tgbatest/randtgba.cc: Use time_map to measure the algorithms.
|
||
Add the -R option.
|
||
* src/sanity/style.sh: Let me use `for (.*;;)'.
|
||
|
||
2004-11-29 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.cc: Add a first version of the computation of
|
||
accepting runs
|
||
|
||
2004-11-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/minimizerun.cc, src/tgbaalgos/minimizerun.hh
|
||
(minimize_run): Rename as ...
|
||
* src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh:
|
||
(reduce_run): ... this.
|
||
* src/tgbaalgos/Makefile.am, src/tgbatest/ltl2tgba.cc,
|
||
src/tgbatest/randtgba.cc: Adjust all references.
|
||
|
||
* src/tgbatest/emptchkr.test: Try degeneralized automata.
|
||
* src/tgbatest/randtgba.cc (main): Pass the correct automaton to
|
||
minimize_run().
|
||
|
||
2004-11-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/equals.cc (main): Add option -E.
|
||
* src/ltltest/parseerr.test: Use `equals -E' instead of `readltl'
|
||
to check the parsing of erroneous strings without being sensible
|
||
to the ordering for formulae in memory.
|
||
|
||
* src/tgbatest/randtgba.cc (to_float): Use strtod() instead of
|
||
strtof() to please Solaris 9.
|
||
|
||
* configure.ac (AM_INIT_AUTOMAKE): Use option tar-ustar, we have
|
||
filenames longer than 99 bytes.
|
||
|
||
* wrap/python/tests/run.in: Do not override PYTHONPATH, just add
|
||
to it.
|
||
Report from Akim Demaille.
|
||
|
||
* src/sanity/style.test: Make sure grep supports the options put
|
||
into GREP_OPTIONS.
|
||
|
||
* wrap/python/tests/run.in: Define DYLD_LIBRARY_PATH so that
|
||
Darwin finds non-installed libraries.
|
||
Report from Akim Demaille.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Mention gv04 in help text.
|
||
|
||
2004-11-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/minimizerun.cc: Shut up a GCC warning when assert
|
||
are disabled.
|
||
|
||
2004-11-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/minimizerun.hh, src/tgbaalgos/minimizerun.cc: New
|
||
files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them/
|
||
* src/tgbatest/randtgba.cc, src/tgbatest/ltl2tgba.cc: Add option -m.
|
||
* src/tgbatest/emptchkr.test: Use -m.
|
||
|
||
2004-11-25 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
|
||
src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.hh,
|
||
src/tgbaalgos/tau03opt.cc: Fix comments and debug traces
|
||
|
||
* src/tgbatest/randtgba.cc: Adjust names of algorithms.
|
||
|
||
2004-11-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc: Add option -D.
|
||
|
||
* src/tgbaalgos/emptiness.hh (emptiness_check, emptiness_check_result):
|
||
Add the TGBA considered as a protected attribute, and provide an
|
||
automaton() accessor.
|
||
* src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc,
|
||
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/gtec.cc: Adjust to follow
|
||
this new interface.
|
||
|
||
2004-11-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: Revert
|
||
previous change (bfs_steps_with_path_conditions turned up
|
||
useless), and document bfs_step.
|
||
|
||
* src/tgbaalgos/bfssteps.hh (bfs_steps_with_path_conditions): New
|
||
class.
|
||
* src/tgbaalgos/bfssteps.cc: Remove includes that are now superfluous.
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run,
|
||
couvreur99_check_result::accepting_cycle): Rewrite the BFSs using
|
||
the bfs_steps class.
|
||
|
||
* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgbaalgos/gv04.cc (gv04::result::accepting_run): Use
|
||
the new bfs_steps class.
|
||
|
||
2004-11-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gv04.cc (gv04::result): New struct to compute
|
||
counter examples.
|
||
(gv04:check): Return a gv04::result.
|
||
|
||
2004-11-23 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/tau03opt.cc: Fix a warning.
|
||
|
||
2004-11-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gv04.cc (gv04): Inherit from ec_statistics.
|
||
(gv04::check, gv04::push, gv04::pop): Update the statistics for
|
||
randtgba.
|
||
(gv04::print_stats): Print them here too.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (couvreur99_check::check,
|
||
couvreur99_check_shy::check): Compute more statistics for
|
||
randtgba.
|
||
(couvreur99_check::print_stats): Print these here too.
|
||
|
||
* src/sanity/style.test: Allow "'" after ",".
|
||
|
||
* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh: New files, partly
|
||
based on Thomas Martinez's src/tgbaalgos/tarjan_on_fly.cc and
|
||
src/tgbaalgos/tarjan_on_fly.hh former implementation.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
|
||
tgbaalgos_HEADERS): Add them.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Bind the
|
||
new algorithm.
|
||
* src/tgbatest/emptchk.test: Test it.
|
||
|
||
2004-11-22 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness_stats.hh, src/tgbaalgos/weight.cc,
|
||
src/tgbaalgos/weight.hh: New files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/status.cc,
|
||
src/tgbaalgos/gtec/status.hh, : Add emptiness check statistics
|
||
capability.
|
||
* src/tgbatest/randtgba.cc: Print these statistics.
|
||
* src/tgbatest/ltl2tgba.cc: tau03opt search can deal without acceptance
|
||
condition.
|
||
* src/tgbatest/emptchk.test: Test tau03opt search.
|
||
|
||
2004-11-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03.cc,
|
||
src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: Fix
|
||
copyright year, and do not include <iterator>.
|
||
|
||
2004-11-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/randtgba.cc (main): Add options -z and -Z for statistics.
|
||
(ce_stat): New struct.
|
||
|
||
2004-11-17 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/se05.hh, src/tgbaalgos/tau03.hh: Typo.
|
||
* src/tgbaalgos/tau03.cc: Suppress optimisations, the algorithm is now
|
||
the original one.
|
||
* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: New files
|
||
implementing most of all the optimisations of tau03.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Make them public.
|
||
* src/tgbatest/tba_samples_from_spin.test: Test them.
|
||
|
||
2004-11-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgba.hh, src/tgbaalgos/ltl2tgba_fm.hh,
|
||
src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/stats.hh: Typos.
|
||
|
||
* src/tgbatest/Makefile.am (EXTRA_DIST): Distribute the files
|
||
from tba_samples_from_spin.
|
||
* src/tgbatest/tba_samples_from_spin.test: Get these example files
|
||
from $srcdir, for the sake of VPATH builds.
|
||
(light_run): Remove, not needed.
|
||
|
||
* src/misc/bareword.hh, src/misc/bddalloc.hh, src/misc/bddlt.hh,
|
||
src/misc/escape.hh, src/misc/freelist.hh, src/misc/hash.hh,
|
||
src/misc/hashfunc.hh, src/misc/minato.hh, src/misc/modgray.hh,
|
||
src/misc/random.hh, src/misc/version.hh, src/tgba/state.hh: More
|
||
Doxygen groups.
|
||
|
||
2004-11-17 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.hh: Fix a comment and remove se05 interface.
|
||
* src/tgbaalgos/magic.cc: Fix a comment.
|
||
* src/tgbaalgos/se05.hh: New file.
|
||
* src/tgbaalgos/se05.cc: Fix a comment.
|
||
* src/tgbaalgos/tau03.hh: New file.
|
||
* src/tgbaalgos/tau03.cc: New file.
|
||
* src/tgbaalgos/Makefile.am: Add it.
|
||
* src/tgbatest/ltl2tgba.cc: Add tau03 new emptiness check.
|
||
* src/tgbatest/randtgba.cc: Add tau03 new emptiness check.
|
||
* src/tgbatest/emptchkr.test: Fix a comment.
|
||
* src/tgbatest/tba_samples_from_spin/explicit1_1.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_2.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_3.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_4.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_5.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_6.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_7.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_8.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit1_9.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_1.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_2.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_3.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_4.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_5.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_6.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_7.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_8.tba,
|
||
src/tgbatest/tba_samples_from_spin/explicit2_9.tba: New files
|
||
* src/tgbatest/tba_samples_from_spin.test : New test.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2004-11-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgba.hh, src/tgbaalgos/dotty.hh,
|
||
src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
|
||
src/tgbaalgos/emptiness.hh, src/tgbaalgos/lbtt.hh,
|
||
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
|
||
src/tgbaalgos/neverclaim.hh, src/tgbaalgos/powerset.hh,
|
||
src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
|
||
src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.hh,
|
||
src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh
|
||
src/tgbaalgos/save.hh, src/tgbaalgos/stats.hh,
|
||
src/tgbaparse/public.hh: Add Doxygen groups for TGBA algorithms.
|
||
|
||
* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
|
||
src/ltlast/constant.hh, src/ltlast/formula.hh,
|
||
src/ltlast/multop.hh, src/ltlast/refformula.hh,
|
||
src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
|
||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
|
||
src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
|
||
src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh,
|
||
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
|
||
src/ltlvisit/dump.hh, src/ltlvisit/length.hh,
|
||
src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen
|
||
groups for LTL algorithms and types.
|
||
* doc/Makefile.am (fast-doc): New target.
|
||
|
||
* src/misc/hashfunc.hh: Include cstddef to define size_t, and guard
|
||
the file for multiple inclusions.
|
||
|
||
* src/tgba/bdddict.hh, src/tgba/state.hh, src/tgba/statebdd.hh,
|
||
src/tgba/succiter.hh, src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh,
|
||
src/tgba/tgbatba.hh, src/tgbaalgos/emptiness.hh,
|
||
src/tgbaalgos/magic.hh, src/tgbaalgos/replayrun.hh,
|
||
src/tgbaalgos/gtec/gtec.hh, iface/gspn/ssp.hh: Introduce Doxygen
|
||
groups in the documentation. Presently this only covers the
|
||
tgba/ directory, and the emptiness-check algorithms.
|
||
* doc/Doxyfile.in (EXCLUDE_PATTERNS): Skip Bison-generated files
|
||
in src/evtgbaparse/.
|
||
|
||
2004-11-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbatba.hh (tgba_sba_proxy): New class, with the
|
||
functionality of the old tgba_tba_proxy.
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator,
|
||
tgba_tba_proxy): Rewrite to produce TBA with at most N copies of
|
||
each state, skipping the `bddtrue' stage now used only in
|
||
tgba_sba_proxy. Doing so removes approximately 6% of states in
|
||
the degeneralized tests of spotlbtt.test.
|
||
(tgba_sba_proxy): Implement it.
|
||
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: Adjust
|
||
to take a tgba_sba_proxy.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -DS and adjust call to
|
||
never_claim_reachable().
|
||
|
||
* src/tgba/tgbatba.cc (state_tba_proxy::hash): Use wang32_hash.
|
||
* src/tgba/tgbaproduct.cc (state_product::hash): Likewise.
|
||
|
||
* src/misc/hashfunc.hh (wang32_hash): New file and function,
|
||
extracted from...
|
||
* src/evtgba/product.cc (evtgba_product_state::hash): ... here.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add hashfunc.hh.
|
||
|
||
2004-11-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): For non-generalized emptiness
|
||
check, degeneralize the automaton only if it has too much
|
||
acceptance conditions. This makes it easier to reproduce runs
|
||
of randtgba.
|
||
* src/tgbatest/emptchk.test: Adjust.
|
||
|
||
2004-11-15 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc: Fix a stupid bug.
|
||
* src/tgbaalgos/se05.cc: Fix the same bug.
|
||
* src/tgbatest/Makefile.am: Signify that emptchkr.test pass.
|
||
|
||
2004-11-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* tgbatest/randtgba.cc: Add options -e and -r.
|
||
* tgbatest/emptchkr.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS, XFAIL_TESTS): Add emptchkr.test.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Fix a memory leak
|
||
if debug==false.
|
||
|
||
* src/tgbaalgos/randomgraph.cc (random_graph): Do declare all the
|
||
acceptance conditions in the produced automaton, in case they are
|
||
not actually used.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Write to the
|
||
supplied stream, not std::cout.
|
||
|
||
2004-11-15 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc: Add a bit state hashing version.
|
||
* src/tgbaalgos/se05.cc: Add a bit state hashing version.
|
||
* src/tgbaalgos/magic.hh: Make them public.
|
||
* src/tgbatest/ltl2tgba.cc: Add the two new emptiness checks.
|
||
* src/tgbatest/emptchk.test: Incorporate tests of src/tgbatest/dfs.test.
|
||
* src/tgbatest/dfs.test: Introduce new characteristic explicit tests.
|
||
|
||
2004-11-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Add options to check the produced
|
||
automata for emptiness, using the existing algorithms.
|
||
* wrap/python/spot.i: Declare spot::explicit_magic_search,
|
||
and spot::explicit_se05_search as allocating their output.
|
||
|
||
2004-11-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Check for srand48 and drand48.
|
||
* src/misc/random.cc (srand, drand): Use srand48 and drand48 if
|
||
available.
|
||
|
||
* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS)
|
||
(libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::add_state): Make it public.
|
||
* src/tgbatest/randtgba.cc: New file.
|
||
* src/tgbatest/Makefile.am (noinst_PROGRAMS, readsave_SOURCES): Add it.
|
||
* src/tgbatest/readsave.test: Check a random graph.
|
||
|
||
* misc/random.cc, misc/random.hh: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
|
||
2004-11-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbaparse/public.hh (evtgba_parse): Fix doxygen comments.
|
||
* src/tgbaalgos/projrun.hh (project_tgba_run): Likewise.
|
||
|
||
* src/tgbaalgos/emptiness.hh (print_tgba_run): Document it.
|
||
|
||
* src/tgbaalgos/replayrun.hh,
|
||
src/tgbaalgos/replayrun.cc (replay_tgba_run): Take a `debug'
|
||
option to decide whether the output should look like that of
|
||
print_tgba_run() or a complete debug trace.
|
||
* src/tgbatest/ltl2tgba.cc (main): Call replay_tgba_run() with
|
||
debug=true.
|
||
|
||
* iface/gspn/ltlgspn.cc (main): Adjust to recent changes to
|
||
src/tgbaalgos/magic.cc, call explicit_magic_search() instead of
|
||
building a spot::magic_search.
|
||
* iface/gspn/udcseltl.test: Adjust to new output of print_tgba_run().
|
||
|
||
2004-11-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/Makefile.am (TESTS): Remove non-existing magic.test
|
||
and se05.test.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Fix old typos and reword
|
||
some help strings.
|
||
|
||
2004-11-09 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc: rewrite to externalize the heap and
|
||
prepare it to a bit state hashing version.
|
||
* src/tgbaalgos/magic.hh: adapt to the new interface of
|
||
magic_search and se05_search.
|
||
* src/tgbaalgos/se05.cc: new file.
|
||
* src/tgbaalgos/Makefile.am: Add it.
|
||
* src/tgbatest/ltl2tgba.cc: Add new emptiness check.
|
||
* src/tgbatest/emptchk.test: more tests.
|
||
* src/tgbatest/dfs.test: new file.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2004-11-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptiness.cc (print_tgba_run): Output the
|
||
labels as formulae rather than bdd sets.
|
||
|
||
2004-11-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_path):
|
||
Rewrite as ...
|
||
(couvreur99_check_result::accepting_cycle): ... this less complex
|
||
implementation.
|
||
(couvreur99_check_result::complete_cycle): Delete.
|
||
* src/tgbatest/emptchke.test: More explicit examples.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Do not leak
|
||
the initial state when no valid outgoing transition is found.
|
||
|
||
* src/tgbaparse/tgbaparse.yy: Add `%destructor's so the parser
|
||
does not leak on errors.
|
||
* src/tgbatest/ltl2tgba.cc: Free the automata if it could not be
|
||
fully parsed.
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run):
|
||
Remove spurious FIXME.
|
||
|
||
2004-11-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbaalgos/save.cc (save_bfs::output_acc_set): Sort
|
||
acceptance conditions in the output.
|
||
* src/evtgbatest/readsave.test, src/evtgbatest/product.test: Adjust.
|
||
|
||
* src/tgbaalgos/rundotdec.cc (tgba_run_dotty_decorator::link_decl):
|
||
Typo.
|
||
|
||
2004-11-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs::process_link):
|
||
Adjust prototype.
|
||
|
||
* src/tgba/tgba.hh, src/tgba/tgba.cc
|
||
(tgba::number_of_acceptance_conditions): New method.
|
||
* src/tgbaalgos/lbtt.cc (lbtt_bfs::lbtt_bfs): Use it.
|
||
|
||
* wrap/python/spot.i: Generate bindings for tgbaalgos/dottydec.hh,
|
||
tgbaalgos/emptiness.hh, tgbaalgos/gtec/gtec.hh, and
|
||
tgbaalgos/rundotdec.hh.
|
||
|
||
* src/tgbaalgos/lbtt.cc (lbtt_bfs::process_link): Adjust prototype.
|
||
|
||
2004-11-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
|
||
src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgbaalgos/dotty.hh (dotty_reachable): Take a dotty_decorator
|
||
as third parameter.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_state,
|
||
dotty_bfs::process_link): Use the decorator.
|
||
* src/tgbatest/ltl2tgba.cc: Graph the accepting run if the -g option
|
||
is given.
|
||
* src/tgbatest/emptchk.test: Exercise -g.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Add missing std::endl.
|
||
|
||
* tgbaalgos/reachiter.hh, tgbaalgos/reachiter.cc
|
||
(tgba_reachable_iterator::process_link): Take the state* as arguments
|
||
in addition to the state numbers.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
|
||
(tgba_explicit::copy_acceptance_conditions_of): New method.
|
||
* tgbaalgos/dupexp.cc (dupexp_iter::dupexp_iter): Call
|
||
copy_acceptance_conditions_of.
|
||
(dupexp_iter::process_state, duplex_iter::declare_state,
|
||
dupexp_iter::name_): Remove.
|
||
(dupexp_iter::process_link): Adjust prototype, and format
|
||
the state here rather than in process_state.
|
||
* tgbaalgos/stats.cc, tgbaalgos/dotty.cc: Adjust prototype
|
||
of process_link.
|
||
|
||
2004-11-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/reduce.hh (is_eventual, is_universal): More doc.
|
||
|
||
* src/tgbaalgos/projrun.hh, src/tgbaalgos/projrun.cc: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* iface/gspn/ltlgspn.cc (main): Call project_tgba_run if -P.
|
||
|
||
* src/tgbaalgos/emptiness.cc,
|
||
src/tgbaalgos/emptiness.hh (print_tgba_run): Take the tgba*
|
||
argument before the tgba_run* argument (for consistency with
|
||
replay_tgba_run).
|
||
* src/tgbatest/ltl2tgba.cc, iface/gspn/ltlgspn.cc: Adjust
|
||
calls to print_tgba_run().
|
||
|
||
* src/ltlast/formula.hh (ltl::formula::~formula): Make it protected.
|
||
|
||
2004-10-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
A tgba can now annotate a transition (i.e., the position of a
|
||
tgba_succ_iterator) with some string. This comes handy to
|
||
associate that transition to its high-level name.
|
||
* src/tgba/tgba.hh, src/tgba/tgba.cc (tgba::transition_annotation):
|
||
New method.
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(tgba_product::transition_annotation): Implement it.
|
||
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy::transition_annotation): Likewise.
|
||
* src/tgbaalgos/replayrun.cc (print_annotation): New function.
|
||
(replay_tgba_run): Use it.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc,
|
||
src/tgbaalgos/gtec/gtec.hh (couvreur99_check::print_stats): New.
|
||
* src/tgbatest/ltl2tgba.cc: Print emptiness-check statistics.
|
||
|
||
* src/sanity/style.test: Diagnose superfluous constructs such
|
||
as `if (x) delete x;'.
|
||
* iface/gspn/gspn.cc, iface/gspn/ssp.cc, src/ltlvisit/basicreduce.cc,
|
||
src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgbaalgos/magic.cc,
|
||
src/tgbatest/ltl2tgba.cc: Remove such constructs.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Replace -e, -E, -m, -M, and -n by
|
||
-eALGO and -EALGO to ease the addition of new algorithms.
|
||
* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Adjust.
|
||
|
||
* src/misc/version.cc: Fix trailing whitespace.
|
||
* src/sanity/style.test: Diagnose trailing whitespace.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Fix lines longer than 80 chars.
|
||
* src/sanity/80columns.test: Use expand to untabify, the previous
|
||
recipe was incomplete.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Note duplicate states.
|
||
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Verify the run is
|
||
accepting.
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_path):
|
||
Initialize best_end to remove a spurious warning.
|
||
|
||
* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run,
|
||
couvreur99_check_result::complete_cycle,
|
||
couvreur99_check_result::accepting_path): Record conditions and
|
||
acceptance conditions in the accepting run. Simplify the
|
||
todo BFS stack for accepting_run and complete_cycle.
|
||
* src/tgbatest/ltl2tgba.cc (main): Do use replay_tgba_run
|
||
now everything works.
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Be more verbose
|
||
when an outgoing transition is not found.
|
||
|
||
2004-10-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc (magic_search):
|
||
Record the acceptance conditions in the accepting run.
|
||
* src/tgbaalgos/replayrun.cc (replay_tgba_run): Fix logic.
|
||
|
||
* src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh: New files.
|
||
Cannot test them because the run returned by the emptiness checks
|
||
are currently incomplete (they lack the acceptance conditions, and
|
||
sometimes even the labels in the prefix).
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgbatest/ltl2tgba.cc (main): Prepare to use replay_tgba_run
|
||
when the emptiness checks are fixed.
|
||
|
||
2004-10-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Introduce an emptiness-check interface, and modify the existing
|
||
algorithms to conform to it, uniformly. This will unfortunately
|
||
break third-party code that were using these algorithms.
|
||
* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: New files.
|
||
* src/tgbaalgos/Makefile.am: New files.
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh: Adjust to
|
||
conform to the new emptiness-check interface.
|
||
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
|
||
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh:
|
||
Likewise. The classes have been renamed are as following
|
||
emptiness_check -> couvreur99_check
|
||
emptiness_check_shy -> couvreur99_check_shy
|
||
emptiness_check_status -> couvreur99_check_status
|
||
counter_example -> couvreur99_check_result
|
||
* src/tgbatest/ltl2tgba.cc, iface/gspn/ltlgspn.cc, iface/gspn/ssp.hh,
|
||
iface/gspn/ssp.cc: Adjust to renaming and new interface.
|
||
|
||
* src/evtgbaalgos/tgba2evtgba.cc, src/evtgbaalgos/tgba2evtgba.hh:
|
||
New files.
|
||
* src/evtgbaalgos/Makefile.am (evtgbaalgos_HEADERS,
|
||
libevtgbaalgos_la_SOURCES): Add them.
|
||
* src/evtgbatest/ltl2evtgba.cc, src/evtgbatest/ltl2evtgba.test:
|
||
New files.
|
||
* src/evtgbatest/Makefile.am (check_PROGRAMS, TESTS): Add them.
|
||
(ltl2evtgba_SOURCES): New variable.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Do not assert
|
||
that the true state has only one link when unobs is used.
|
||
|
||
2004-10-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/evtgbatest/Makefile.am (CLEANFILES): New variable.
|
||
|
||
2004-10-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Preliminary support for Event-based GBA.
|
||
* src/evtgba/Makefile.am, src/evtgba/evtgba.cc,
|
||
src/evtgba/evtgba.hh, src/evtgba/evtgbaiter.hh,
|
||
src/evtgba/explicit.cc, src/evtgba/explicit.hh,
|
||
src/evtgba/product.cc, src/evtgba/product.hh,
|
||
src/evtgba/symbol.cc, src/evtgba/symbol.hh,
|
||
src/evtgbaalgos/Makefile.am, src/evtgbaalgos/dotty.cc,
|
||
src/evtgbaalgos/dotty.hh, src/evtgbaalgos/reachiter.cc,
|
||
src/evtgbaalgos/reachiter.hh, src/evtgbaalgos/save.cc,
|
||
src/evtgbaalgos/save.hh, src/evtgbaparse/Makefile.am,
|
||
src/evtgbaparse/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
|
||
src/evtgbaparse/fmterror.cc, src/evtgbaparse/parsedecl.hh,
|
||
src/evtgbaparse/public.hh, src/evtgbatest/Makefile.am,
|
||
src/evtgbatest/defs.in, src/evtgbatest/explicit.cc,
|
||
src/evtgbatest/explicit.test, src/evtgbatest/product.cc,
|
||
src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
|
||
src/evtgbatest/readsave.test: New files.
|
||
* configure.ac: Create the Makefiles in these new subdirectories.
|
||
* src/Makefile.am: Recurse them.
|
||
|
||
* src/misc/bareword.hh, src/misc/bareword.cc (quote_unless_bare_word):
|
||
New function.
|
||
|
||
* src/ltlvisit/tostring.cc (to_spin_string_visitor): Move to
|
||
anonymous namespace.
|
||
|
||
2004-10-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/Makefile.am (_spot_la_SOURCES): Add spot_wrap.h.
|
||
|
||
2004-10-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/modgray.hh (loopless_modular_mixed_radix_gray_code::done,
|
||
loopless_modular_mixed_radix_gray_code::last): Declare as const.
|
||
|
||
* src/misc/bareword.hh, src/misc/bareword.cc: New files.
|
||
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
|
||
|
||
* src/misc/modgray.hh, src/misc/modgray.cc: New files.
|
||
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
|
||
* wrap/python/spot.i: Activate directors, and interface modgray.hh.
|
||
* wrap/python/tests/modgray.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
2004-10-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/gspn.cc, src/ltlvisit/basicreduce.cc,
|
||
src/ltlvisit/destroy.cc, src/ltlvisit/dotty.cc,
|
||
src/ltlvisit/dump.cc, src/ltlvisit/length.cc,
|
||
src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
|
||
src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
|
||
src/tgba/formula2bdd.cc, src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbatba.cc, src/tgbaalgos/dotty.cc,
|
||
src/tgbaalgos/dupexp.cc, src/tgbaalgos/lbtt.cc,
|
||
src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
|
||
src/tgbaalgos/save.cc, src/tgbaalgos/stats.cc,
|
||
src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh:
|
||
Declare private classes and helper function in anonymous namespaces.
|
||
* HACKING, src/sanity/style.test: Document and check this.
|
||
Also check for trailing { after namespace or class.
|
||
* src/ltlast/predecl.hh, src/ltlast/visitor.hh,
|
||
src/tgba/tgbareduc.hh: Fix trailing {.
|
||
|
||
2004-10-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/ce.cc: Reinstall change from 2004-09-21.
|
||
|
||
Back out all Thomas's changes on emptiness checks since
|
||
2004-08-23. Some of these will need to be reintegrated more
|
||
slowly and cleanly.
|
||
|
||
* src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/ce.cc,
|
||
src/tgbaalgos/gtec/ce.hh, src/tgbatest/Makefile.am,
|
||
src/tgbatest/emptchk.test, src/tgbatest/ltl2tgba.cc: Revert.
|
||
* src/tgbaalgos/colordfs.cc, src/tgbaalgos/colordfs.hh,
|
||
src/tgbaalgos/minimalce.cc, src/tgbaalgos/minimalce.hh,
|
||
src/tgbaalgos/nesteddfs.cc, src/tgbaalgos/nesteddfs.hh,
|
||
src/tgbaalgos/nesteddfsgen.cc, src/tgbaalgos/nesteddfsgen.hh,
|
||
src/tgbaalgos/tarjan_on_fly.cc, src/tgbaalgos/tarjan_on_fly.hh:
|
||
Delete.
|
||
|
||
2004-10-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/reduc.test: Do source ./defs. Revert mistaken
|
||
change from 2004-09-13.
|
||
|
||
* src/tgbatest/explicit.test: Typo.
|
||
|
||
2004-10-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
The computation of the counter example fails the valgrind tests
|
||
and is wrong into two ways: the search stack is generally not a
|
||
path, and does not run until the end of the STL container.
|
||
Remove it.
|
||
* src/tgbaalgos/tarjan_on_fly.cc, src/tgbaalgos/tarjan_on_fly.hh
|
||
(tarjan_on_fly): Do not inherit from the emptiness_search class,
|
||
because the check method will no longer return a counter example.
|
||
(tarjan_on_fly::check): Return only a boolean.
|
||
(tarjan_on_fly::build_counter): Delete.
|
||
* src/tgbatest/ltl2tgba.cc: Adjust.
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit_succ_iterator::current_state,
|
||
tgba_explicit_succ_iterator::current_condition,
|
||
tgba_explicit_succ_iterator::current_accepting_conditions): Assert
|
||
the iteration is not finished.
|
||
|
||
2004-10-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/tests/run.in: Typo. From Akim Demaille.
|
||
|
||
2004-10-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Empty CFLAGS and CXXFLAGS.
|
||
* m4/debug.m4: Update CXXFLAGS too.
|
||
|
||
2004-10-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Doxyfile.in: Upgrade to Doxygen 1.3.9.
|
||
|
||
2004-09-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Suggest using "x->y", not "(*x).y".
|
||
* src/tgbaalgos/tarjan_on_fly.cc: Fix.
|
||
|
||
2004-09-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Suggest ++i over i++ when it does not
|
||
matter, for consistency.
|
||
* src/tgbaalgos/tarjan_on_fly.cc, iface/gspn/ssp.cc,
|
||
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/minimalce.cc, src/tgba/tgbareduc.cc: Adjust.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): New unobs argument.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Handle unobs.
|
||
* src/tgbatest/ltl2tgba.cc (syntax, main): New -U option.
|
||
|
||
2004-09-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/colordfs.hh, src/tgbaalgos/minimalce.cc,
|
||
src/tgbaalgos/minimalce.hh, src/tgbaalgos/nesteddfs.hh,
|
||
src/tgbaalgos/tarjan_on_fly.hh, src/tgbatest/ltl2tgba.cc: Rename
|
||
emptyness_search to emptiness_search.
|
||
|
||
* src/sanity/style.test: Warn about places where size() is used
|
||
instead of empty().
|
||
* src/misc/bddalloc.cc (bdd_allocator::extend): Use empty() rather
|
||
than size() when checking emptiness of lists.
|
||
* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/minimalce.cc,
|
||
src/ltlvisit/basicreduce.cc, src/ltlvisit/reduce.cc,
|
||
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/misc/minato.cc: Likewise.
|
||
* src/ltlast/multop.cc (multop::instance): Call ->size() only once.
|
||
|
||
2004-09-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Update to SWIG 1.3.22.
|
||
* wrap/python/libpy.c: Delete.
|
||
* wrap/python/swigpy.i: New file.
|
||
* wrap/python/Makefile.am (swigpy_wrap.c): Build this from swigpy.i
|
||
and use it instead of libpy.c.
|
||
|
||
* INSTALL, lbtt/INSTALL: New upstream version.
|
||
|
||
2004-09-14 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/emptchk.test
|
||
src/tgbaalgos/tarjan_on_fly.hh,
|
||
src/tgbaalgos/tarjan_on_fly.cc,
|
||
src/tgbaalgos/nesteddfs.hh,
|
||
src/tgbaalgos/nesteddfs.cc,
|
||
src/tgbaalgos/minimalce.hh,
|
||
src/tgbaalgos/minimalce.cc: To correct a bug.
|
||
|
||
* src/ltltest/reduc.test (FICH): bad file name.
|
||
|
||
2004-09-13 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/nesteddfsgen.hh src/tgbaalgos/nesteddfsgen.cc:
|
||
New algorithm for emptiness check.
|
||
|
||
* src/tgbatest/spotlbtt.test,
|
||
src/tgbatest/reductgba.cc,
|
||
src/tgbatest/ltl2tgba.cc:
|
||
Add option for reduction of TGBA.
|
||
|
||
* src/tgbatest/emptchk.test, src/tgbaalgos/Makefile.am,
|
||
src/tgbaalgos/tarjan_on_fly.hh, src/tgbaalgos/tarjan_on_fly.cc,
|
||
src/tgbaalgos/nesteddfs.hh, src/tgbaalgos/nesteddfs.cc,
|
||
src/tgbaalgos/minimalce.hh, src/tgbaalgos/minimalce.cc,
|
||
src/tgbaalgos/colordfs.hh, src/tgbaalgos/colordfs.cc:
|
||
Remove some bugs.
|
||
|
||
src/tgbaalgos/gtec/ce.cc:
|
||
Modification of construction of counter example.
|
||
|
||
* src/tgbaalgos/reductgba_sim.hh src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/reductgba_sim_del.cc,
|
||
src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc:
|
||
Modification for delayed simulation.
|
||
|
||
|
||
2004-08-23 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/tarjan_on_fly.hh,
|
||
src/tgbaalgos/tarjan_on_fly.cc,
|
||
src/tgbaalgos/nesteddfs.hh,
|
||
src/tgbaalgos/nesteddfs.cc,
|
||
src/tgbaalgos/minimalce.hh,
|
||
src/tgbaalgos/minimalce.cc,
|
||
src/tgbaalgos/colordfs.hh,
|
||
src/tgbaalgos/colordfs.cc: four new algorithms for emptiness check.
|
||
|
||
* src/tgbaalgos/gtec/ce.hh,
|
||
src/tgbaalgos/gtec/ce.cc: Adapt the counter exemple for the ce
|
||
object in minimalce.hh.
|
||
|
||
* src/tgbatest/ltl2tgba.cc,
|
||
src/tgbatest/emptchk.test,
|
||
src/tgbaalgos/Makefile.am: Add files for emptiness-check.
|
||
|
||
2004-08-23 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/reductgba_sim_del.cc: Restrict to degeneralize automata.
|
||
* src/tgba/tgbareduc.hh: src/tgba/tgbareduc.cc: Merge transition
|
||
for scc reduce.
|
||
|
||
2004-08-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0y.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0x.
|
||
|
||
2004-08-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Doxyfile.in (GENERATE_TAGFILE): Build spot.tag.
|
||
* doc/Makefile.am (dist_pkgdata_DATA): Add spot.tag.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Typo.
|
||
|
||
* doc/Doxyfile.in (STRIP_FROM_PATH): Strip @srcdir@ so its
|
||
does not appear when listing mainpage.dox.
|
||
|
||
2004-08-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh:
|
||
Typos in Doxygen comments.
|
||
|
||
2004-08-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/apcollect.hh: Fix include guard. Report from Denis.
|
||
* src/sanity/includes.test: Include files twice to check include
|
||
guards.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Fix another gcc warning in case
|
||
assert() is disabled.
|
||
|
||
* src/Makefile.am (nodist_EXTRA_libspot_la_SOURCES): New variable,
|
||
to force C++ linking.
|
||
|
||
* iface/gspn/ltlgspn.cc: Fix a gcc warning in case assert() is
|
||
disabled.
|
||
|
||
2004-08-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh: New files,
|
||
based on code from <Denis.Poitrenaud@lip6.fr>.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES, ltlvisit_HEADERS):
|
||
Add them.
|
||
|
||
* iface/gspn/common.cc, iface/gspn/common.hh,
|
||
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlparse/fmterror.cc, src/ltlparse/public.hh,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
|
||
src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
|
||
src/misc/escape.cc, src/misc/escape.hh, src/tgba/bdddict.cc,
|
||
src/tgba/bdddict.hh, src/tgba/bddprint.cc, src/tgba/bddprint.hh,
|
||
src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh,
|
||
src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
|
||
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
|
||
src/tgbaalgos/save.cc, src/tgbaalgos/save.hh,
|
||
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh,
|
||
src/tgbaparse/fmterror.cc, src/tgbaparse/public.hh: Include <iosfwd>
|
||
in headers, and prefer <ostream> in the body whenever possible.
|
||
* src/sanity/style.test, HACKING: Check and document this.
|
||
|
||
* src/ltlast/allnodes.hh, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/binop.hh, src/ltlast/constant.hh,
|
||
src/ltlast/formula.hh, src/ltlast/multop.hh,
|
||
src/ltlast/predecl.hh, src/ltlast/refformula.hh,
|
||
src/ltlast/unop.hh, src/ltlast/visitor.hh: Use \file to introduce
|
||
each file.
|
||
|
||
* doc/Doxyfile.in (STRIP_FROM_INC_PATH): Define, so that the
|
||
`#include' references are correct.
|
||
|
||
* README: Update.
|
||
|
||
* m4/gccoptim.m4: Compute optimization flags for CXX too.
|
||
|
||
* m4/ndebug.m4: Update CPPFLAGS, not CFLAGS.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Document all
|
||
parameters.
|
||
* src/tgbaalgos/ltl2tgba_lacim.hh (ltl_to_tgba_lacim): Likewise.
|
||
|
||
2004-08-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Call AC_PROG_CC and AM_PROG_CC_C_O.
|
||
* wrap/python/Makefile.am (_buddy_la_LDFLAGS): Move libspotswigpy.la ...
|
||
(_buddy_la_LIBADD): ... here.
|
||
|
||
2004-08-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* lbtt/: Merge lbtt 1.1.2.
|
||
|
||
2004-07-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* lbtt/: Merge lbtt 1.1.1.
|
||
|
||
2004-07-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Doxyfile.in: Update for Doxygen 1.3.8.
|
||
|
||
2004-07-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Call AC_LIBTOOL_WIN32_DLL
|
||
* src/Makefile.am (libspot_la_LDFLAGS): Add -no-undefined.
|
||
|
||
2004-07-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/explicit.test: Do not use `-i', it's not needed
|
||
and it is wrong to put it after `-e'. Caught by Denis too.
|
||
|
||
* src/ltltest/reduc.test: Use `test a = b' not `test a == b'.
|
||
Reported by <Denis.Poitrenaud@lip6.fr> (failure on Cygwin).
|
||
|
||
2004-07-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/defs.in (VALGRIND): Specify --tool=memcheck for
|
||
compatibility with valgrind 2.1.x.
|
||
* src/ltltest/defs.in (VALGRIND): Likewise.
|
||
|
||
2004-07-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* m4/gccwarn.m4: Do not check nor use -Wstrict-prototypes.
|
||
g++-3.4 complains it makes no sense in C++.
|
||
|
||
* iface/gspn/ssp.cc: Typos.
|
||
|
||
* iface/gspn/gspn.cc (tgba_succ_iterator_gspn::tgba_succ_iterator_gspn):
|
||
Set size_ to 1 when stuttering is needed, so that done() does not
|
||
return true immediately.
|
||
|
||
2004-07-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh: Typos in comments.
|
||
|
||
2004-07-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state_ptr_equal, state_ptr_hash): Fix Doxygen
|
||
example.
|
||
|
||
* src/tgbaalgos/reductgba_sim.hh (parity_game_graph_delayed,
|
||
reduc_tgba_sim): Fix warnings about Doxygen comment.
|
||
* src/ltlvisit/reduce.hh (reduce): Likewise.
|
||
|
||
* doc/footer.html: New file, link to RefDocComments on the wiki.
|
||
* doc/Doxyfile.in (HTML_FOOTER): Use footer.html.
|
||
* doc/Makefile.am (EXTRA_DIST): Add footer.html.
|
||
|
||
* THANKS: Fill in.
|
||
|
||
* src/tgbatest/ltl2baw.pl: Do not use -T anymore. Fix comments.
|
||
|
||
2004-07-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
lbtt 1.1.0 supports TGBAs, use that and remove old workarounds.
|
||
* src/tgbaalgos/lbtt.cc (state_acc_pair, state_acc_pair_equal,
|
||
state_acc_pair_hash, acp_seen_map, todo_set, seen_map, fill_todo
|
||
lbtt_reachable): Remove.
|
||
(nonacceptant_lbtt_bfs): Rename as ...
|
||
(lbtt_bfs): ... this, and adjust to output acceptance conditions
|
||
on transitions.
|
||
(nonacceptant_lbtt_reachable): Rename as ...
|
||
(lbtt_reachable): ... this.
|
||
* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): Delete.
|
||
* src/tgbatest/ltl2tgba.cc: Suppress option "-T".
|
||
|
||
Patch from Heikki Tauriainen <heikki.tauriainen@hut.fi>.
|
||
* src/tgbaalgos/gtec/ce.cc (counter_example::counter_example): Do
|
||
not parenthesize the type after the new operator (g++ 3.4 complains).
|
||
* src/tgbaalgos/dupexp.cc (dupexp_iter::process_state,
|
||
dupexp_iter::declare_state): Use this->automata_<61>instead of
|
||
automata_. Local protected member automata_ inherited from
|
||
template base class must be prefixed or g++ 3.4 will not look it
|
||
up (conforming to <20>14.6.2.3).
|
||
|
||
2004-07-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* lbtt/: Merge lbtt 1.1.0.
|
||
* src/tgbatest/spotlbtt.test: Adjust config file syntax to
|
||
please lbtt 1.1.0.
|
||
|
||
* src/tgbaalgos/gtec/gtec.hh (emptiness_check_shy::find_state): Add
|
||
comments.
|
||
* iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Likewise.
|
||
Soheib and I had a hard time figuring why we did this...
|
||
|
||
2004-07-02 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
|
||
src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
|
||
src/tgbaalgos/reductgba_sim_del.cc: Remove some comments.
|
||
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbatest/reductgba.cc: Adjust ...
|
||
* src/tgbatest/spotlbtt.test: More test (delayed simulation)
|
||
|
||
2004-06-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0w.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0v.
|
||
|
||
2004-06-28 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/reduccmp.test: Bug.
|
||
|
||
* src/tgbatest/reductgba.test: More Test.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Adjust ...
|
||
* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.hh,
|
||
src/tgbaalgos/reductgba_sim.cc: try to optimize.
|
||
|
||
* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc: Scc reduction
|
||
and we remove some acceptance condition in scc which are not accepting.
|
||
* src/ltlvisit/syntimpl.cc : Some case wasn't detect.
|
||
* src/ltlvisit/basicreduce.cc: Case FGa || FGb = F(Ga | Gb) added.
|
||
* src/ltltest/syntimpl.test: More Test.
|
||
* src/ltltest/syntimpl.cc: Put the formula in negative normal form.
|
||
|
||
2004-06-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* buddy/: Merge buddy-2-3.
|
||
|
||
2004-06-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Degeneralize before
|
||
the simulations.
|
||
|
||
2004-06-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc (is_bare_word): New function.
|
||
(to_string_visitor::visitor(const atomic_prop*)): Use is_bare_word
|
||
to better check which atomic proposition need to be quoted.
|
||
* src/ltlparse/ltlscan.ll: Do not allow identifiers starting with F_
|
||
or G_.
|
||
* src/ltltest/equals.test, src/ltltest/tostring.test: More tests.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy::format_state): Use
|
||
bdd_format_accset to print the acceptance condition part of the state.
|
||
That produces more readable output.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Add "Formula Simplications" options.
|
||
* wrap/python/spot.i: Wrap src/ltlvisit/reduce.hh.
|
||
|
||
* src/ltlvisit/simpfg.cc, src/ltlvisit/simpfg.hh: New files,
|
||
extracted from ...
|
||
* src/ltlvisit/lunabbrev.cc: ... this one, which now work as documented
|
||
again.
|
||
* src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc: Adjust to call
|
||
simplify_f_g() in addition to unabbreviate_logic().
|
||
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS, libltlvisit_la_SOURCES):
|
||
Add simpfg.cc and simpfg.hh.
|
||
|
||
* src/ltlvisit/reducform.hh, src/ltlvisit/reducform.cc: Rename to ...
|
||
* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.cc: ... this, to match
|
||
the function name.
|
||
* ltltest/equals.cc, ltltest/reduc.cc, ltlvisit/Makefile.am,
|
||
tgbatest/ltl2tgba.cc, tgbatest/reductgba.cc: Adjust filenames.
|
||
|
||
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit(binop*)):
|
||
Factorize.
|
||
|
||
* src/ltlvisit/basicreduce.hh: New file, extracted from ...
|
||
* src/ltlvisit/reducform.hh: ... here.
|
||
* src/ltlvisit/basereduc.cc: Rename as ...
|
||
* src/ltlvisit/basicreduce.cc: ... this, to match the function name.
|
||
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS, libltlvisit_la_SOURCES):
|
||
Adjust filenames.
|
||
* src/ltlvisit/reducform.cc: Adjust includes.
|
||
|
||
* src/ltlvisit/lunabbrev.hh: Revert superfluous change from
|
||
2004-05-10.
|
||
|
||
2004-06-22 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/ltlvisit/reducform.cc, src/tgba/tgbareduc.cc,
|
||
src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh
|
||
src/tgbaalgos/reductgba_sim_del.cc, src/tgbatest/reduccmp.test,
|
||
src/tgbatest/reductgba.cc: 80 columns and style.
|
||
|
||
2004-06-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Typo.
|
||
|
||
2004-06-22 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc, src/tgbaalgos/reductgba_sim_del.cc,
|
||
src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc:
|
||
bug in delayed simulation.
|
||
|
||
* src/tgbatest/reduccmp.test, src/tgbatest/reductgba.test,
|
||
src/tgba/tgbareduc.cc: bug in scc reduction.
|
||
|
||
2004-06-21 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/reductgba.test, src/tgba/tgbareduc.cc:
|
||
There is bug in reduction with scc.
|
||
* src/tgbatest/reduccmp.test: More test.
|
||
|
||
2004-06-17 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/reductgba.test: Wrong test are removed.
|
||
|
||
2004-06-17 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/spotlbtt.test: We don't check the post-reduction
|
||
with scc and delayed simulation.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Adjust parameters.
|
||
* src/tgbatest/reductgba.cc, src/tgbatest/Makefile.am: More Test.
|
||
* src/tgbaalgos/reductgba_sim_del.cc: Not finish, lot of bugs.
|
||
* src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc:
|
||
Remove some useless comments.
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: Bug in SCC.
|
||
|
||
* src/ltlvisit/reducform.cc: Correct some bug for multop.
|
||
* src/ltltest/reduc.cc: Thinko
|
||
* src/ltltest/equals.cc: Reduction compare
|
||
|
||
2004-06-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Free s.
|
||
This fixes a memory leak observed by Soheib Baarir.
|
||
|
||
2004-06-16 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/reductgba.cc, src/tgbatest/reductgba.test: Test for
|
||
reduction of tgba.
|
||
|
||
2004-06-15 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add some option for the reduction of
|
||
automata.
|
||
* src/tgbatest/spotlbtt.test, src/tgbatest/Makefile.am: Add some
|
||
test for reduction of automata.
|
||
* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/reductgba_sim.hh: Compute some simulation relation
|
||
to reduce a tgba.
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: A implementation
|
||
of tgba for the reduction.
|
||
* src/tgbaalgos/Makefile.am, src/tgba/Makefile.am:
|
||
Add the reduction of automata.
|
||
* src/ltlvisit/syntimpl.cc, src/ltlvisit/basereduc.cc:
|
||
Lot of mistake are corrected.
|
||
* src/ltlvisit/syntimpl.hh, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/reducform.hh, src/ltltest/reduc.cc: Adjust.
|
||
* src/ltltest/equals.cc, src/ltltest/reduccmp.test,
|
||
src/ltltest/Makefile.am: Add a test for reduction.
|
||
|
||
2004-06-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/common.cc, iface/gspn/common.hh: Remove the
|
||
class gspn_environment, and move it to ...
|
||
* src/ltlenv/declenv.cc, src/ltlenv/declenv.hh: .. this new file
|
||
as class declarative_environment.
|
||
* src/ltlenv/Makefile.am (ltlenv_HEADERS): Add declenv.hh.
|
||
(libltlenv_la_SOURCES): Add declenv.cc.
|
||
* iface/gspn/dottygspn.cc, iface/gspn/dottyssp.cc,
|
||
iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
|
||
iface/gspn/ssp.cc, iface/gspn/ssp.hh: Adjust references
|
||
to declarative_environment.
|
||
|
||
* HACKING, src/sanity/style.test: NULL is not portable, prohibit it.
|
||
* iface/gspn/ssp.cc, src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
|
||
src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/syntimpl.cc: Use 0 instead of NULL.
|
||
|
||
2004-06-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/inf.cc, src/ltltest/inf.test: Rename as ...
|
||
* src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test: ... these.
|
||
* src/ltltest/Makefile.am: Adjust.
|
||
* src/ltlvisit/forminf.cc: Rename as...
|
||
* src/ltlvisit/syntimpl.cc: ... this.
|
||
* src/ltlvisit/syntimpl.hh: New file with definitions extracted
|
||
from ...
|
||
* src/ltlvisit/reducform.hh: ... this one.
|
||
* src/ltlvisit/Makefile.am, src/ltlvisit/reducform.cc: Adjust.
|
||
|
||
2004-05-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/forminf.cc (form_eventual_universal_visitor,
|
||
inf_form_right_recurse_visitor, inf_form_left_recurse_visitor): Rename
|
||
as ...
|
||
(eventual_universal_visitor, inf_right_recurse_visitor,
|
||
inf_left_recurse_visitor): ... these.
|
||
(is_GF, is_FG): Move ...
|
||
* src/ltlvisit/basereduc.cc (is_GF, is_FG): ... here, since they
|
||
are only used here.
|
||
(basic_reduce_form, basic_reduce_form_visitor): Rename as ...
|
||
(basic_reduce, basic_reduce_visitor): ... these.
|
||
* src/ltlvisit/reducform.cc (reduce_form_visitor): Rename as ...
|
||
(reduce_visitor): ... this.
|
||
* src/ltltest/inf.cc: Adjust calls.
|
||
* src/sanity/style.test: Improve missing-space after coma detection.
|
||
|
||
2004-05-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/reducform.cc (reduce_form_visitor::visit(constant)):
|
||
Simplify.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc: Use
|
||
dynamic_cast instead of node_type_form_visitor, this is usually
|
||
smaller.
|
||
* src/ltlvisit/reducform.hh,
|
||
src/ltlvisit/forminf.cc (node_type_form_visitor): Delete.
|
||
* src/sanity/style.test: Two more checks.
|
||
|
||
2004-05-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/formlength.cc: Rename as ...
|
||
* src/ltlvisit/length.cc: ... this.
|
||
* src/ltlvisit/length.hh: New file, extracted from ...
|
||
* src/ltlvisit/reducform.hh: ... here.
|
||
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS): Add length.hh.
|
||
(libltlvisit_la_SOURCES): Rename formlength.cc as length.cc.
|
||
* src/ltltest/reduc.cc: Include length.hh.
|
||
|
||
* src/ltlvisit/formlength.cc (length_form_vistor): Rename as ..
|
||
(length_visitor): ... this.
|
||
(form_length): Rename as ...
|
||
(length): ... this.
|
||
* src/ltlvisit/reducform.hh (form_length): Rename as ...
|
||
(length): ... this.
|
||
* src/ltltest/reduc.cc: Adjust.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/formlength.cc: Remove
|
||
useless includes.
|
||
|
||
* AUTHORS: Update.
|
||
|
||
* src/ltlvisit/reducform.hh: Update Doxygen comments for
|
||
previous change.
|
||
|
||
* src/ltlvisit/reducform.hh (option): Rename as ...
|
||
(reduce_options): ... this, and use it as a bit field so
|
||
option can be combined easily.
|
||
(reduce): Adjust argument.
|
||
(reduce_form): Remove, not needed anymore.
|
||
* src/ltlvisit/reducform.cc, src/ltltest/reduc.cc,
|
||
src/tgbatest/ltl2tgba.cc: Adjust.
|
||
|
||
* src/sanity/style.test: Catch {.*{ and }.*}.
|
||
* src/sanity/80columns.test: Untabify files.
|
||
* iface/gspn/ltlgspn.cc, src/ltlvisit/basereduc.cc: Fix long lines.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/forminf.cc: Remove superfluous spot::ltl:: prefixes.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Typos.
|
||
|
||
2004-05-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Catch `;'-not-followed-by-space.
|
||
* src/ltlvisit/reducform.cc, src/ltlvisit/forminf.cc: Fix style.
|
||
|
||
* src/ltlvisit/reducform.hh: Fix some Doxygen comments.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Keep options sorted.
|
||
|
||
* src/sanity/Makefile.am (EXTRA_DIST): Distribute 80columns.test
|
||
and style.test.
|
||
|
||
* src/ltltest/Makefile.am (EXTRA_DIST): Distribute formulae.txt.
|
||
* src/ltltest/formulae.txt: New file (2200 LTL formulea generated
|
||
by Wring).
|
||
* src/ltltest/formules.ltl: Delete.
|
||
* src/reduc.test: Read formulae.txt.
|
||
|
||
2004-05-24 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
|
||
* iface/gspn/ssp.hh (gspn_ssp_interface::gspn_ssp_interface): Add
|
||
the `inclusion' flag.
|
||
* iface/gspn/ssp.cc (gspn_ssp_interface::gspn_ssp_interface): Call
|
||
inclusion_version when inclusion is set.
|
||
* iface/gspn/ltlgspn.cc (main) [SSP]: Turn on inclusion for -e3,
|
||
-e4, and -e5.
|
||
|
||
2004-05-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_): Define alive_prop,
|
||
and dead_prop from the dead argument passed to the constructor.
|
||
(tgba_succ_iterator_gspn): Stutter on dead transitions.
|
||
(tgba_gspn::tgba_gspn): Hand dead to tgba_gspn_private_.
|
||
(gspn_interface::gspn_interface): Hand dead to tgba_gspn.
|
||
* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take a
|
||
dead argument.
|
||
* iface/gspn/ltlgspn.cc [!SSP]: Add a option -d to specify the
|
||
dead property.
|
||
* iface/gspn/udcseltl.test: Try option -d.
|
||
|
||
* src/sanity/style.test: Check the iface/ tree too.
|
||
* iface/gspn/gspn.cc, iface/gspn/ssp.cc: Fix style.
|
||
|
||
* src/sanity/80columns.test: Check the iface/ tree too.
|
||
* iface/gspn/dcswaveltl.test, iface/gspn/dcswavefm.test,
|
||
iface/gspn/dcswaveeltl.test, iface/gspn/udcsltl.test,
|
||
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
|
||
iface/gspn/udcsefm.test: Wrap to fit 80 columns.
|
||
|
||
2004-05-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Makefile.am (EXTRA_DIST, spot.html): Built the html
|
||
documentation in $(srcdir) since it is distributed.
|
||
* doc/Doxyfile.in (HTML_OUTPUT): Likewise. Upgrade to Doxygen 1.3.7.
|
||
|
||
2004-05-17 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltltest/inf.cc (main): Style.
|
||
|
||
* src/ltlvisit/basereduc.cc (spot): 80 columns.
|
||
* src/ltlvisit/reducform.cc (spot), src/ltltest/inf.cc,
|
||
src/ltltest/reduc.cc (main), src/ltlvisit/reducform.hh,
|
||
src/tgbatest/ltl2tgba.cc (main): More option.
|
||
* src/ltltest/inf.test: More test.
|
||
|
||
2004-05-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: Define typemap for input_buf and use it
|
||
for fdd_extdomain. Define const_int_ptr and use it for fdd_vars.
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::varnum): Suppress.
|
||
(bdd_allocator::bdd_allocator): Adjust.
|
||
(bdd_allocator::extvarnum): Always call bdd_varnum(), so that
|
||
it doesn't matter if the number of variable has been augmented
|
||
externally.
|
||
* src/misc/bddalloc.hh (bdd_allocator::varnum): Suppress.
|
||
|
||
* src/ltlvisit/formlength.cc: Fix style to please sanity checks.
|
||
|
||
* src/ltlvisit/lunabbrev.cc: Fix style to please sanity checks.
|
||
|
||
* src/tgbaalgos/neverclaim.cc: Fix them.
|
||
* sanity/style.test: Diagnose semicolons with leading spaces.
|
||
|
||
* src/ltlvisit/forminf.cc: Fix style to please sanity checks.
|
||
Also avoid node_type_form_visitor where a dynamic_cast is done.
|
||
|
||
2004-05-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: Preliminary bindings for FDD and BVEC.
|
||
|
||
* ltltest/inf.cc, ltltest/reduc.cc, ltlvisit/reducform.cc: Fix style.
|
||
* sanity/style.test: More tests.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Fix style.
|
||
* HACKING: Mention `else if'.
|
||
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Do not output
|
||
space before colon, and do not output the top-level formula using
|
||
Spin's syntax.
|
||
|
||
2004-05-14 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Thinko.
|
||
|
||
* src/ltlvisit/basereduc.cc (spot): Correct some mistakes.
|
||
* src/ltlvisit/lunabbrev.cc (spot): Nothing change.
|
||
* src/tgbatest/ltl2tgba.cc (main): More option to reduce
|
||
formula.
|
||
* src/tgbatest/spotlbtt.test: One more test.
|
||
|
||
2004-05-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc (to_spin_string_visitor,
|
||
to_string_visitor): Do not parenthesize the top-level formula.
|
||
* tgbatest/explicit.test, tgbatest/explpro2.test,
|
||
tgbatest/explpro3.test, tgbatest/explprod.test,
|
||
tgbatest/readsave.test, tgbatest/tgbaread.test,
|
||
tgbatest/tripprod.test: Adjust expected output.
|
||
* sanity/style.test: Fix regexes to catch an error seen in
|
||
tostring.cc.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (emptiness_check::remove_component):
|
||
Do not try to erase state that are not found in H.
|
||
Report from Soheib Baarir.
|
||
|
||
* src/ltltest/reduc.test: Use ./defs and clean result.data.
|
||
* src/ltltest/Makefile.am (CLEANFILES): Clean result.data.
|
||
|
||
2004-05-13 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/ltlvisit/Makefile.am: Copyright 2004.
|
||
* src/ltltest/inf.test: More test.
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/forminf.cc (spot):
|
||
Use dynamic_cast.
|
||
* src/ltlvisit/reducform.cc, src/ltlvisit/reducform.hh,
|
||
src/ltltest/reduc.test, src/ltltest/reduc.cc: Add an option
|
||
to choose which rules applies to simplify the formula.
|
||
|
||
2004-05-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/reduc.test: Typo.
|
||
|
||
* src/ltlparse/ltlparse.yy (OP_POST_NEG, OP_POST_POS): New tokens.
|
||
(subformula): Recognize `ATOMIC_PROP OP_POST_POS' and
|
||
`ATOMIC_PROP OP_POST_NEG'.
|
||
* src/ltlparse/ltlscan.ll: Introduce the not_prop start condition,
|
||
to restrict the set of atomic propositions allowed in places
|
||
where they are not expected. Make `true' and `false' case insensitive.
|
||
* src/ltltest/parse.test, src/ltltest/tostring.test: More cases.
|
||
* src/ltlvisit/tostring.cc (to_string_visitor): Quote atomic
|
||
propositions equal to "true" or "false".
|
||
|
||
2004-05-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/Makefile.am (TESTS): Run inf.test and reduc.test last.
|
||
|
||
* src/ltltest/reduc.test: POSIXify.
|
||
|
||
2004-05-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: New file.
|
||
* src/sanity/Makefile.am (check-local): Run it.
|
||
* src/ltlvisit/nenoform.cc, src/ltlvisit/tostring.cc,
|
||
src/tgba/bdddict.cc, src/tgba/bddprint.cc, src/tgba/tgba.cc,
|
||
src/tgba/tgbaproduct.cc, src/tgbaalgos/lbtt.cc,
|
||
src/tgbaalgos/magic.cc, src/tgbaalgos/powerset.cc,
|
||
src/tgbaalgos/reachiter.cc, src/tgbaalgos/gtec/ce.cc,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbatest/ltl2tgba.cc: Fix style
|
||
issues reported by style.test.
|
||
|
||
* src/ltltest/inf.cc, src/ltltest/inf.test, src/ltltest/reduc.test,
|
||
src/ltlvisit/formlength.cc, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/reducform.hh: Fix copyright year, these files were
|
||
created in 2004.
|
||
|
||
* src/sanity/80columns.test: New file.
|
||
* src/sanity/Makefile.am (check-local): Run it.
|
||
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parseerr.test
|
||
src/ltltest/tunabbrev.test, src/ltltest/reduc.cc,
|
||
src/ltltest/tunabbrev.test, src/ltlvisit/forminf.cc,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/spotlbtt.test,
|
||
src/tgbatest/tripprod.test: Wrap long lines.
|
||
|
||
2004-05-10 Thomas MARTINEZ <martinez@abacus.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Add a option for reduce the formula.
|
||
|
||
* src/ltltest/formules.ltl: A pattern of 2000 formulas.
|
||
* src/ltltest/inf.test: Test some case of implies.
|
||
* src/ltltest/inf.cc: Test some case of implies.
|
||
* src/ltltest/reduc.test: Test reduction of a file of formula.
|
||
* src/ltltest/reduc.cc: Test reduction of a formula.
|
||
|
||
* src/ltlvisit/formlength.cc: Gives the lenght of a formula.
|
||
* src/ltlvisit/forminf.cc: To know if a formula implies an other.
|
||
* src/ltlvisit/basereduc.cc: Implement only basic reduction.
|
||
* src/ltlvisit/reducform.cc: Implement reduction.
|
||
* src/ltlvisit/reducform.hh: To reduce a formula.
|
||
|
||
2004-05-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Refine
|
||
fair_loop_approximation when branching postponement is not used.
|
||
|
||
Cache formula translations, and canonize formulae before doing
|
||
branching postponement.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (formula_canonizer): New class, with
|
||
bits extracted from fill_dests and ltl_to_tgba_fm.
|
||
(fill_dests, ltl_to_tgba_fm): Adjust to use formula_canonizer.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
|
||
fair_loop_approx.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Implement the
|
||
fair_loop_approx optimization.
|
||
(ltl_promise_visitor, ltl_possible_fair_loop_visitor,
|
||
possible_fair_loop_checker): New classes.
|
||
* src/tgbatest/ltl2tgba.cc: Add the -L option.
|
||
* src/tgbatest/spotlbtt.test: Exercise fair_loop_approx.
|
||
* wrap/python/cgi/ltl2tgba.in: Make it an option.
|
||
|
||
2004-05-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
|
||
branching_postponement.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (fill_dests): New function, extracted
|
||
from ltl_to_tgba_fm().
|
||
(ltl_to_tgba_fm): Implement the branching_postponement optimization.
|
||
* src/tgbatest/ltl2tgba.cc: Add the -p option.
|
||
* src/tgbatest/spotlbtt.test: Exercise branching postponement.
|
||
* wrap/python/cgi/ltl2tgba.in: Make it an option.
|
||
|
||
2004-05-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Add a superfluous return to pacify
|
||
some GCC version. Report from Denis Poitrenaud.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix output HTML.
|
||
|
||
2004-05-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Clone and then
|
||
free all formulae entered into canonical_succ, to avoid errors
|
||
when a formula is entered into canonical_succ but not into
|
||
formulae_seen.
|
||
* src/tgbatest/ltl2tgba.test: Add a new test, and check with -f.
|
||
Report from Thomas Martinez.
|
||
|
||
2004-04-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0u.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0t.
|
||
* HACKING: Update tools requirements.
|
||
* src/sanity/Makefile.am (EXTRA_DIST): Distribute includes.test.
|
||
|
||
* src/sanity/Makefile.am, src/sanity/includes.test: New files.
|
||
* src/Makefile.am (SUBDIRS): Add sanity.
|
||
* configure.ac: Output src/sanity/Makefile.in.
|
||
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Move ltl2tgba ...
|
||
(noinst_PROGRAMS): ... here.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Rename as ...
|
||
(noinst_PROGRAMS): ... this.
|
||
|
||
2004-04-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/explicit.test: Reorder bdd variables in output.
|
||
Report from Denis Poitrenaud.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Print degeneralized statistics
|
||
when show_never_claim. Change the title to LTL-to-TGBA.
|
||
Suggested by Denis Poitrenaud.
|
||
|
||
2004-04-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_footer): Make ltl2tgba.py's
|
||
version a separate variable.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Pass the formula to
|
||
never_claim_reachable, and cgi.escape its output.
|
||
Lighten the color a bit.
|
||
|
||
* src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
|
||
src/tgba/bddprint.hh: Fix Doxygen comments.
|
||
|
||
* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Document
|
||
arguments.
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs::state_is_accepting):
|
||
New method.
|
||
(never_claim_bfs::get_state_label, never_claim_bfs::process_state):
|
||
Use it.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Use darker color and introduce
|
||
the new variable dot_bgcolor.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (add_options): Revamp options output
|
||
using this new function.
|
||
|
||
* wrap/python/spot.i: Process tgbaalgos/neverclaim.hh.
|
||
* wrap/python/cgi/ltl2tgba.in: Display the never claim on demand.
|
||
|
||
2004-04-21 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.hh (to_spin_string): New function.
|
||
Convert a formula into a string parsable by Spin.
|
||
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: New files.
|
||
Print the never claim in Spin format of a degeneralized TGBA.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/ltl2tgba.cc: Add the option -N which outputs the
|
||
never claim in Spin format of a degeneralized TGBA.
|
||
* src/tgbatest/ltl2neverclaim.test: New file.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2004-04-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/defs.in, src/tgbatest/defs.in: Correctly set exitcode
|
||
when valgrind is not used.
|
||
Reported by Denis Poitrenaud.
|
||
|
||
* src/tgba/tgba.hh (tgba::succ_iter): Doco.
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::state_is_accepting): Document
|
||
it.
|
||
Reported by Denis Poitrenaud.
|
||
|
||
2004-04-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main) [SSP]: Use the standard
|
||
counter-example computation for -e5 too.
|
||
|
||
* iface/gspn/ltlgspn.cc (main) [!SSP]: Do not accept -e3, -e4, or -e5.
|
||
(main) [SSP]: Use the standard counter-example computation
|
||
for -e and -e1.
|
||
|
||
2004-04-15 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Rename EESRG as SSP.
|
||
* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
|
||
iface/gspn/dottyeesrg.cc: Rename as ...
|
||
* iface/gspn/ssp.cc, iface/gspn/ssp.hh, iface/gspn/dottyssp.cc:
|
||
... these. Adjust all classes and function names.
|
||
* iface/gspn/ltlgspn.cc, iface/gspn/Makefile.am: Adjust all classes
|
||
filenames and function names.
|
||
* m4/gspnlib.m4: Define WITH_GSPN_SSP and LIBGSPNSSP_LDFLAGS.
|
||
|
||
* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map::find):
|
||
Rewrite.
|
||
(numbered_state_heap_hash_map::index): New functions.
|
||
(numbered_state_heap_hash_map::filter): Delete.
|
||
* src/tgbaalgos/gtec/nsheap.hh
|
||
(numbered_state_heap_hash_map::index): New functions.
|
||
(numbered_state_heap_hash_map::filter): Delete.
|
||
* iface/gspn/eesrg.cc (numbered_state_heap_eesrg_semi::find,
|
||
numbered_state_heap_eesrg_semi::index): Rewrite.
|
||
(numbered_state_heap_eesrg_semi::filter): Remove.
|
||
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/ce.cc:
|
||
Adjust to use find() and index() instead of filter()..
|
||
|
||
|
||
* iface/gspn/eesrg.cc (connected_component_eesrg::has_state):
|
||
Free filtered states.
|
||
(emptiness_check_shy_eesrg): New class.
|
||
(emptiness_check_eesrg_shy): New function.
|
||
* iface/gspn/eesrg.hh (emptiness_check_eesrg_shy): New function.
|
||
* iface/gspn/ltlgspn.cc (main) [EESRG]: Handle -e3, -e4, and -e5.
|
||
* * src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
|
||
(emptiness_check_shy::check): Move arc, num, succ_queue, and todo
|
||
as attributes.
|
||
(emptiness_check_shy::find_state): New virtual function.
|
||
|
||
2004-04-14 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (connected_component_eesrg,
|
||
connected_component_eesrg_factory, numbered_state_heap_eesrg_semi,
|
||
numbered_state_heap_eesrg_const_iterator,
|
||
numbered_state_heap_eesrg_factory_semi): New classes.
|
||
(emptiness_check_eesrg_semi, emptiness_check_eesrg_shy_semi,
|
||
counter_example_eesrg): New functions.
|
||
* iface/gspn/eesrg.hh (emptiness_check_eesrg_semi,
|
||
emptiness_check_eesrg_shy_semi, counter_example_eesrg): New
|
||
functions.
|
||
* iface/gspn/ltlgspn.cc [EESRG]: Adjust to call these new functions.
|
||
|
||
2004-04-14 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg,
|
||
state_gspn_eesrg): Compute the array of all successors of the
|
||
right state beforehand, pass it to Greatspn (left automata) at
|
||
once, let it compute the resulting synchronized arcs, and iterate
|
||
on that result.
|
||
|
||
2004-04-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap_factory,
|
||
numbered_state_heap_hash_map_factory): New class.
|
||
* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map_factory):
|
||
Implement it.
|
||
* src/tgbaalgos/gtec/gtec.hh (emptiness_check::emptiness_check,
|
||
emptiness_check_shy::emptiness_check_shy): Take a
|
||
numbered_state_heap_factory argument.
|
||
* tgbaalgos/gtec/status.hh
|
||
(emptiness_check_status::emptiness_check_status): Likewise.
|
||
(emptiness_check_status::h): Make it a numbered_state_heap*.
|
||
* src/tgbaalgos/gtec/ce.cc, tgbaalgos/gtec/gtec.cc,
|
||
tgbaalgos/gtec/status.cc: Adjust uses of ecs_->h.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
|
||
Delete and split into ...
|
||
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
|
||
src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
|
||
src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
|
||
src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
|
||
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh: ...
|
||
these new files.
|
||
* src/tgbaalgos/gtec/Makefile.am: New file.
|
||
* src/tgbaalgos/Makefile.am (SUBDIRS, libtgbaalgos_la_LIBADD):
|
||
Recurse into gtec and link gtec/libgtec.la.
|
||
(tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES): Remove emptinesscheck.hh
|
||
and emptinesscheck.cc.
|
||
* configure.ac: Output src/tgbalagos/gtec/Makefile.
|
||
* iface/gspn/ltlgspn.cc, src/tgbatest/ltl2tgba.cc: Update includes.
|
||
* README: Update tree description.
|
||
|
||
2004-04-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (numbered_state_heap_const_iterator,
|
||
numbered_state_heap, numbered_state_heap_hash_map): New classes.
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(numbered_state_heap_hash_map_const_iterator): New class.
|
||
(numbered_state_heap_hash_map): Implement it.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(explicit_connected_component_factory,
|
||
connected_component_hash_set_factory): New classes.
|
||
(counter_example::counter_example): Take an
|
||
explicit_connected_component_factory factory argument.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (explicit_connected_component):
|
||
New class.
|
||
(counter_example::connected_component_set): Rename as ...
|
||
(connected_component_hash_set): ... this, and inherit from
|
||
explicit_connected_component.
|
||
(counter_example::accepting_path, counter_example::complete_cycle):
|
||
Take an explicit_connected_component argument instead of a
|
||
connected_component_set.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(counter_example::connected_component_set::has_state): Return
|
||
a const state* and behave like h_filt.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2): Move
|
||
into ...
|
||
(emptiness_check_shy): This new subclass of emptiness_check.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* src/tgba/bdddict.hh (bdd_dict::annon_free_list): Hide from Swig.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (counter_example): New class,
|
||
extracted from ...
|
||
(emptiness_check): ... here.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* wrap/python/Makefile.am ($(srcdir)/spot_wrap.cxx)
|
||
($(srcdir)/buddy_wrap.cxx): Use -noruntime instead of -c.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (emptiness_check_status): New class,
|
||
extracted from ...
|
||
(emptiness_check): ... here.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (scc_stack): New class, extracted
|
||
from ...
|
||
(emptiness_check): ... here.
|
||
(emptiness_check::root): Redefined as a scc_stack object.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
2004-04-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Do not visit a state more than once. Report from Soheib Baarir.
|
||
|
||
2004-03-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Reuse Acc and Var
|
||
variables from a shared bdd_dict. Register Next variables as
|
||
anonymous variables.
|
||
(translate_dict::translate_dict, translate_dict::~translate_dict,
|
||
translate_dict::register_proposition,
|
||
translate_dict::register_a_variable,
|
||
translate_dict::register_next_variable,
|
||
translate_dict::dump, translate_dict::var_to_formula,
|
||
ltl_to_tgba_fm): Adjust.
|
||
(translate_dict::dict): New attribute.
|
||
(translate_dict::a_map, translate_dict::a_formula_map,
|
||
translate_dict::var_map, translate_dict::var_formula_map): Delete.
|
||
|
||
* src/misc/freelist.cc (free_list::remove): Work around
|
||
invalidated iterators.
|
||
* tgba/bdddict.cc (unregister_variable): New methods,
|
||
extracted from ...
|
||
(bdd_dict::unregister_all_my_variables): ... here.
|
||
* tgba/bdddict.hh (unregister_variable): Declare them.
|
||
|
||
2004-03-23 Alexandre DURET-LUTZ <adl@src.lip6.fr>
|
||
|
||
* src/misc/freelist.hh (free_list::remove, free_list::insert): New
|
||
methods.
|
||
* src/misc/freelist.cc (free_list::register_n,
|
||
free_list::releases_n): Rewrite using free_list::remove and
|
||
free_list::insert.
|
||
(free_list::remove, free_list::insert): New methods.
|
||
* src/tgba/bdddict.hh (bdd_dict::register_anonymous_variables):
|
||
New method.
|
||
(bdd_dict::annon_free_list): New subclass.
|
||
(bdd_dict::free_annonymous_list_of_type_of): New attribute.
|
||
* src/tgba/bdddict.cc (bdd_dict::register_all_variables_of,
|
||
bdd_dict::unregister_all_my_variables): Handle anonymous variables
|
||
too.
|
||
(bdd_dict::register_anonymous_variables,
|
||
bdd_dict::annon_free_list::annon_free_list,
|
||
bdd_dict::annon_free_list::extend): New methods.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::accepting_path)
|
||
Fix handling of PATH when backtracking. Report from Soheib Baarir.
|
||
|
||
2004-03-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Move the free_list management into a separate class for reuse.
|
||
|
||
* src/misc/freelist.hh, src/misc/freelist.cc: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
* src/misc/bddalloc.hh (bdd_allocator): Inherit from free_list and
|
||
make dump_free_list visible.
|
||
* src/misc/bddalloc.cc (bdd_allocator::allocate_variables): Move
|
||
all the code into free_list::register_n() and
|
||
bdd_allocator::extend(), and call the former.
|
||
(bdd_allocator::release_variables): Move all the code into
|
||
free_list::release_n() and call it.
|
||
(bdd_allocator::extend): New method.
|
||
* src/tgba/bdddict.cc (bdd_dict::dump): Call dump_free_list;
|
||
|
||
2004-03-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0s.
|
||
|
||
2004-03-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0r.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm) <exprop>: Do not
|
||
blindly enumerate all combinations of atomic properties; initially
|
||
set all_props to the set of all possibly satisfiable combinations.
|
||
|
||
2004-02-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* lbtt/src/Makefile.am (lbtt_translate_SOURCES): Fix leftover
|
||
from 1.0.3 merge.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Process ltl2tgba.opt if it exists.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Color translators and their options.
|
||
|
||
2004-02-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Present the options in a table.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Remove the "print dot" options,
|
||
add a "dot source" source behind each picture instead. Do
|
||
not run `dot' on big automata.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix example
|
||
in comment. Skip false transitions, and do not compute
|
||
sub-formulae reachable only via false transitions.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Revert
|
||
yesterday's change. This optimization is NOT covered by exprop.
|
||
In fact it could be generalized.
|
||
|
||
2004-02-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Remove the
|
||
cond_for_true optimization. It is covered by exprop.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::current_state):
|
||
Fix reference to Oddoux's thesis.
|
||
|
||
2004-02-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add the
|
||
symb_merge argument.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Likewise.
|
||
* src/tgbatest/ltl2tgba.cc (main): Rename -fx as -x, and add -y
|
||
to unset symb_merge.
|
||
* wrap/python/cgi/ltl2tgba.in: Remove the exprop version
|
||
of the FM translator, make exprop and symb_merge options.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <unop::G>:
|
||
suppress the GFy optimisation introduced on 2003-11-26, it is
|
||
generalized by the identification of states with same symbolic
|
||
rewriting introduced on 2004-02-02.
|
||
|
||
* lbtt/: Merge lbtt 1.0.3.
|
||
|
||
2004-02-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2baw.pl (END): Ensure LTL2TGBA is always
|
||
closed.
|
||
|
||
2004-02-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Recognize "-" as input
|
||
filename for the formula. Merge the transitions of automata
|
||
read with -X.
|
||
* src/tgbatest/spotlbtt.test: Add many disabled algorithms.
|
||
It is convenient to reuse the `config' file created by this
|
||
test when making statistics.
|
||
* src/tgbatest/ltl2baw.pl: New file.
|
||
* src/tgbatest/Makefile.am (EXTRA_DIST): Add ltl2baw.pl.
|
||
|
||
2004-02-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/libpy.c: Update from Swig 1.3.21.
|
||
* HACKING: Update versions.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Take an exprop
|
||
argument. Consider all possible combinations of propositions when
|
||
generating arcs. Suggested by Jean-Michel Couvreur.
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: Honor -fx.
|
||
* src/tgbatest/spotlbtt.test: Exercise -fx.
|
||
* wrap/python/cgi/ltl2tgba.in: Support Couvreur/FM with exploded
|
||
properties.
|
||
|
||
2004-02-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Typo.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Use render_dot when
|
||
showing formula.
|
||
* wrap/python/cgi/README: Mention unique_id.
|
||
|
||
2004-02-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
This should help getting accurate statistics (on both the
|
||
formula automaton and the synchronized product) from LBTT.
|
||
Idea from Jean-Michel Couvreur.
|
||
|
||
* src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class.
|
||
(nonacceptant_lbtt_reachable): New function.
|
||
* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New
|
||
function.
|
||
* src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable
|
||
if the -T option is used.
|
||
* src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by
|
||
default.
|
||
|
||
2004-02-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/lbtt.hh: Typos.
|
||
|
||
* src/tgbatest/spotlbtt.test: Typo.
|
||
|
||
* wrap/python/spot.i (unblock_signal): New function.
|
||
* wrap/python/cgi/ltl2tgba.in (print_footer, alarm_handler)
|
||
(reset_alarm): New functions. Kill the script and its
|
||
children if it runs for too long.
|
||
(render_dot): Call reset_alarm.
|
||
|
||
2004-02-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0q.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0p.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix <table> setting to cope
|
||
with IE, Safari, konqueror, ... None of these support
|
||
rules="groups" frame="border" properly (Mozilla is OK).
|
||
|
||
2004-02-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Output a description of the syntax.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Import spot and redirect stderr
|
||
to stdout early.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_stats): Compute and display
|
||
the number of acceptance conditions.
|
||
|
||
* wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
|
||
wrap/python/tests/ltlsimple.py: Specify coding system to
|
||
accommodate newer Python versions.
|
||
|
||
* src/misc/bddalloc.hh: Make all methods public.
|
||
* wrap/python/spot.i: Include misc/bddalloc.hh and misc/minato.hh.
|
||
* wrap/python/tests/minato.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add minato.py.
|
||
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/tgbaread.cc,
|
||
src/tgbatest/tripprod.cc: Add missing copyright license.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (render_dot): Render .png directly
|
||
with dot, without using convert.
|
||
* wrap/python/cgi/README: Do not mention convert.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (render_dot, render_automaton)
|
||
(render_bdd): New functions, extracted from the rest of the code.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (default_translator): Default
|
||
to trans_fm.
|
||
(translators): Show trans_fm before trans_lacim.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_stats): New function. Call
|
||
it to display the size of the generalized and degeneralized
|
||
automata.
|
||
|
||
* src/tgbalagos/stats.hh, src/tgbalagos/stats.cc: New files.
|
||
* src/tgbalagos/Makefile.am: Add them.
|
||
* wrap/python/spot.i: Include src/tgbalagos/dupexp.hh and
|
||
src/tgbalagos/stats.hh
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Identify states
|
||
with identical successors. This optimizes the translation
|
||
of `a R (b R c)', for instance.
|
||
* src/tgbatest/ltl2tgba.test: Add two new tests.
|
||
|
||
Hide the tgba_gspn and tgba_gspn_eesrg classes. Offer the
|
||
corresponding automaton via the automaton() method of the
|
||
gspn_interface and gspn_eesrg_interface classes.
|
||
|
||
* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take dict and
|
||
env arguments.
|
||
(gspn_interface::automaton): New method.
|
||
(tgba_gspn): Move all the declaration ...
|
||
* iface/gspn/gspn.cc (tgba_gspn): ... here.
|
||
(gspn_interface::automaton): Implement it.
|
||
* iface/gspn/eesrg.hh (gspn_eesrg_interface::gspn_eesrg_interface):
|
||
Take dict and env arguments.
|
||
(gspn_eesrg_interface::automaton): New method.
|
||
(tgba_gspn_eesrg): Move all the declaration ...
|
||
* iface/gspn/gspn.cc (tgba_gspn_eesrg): ... here.
|
||
(gspn_eesrg_interface::automaton): Implement it.
|
||
* iface/gspn/dottygspn.cc, iface/gspn/dottyeesrg.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
2004-01-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc: Fix output of F0, F1, G0, G1, X0, and X1.
|
||
* src/ltltest/tostring.test: Test these.
|
||
|
||
2004-01-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_acceptance_condition):
|
||
Do not treat true and false specially. Otherwise it breaks
|
||
translation of F(false).
|
||
* src/tgbatest/explprod.test, src/tgbatest/tripprod.test: Do not
|
||
use true as acceptance condition.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor): Use Acc[b] as
|
||
acceptance condition for Fb, not Acc[Fb].
|
||
|
||
After this change, degeneralized automata are 40% smaller
|
||
in LBTT's statistics.
|
||
|
||
* src/tgba/tgbatba.cc (state_tba_proxy): Store an iterator,
|
||
pointing somewhere into the acceptance conditions list, instead of
|
||
an acceptance condition.
|
||
(state_tba_proxy::acceptance_iterator): New method.
|
||
(tgba_tba_proxy_succ_iterator): Adjust to use iterators too.
|
||
(tgba_tba_proxy_succ_iterator::current_state): If the current
|
||
transition is in several consecutive acceptance steps after the
|
||
expected one, advance many steps at once.
|
||
(tgba_tba_proxy::tgba_tba_proxy): Build the acceptance cycle
|
||
as a list, not a map.
|
||
(tgba_tba_proxy::get_init_state, tgba_tba_proxy::succ_iter):
|
||
Adjust.
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::acc_cycle_): Declare as
|
||
a list, not a map.
|
||
|
||
2004-01-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc (magic_search::~magic_search): Release
|
||
all iterators on the stack.
|
||
(magic_search::check): Release iterators that are popped off the
|
||
stack.
|
||
|
||
* src/tgbatest/explpro2.test: Fix reordering regex.
|
||
|
||
* src/tgbatest/defs.in (run): Use libtool --mode=execute.
|
||
|
||
2004-01-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Merge transitions
|
||
with same destination and acceptance conditions directly, without
|
||
calling a->merge_transition(). If one transitions goes to "True",
|
||
subtract its conditions from all other transitions; this optimizes
|
||
a U b.
|
||
|
||
* src/ltlast/refformula.hh (ref_formula::ref_count_): New method.
|
||
* src/ltlast/refformula.cc (ref_formula::ref_count_): New method.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop::dump_instance): New method.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop::dump_instance): New method.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Typos in comments.
|
||
|
||
2004-01-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0o.
|
||
|
||
* configure.ac: Bump version to 0.0n.
|
||
* NEWS: Update.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check,
|
||
emptiness_check::check2): Document them.
|
||
|
||
2004-01-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main): Typo, use MIN_ARG.
|
||
|
||
2004-01-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
|
||
iface/gspn/udcseltl.test: Exercize -e2.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check2):
|
||
New function, variant of emptiness_check::check().
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2):
|
||
Likewise.
|
||
* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Exercize -e2.
|
||
* src/tgbatest/ltl2tgba.cc: Support -e2, for emptiness_check::check2().
|
||
* iface/gspn/Makefile.am [WITH_GSPN_EESRG] (check_PROGRAMS):
|
||
Compile ltlgspn-eesrg instead of ltleesrg.
|
||
(ltleesrg_SOURCES, ltleesrg_LDADD): Replace by...
|
||
(ltlgspn_eesrg_SOURCES, ltlgspn_eesrg_LDADD, LIBGSPNESRG_LDFLAGS):
|
||
... these.
|
||
* iface/gspn/ltleesrg.cc: Delete.
|
||
* iface/gspn/ltlgspn.cc [EESRG]: Support EESRG conditionally.
|
||
Support -e2.
|
||
|
||
* src/tgbaalgos/ltl2tgba_lacim.cc: Typo in comment.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check): Typos
|
||
in comments.
|
||
|
||
|
||
* m4/gspnlib.m4 (AX_CHECK_GSPNLIB): Do not warn about a missing
|
||
library for eesrg. Define the WITH_GSPN_EESRG conditional.
|
||
* iface/gspn/Makefile.am (gspn_HEADERS, check_PROGRAMS): Add the
|
||
eesrg items in condition WITH_GSPN_EESRG.
|
||
(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
|
||
(libspotgspneesrg_la_SOURCES): Define only in condition
|
||
WITH_GSPN_EESRG.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_stats):
|
||
New function.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::print_stats):
|
||
Likewise.
|
||
* iface/gspn/ltlgspn.cc (main) <Couvreur>: Call print_stats().
|
||
* iface/gspn/ltleesrg.cc (main): Likewise.
|
||
|
||
* iface/gspn/ltlgspn.cc: Add option -P.
|
||
|
||
2004-01-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Run valgrind in test cases.
|
||
* src/tgbatest/defs.in (VALGRIND, run): Define.
|
||
* src/tgbatest/bddprod.test, src/tgbatest/dupexp.test,
|
||
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
|
||
src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
|
||
src/tgbatest/explpro3.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.test,
|
||
src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Use run().
|
||
|
||
2004-01-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (format_state): Do not rewrite \n's,
|
||
just strip the last one. Escaping must be done at output.
|
||
* iface/gspn/gspm.cc (format_state): Likewise.
|
||
* src/misc/escape.hh, src/misc/escape.cc: New files.
|
||
* src/misc/Makefile.am: Add them.
|
||
* src/tgba/bddprint.cc (bdd_format_accset): New function.
|
||
* src/tgba/bddprint.hh (bdd_format_accset): New function.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_state):
|
||
Escape the state name using escape_str().
|
||
(dotty_bfs::process_link): Escape conditions and acceptance
|
||
conditions using escape_str().
|
||
* src/tgbaalgos/save.cc (save_bfs::start): Call print_acc().
|
||
(save_bfs::print_acc): New function extracted from save_bfs::start().
|
||
Escape each acceptance condition.
|
||
(save_bfs::process_state): Use escape_str() and print_acc()
|
||
|
||
* src/ltlvisit/tostring.cc
|
||
(to_string_visitor::visit(const atomic_prop*)): Quote propositions
|
||
that start with F, G, or X.
|
||
* src/ltltest/tostring.test: Test quoted propositions.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Escape " and \
|
||
characters in formulae.
|
||
* src/tgbatest/readsave.test: Test for this.
|
||
|
||
* src/tgbaalgos/reachiter.hh: Typos in comments.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::all_acceptance_conditions,
|
||
tgba_gspn_eesrg::neg_acceptance_conditions): Forward to
|
||
data_->operand.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Do not skip this computation if from == to but the period is empty.
|
||
|
||
* iface/gspn/eesrg.cc (state_gspn_eesrg::clone): Clone the right
|
||
state.
|
||
|
||
* iface/gspn/ltleesrg.cc: Emptinesscheck the full product, not
|
||
the control automaton.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method.
|
||
* iface/gspn/eesrg.hh: Likewise.
|
||
|
||
2004-01-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: New files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/powerset.cc: New file.
|
||
* src/tgbatest/Makefile.am: Construct powerset and expldot from
|
||
powerset.cc.
|
||
|
||
* src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::run)
|
||
Reuse s->second to avoid a hash lookup.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Delete dest.
|
||
|
||
* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)):
|
||
Use $(FROM_LTLPARSE_YY_MAIN), not $@, because $@ can contains
|
||
VPATH and we do not want Bison to see absolute paths.
|
||
* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.
|
||
|
||
* src/ltltest/parseerr.test: Adjust.
|
||
* src/ltlparse/ltlparse.yy: Simplify error handling now that Bison
|
||
will call destructors. Give each operator a full name, so that
|
||
Bison uses it in error messages.
|
||
|
||
2003-12-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltleesrg.cc: New file.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add ltleesrg.
|
||
(ltleesrg_LDADD, ltleesrg_SOURCES): New variables.
|
||
|
||
* src/ltltest/defs.in (run): Rerun valgrind with --leak-check=yes.
|
||
* src/ltlparse/ltlparse.yy: Add `%destructor's.
|
||
|
||
2003-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/defs.in (run): New function, run valgrind.
|
||
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parse.test,
|
||
src/ltltest/parseerr.test, src/ltltest/tostring.test,
|
||
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
|
||
* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
|
||
Automake 1.8 find them automatically.
|
||
* configure.ac: Require Automake 1.8, in gnits mode, and check
|
||
for valgrind.
|
||
* THANKS: New empty file.
|
||
|
||
* doc/Doxyfile.in: Upgrade to Doxygen 1.3.5. Build
|
||
documentation for iface/.
|
||
* dox/mainpage.dox: Fix reference to ltl_to_tgba.
|
||
* src/ltlenv/environment.hh: Typo.
|
||
|
||
2003-12-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit::merge_transitions): New method.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Factorize all
|
||
variables (not just Next and A) when computing prime implicants,
|
||
and then call merge_transitions().
|
||
|
||
2003-12-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0m.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0l.
|
||
* doc/Makefile.am ($(srcdir)/spotref.pdf): Do not assume spot.latex is
|
||
in the srcdir.
|
||
|
||
2003-11-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy (cond_list): Simplify into...
|
||
(condition): ... this. We now accept only one condition, which
|
||
is a formula.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::add_neg_condition,
|
||
tgba_explicit::get_condition): Remove, unused.
|
||
* src/tgba/tgbaexplicit.cc: Likewise.
|
||
|
||
* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc,
|
||
iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
|
||
src/tgba/bddprint.hh, src/tgba/succiter.hh,
|
||
src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
|
||
src/tgba/tgbaproduct.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
|
||
src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh,
|
||
src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
|
||
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
|
||
src/tgbaalgos/save.cc, src/tgbatest/explicit.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy,
|
||
wrap/python/tests/ltl2tgba.py:
|
||
Rewrite `accepting condition' as `acceptance condition'.
|
||
The symbols which have been renamed are:
|
||
tgba::all_accepting_conditions
|
||
tgba::neg_accepting_conditions
|
||
succ_iterator::current_accepting_conditions
|
||
bdd_dict::register_accepting_variable
|
||
bdd_dict::register_accepting_variables
|
||
bdd_dict::is_registered_accepting_variable
|
||
tgba_bdd_concrete_factory::declare_accepting_condition
|
||
tgba_bdd_core_data::accepting_conditions
|
||
tgba_bdd_core_data::all_accepting_conditions
|
||
tgba_explicit::declare_accepting_condition
|
||
tgba_explicit::complement_all_accepting_conditions
|
||
tgba_explicit::has_accepting_condition
|
||
tgba_explicit::get_accepting_condition
|
||
tgba_explicit::add_accepting_condition
|
||
tgba_explicit::all_accepting_conditions
|
||
tgba_explicit::neg_accepting_conditions
|
||
state_tba_proxy::acceptance_cond
|
||
accepting_cond_splitter
|
||
|
||
2003-11-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <G>:
|
||
Optimize translation of GFy.
|
||
|
||
* src/tgba/bddprint.cc (print_accset_handler, bdd_print_accset): New
|
||
functions.
|
||
* src/tgba/bddprint.cc (bdd_print_accset): Declare it.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use it.
|
||
* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test: Adjust
|
||
expected output.
|
||
|
||
2003-11-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy: Remove a random character.
|
||
* src/tgba/formula2bdd.cc: Include cassert.
|
||
|
||
2003-11-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Explicit automata can now have arbitrary logic formula on their
|
||
arcs. ltl2tgba_fm benefits from this and join multiple arcs with
|
||
the same destination and acceptance conditions.
|
||
* src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
|
||
* src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
|
||
bdd_format_formula): New functions.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
|
||
tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
|
||
tgba_explicit::declare_accepting_condition,
|
||
tgba_explicit::has_accepting_condition,
|
||
tgba_explicit::get_accepting_condition,
|
||
tgba_explicit::add_accepting_condition): Take a const formula*.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
|
||
Rewrite using formula_to_bdd.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
|
||
bdd_print_formula to display conditions.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
|
||
New function.
|
||
(translate_dict::conj_bdd_to_atomic_props): Remove.
|
||
(ltl_to_tgba_fm): Factor successors on accepting conditions
|
||
and destinations, not conditions. Use bdd_to_formula to translate
|
||
the conditions.
|
||
* src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
|
||
in a string, call the LTL parser for this.
|
||
* src/tgbaparse/tgbascan.ll: Process \" and \\ escapes in
|
||
strings.
|
||
* src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
|
||
src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.test: Adjust to new syntax for explicit
|
||
automata.
|
||
|
||
* src/misc/minato.hh (minato_isop(bdd,bdd)): New constructor variant.
|
||
(minato_isop::local_vars::vars): New attribute.
|
||
(minato_isop::local_vars::local_vars): Add the vars arguments.
|
||
(minato_isop::todo, minato_isop::cube, minato_isop::ret): Rename as ...
|
||
(minato_isop::todo_, minato_isop::cube_, minato_isop::ret_): ... these.
|
||
* src/misc/minato.cc: Adjust to factorize only variables in vars.
|
||
|
||
* m4/devel.m4: Fix quoting and simplify default setting of
|
||
enable_devel.
|
||
|
||
2003-11-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* AUTHORS: New file.
|
||
* configure.ac (AM_INIT_AUTOMAKE): Remove `foreign' option.
|
||
|
||
* COPYING: New file.
|
||
* Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
|
||
iface/gspn/Makefile.am, iface/gspn/common.cc,
|
||
iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
|
||
iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
|
||
iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
|
||
src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
|
||
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/formula.cc,
|
||
src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/multop.hh,
|
||
src/ltlast/predecl.hh, src/ltlast/refformula.cc,
|
||
src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
|
||
src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
|
||
src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
|
||
src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
|
||
src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
|
||
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/ltltest/Makefile.am,
|
||
src/ltltest/defs.in, src/ltltest/equals.cc,
|
||
src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parse.test,
|
||
src/ltltest/parseerr.test, src/ltltest/readltl.cc,
|
||
src/ltltest/tostring.cc, src/ltltest/tostring.test,
|
||
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
|
||
src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
|
||
src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
|
||
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
|
||
src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
|
||
src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
|
||
src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
|
||
src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
|
||
src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
|
||
src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
|
||
src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
|
||
src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
|
||
src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
|
||
src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
|
||
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
|
||
src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
|
||
src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
|
||
src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
|
||
src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
|
||
src/tgbaalgos/Makefile.am, src/tgbaalgos/dotty.cc,
|
||
src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
|
||
src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
|
||
src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
|
||
src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
|
||
src/tgbaalgos/save.hh, src/tgbaparse/Makefile.am,
|
||
src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
|
||
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
|
||
src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
|
||
src/tgbatest/bddprod.test, src/tgbatest/defs.in,
|
||
src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
|
||
src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/ltl2tgba.test,
|
||
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
|
||
src/tgbatest/readsave.test, src/tgbatest/spotlbtt.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
|
||
wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
|
||
wrap/python/spot.i, wrap/python/cgi/Makefile.am,
|
||
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
|
||
wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
|
||
wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
|
||
wrap/python/tests/run.in: Add Copyright license.
|
||
|
||
* src/misc/minato.cc: Include cassert.
|
||
|
||
* src/misc/minato.cc, src/misc/minato.hh: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Use minato_isop.
|
||
|
||
2003-11-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/Makefile.am (AM_CXXFLAGS): New variable.
|
||
* tgba/bdddict.hh (bdd_dict::register_propositions,
|
||
bdd_dict::register_accepting_variables): New methods.
|
||
* src/bdddict.cc: Likewise.
|
||
* tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
|
||
tgba_explicit::add_accepting_conditions): New methods.
|
||
(tgba_explicit::get_init_state): Add an "empty" initial
|
||
state to empty automata.
|
||
* tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
|
||
tgba_explicit::add_accepting_conditions): New methods.
|
||
* tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
|
||
Add dupexp.hh and dupexp.cc.
|
||
* tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
|
||
* tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
|
||
(check_SCRIPTS): Add dupexp.test.
|
||
(CLEANFILES): Add output1 and output2.
|
||
* tgbatest/dupexp.test: New file.
|
||
* tgbatest/ltl2tgba.cc: Handle -s and -S.
|
||
* tgbatest/tgbaread.cc: Remove unused variable exit_code.
|
||
|
||
* src/ltlparse/ltlscan.ll: Include ltlparse/parsedecl.hh,
|
||
not parsedecl.hh.
|
||
* src/tgbaparse/tgbascan.ll: Likewise, include tgbaparse/parsedecl.hh.
|
||
|
||
2003-11-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Check whether the state is in the current SCC before passing it
|
||
to h_filt().
|
||
|
||
2003-11-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::first_): New
|
||
attribute.
|
||
(tgba_succ_iterator_gspn_eesrg::step): Use first_. Loop until
|
||
succ returns some successors.
|
||
Report from Soheib Baarir.
|
||
|
||
2003-11-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step): Fix
|
||
the iteration logic.
|
||
(tgba_succ_iterator_gspn_eesrg::tgba_succ_iterator_gspn_eesrg): Make
|
||
sure not to free successors_ twice.
|
||
(tgba_succ_iterator_gspn_eesrg::done): Fix definition.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::get_init_state): Do not
|
||
call get_init_state(), use 0 instead.
|
||
(tgba_gspn_eesrg::format_state): Handle the case where s->left() == 0.
|
||
Reported by Soheib Baarir.
|
||
|
||
* src/ltlparse/ltlscan.ll: Cosmetics.
|
||
|
||
* configure.ac: Bump version to 0.0k.
|
||
|
||
2003-11-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
|
||
Really Skip unknown variables.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0j.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
|
||
Skip unknown variables.
|
||
|
||
* iface/gspn/gspn.cc
|
||
(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
|
||
and prop_kind() arguments on error.
|
||
|
||
* iface/gspn/eesrg.cc
|
||
(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
|
||
argument on error.
|
||
|
||
* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)): cd into
|
||
$(srcdir) before running bison, so that bison does not put
|
||
absolute filenames in generated files.
|
||
* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.
|
||
Reported by Soheib Baarir.
|
||
|
||
* iface/gspn/Makefile.am (gspn_HEADERS): Add eesrg.hh.
|
||
Reported by Soheib Baarir.
|
||
|
||
2003-10-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* README: More build instructions.
|
||
* HACKING: Update.
|
||
|
||
* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
|
||
$(srcdir).
|
||
|
||
2003-10-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: Define LIBGSPNESRG_LDFLAGS.
|
||
* iface/gspn/Makefile.am (gspn_HEADERS): Add common.hh.
|
||
(libspotgspn_la_SOURCES): Add common.cc.
|
||
(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
|
||
(libspotgspneesrg_la_SOURCES, ltlgspn_eesrg_SOURCES)
|
||
(dotty_eesrg_LDADD, dotty_eesrg_CPPFLAGS): New variables.
|
||
(lib_LTLIBRARIES): Add libspotgspneesrg.la.
|
||
(check_PROGRAMS): Add dottygspn-eesrg.
|
||
* iface/gspn/gspn.hh, iface/gspn/gspn.cc
|
||
(gspn_exeption, operator<<(gspn_exeption), gspn_environment): Move ...
|
||
* iface/gspn/common.hh, iface/gspn/common.cc: ... in these new files.
|
||
* iface/gspn/eesrg.hh, iface/gspn/eesrg.cc, iface/gspn/dottyeesrg.cc:
|
||
New files.
|
||
|
||
2003-10-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Simplify, comment, and free memory.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (triplet): New class.
|
||
(emptiness_check::accepting_path): Simplify, comment,
|
||
derecursive, and free memory...
|
||
|
||
2003-10-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (connected_component): Split
|
||
into ...
|
||
(emptiness_check::connected_component,
|
||
emptiness_check::connected_component_set): ... these.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::h_filt,
|
||
emptiness_check::~emptiness_check) New methods.
|
||
(emptiness_check::check): Release all iterators in todo on exit.
|
||
(emptiness_check::counter_example): Rewrite the BFS logic.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::h_filt,
|
||
emptiness_check::~emptiness_check): New methods.
|
||
|
||
* src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy_succ_iterator::~tgba_tba_proxy_succ_iterator):
|
||
Delete the proxied iterator.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
|
||
Remove unused tmp_last, best_lst, and tmp_acc variables.
|
||
|
||
2003-10-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
|
||
Rewrite initialization.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
|
||
Fix memory leak.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check):
|
||
Simplify, reorganize, and comment.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::root_component):
|
||
Rename as ...
|
||
(emptiness_check::root): ... this, to follow the paper.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc: Remove some superfluous
|
||
`emptiness_check::'.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::remove_component):
|
||
Rewrite.
|
||
|
||
2003-10-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check,
|
||
emptiness_check::counter_example): Simplify access to hashes
|
||
after calls to find() for the same element..
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (connected_component::set_of_state):
|
||
Rename as ...
|
||
(connected_component::set_type): ... this, and define as a hash_set.
|
||
(connected_component::has_state): New method.
|
||
* src/tgbaalgos/emptinesscheck.cc (connected_component::has_state):
|
||
New method.
|
||
(emptiness_check::counter_example, emptiness_check::complete_cycle,
|
||
emptiness_check::accepting_path): Simplify using has_state().
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::seen_state_num):
|
||
Rename as ...
|
||
(emptiness_check::h): ... this, and define as a hash_map.
|
||
(emptiness_check::remove_component): Remove superfluous state_map
|
||
argument.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
|
||
Remove superfluous includes.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::emptiness_check):
|
||
New, take the automaton to work on, and store it ...
|
||
(emptiness_check::aut_): ... in this new attribute.
|
||
(emptiness_check::tgba_emptiness_check): Rename as ...
|
||
(emptiness_check::check): ... this, and remove the automata
|
||
argument.
|
||
(emptiness_check::counter_example, emptiness_check::print_result,
|
||
emptiness_check::remove_component, emptiness_check::accepting_path,
|
||
emptiness_check::complete_cycle): Remove the automata argument.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (connected_component::not_null,
|
||
connected_component::transition_acc,
|
||
connected_component::nb_transition,
|
||
connected_component::nb_state): Remove these unused attributes.
|
||
(connected_component::connected_component): Merge the two
|
||
definitions into one.
|
||
(connected_component::~connected_component): Remove.
|
||
(connected_component::isAccepted): Delete, unused.
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(connected_component::connected_component,
|
||
connected_component::~connected_component): Adjust.
|
||
(connected_component::isAccepted): Delete.
|
||
(spot):
|
||
|
||
* src/tgbatest/emptchk.test: Typo.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(emptiness_check::remove_component, emptiness_check::root_component,
|
||
emptiness_check::seen_state_num, emptiness_check::suffix): Move in
|
||
private part.
|
||
(emptiness_check::arc_accepting, emptiness_check::todo): Move ...
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check): ... as local variables
|
||
of this function.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::vec_component):
|
||
Move ...
|
||
(emptiness_check::counter_example): ... as local variable of this
|
||
function.
|
||
* src/tgbaalgos/emptinesscheck.hh (pair_state_iter, triplet):
|
||
Move ...
|
||
* src/tgbaalgos/emptinesscheck.cc (pair_state_iter, triplet):
|
||
... here.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
|
||
Indent output as in the magic search.
|
||
|
||
* src/tgbatest/spotlbtt.test: Add notice about long run time.
|
||
|
||
Merge emptinesscheckexplicit into ltl2tgba.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove
|
||
emptinesscheckexplicit.
|
||
(emptinesscheckexplicit_SOURCES): Remove.
|
||
(TESTS): Replace emptinesscheckexplicit.test by emptchke.test.
|
||
* src/tgbatest/emptinesscheckexplicit.cc,
|
||
src/tgbatest/emptinesscheckexplicit.test: Delete.
|
||
* src/tgbatest/empchke.test: New file.
|
||
* src/tgbatest/ltl2tgba.cc: Add support for -X.
|
||
|
||
Merge emptiness-checks tests into ltl2tgba.
|
||
* src/tgbatest/Makefile (check_PRORGRAMS): Remove
|
||
emptinesscheck and ltlmagic.
|
||
(emptinesscheck_SOURCES, ltlmagic_SOURCES): Remove.
|
||
(TESTS): Replace emptinesscheck.test and ltlmagic.test by
|
||
emptchk.test.
|
||
* src/tgbatest/emptinesscheck.test, src/tgbatest/ltlmagic.test:
|
||
Delete.
|
||
* src/tgbatest/emptchk.test: New file.
|
||
* src/tgbatest/emptinesscheck.cc, src/tgbatest/ltlmagic.cc:
|
||
Delete.
|
||
* src/tgbatest/ltl2tgba.cc: Add support for -e, -E, -m, -M, and -n.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check): Do not print anything.
|
||
(emptiness_check::counter_example): Assume that tgba_emptiness_check
|
||
has already been called.
|
||
|
||
2003-10-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::seq_counter, emptiness_check::periode): Rename as ...
|
||
(emptiness_check::prefix, emptiness_check::period): ... these.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check,
|
||
emptiness_check::accepting_path): Simplify BDD operations.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh:
|
||
Reindent.
|
||
(emptiness_check::~emptiness_check, emptiness_check::emptiness_check):
|
||
Remove, unused.
|
||
|
||
2003-10-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main): Allow invocations with
|
||
only one atomic proposition.
|
||
|
||
2003-10-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::initialize): Augment
|
||
bdd_init()'s arguments.
|
||
|
||
2003-10-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: Use command-line options to
|
||
select algorithms, not #defines.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Remove eltlgspn-srg,
|
||
efmgspn-srg, fmgspn-rg, and fmgspn-srg and their associated
|
||
source variables. These are all replaced by
|
||
ltlgspn-rg and ltlgspn-srg.
|
||
* iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
|
||
iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
|
||
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
|
||
iface/gspn/udcsltl.test: Adjust calls to ltlgspn-srg.
|
||
|
||
* iface/gspn/Makefile.am (XFAIL_TESTS): Remove.
|
||
|
||
2003-10-06 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: We call tgba_emptiness_check before
|
||
counter_example. And we print the prefix and the periode of
|
||
counter_example's result.
|
||
* src/tgbatest/emptinesscheckexplicit.cc (main):
|
||
We call tgba_emptiness_check before counter_example.
|
||
* src/tgbatest/emptinesscheck.cc (main):
|
||
We call tgba_emptiness_check before counter_example.
|
||
* src/tgbaalgos/emptinesscheck.hh (spot):
|
||
(spot::print_result): New methode to print the prefix and the
|
||
periode of counter_example's result.
|
||
* src/tgbaalgos/emptinesscheck.cc (spot): counter_example doesn't
|
||
call tgba_emptiness_check. counter_example must be executed after
|
||
calling tgba_emptiness_check. Remove tgba_emptiness_check calls.
|
||
(print_result): New methode to print the prefix and the
|
||
periode of counter_example's result. Remove most of all std::cout
|
||
during execution of emptiness_check's methodes.
|
||
|
||
2003-10-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/udcsfm.test, iface/gspn/udcsefm.test: New files.
|
||
* iface/gspn/Makefile.am (TESTS) Add them.
|
||
(check_PROGRAMS): Add emgspn-srg.
|
||
(efmgspn_srg_SOURCES, efmgspn_srg_LDADD, efmgspn_srg_CPPFLAGS): New
|
||
variables.
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: Complete.
|
||
|
||
* src/ltlparse/ltlscan.ll: Allow doubly quoted atomic propositions.
|
||
|
||
2003-10-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test,
|
||
iface/gspn/dcswaveltl.test, iface/gspn/dcswaveeltl.test,
|
||
iface/gspn/dcswavefm.test: Do not accept $? = 0 when
|
||
a failure is expected.
|
||
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: New files
|
||
* iface/gspn/Makefile.am (TESTS): Add them.
|
||
(XFAIL_TESTS): Add udcseltl.test.
|
||
* iface/gspn/example/udcs/udcs.net, iface/gspn/example/udcs/udcs.def
|
||
iface/gspn/example/udcs/udcs.tobs: New files.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): Add them.
|
||
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add eltlgspn-srg.
|
||
(eltlgspn_srg_SOURCES, eltlgspn_srg_LDADD, eltlgspn_srg_CPPFLAGS):
|
||
New variables.
|
||
(TESTS): Add dcswaveeltl.test.
|
||
* iface/gspn/dcswaveeltl.test: New file.
|
||
* iface/gspn/ltlgspn.cc [CEC]: Use emptiness_check.
|
||
|
||
* m4/debug.m4, m4/devel.m4, m4/gccoptim.m4, m4/ndebug.m4: New files.
|
||
* Makefile.am (EXTRA_DIST): Add them.
|
||
* configure.ac: Call adl_ENABLE_DEVEL, adl_ENABLE_DEBUG, ad_GCC_OPTIM,
|
||
and adl_NDEBUG.
|
||
|
||
2003-09-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than, state_ptr_equal):
|
||
Declare as std::binary_function.
|
||
(state_ptr_hash): Declare as std::unary_function.
|
||
* src/tgbaalgos/lbtt.cc (state_acc_pair_equal,
|
||
state_acc_pair_hash): Likewise.
|
||
* src/misc/bddlt.hh (bdd_less_than): Likewise.
|
||
* src/misc/hash.hh (ptr_hash, string_hash): Likewise.
|
||
|
||
2003-09-25 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* src/tgbatest/emptinesscheckexplicit.test,
|
||
src/tgbatest/emptinesscheckexplicit.cc
|
||
src/tgbatest/emptinesscheck.test,
|
||
src/tgbatest/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.hh: New files.
|
||
|
||
2003-09-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh: Rename as ...
|
||
* src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.hh:
|
||
... this, and rename ltl_to_tgba() as ltl_to_tgba_lacim as well.
|
||
* iface/gspn/ltlgspn.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlmagic.cc,
|
||
src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
|
||
src/tgbatest/tripprod.cc, wrap/python/spot.i,
|
||
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py: Adjust.
|
||
|
||
2003-09-11 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh: Include cassert.
|
||
|
||
2003-08-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state::hash): New method.
|
||
(state_ptr_equal, state_ptr_hash): New functors.
|
||
* src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash):
|
||
New method.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
|
||
(state_explicit::hash): New method.
|
||
(ns_map, sn_map): Use Sgi::hash_map instead of std::map.
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(state_product::hash): New method.
|
||
* src/tgba/tgbatba.cc (state_tba_proxy::hash): New method.
|
||
* src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine
|
||
using Sgi::hash_map or Sgi::hash_set.
|
||
(lbtt_reachable): Don't erase a key that is pointed to by an
|
||
iterator.
|
||
* src/tgbaalgos/reachiter.cc
|
||
(tgba_reachable_iterator::~tgba_reachable_iterator): Likewise.
|
||
* src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise.
|
||
* src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map.
|
||
* src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map.
|
||
* iface/gspn/gspn.cc (state_gspn::hash): New method.
|
||
* src/misc/hash.hh (string_hash): New functor.
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::all_accepting_conditions)
|
||
Compute all_accepting_conditions_ from neg_accepting_conditions_,
|
||
not by browsing the dictionary. The dictionary also contains
|
||
accepting conditions from other automata... This bug was a
|
||
consequence of the change from 2003-07-14.
|
||
* src/tgbaalgos/save.cc (save_bfs::start()): Likewise, do not
|
||
browse the dictionary to print accepting conditions. Call
|
||
->all_accepting_conditions() instead.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Typo
|
||
from 2003-08-22 in the computation of all_accepting_conditions_.
|
||
* src/tgbatest/explpro3.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS): Add explpro3.test.
|
||
* src/tgbatest/explprod.test, src/tgbatest/explpro2.test,
|
||
src/tgbatest/tripprod.test: Sort the output using Perl.
|
||
|
||
2003-08-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Rewrite all std::map<const formula*, ...> as
|
||
Sgi::hash_map<const formula*, ...>.
|
||
|
||
* src/misc/hash.hh: New file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add it.
|
||
* src/ltlvisit/dotty.cc (dotty_visitor::map): Use a hash_map instead
|
||
of a map.
|
||
* src/tgba/bdddict.hh (bdd_dict::fv_map, bdd_dict::vf_map,
|
||
bdd_dict::ref_set, bdd_dict::var_map): Define as hash_map or
|
||
hash_set.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::fv_map,
|
||
translate_dict::vf_map): Likewise.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::acc_map_): Likewise.
|
||
* src/tgba/tgbatba.hh, src/tgbaalgos/reachiter.hh: Include <map>.
|
||
|
||
2003-08-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than): Make sure left is
|
||
non-null. Suggested by Denis Poitreneaud.
|
||
|
||
2003-08-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/Makefile.am (MAINTAINERCLEANFILES): Add
|
||
buddy_wrap.cxx and buddy.py.
|
||
|
||
2003-08-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc (seen_with_magic, seen_without_magic): Remove.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix display of relations for
|
||
tgba_bdd_concrete automata.
|
||
|
||
Fix computation of product acceptance conditions, when the
|
||
two operands share some acceptance conditions.
|
||
* src/tgba/tgbaproduct.hh (tgba_product::left_acc_complement_,
|
||
tgba_product::right_acc_complement_): New attribute.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Set them.
|
||
(tgba_product::succ_iter): Use them.
|
||
* src/tgba/explpro2.test: New file.
|
||
* src/tgba/Makefile.am (TESTS): Add it.
|
||
|
||
2003-08-20 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* tgba/tgbaproduct.cc, tgba/tgbaproduct.hh:
|
||
(state_bdd_product, tgba_product_succ_iterator): Rename as ...
|
||
(state_product, tgba_succ_iterator_product): ... these.
|
||
|
||
* iface/gspn/dcswavefm.test: New file.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add fmgspn-rg and
|
||
fmgspn-srg.
|
||
(fmgspn_rg_SOURCES, fmgspn_rg_CPPFLAGS, fmgspn_rg_LDADD,
|
||
fmgspn_srg_SOURCES, fmgspn_srg_CPPFLAGS, fmgspn_srg_LDADD):
|
||
New variables.
|
||
(TESTS): Add dcswavefm.test.
|
||
|
||
2003-08-19 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlast/formula.hh: Make it clear that ref() and unref()
|
||
deals with one node, not a entire formula.
|
||
|
||
2003-08-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0i.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0h.
|
||
|
||
* wrap/python/cgi/Makefile.am (CLEANFILES): Clean ltl2tgba.py.
|
||
|
||
* wrap/python/tests/ltl2tgba.test: Run $srcdir/ltl2tgba.py, not
|
||
ltl2tgba.py.
|
||
|
||
2003-08-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
This implements Couvreur's FM'99 ltl2tgba translation.
|
||
* src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
|
||
(bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
|
||
bdd_dict::is_registered_accepting_variable): ... these.
|
||
* src/tgba/bdddict.hh: Likewise.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
|
||
(tgba_explicit::declare_accepting_condition): Arrange so that this
|
||
function can be called during the construction of the automaton.
|
||
(tgba_explicit::complement_all_accepting_conditions): New method.
|
||
(tgba_explicit::has_accepting_condition): Adjust to call
|
||
bdd_dict::is_registered_accepting_variable.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
|
||
tgba_explicit::complement_all_accepting_conditions): New methods.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
|
||
New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
|
||
and tbalbtt.
|
||
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
|
||
* src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
|
||
* src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
|
||
* src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
|
||
"spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
|
||
also check the ltl2tgba_fm translator.
|
||
* wrap/python/spot.i: Wrap ltl2tgba_fm.
|
||
* wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
|
||
between ltl2tgba and ltl2tgba_fm.
|
||
* wrap/python/tests/ltl2tgba.py: Add support for the -f option.
|
||
* wrap/python/tests/ltl2tgba.test: Try the -f option.
|
||
|
||
varnum can be augmented by other allocator. Keep track
|
||
of a local varnum (lvarnum) in each allocator.
|
||
* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Initialize
|
||
lvarnum.
|
||
(bdd_allocator::extvarnum): New method.
|
||
(bdd_allocator::allocate_variables): Use lvarnum and extvarnum.
|
||
* src/misc/bddalloc.hh (bdd_allocator::extvarnum): New mathod.
|
||
(bdd_allocator::lvarnum): New variable.
|
||
|
||
2003-08-14 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh, src/tgba/statebdd.hh, src/tgba/statebdd.cc:
|
||
Remove the translate() method. Useless since 2003-07-14.
|
||
|
||
2003-08-11 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/Makefile.am (SUBDIRS): Build `.' first.
|
||
* wrap/python/cgi/Makefile.am (ltl2tgba.py): Depend on Makefile.
|
||
|
||
2003-08-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Revamp the multop interface to allow some basic optimizations like
|
||
not constructing a single-child multop.
|
||
* src/ltlast/multop.hh (multop::instance(type)): Remove.
|
||
(multop::instance(type, formula*, formula*)): Return a formula*.
|
||
(multop::instance(type, vec*)): Make it public and return a formula*.
|
||
(multop::add_sorted, multop::add):
|
||
* src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite.
|
||
(multop::instance(type)): Delete.
|
||
(multop::instance(type, formula*, formula*)): Adjust.
|
||
(multop::add_sorted, multop::add): Remove.
|
||
* src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust.
|
||
* src/ltlvisit/nenoform.cc
|
||
(negative_normal_form_visitor::::visit(multop*)) Adjust.
|
||
* src/ltltest/equals.test: Make sure `a & a' and `a' are equals.
|
||
* wrap/python/tests/ltlsimple.py: Adjust.
|
||
|
||
* src/tgba/succiterconcrete.cc, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbatba.cc, src/tgbaalgos/lbtt.cc: Use `-' instead of `& !'
|
||
between two BDDs. That's one less call to BuDDy.
|
||
|
||
* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test:
|
||
Adjust expected output after 2003-08-07's change.
|
||
|
||
* src/tgba/bdddict.hh: Typo in comments.
|
||
|
||
* src/ltlenv/environment.hh: Typo in comments.
|
||
|
||
2003-08-08 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Handle and diagnose mismatched parentheses.
|
||
* src/ltltest/parseerr.test: Add some examples.
|
||
|
||
2003-08-07 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Convert GIFs to PNGs. Restrict
|
||
the size of dot's output to 1024x1024.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::start): Do not preset
|
||
the size of the graph. Set height=0 for the invisible state.
|
||
|
||
2003-08-06 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Fix precedence OP_OR < OP_XOR < OP_AND.
|
||
* src/ltlast/binop.cc (binop::instance): Order operands for
|
||
associative operators, so that e.g. "a xor b" and "b xor a" are
|
||
mapped to the same formula.
|
||
* src/ltltest/equals.test: Check this.
|
||
|
||
* src/ltlvisit/dotty.cc (draw_node_): s/shabe/shape/.
|
||
(visit): Draw rectangular nodes for atomic propositions and
|
||
constant. This is an attempt to mimic BuDDy's output.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Handle show_formula_dot and
|
||
show_formula_gif.
|
||
|
||
* src/ltlvisit/dotty.hh (dotty): Move the ostream argument first.
|
||
* src/ltlvisit/dump.hh (dump): Likewise.
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/dump.cc: Adjust.
|
||
|
||
2003-08-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/misc/version.hh, src/misc/version.cc: New files.
|
||
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
|
||
* wrap/python/spot.i: Include misc/version.hh.
|
||
* wrap/python/cgi/ltl2tgba.in: Print spot.version().
|
||
|
||
* README: Update layout.
|
||
|
||
* wrap/python/cgi/Makefile.am, wrap/python/cgi/ltl2tgba.in,
|
||
wrap/python/cgi/README: New files.
|
||
* wrap/python/Makefile.am (SUBDIRS): Add cgi.
|
||
* configure.ac: Output wrap/python/cgi/Makefile.
|
||
|
||
* wrap/python/spot.i: Add an ostringstream emulation.
|
||
|
||
2003-08-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/spot.i: Add an ofstream emulation.
|
||
|
||
* wrap/python/spot.i: Declare spot::tgba::get_init_state,
|
||
spot::tgba::succ_iter, and spot::tgba_succ_iterator::current_state
|
||
as constructors.
|
||
|
||
* wrap/python/Makefile.am (lib_LTLIBRARIES)
|
||
(libspotswigpy_la_SOURCES, libspotswigpy_la_CFLAGS)
|
||
(libspotswigpy_la_LDFLAGS): New variables.
|
||
(_spot_la_LIBADD, _buddy_la_LDFLAGS): Link with libspotswigpy.la
|
||
($(srcdir)/spot_wrap.cxx, $(srcdir)/buddy_wrap.cxx): Run
|
||
swig with -c.
|
||
* wrap/python/tests/libpy.c: New file.
|
||
* wrap/python/tests/run.in: Run python if no arguments are given.
|
||
* wrap/python/tests/interdep.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add interdep.py.
|
||
|
||
* wrap/python/spot.i: Declare spot::ltl_to_tgba as a constructor.
|
||
* wrap/python/tests/ltl2tgba.py: Do not force `thisown=1' on tgba
|
||
objects.
|
||
|
||
* wrap/python/spot.i: Include headers from tgba/ and tgbaalgos/.
|
||
* wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test:
|
||
New files.
|
||
|
||
* wrap/python/tests/Makefile.am (TESTS): Add ltl2tgba.test.
|
||
(EXTRA_DIST): Add ltl2tgba.py.
|
||
* wrap/python/tests/run.in: Distinguish *.py and *.test.
|
||
|
||
* wrap/python/tests/ltlparse.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
2003-08-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: New file.
|
||
* wrap/python/Makefile.am (EXTRA_DIST): Add it.
|
||
(python_PYTHON, MAINTAINERCLEANFILES): Add buddy.py.
|
||
(pyexec_LTLIBRARIES): Add _buddy.la.
|
||
(_buddy_la_SOURCES, _buddy_la_LDFLAGS, $(srcdir)/buddy_wrap.cxx)
|
||
($(srcdir)/buddy.py): New.
|
||
* wrap/python/tests/bddnqueen.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh: Merge the
|
||
two unabbreviate_logic definitions (const and non-const) into a
|
||
function that takes a const formula* and return a non-const
|
||
formula*. Since formula* is convertible to const formula*, and
|
||
the const version of the function just called the non-onst one, it
|
||
makes no sense to keep both. Also, it confused Swig.
|
||
* src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh: Likewise
|
||
for negative_normal_form.
|
||
* src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh: Likewise
|
||
for unabbreviate_ltl.
|
||
* src/ltlvisit/clone.cc, src/ltlvisit/clone.hh: Likewise for clone.
|
||
* src/ltlvisit/destroy.cc, src/ltlvisit/destroy.hh: Likewise
|
||
for destroy.
|
||
|
||
* configure.ac: Bump version to 0.0g.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0f.
|
||
|
||
* iface/gspn/simple.test, iface/gspn/dcswave.test,
|
||
iface/gspn/dcswaveltl.test: Make sure the example directory
|
||
is writable.
|
||
* m4/lbtt.m4, m4/buddy.m4: Always configure buddy/ and lbtt/,
|
||
regardless of the --with-included-buddy and --with-included-lbtt
|
||
settings.
|
||
|
||
* wrap/python/Makefile.am (python_PYTHON, _spot_la_SOURCES):
|
||
Explicitely refer to spot_wrap.cxx and spot.py as
|
||
$(srcdir)/spot_wrap.cxx and $(srcdir)/spot.py.
|
||
(spot_wrap.cxx, spot.py):
|
||
|
||
* wrap/python/Makefile.am (spot_wrap.cxx, spot.py): Lookup
|
||
spot.i in $(srcdir).
|
||
|
||
2003-07-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Output wrap/python/tests/Makefile
|
||
and wrap/python/tests/run.
|
||
* wrap/python/Makefile.am (SUBDIRS): New variable.
|
||
* wrap/python/spot.i: Include all formulae headers from ltlast/,
|
||
as well as ltlvisit/destroy.hh.
|
||
(spot::ltl::formula::__cmp__, spot::ltl::formula::__str__): New
|
||
functions.
|
||
* wrap/python/tests/Makefile.am, wrap/python/tests/ltlsimple.py,
|
||
wrap/python/tests/run.in: New files.
|
||
|
||
* wrap/python/ltihooks.py: New file.
|
||
* wrap/python/Makefile.am (EXTRA_DIST): Add ltihooks.py.
|
||
|
||
* wrap/Makefile.am, wrap/spot.i: Move ...
|
||
* wrap/python/Makefile.am, wrap/python/spot.i: ... here.
|
||
|
||
* wrap/Makefile.am: New file.
|
||
* configure.ac: Output wrap/python/Makefile.
|
||
|
||
* src/misc/const_sel.hh: Delete.
|
||
* src/misc/Makefile.am (misc_HEADERS): Remove const_sel.hh.
|
||
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/reachiter.cc: Include cassert.
|
||
* iface/Makefile.am (SUBDIRS): Recurse in gspn only if condition
|
||
WITH_GSPN.
|
||
|
||
2003-07-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn::format_state): Call gspn's
|
||
print_state.
|
||
|
||
* iface/gspn/dcswaveltl.test: Check for a false formula too.
|
||
|
||
* iface/gspn/dcswaveltl.test, iface/gspn/ltlgspn.cc: New files.
|
||
* iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test.
|
||
(ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
|
||
(ltlgspn_srg_SOURCES): New variables.
|
||
(check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.
|
||
|
||
* iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
|
||
gspn.hh.
|
||
|
||
* src/tgba/tgba.hh, src/tgba/tgba.cc
|
||
(tgba::project_state): New method.
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(tgba_product::project_state): New method.
|
||
* src/tgba/tgbabta.hh, src/tgba/tgbabta.cc
|
||
(tgba_bta_proxy::project_state): New method.
|
||
* src/tgbaalgos/magic.cc (magic_search::print_result): Take
|
||
a restrict argument.
|
||
|
||
2003-07-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlscan.ll: Allow /\, \/, and xor, used in LBTT.
|
||
* src/ltltest/parse.test: Test them.
|
||
|
||
* src/tgbaalgos/lbtt.cc: Typos.
|
||
|
||
* lbtt/: Upgrade to lbtt 1.0.2.
|
||
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add tbalbtt.
|
||
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS): New variables.
|
||
* src/tgbatest/spotlbtt.cc [TBA]: Build tba proxies conditionally.
|
||
* src/tgbatest/spotlbtt.test: Include tbalbtt in the tests.
|
||
|
||
2003-07-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy::state_is_accepting): New method.
|
||
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
|
||
tgbaalgos_HEADERS): Add them.
|
||
* src/tgbatest/ltlmagic.cc, src/tgbatest/ltlmagic.test: New files.
|
||
* src/tgbatest/Makefile.am (TESTS, ltlmagic_SOURCES,
|
||
check_PROGRAMS): Add them.
|
||
|
||
2003-07-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgba.hh (tgba::~tgba): Make it public.
|
||
* src/tgba/tgbatba.cc, src/tgba/tgbatba.hh: New files.
|
||
* src/tgba/Makefile.am (tgba_HEADERS): Add tgbatba.hh.
|
||
(libtgba_la_SOURCES): Add tgbatba.cc.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -D.
|
||
|
||
* src/tgbaalgos/lbtt.cc (bdd_less_than): Move ...
|
||
* src/misc/bddlt.hh: ... in this new file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add bddlt.hh.
|
||
|
||
* iface/gspn/dcswave.test: Comment state space sizes.
|
||
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add reachiters.hh.
|
||
(libtgbaalgos_la_SOURCES): Add reachiters.cc.
|
||
* src/tgbaalgos/dotty.cc, src/tgbaalgos/save.cc: Rewrite using
|
||
spot::tgba_reachable_iterator_breadth_first.
|
||
* src/tgbatest/explicit.test, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.test: Adjust expected output.
|
||
|
||
2003-07-24 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Output iface/gspn/defs.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): Add $(TESTS).
|
||
(TESTS, check_SCRIPTS, distclean-local): New.
|
||
* iface/gspn/dcswave.test, iface/gspn/simple.test,
|
||
iface/gspn/defs.in: New files.
|
||
* iface/gspn/dottygspn.cc (main): Take the list of properties
|
||
of interest in argument.
|
||
|
||
2003-07-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/examples/DCSwave/DCSWave.def,
|
||
iface/gspn/examples/DCSwave/DCSWave.net
|
||
iface/gspn/examples/DCSwave/DCSWave.tobs,
|
||
iface/gspn/examples/simple/simple.def,
|
||
iface/gspn/examples/simple/simple.net,
|
||
iface/gspn/examples/simple/simple.tobs: New files, from
|
||
Yann Thierry-Mieg.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): New variables.
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_::tgba_gspn_private_):
|
||
Rethrow caught expections.
|
||
|
||
2003-07-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: Check for libgspnRG.a and libgspnSRG.a.
|
||
Define LIBGSPNRG_LDFLAGS and LIBGSPNSRG_LDFLAGS, not
|
||
LIBGSPN_LDFLAGS.
|
||
* iface/gspn/Makefile.am: Adjust, build dottygspn-rg and
|
||
dottygspn-srg instead of dottygspn.
|
||
* iface/gspn/gspn.cc (EVENT_TRUE): Undefine.
|
||
(tgba_gspn_private_::~tgba_gspn_private_): Free all_indexes.
|
||
* iface/gspn/dottygspn.cc (main): Destroy the automaton before
|
||
its dictionary.
|
||
|
||
2003-07-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Now succ_iter() can fetch extra information from
|
||
the root of a product to reduce its number of successors.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgba.cc.
|
||
* src/tgba/tgba.hh (tgba::succ_iter): Add the global_state and
|
||
global_automaton arguments.
|
||
(tgba::support_conditions, tgba::support_variables,
|
||
tgba::compute_support_conditions, tgba::compute_support_variables):
|
||
New functions.
|
||
(tgba::last_support_conditions_input_,
|
||
tgba::last_support_conditions_output_,
|
||
tgba::last_support_variables_input_,
|
||
tgba::last_support_variables_output_): New attributes.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
|
||
Handle the two new arguments.
|
||
(tgba_bdd_concrete::compute_support_conditions,
|
||
tgba_bdd_concrete::compute_support_variables): Implement them.
|
||
* src/tgba/tgbabddconcrete.hh: Adjust.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::succ_iter): Ignore
|
||
the two new arguments.
|
||
(tgba_explicit::compute_support_conditions,
|
||
tgba_explicit::compute_support_variables): Implement them.
|
||
* src/tgba/tgbaexplicit.hh: Adjust.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::succ_iter): Handle the
|
||
two new arguments.
|
||
(tgba_product::compute_support_conditions,
|
||
tgba_product::compute_support_variables): Implement them.
|
||
* src/tgba/tgbaproduct.hh: Adjust.
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_::last_state_cond_input,
|
||
tgba_gspn_private_::last_state_cond_output,
|
||
(tgba_gspn_private_::tgba_gspn_private_): Set last_state_cond_input.
|
||
(tgba_gspn_private_::~tgba_gspn_private_): Delete
|
||
last_state_cond_input.
|
||
(tgba_gspn_private_::state_conds): New function, eved out
|
||
from tgba_gspn::succ_iter.
|
||
(tgba_gspn::succ_iter): Use it. Use the two new arguments.
|
||
(tgba_gspn::compute_support_conditions,
|
||
tgba_gspn::compute_support_variables): New functions.
|
||
* iface/gspn/gspn.hh: Adjust.
|
||
|
||
* iface/gspn/gspn.cc (EVENT_TRUE): Override temporarily.
|
||
(tgba_gspn::succ_iter): Fix usage of cube.
|
||
|
||
2003-07-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: New file.
|
||
* configure.ac: Call AX_CHECK_GSPNLIB.
|
||
* Makefile.am (EXTRA_DIST): Add m4/gspnlib.m4.
|
||
* iface/gspn/Makefile.am (AM_CPPFLAGS): Add $(LIBGSPN_CPPFLAGS).
|
||
(libspotgspn_la_LIBADD, check_PROGRAMS, dottygspn_SOURCES,
|
||
dottygspn_LDADD): New variables.
|
||
* iface/gspn/gspn.hh (gspn_interface): New class.
|
||
(gspn_exeption): Take a string argument and adjust all callers.
|
||
(operator<<): Define for gspn_exeption.
|
||
* iface/gspn/gspn.cc (gspn_interface::gspn_interface,
|
||
gspn_interface::~gspn_interface): New.
|
||
* iface/gspn/gspnlib.h: Delete, it belongs to GSPN.
|
||
* iface/gspn/dottygspn.cc: New file.
|
||
|
||
2003-07-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/lbtt.m4 (AX_CHECK_LBTT): Set LBTT and LBTT_TRANSLATE
|
||
when using an already installed lbtt.
|
||
|
||
Homogenize passing of automata as pointers, not references.
|
||
Disallow copy for security.
|
||
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
|
||
tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
|
||
* src/tgba/tgbabddconcreteproduct.cc
|
||
(tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
|
||
product): Take operand automata as pointers.
|
||
* src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
|
||
(tgba_product): Disallow copy.
|
||
(tgba_product::tgba_product): Take operand automata as pointers.
|
||
* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
|
||
Take tgba arguments as pointer.
|
||
* src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
|
||
* src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
|
||
* src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
|
||
Likewise.
|
||
* src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
|
||
* src/tgbaalgos/save.hh (save): Likewise.
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
|
||
src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
|
||
src/tgbatest/tripprod.cc: Likewise.
|
||
|
||
2003-07-14 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Before this change, all automata would construct their own
|
||
dictionaries (map of BDD variables to LTL formulae). This was
|
||
cumbersome, because to multiply two automata we had to build a
|
||
common dictionary (the union of the two LTL formula spaces), and
|
||
install wrappers to translate each automaton's BDD answers into
|
||
the common dictionary. This translation, that had to be repeated
|
||
when several products were nested, was time consuming and was a
|
||
hindrance for some optimizations.
|
||
In the new scheme, all automata involved in a product must
|
||
share the same dictionary. An empty dictionary should be
|
||
constructed by the user and passed to the automaton' constructors
|
||
as necessary.
|
||
This huge change removes more code than it adds.
|
||
|
||
* src/Makefile.am (libspot_la_LIBADD): Add misc/libmisc.la.
|
||
* src/misc/bddalloc.hh, src/misc/bddalloc.cc: New files. These
|
||
partly replace src/tgba/bddfactory.hh and src/tgba/bddfactory.cc.
|
||
* src/misc/Makefile.am: Adjust to build bddalloc.hh and bddalloc.cc.
|
||
* src/tgba/bddfactory.hh, src/tgba/bddfactory.cc,
|
||
src/tgba/dictunion.hh, src/tgba/dictunion.cc,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabddtranslatefactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbatranslateproxy.hh, src/tgba/tgbatranslateproxy.cc:
|
||
Delete.
|
||
* src/tgba/bdddict.hh, src/tgba/bdddict.cc: New files. These
|
||
replaces tgbabdddict.hh and tgbabdddict.cc, and also part of
|
||
bddfactory.hh and bddfactory.cc.
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Adjust to
|
||
use bdd_dict* instead of tgba_bdd_dict&.
|
||
* src/tgba/succiterconcrete.cc (succ_iter_concrete::next()):
|
||
Get next_to_now from the dictionary.
|
||
* src/tgba/tgba.hh (tgba::get_dict): Return a bdd_dict*,
|
||
not a const tgba_bdd_dict*.
|
||
* src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh:
|
||
Adjust to use the new dictionary, stored in data_.
|
||
* src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh: Likewise. Plus
|
||
now_to_next_ is now also stored in the dictionary.
|
||
* src/tgba/tgbabddconcreteproduct.cc: Likewise. Now
|
||
that both operand share the same product, there is not
|
||
point in using tgba_bdd_translate_factory.
|
||
* src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh:
|
||
Store a bdd_dict (taken as constructor argument).
|
||
(tgba_bdd_core_data::~tgba_bdd_core_data): Remove.
|
||
(tgba_bdd_core_data::translate): Remove.
|
||
(tgba_bdd_core_data::next_to_now): Remove (now in dict).
|
||
(tgba_bdd_core_data::dict): New pointer.
|
||
* src/tgba/tgbabddfactory.hh: (tgba_bdd_factory::get_dict): Remove.
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
|
||
Adjust to use the new dictionary.
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Likewise. Do
|
||
not use tgba_bdd_dict_union and tgba_bdd_translate_proxy anymore.
|
||
* src/tgbaalgos/lbtt.cc, src/tgbaalgos/save.cc: Adjust to
|
||
use bdd_dict* instead of tgba_bdd_dict&.
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.cc: Likewise.
|
||
(ltl_to_tgba): Take a dict argument.
|
||
* src/tgbaparse/public.hh (tgba_parse): Take a dict argument.
|
||
* src/tgbaparse/tgbaparse.yy (tgba_parse): Take a dict argument.
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Instantiate
|
||
a dictionary, and pass it to the automata' constructors.
|
||
* src/tgbatest/ltl2tgba.cc: Likewise, and remove the -o (defrag)
|
||
option.
|
||
* iface/gspn/gspn.hh (tgba_gspn::tgba_gspn): Take a bdd_dict argument.
|
||
(tgba_gspn::get_dict): Adjust return type.
|
||
* iface/gspn/gspn.cc: Do not use bdd_factory, adjust to
|
||
use the new dictionary instead.
|
||
|
||
2003-07-13 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0e.
|
||
|
||
* configure.ac: Bump version to 0.0d.
|
||
* NEWS, README: New files.
|
||
|
||
2003-07-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/lbtt.m4: Run lbtt-translate, not lbtt.
|
||
|
||
* iface/gspn/gspn.cc: Include cassert.
|
||
|
||
2003-07-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(multop)):
|
||
Forward root_ to children of And.
|
||
(ltl_trad_visitor::recurse): Take a root argument.
|
||
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::add_relation): Rename as ...
|
||
(tgba_bdd_concrete_factory::constrain_relation): ... this.
|
||
* src/tgba/tgbabddconcretefactory.cc, src/tgbaalgos/ltl2tgba.cc:
|
||
Adjust.
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::G)): Do
|
||
not create Now/Next variable when G is the root of the formula.
|
||
(ltl_trad_visitor::ltl_trad_visitor): Take a root argument.
|
||
(ltl_trad_visitor::recurse): Create a new visitor, do not copy
|
||
the current one.
|
||
(ltl_to_tgba): Build ltl_trad_visitor with root = true.
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::X)):
|
||
Remove FIXME about handling X(a U b) and X(a R b) better, it's
|
||
done naturally.
|
||
|
||
* src/tgbatest/spotlbtt.test: Make 100 rounds.
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Fix so that !p.!Acc[g].Acc[f] + p.!Acc[g].Acc[f] + p.Acc[g].!Acc[f]
|
||
is factored as !p.!Acc[g].Acc[f] + p.(!Acc[g].Acc[f] + Acc[g].!Acc[f]),
|
||
not !Acc[g].Acc[f] + p.Acc[g].!Acc[f].
|
||
|
||
2003-07-09 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* lbtt/: New directory. Contains a patched version of lbtt 1.0.1.
|
||
* Makefile.am (MAYBE_LBTT): New variables.
|
||
(SUBDIRS): Add $(MAYBE_LBTT).
|
||
(EXTRA_DIST): Add m4/lbtt.m4.
|
||
* configure.ac: Call AX_CHECK_LBTT.
|
||
* m4/lbtt.m4: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add spotlbtt.
|
||
(spotlbtt_SOURCES): New variables.
|
||
(TESTS): Add spotlbtt.test.
|
||
(CLEANFILE): Add config.
|
||
* src/tgbatest/defs.in (top_builddir, LBTT, LBTT_TRANSLATE): New
|
||
substitutions.
|
||
* src/tgbatest/spotlbtt.cc, src/tgbatest/spotlbtt.test: New files.
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Fix computation of states sharing the same accepting set.
|
||
|
||
Make sure we only output one initial state in LBTT's output.
|
||
* src/tgbaalgos/lbtt.cc (fill_todo): Add the 'first' argument
|
||
to designate initial states.
|
||
(lbtt_reachable): Adjust calls to fill_todo. Handle the
|
||
fake initial state accepting conditions specially.
|
||
* src/tgbaalgos/lbtt.hh: Update comments.
|
||
|
||
* src/tgbaalgos/lbtt.cc (lbtt_reachable): Do not end transitions
|
||
guards with -1 in output.
|
||
|
||
2003-07-08 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add option -t to output the LBTT automata.
|
||
* src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add lbtt.hh.
|
||
(libtgbaalgos_la_SOURCES): Add lbtt.cc.
|
||
* src/tgba/bddprint.cc (print_sat_handler): Put a space after "!".
|
||
* src/tgbatest/readsave.test: Adjust spaces after "!".
|
||
|
||
* src/ltlvisit/dump.cc: Strip useless spot::ltl:: prefixes.
|
||
|
||
2003-07-07 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
First sketch of the GSPN wrapper objects.
|
||
* iface/gspn/gspn.cc, iface/gspn/gspn.hh: New files.
|
||
* iface/gspn/Makefile.am (libspotgspn_la_SOURCES): Add them.
|
||
|
||
* src/tgba/succiter.hh (current_state, current_conditions
|
||
current_accepting_conditions): Mark as const.
|
||
* src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
|
||
src/tgba/tgbatranslateproxy.cc, src/tgba/tgbatranslateproxy.hh:
|
||
Likewise.
|
||
|
||
* iface/gspn/gspnlib.h: Fit 80 columns.
|
||
[__cplusplus]: Wrap everything under extern "C".
|
||
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::current_acc_): New attribute.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Set current_acc_.
|
||
(tgba_succ_iterator_concrete::current_accepting_conditions):
|
||
Simply return it.
|
||
|
||
* configure.ac: Output iface/Makefile and iface/gspn/Makefile.
|
||
* iface/Makefile.am, iface/gspn/Makefile.am: New files.
|
||
* Makefile.am (SUBDIRS): Add iface.
|
||
* iface/gspn/gspnlib.h: New file, from Yann and Souheib.
|
||
|
||
* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::tgba_bdd_core_data,
|
||
tgba_bdd_core_data::translate): Handle all_accepting_conditions.
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::finish): Fill all_accepting_conditions.
|
||
|
||
2003-07-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit): Declare
|
||
accepting conditions w.r.t. to Now variables, not Next.
|
||
|
||
2003-07-03 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaproduct.cc (tgba_product_succ_iterator::first):
|
||
Simplify, do not call next_non_false_() if either side is done.
|
||
|
||
* src/tgba/succiter.hh (tgba_succ_iterator::current_condition):
|
||
State that this is a boolean function.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::trans_dest_,
|
||
tgba_succ_iterator_concrete::trans_set_,
|
||
tgba_succ_iterator_concrete::trans_set_left_,
|
||
tgba_succ_iterator_concrete::neg_trans_set_): Remove.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete,
|
||
tgba_succ_iterator_concrete::first): Adjust to removed members.
|
||
(tgba_succ_iterator_concrete::next): Simplify, transitions
|
||
are no labelled by boolean functions, not only conjunctions.
|
||
Suggested by Denis Poitrenaud.
|
||
|
||
2003-07-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::translate): New
|
||
function.
|
||
* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::translate):
|
||
Likewise.
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
|
||
tgba_bdd_core_data::translate.
|
||
|
||
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
|
||
New attribute.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||
Handle nownext_set.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Use nownext_set to simplify.
|
||
|
||
Rewrite tgba_succ_iterator_concrete::next for the fourth time
|
||
(or is it the fifth?).
|
||
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::trans_dest_,
|
||
tgba_succ_iterator_concrete::trans_set_,
|
||
tgba_succ_iterator_concrete::trans_set_left_,
|
||
tgba_succ_iterator_concrete::neg_trans_set_): New attributes.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete): Initialize
|
||
new members.
|
||
(tgba_succ_iterator_concrete::first): Likewise.
|
||
(tgba_succ_iterator_concrete::next): Rewrite.
|
||
* tgba/tgbabddcoredata.hh (tgba_bdd_core_data::acc_set): New attribute.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||
Handle acc_set.
|
||
|
||
2003-07-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Translate
|
||
varandnext_set.
|
||
|
||
2003-06-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy (lines): Expect at last one line.
|
||
|
||
* doc/Doxyfile.in (HAVE_DOT): Set to YES to output
|
||
collaboration diagrams.
|
||
* doc/mainpage.dox: Typo.
|
||
|
||
* src/tgba/state.hh (state::as_bdd): Delete.
|
||
* src/tgba/tgbaproduct.hh (state_bdd_product): Inherit from state,
|
||
not state_bdd.
|
||
(state_bdd_product::state_bdd_product): Adjust.
|
||
* src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
|
||
Adjust.
|
||
|
||
* src/tgba/succiter.hh (tgba_bdd_succ_iterator::done):
|
||
Mark as const.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::done): Likewise.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::done): Likewise.
|
||
* src/tgba/tgbaexplicit.cc
|
||
(tgba_explicit_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaproduct.cc
|
||
(tgba_product_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaproduct.hh
|
||
(tgba_product_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbatranslateproxy.hh
|
||
(tgba_translate_proxy_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbatranslateproxy.cc
|
||
(tgba_translate_proxy_succ_iterator::done): Likewise.
|
||
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Call bdd_satoneset
|
||
on data_.varandnext_set. The previous implementation
|
||
was wrong for GFa.
|
||
* src/tgba/tgbabddcoredata.hh: Declare varandnext_set.
|
||
* src/tgba/tgbabddcoredata.cc: Handle varandnext_set.
|
||
|
||
* doc/Doxygen.in: Enable LaTeX output.
|
||
* doc/Makefile.am (spotref.pdf): New rule.
|
||
(EXTRA_DIST): Add spotref.pdf.
|
||
|
||
* src/tgba/tgbabddconcretefactory.cc:
|
||
(tgba_bdd_concrete_factory::tgba_bdd_concrete_factory): New.
|
||
(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
|
||
(tgba_bdd_concrete_factory::finish): Constraint Next variables
|
||
in the relation.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::now_to_next_): New variable.
|
||
|
||
2003-06-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Fix errors reported by ICC.
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than::operator()): Make it const.
|
||
* src/tgba/tgbaproduct.cc: Include string.hh.
|
||
* src/ltlast/multop.hh (multop::add, multop::add_sorted): Do
|
||
not use qualified names in declarations.
|
||
* m4/gccwarn.m4 (CF_GXX_WARNINGS): Fix GXX test.
|
||
* src/ltlenv/defaultenv.hh, src/ltlenv/defaultenv.cc,
|
||
src/ltlenv/environment.hh: Add virtual destructors.
|
||
|
||
2003-06-26 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* Makefile.am (EXTRA_DIST): Add HACKING.
|
||
|
||
* configure.ac: Bump version to 0.0c.
|
||
|
||
* configure.ac: Bump version to 0.0b.
|
||
|
||
* INSTALL: New file.
|
||
|
||
* src/tgba/ltl2tgba.hh, src/tgba/ltl2tgba.cc: Move ...
|
||
* src/tgbaalgos/ltl2tgba.hh, src/tgbaalgos/ltl2tgba.cc: ... here.
|
||
* src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
|
||
* src/tgba/public.hh: Do not include ltl2tgba.hh.
|
||
* src/tgbatests/explprod.cc, src/tgbatests/ltl2tgba.cc,
|
||
src/tgbatests/ltlprod.cc, src/tgbatests/mixprod.cc,
|
||
src/tgbatests/reach.cc, src/tgbatests/tripprod.cc: Adjust inclusions.
|
||
|
||
* src/tgba/tgbabddcoredata.hh: Fix some Doxygen comments.
|
||
* src/ltlast/formula.hh: More Doxygen comments.
|
||
* src/tgba/tgba.hh: Use <tt> in Doxygen comments.
|
||
|
||
* doc/mainpage.dox: New file.
|
||
* doc/Makefile.am (EXTRA_DIST): Add mainpage.dox.
|
||
* doc/Doxyfile.in (INPUT): Add @srcdir@/mainpage.dox
|
||
|
||
* src/tgba/succiter.hh: Adjust comments about promises to
|
||
refer to accepting conditions.
|
||
* src/tgba/tgbabddconcretefactory.hh: Likewise.
|
||
* src/tgba/tgbabddcoredata.hh: Likewise.
|
||
* src/tgba/dictunion.cc: Likewise.
|
||
* src/tgba/tgba.hh: Likewise.
|
||
|
||
* doc/Makefile.am (doc): Typo.
|
||
* src/ltlvisit/tostring.hh (to_string): Add doxygen comments.
|
||
* src/ltlast/multop.hh (multop::paircmp): Add doxygen comments.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::transtion,
|
||
state_explicit, tgba_explicit_succ_iterator): Add doxygen comments.
|
||
* src/ltlvisit/postfix.hh: Typo.
|
||
|
||
* src/ltlast/Makefile.am (ltlastdir, ltlast_HEADERS): New variables.
|
||
(libltlast_la_SOURCES): Move all headers to ltlast_HEADERS.
|
||
* src/ltlenv/Makefile.am (ltlenvdir, ltlenv_HEADERS): New variables.
|
||
(libltlenv_la_SOURCES): Move all headers to ltlenv_HEADERS.
|
||
* src/ltlparse/Makefile.am (ltlparsedir, ltlparse_HEADERS): New
|
||
variables.
|
||
(libltlparse_la_SOURCES): Move all public headers to ltlparse_HEADERS.
|
||
* src/ltlvisit/Makefile.am (ltlvisitdir, ltlvisit_HEADERS): New
|
||
variables.
|
||
(libltlvisit_la_SOURCES): Move all headers to ltlparse_HEADERS.
|
||
* src/misc/Makefile.am (include_HEADERS): Rename as ..
|
||
(misc_HEADERS): ... this.
|
||
(miscdir): New variable.
|
||
* src/tgba/Makefile.am (tgbadir, tgba_HEADERS): New variables.
|
||
(libtgba_la_SOURCES): Move all headers to tgba_HEADERS.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgosdir, tgbaalgos_HEADERS):
|
||
New variables.
|
||
(libtgbaalgos_la_SOURCES): Move all headers to tgbaalgos_HEADERS.
|
||
* src/tgbaparse/Makefile.am (tgbaparsedir, tgbaparse_HEADERS): New
|
||
variables.
|
||
(libtgbaparse_la_SOURCES): Move all public headers to
|
||
tgbaparse_HEADERS.
|
||
* src/tgbaparse/public.hh: Include ltlparse/location.hh, not
|
||
location.hh.
|
||
|
||
* doc/Makefile.am (stamp): Prefix $(srcdir) explicitely.
|
||
|
||
* m4/buddy.m4 (BUDDY_LDFLAGS): Use $(top_builddir), not $(top_srcdir).
|
||
* src/tgbaparse/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
|
||
|
||
* doc/Makefile.am: Rewrite to run Doxygen whenever Doxyfile.in
|
||
or configure.ac changes. Distribute the html doc.
|
||
* doc/Doxyfile.in (EXCLUDE_PATTERNS): Complete with
|
||
useless Bison classes.
|
||
(FILE_PATTERNS): Remove *.cc files.
|
||
|
||
Distribute BuDDy. Compile and link with the included version if
|
||
explicitely requested (--with-included-buddy) or if there is now
|
||
stuitable version already installed.
|
||
|
||
* buddy/: New directory. Contains a patched version of BuDDy 2.2.
|
||
* m4/buddy.m4: Make sure the installed BuDDy supports bdd_mergepairs.
|
||
Honor --with-included-buddy and --without-included-buddy. Define
|
||
the BUDDY_LDFLAGS and BUDDY_CPPFLAGS output variables, and the
|
||
WITH_INCLUDED_BUDDY Automake conditional
|
||
* Makefile.am [WITH_INCLUDED_BUDDY] (MAYBE_SUBDIRS): New variable.
|
||
(SUBDIRS): Prepend $(MAYBE_SUBDIRS).
|
||
* src/Makefile.am (libspot_LDFLAGS): New variable.
|
||
* src/tgba/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
|
||
* src/tgbaalgos/Makefile.am (AM_CPPFLAGS): Likewise.
|
||
* src/tgbatest/Makefile.am (AM_CPPFLAGS): Likewise.
|
||
|
||
2003-06-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Rewrite using bdd_satoneset. This time it's for real. (I hope.)
|
||
* src/tgba/succiterconcrete.hh (current_base_,
|
||
current_base_left_): Delete.
|
||
* tgba/tgbabddcoredata.hh (next_set): New variable.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
|
||
to update next_set.
|
||
|
||
* src/tgba/bddprint.hh, src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbaproduct.hh: Fix Doxygen comments.
|
||
|
||
* src/tgba/succiterconcrete.hh (next_succ_set_): Rename as ...
|
||
(succ_set_left_): ... this.
|
||
(current_base_, current_base_left_): New variables.
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::first):
|
||
Reset current_.
|
||
(tgba_succ_iterator_concrete::next): Rewrite.
|
||
(tgba_succ_iterator_concrete::current_state): Simplify.
|
||
(tgba_succ_iterator_concrete::current_accepting_conditions): Remove
|
||
atomic proposition with universal quantification.
|
||
* src/tgba/ltl2tgba.cc (ltl_to_tgba): Normalize the formula.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::set_init_state):
|
||
Complete the initial state.
|
||
(tgba_bdd_concrete::succ_iter): Do not remove Now variable
|
||
from the BDD passed to the iterator.
|
||
* tgba/tgbabddcoredata.hh (notnow_set, var_set): New variables.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
|
||
to update notnow_set and var_set.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Support -v.
|
||
|
||
2003-06-24 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Fix usage message.
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test: Sort
|
||
accepting conditions.
|
||
|
||
* src/ltlvisit/nenoform.cc (negative_normal_form): New const variant.
|
||
* src/ltlvisit/nenoform.hh (negative_normal_form): New const variant.
|
||
* src/ltlvisit/lunabbrev.cc (unabbreviate_logic): New const variant.
|
||
* src/ltlvisit/lunabbrev.hh (unabbreviate_logic): New const variant.
|
||
* src/ltlvisit/tunabbrev.cc (unabbreviate_ltl): New const variant.
|
||
* src/ltlvisit/tunabbrev.hh (unabbreviate_ltl): New const variant.
|
||
|
||
2003-06-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Switch from "promises" to "accepting sets". Fix the definitions
|
||
of these accepting sets so that they are really useful. Provide
|
||
an all_accepting_conditions() method for use in the emptiness
|
||
check, and a neg_accepting_conditions() for products. Predeclare
|
||
TGBA accepting conditions in the i/o.
|
||
|
||
* src/tgba/bddprint.cc (want_prom): Rename as ...
|
||
(want_prom): ... this.
|
||
(print_handler): Adjust to display Acc[].
|
||
(print_acc_handler, bdd_print_acc): New functions.
|
||
* src/tgba/bddprint.hh (print_acc_handler, bdd_print_acc):
|
||
New functions.
|
||
* src/tgba/succiter.hh (current_promise): Rename as ...
|
||
(current_accepting_conditions): ... this.
|
||
* src/tgba/succiterconcrete.cc (current_state):
|
||
Rename next to now.
|
||
(current_promise): Rename as ...
|
||
(current_accepting_conditions): ... this, and compute
|
||
the accepting conditions.
|
||
* src/tgba/dictunion.cc, src/tgba/ltl2tgba.cc,
|
||
src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgbaalgos/dotty.cc: Adjust to new names.
|
||
* src/tgba/tgba.hh (all_accepting_conditions,
|
||
neg_accepting_conditions): New functions.
|
||
* src/tgba/tgbabddconcretefactory.cc: Adjust to new
|
||
names, and record accepting conditions instead of promises.
|
||
* src/tgba/tgbabddcoredata.hh (accepting_conditions,
|
||
all_accepting_conditions, negacc_set): New variables.
|
||
(notnow_set, notprom_set, declare_promise): Rename as ...
|
||
(notnext_set, notacc_set, declare_accepting_condition): ... these.
|
||
* src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit_succ_iterator::current_promise): Rename as ...
|
||
(tgba_explicit_succ_iterator::current_accepting_conditions): ... this.
|
||
(tgba_explicit::add_promise): Rename as ...
|
||
(tgba_explicit::add_accepting_condition): ... this.
|
||
(tgba_explicit::declare_accepting_condition,
|
||
tgba_explicit::has_accepting_condition): New variables.
|
||
(tgba_explicit::get_promise): Rename as ...
|
||
(tgba_explicit::get_accepting_condition): ... this.
|
||
(tgba_explicit::all_accepting_conditions,
|
||
tgba_explicit::neg_accepting_conditions): Implement them.
|
||
(all_accepting_conditions, neg_accepting_conditions,
|
||
all_accepting_conditions): New variables.
|
||
(tgba_explicit_succ_iterator): Embed all_accepting_conditions_.
|
||
* src/tgba/tgbaexplicit.cc: Likewise.
|
||
* src/tgba/tgbaproduct.hh
|
||
(tgba_product_succ_uterator): Embed left_neg_ and right_neg_.
|
||
(tgba_product::all_accepting_conditions,
|
||
tgba_product::neg_accepting_conditions): Implement them.
|
||
* src/tgba/tgbatranslateproxy.hh:
|
||
(tgba_translate_proxy::all_accepting_conditions,
|
||
tgba_translate_proxy::neg_accepting_conditions): Implement them.
|
||
* src/tgba/tgbatranslateproxy.cc: Likewise.
|
||
* src/tgbaalgos/save.cc (save_rec): Call bdd_print
|
||
(tgba_save_reachable): Output the `acc =' line.
|
||
* src/tgbaparse/tgbaparse.yy: Support the for
|
||
accepting conditions definitions using an "acc =" line
|
||
at the start. Later, use has_accepting_condition while
|
||
parsing accepting conditions to ensure they were declared.
|
||
Disallow !cond in accepting conditions.
|
||
* src/tgbaparse/tgbascan.ll (ACC_DEF): New token.
|
||
* src/tgbatest/explicit.cc (main): Declare accepting conditions.
|
||
* src/tgbatest/ltl2tgba.cc (main): Add support for the -a, -A,
|
||
and -R new options.
|
||
* src/tgbatest/tgbaread.cc (main): Really exit on parse error.
|
||
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Reflect
|
||
recent changes.
|
||
|
||
2003-06-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test:
|
||
Sort out some possible inversions in the output.
|
||
|
||
2003-06-19 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory): destroy the
|
||
formulae used as keys in prom_.
|
||
(tgba_bdd_concrete_factory::create_promise): Delete.
|
||
(tgba_bdd_concrete_factory::declare_promise,
|
||
tgba_bdd_concrete_factory::finish): New functions.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::create_promise): Delete.
|
||
(tgba_bdd_concrete_factory::declare_promise,
|
||
tgba_bdd_concrete_factory::finish): New functions.
|
||
(tgba_bdd_concrete_factory::prom_): New map.
|
||
* src/tgba/ltl2tgba.cc (ltl_trad_visitor::visit): Adjust
|
||
the Fx and aUb cases to register promises with
|
||
tgba_bdd_concrete_factory::declare_promise().
|
||
(ltl2tgba): Call tgba_bdd_concrete_factory::finish().
|
||
|
||
* src/tgba/tgbabddconcrete.cc (set_init_state, succ_iter):
|
||
Revert the change from 2003-06-12, it needs more work (the
|
||
automaton generated on Xa&(b U !a) was bogus, with that
|
||
patch).
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Handle the -o and -r options.
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/readsave.test: Adjust to reflect yesterday's
|
||
bddprint.cc change.
|
||
|
||
2003-06-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc (print_handler): Quote promises
|
||
when !want_prom.
|
||
* src/tgbaparse/tgbaparse.yy (prop_list): Accept strings or
|
||
identifiers. Discard empty strings.
|
||
* src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add mixprod.
|
||
(mixprod_SOURCES): New variable.
|
||
(TESTS): Add mixprod.test.
|
||
|
||
2003-06-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
|
||
New constructor.
|
||
* src/tgba/tgbaproduct.hh (state_bdd_product::state_bdd_product):
|
||
New constructor.
|
||
* tgbatest/tripprod.cc, tgbatest/tripprod.test: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
|
||
(tripprod_SOURCES): New variable.
|
||
(CLEANFILES): Add input3.
|
||
(TESTS): Add tripprod.test.
|
||
|
||
2003-06-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddprod.cc, src/tgba/tgbabddprod.hh: Rename as ...
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: ... these.
|
||
(tgba_bdd_product, tgba_bdd_product_succ_iterator): Rename as ...
|
||
(tgba_product, tgba_product_succ_iterator): ... these, and adjust
|
||
all uses.
|
||
* src/tgba/tgbabddtranslateproxy.cc,
|
||
src/tgba/tgbabddtranslateproxy.hh: Rename as ...
|
||
* src/tgba/tgbatranslateproxy.cc,
|
||
src/tgba/tgbatranslateproxy.hh: ... these.
|
||
(tgba_bdd_translate_proxy, tgba_bdd_translate_proxy_succ_iterator):
|
||
Rename as ...
|
||
(tgba_translate_proxy, tgba_translate_proxy_succ_iterator): ... these,
|
||
and adjust all uses.
|
||
|
||
Make sure we can multiply two tgba_explicit.
|
||
|
||
* tgba/state.hh (state::translate, state::clone, state::as_bdd):
|
||
New virtual methods.
|
||
* tgba/stataebdd.cc (state::translate, state::clone): New methods.
|
||
* tgba/stataebdd.hh (state::translate, state::clone): New methods.
|
||
* tgba/tgbabddprod.cc (state_bdd_product::clone,
|
||
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
|
||
New methods.
|
||
(tgba_bdd_product_succ_iterator::first): Reset right_
|
||
if any of left_ or right_ is already done (i.e., is empty).
|
||
(tgba_bdd_product_succ_iterator::done): Return true
|
||
if right_ is NULL.
|
||
(tgba_bdd_product_succ_iterator::current_state,
|
||
tgba_bdd_product::get_init_state): Work directory with `state's.
|
||
* tgba/tgbabddprod.hh (state_bdd_product::clone,
|
||
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
|
||
New methods.
|
||
* tgba/tgbabddtranslateproxy.cc
|
||
(tgba_bdd_translate_proxy_succ_iterator::
|
||
tgba_bdd_translate_proxy_succ_iterator): Work on any kind of iteraator.
|
||
(tgba_bdd_translate_proxy_succ_iterator::
|
||
~tgba_bdd_translate_proxy_succ_iterator): New method.
|
||
(tgba_bdd_translate_proxy_succ_iterator::current_state,
|
||
tgba_bdd_translate_proxy::get_init_state,
|
||
tgba_bdd_translate_proxy::succ_iter): Work on `state's and
|
||
`tgba_succ_iterator's directlry.
|
||
(tgba_bdd_translate_proxy::format_state): Delegate formating
|
||
to the proxied automata.
|
||
* tgba/tgbaexplicit.cc (state_explicit::clone): New method.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
|
||
tgba_explicit::get_promise): Call ltl::destroy on existing formulae.
|
||
* tgbatest/explprod.cc, tgbatest/explprod.test: New files.
|
||
* tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
|
||
(explprod_SOURCES): New variable.
|
||
(TESTS): Add explprod.test.
|
||
(CLEANFILES): Add input1 and input2.
|
||
|
||
2003-06-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddconcrete.cc (set_init_state, succ_iter): Make
|
||
sure to compute the status of the most Now variables possible.
|
||
This helps to identify equivalant states.
|
||
(tgba_bdd_concrete): Call set_init_state.
|
||
|
||
2003-06-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/ltl2tgba.cc (ltl_trad_visitor::visit): Handle F and G.
|
||
* src/tgbatest/ltl2tgba.test: Use F and G.
|
||
|
||
2003-06-06 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/bddprod.test: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add bddprod.
|
||
(bddprod_SOURCES, bddprod_CXXFLAGS): New variables.
|
||
(TESTS): Add bddprod.test.
|
||
* src/tgbatest/ltlprod.c: Handle BDD_CONCRETE_PRODUCT.
|
||
|
||
* src/tgba/dictunion.cc (tgba_bdd_dict_union): Clone formulae
|
||
while building new dictionary.
|
||
* src/tgbatest/ltlprod.test, src/tgbatest/ltlprod.cc: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltlprod.
|
||
(ltlprod_SOURCES): New variable.
|
||
(TESTS): Add ltlprod.test.
|
||
|
||
* src/ltlvisit/clone.cc (clone): New const version.
|
||
* src/ltlvisit/clone.hh (clone): Likewise.
|
||
* src/ltlvisit/destroy.cc (destroy): New const version.
|
||
* src/ltlvisit/destroy.hh (destroy): Likewise.
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::create_state,
|
||
tgba_bdd_concrete_factory::create_atomic_prop,
|
||
tgba_bdd_concrete_factory::promise): Clone new formulae.
|
||
* src/tgba/tgbabdddict.cc (tgba_bdd_dict::tgba_bdd_dict,
|
||
tgba_bdd_dict::~tgba_bdd_dict, tgba_bdd_dict::operator=): New methods
|
||
that clone and destroy formulae.
|
||
* src/tgbatest/ltl2tgba.test, src/tgbatest/ltl2tgba.cc: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltl2tgba.
|
||
(ltl2tgba_SOURCES): New variable.
|
||
(TESTS): Add ltl2tgba.test.
|
||
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/tgba/bddprint.cc, src/ltltest/tostring.cc: Include <cassert>.
|
||
|
||
2003-06-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc (dict): Make this variable static.
|
||
(want_prom): New global static variable.
|
||
(print_handle): Honor want_prom.
|
||
(print_sat_handler, bdd_print_sat, bdd_format_sat): New functions.
|
||
(bdd_print_set, bdd_print_dot, bdd_print_table): Set want_prom.
|
||
* src/tgba/bddprint.hh (bdd_print_sat, bdd_format_sat): New functions.
|
||
* src/tgbaalgos/save.cc, src/tgbaalgos/save.hh,
|
||
src/tgbatest/readsave.cc, src/tgbatest/readsave.test: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES): Add
|
||
save.cc and save.hh.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add readsave.
|
||
(readsave_SOURCES): New variable.
|
||
(TESTS): Add readsave.test.
|
||
|
||
* configure.ac: Output src/tgbaparse/Makefile.
|
||
* src/Makefile.am (SUBDIRS): Add tgbaparse.
|
||
(libspot_la_LDADD): Add tgbaparse/libtgbaparse.la.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
|
||
tgba_explicit::get_promise, tgba_explicit::add_neg_condition,
|
||
tgba_explicit::add_neg_promise): New methods.
|
||
* src/tgba/tgbaexplicit.hh: Declare them.
|
||
* src/tgbaparse/Makefile.am, src/tgbaparse/fmterror.cc,
|
||
src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
|
||
src/tgbaparse/tgbaparse.yy, src/tgbaparse/tgbascan.ll,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add tgbaread.
|
||
(TESTS): Add tgbaread.cc.
|
||
(CLEANFILES): Add input.
|
||
(tgbaread_SOURCES): New variable.
|
||
|
||
* src/ltlparse/ltlparse.yy: Typo in comment.
|
||
|
||
* configure.ac: Output src/tgbatest/Makefile and src/tgbatest/defs.
|
||
* src/Makefile.am (SUBDIRS): Add tgbatest.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: New file.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgbaexplicit.cc
|
||
and tgbaexplicit.hh.
|
||
* src/tgbatest/Makefile.am, src/tgbatest/defs.in,
|
||
src/tgbatest/explicit.cc, src/tgbatest/explicit.test: New files.
|
||
|
||
2003-06-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy (result): Suppress unused definition.
|
||
|
||
* src/Makefile.am (SUBDIRS): Build `ltltest' after `.'.
|
||
|
||
* src/ltlparse/ltlscan.ll: Use ltlyy as %prefix.
|
||
* src/ltlparse/parsedecl.hh (YY_DECL): Rename yylex to ltlyylex.
|
||
* src/ltlparse/ltlparse.yy: Define yylex as ltlyylex.
|
||
|
||
2003-06-03 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/dictunion.cc, src/tgba/ltl2tgba.cc,
|
||
src/tgba/succiterconcrete.cc, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddprod.cc, src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbabddtranslateproxy.cc: Include <cassert>.
|
||
|
||
2003-06-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabdddict.cc, src/tgba/tgbabdddict.hh: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
* src/tgba/tgbabdddict.cc (tgba_bdd_dict::contains): New function.
|
||
* src/tgba/tgbabdddict.hh (tgba_bdd_dict::contains): Likewise.
|
||
|
||
2003-05-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/statebdd.hh (state_bdd::as_bdd): Add non-const variant.
|
||
* src/tgba/tgbabddtranslateproxy.cc,
|
||
src/tgba/tgbabddtranslateproxy.hh: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
|
||
2003-05-27 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh,
|
||
src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.hh, src/tgbaalgos/dotty.cc:
|
||
Add Doxygen comments.
|
||
|
||
* src/tgba/bddfactory.hh, src/tgba/statebdd.hh,
|
||
src/tgba/succiterconcrete.hh, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.hh: Add
|
||
Doxygen comments.
|
||
|
||
* src/tgba/bddprint.hh (bdd_format_set): New function.
|
||
* src/tgba/bddprint.cc (bdd_format_set): Likewise.
|
||
* src/tgba/state.hh: Add Doxygen comments.
|
||
(state::compare): Take a state*, not a state&.
|
||
(state_ptr_less_than): New functor.
|
||
* src/tgba/statebdd.hh (state_bdd::compare): Take a state*, not a
|
||
state&.
|
||
* src/tgba/statebdd.cc (state_bdd::compare): Likewise.
|
||
* src/tgba/succiter.hh: Add Doxygen comments.
|
||
* src/tgba/tgba.hh: Mention promises.
|
||
(tgba::formate_state): New pure virtual method.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete::formate_state):
|
||
New method.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::formate_state):
|
||
Likewise.
|
||
* src/tgbaalgos/dotty.cc: Adjust to use state_ptr_less_than
|
||
and tgba::formate_state.
|
||
|
||
* src/tgba/succiter.hh (tgba_succ_iterator::current_state):
|
||
Return a state*, not a state_bdd.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::current_state): Return a state_bdd*,
|
||
not a state_bdd.
|
||
* src/tgba/tgba.hh: Add Doxygen comments.
|
||
(tgba::succ_iter, tgba::get_init_state): Use state*, not state_bdd.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete::get_init_state):
|
||
Return a state_bdd*, not a state_bdd.
|
||
(tgba_bdd_concrete::get_init_bdd): New method.
|
||
(tgba_bdd_concrete::succ_uter): Take a state* as argument.
|
||
* src/tgba/tgbabddconcrete.cc: Likewise.
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
|
||
tgba_bdd_concrete::get_init_bdd.
|
||
* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty): Adjust
|
||
to use state* instead of state_bdd.
|
||
* src/tgba/succlist.hh: Delete. (Leftover from a previous
|
||
draft.)
|
||
|
||
2003-05-26 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES): Add them.
|
||
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::compute_pairs): Be quiet.
|
||
|
||
* src/Makefile.am (SUBDIRS): Add tgbaalgos.
|
||
(libspot_la_LIBADD): Add tgba/libtgbaalgos.
|
||
* src/tgbaalgos/Makefile.am: New file.
|
||
* configure.ac: Output src/tgbaalgos/Makefile.
|
||
|
||
* src/tgba/bddprint.hh, src/tgba/bddprint.cc: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
* src/tgba/public.hh: Include bddprint.hh.
|
||
|
||
* src/tgba/tgba.hh: Rename as ...
|
||
* src/tgba/public.hh: .. this.
|
||
* src/tgba/tgba.hh: New file.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add public.hh.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Inherit from tgba.
|
||
(tgba_bdd_concrete::init_iter): Delete.
|
||
(tgba_bdd_concrete::succ_iter): Take a state_bdd as argument,
|
||
not a bdd.
|
||
* src/tgba/tgbabddconcrete.cc: Likewise.
|
||
|
||
Initial code for TGBA (Transition Generalized B<>chi Automata).
|
||
Contains tgba_bdd, a BDD-encoded TGBA, and ltl_to_tgba,
|
||
a LTL-to-TGBA translator using Couvreur's algorithm.
|
||
|
||
* src/Makefile.am (SUBDIRS): Add tgba.
|
||
(libspot_la_LIBADD): Add tgba/libtgba.la.
|
||
* configure.ac: Output src/tgba/Makefile.
|
||
* src/tgba/Makefile.am, src/tgba/bddfactory.cc,
|
||
src/tgba/bddfactory.hh, src/tgba/dictunion.cc,
|
||
src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh,
|
||
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
|
||
src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
|
||
src/tgba/succiterconcrete.hh, src/tgba/succlist.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbabddtranslatefactory.hh: New files.
|
||
|
||
2003-05-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gccwarn.m4: Do not use -Winline, this is inappropriate
|
||
with STL.
|
||
* src/ltlast/atomic_prop.cc, src/ltlvisit/lunabbrev.cc,
|
||
src/ltlvisit/nenoform.cc: Include <cassert>.
|
||
|
||
2003-05-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/dotty.cc: Rewrite to display formulae as
|
||
graphs rather than trees, to show how nodes are shared.
|
||
|
||
* src/ltlvisit/dump.hh (dump): Return the passed ostream.
|
||
* src/ltlvisit/dump.cc (dump): Likewise.
|
||
* src/ltlvisit/dotty.hh (dotty): Likewise.
|
||
* src/ltlvisit/dotty.cc (dotty): Likewise.
|
||
* src/ltlvisit/tostring.hh (to_string): Likewise.
|
||
* src/ltlvisit/tostring.cc (to_string): Likewise.
|
||
|
||
* src/ltlvisit/dump.hh (dump): Take a formula* as argument,
|
||
not a formula&. This is more homogeneous.
|
||
* src/ltlvisit/dump.cc (dump): Likewise.
|
||
* src/ltlvisit/dotty.hh (dotty): Likewise.
|
||
* src/ltlvisit/dotty.cc (dotty): Likewise.
|
||
* src/ltlvisit/tostring.hh (to_string): Likewise.
|
||
* src/ltlvisit/tostring.cc (to_string): Likewise.
|
||
* src/ltltest/readltl.cc, src/ltltest/equals.cc,
|
||
src/ltltest/tostring.cc: Adjust usage.
|
||
|
||
Check trivial multop equality at build time. This makes the equal
|
||
visitor useless, since two equals formulae will now share the same
|
||
address.
|
||
|
||
* src/ltlast/multop.hh (add_sorted): New function.
|
||
(paircmp): New comparison functor.
|
||
(map): Use paircmp, we want to compare the vectors' contents,
|
||
not their addresses.
|
||
* src/ltlast/multop.cc (add_sorted): New function.
|
||
(add): Use it.
|
||
* src/ltltest/equals.cc, src/ltltest/tostring.cc: Compare
|
||
pointers instead of calling equal.
|
||
* src/ltlvisit/equals.cc, src/ltlvisit/equals.hh: Delete.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES): Remove
|
||
equals.cc and equals.hh.
|
||
* wrap/spot.i: Do not include equals.hh.
|
||
|
||
2003-05-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Implement spot::ltl::destroy() and exercise it.
|
||
|
||
* src/ltlast/atomic_prop.hh: Declare instance_count().
|
||
* src/ltlast/binop.hh, src/ltlast/unop.hh, src/ltlast/multop.hh:
|
||
Likewise. Also, really inherit for ref_formula this time.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
|
||
src/ltlast/unop.cc, src/ltlast/multop.cc: On destruction, suppress
|
||
the instance from the instance map. Implement instance_count().
|
||
* src/ltlast/formula.cc, src/ltlast/formula.hh,
|
||
src/ltlast/ref_formula.cc, src/ltlast/ref_formula.hh: Add virtual
|
||
destructors.
|
||
* src/ltlparse/ltlparse.yy: Recover from binary operators with
|
||
missing right hand operand (the point is just to destroy the
|
||
the left hand operand).
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/ltltest/tostring.cc: Destroy used formulae. Make sure
|
||
instance_count()s are null are the end.
|
||
* src/ltltest/parseerr.test: Adjust expected result, now
|
||
that the parser lnows about missing right hand operands.
|
||
* src/ltlvisit/destroy.hh, src/ltlvisit/destroy.cc,
|
||
src/ltlvisit/postfix.hh, src/ltlvisit/postfix.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES): Add them.
|
||
* src/ltlvisit/lunabbrev.cc (Xor, Equiv): Clone formulae
|
||
occurring twice in the rewritten expression.
|
||
|
||
Massage the AST so that identical sub-formula share the same
|
||
reference-counted formula*. One can't call constructors for AST
|
||
items anymore, everything need to be acquired through instance()
|
||
class methods.
|
||
|
||
* src/ltlast/formula.cc, src/ltlast/refformula.cc,
|
||
src/ltlast/refformula.hh: New files.
|
||
* src/ltlast/Makefile.am (libltlast_la_SOURCES): Add them.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/unop.cc, src/ltlast/unop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh: Make the constructor
|
||
and destructor protected. Define a static function `instance()'
|
||
to get an instance with specific argument. Use a map called
|
||
`instances' to store all known instances. Inherit from
|
||
ref_formula.
|
||
* src/ltlast/constant.hh, src/ltlast/constant.cc: Protect
|
||
the constructor and destructor. Provide the false_instance()
|
||
and true_instance() functions instead.
|
||
* src/formula.hh (ref, unref, ref_, unref_): New methods.
|
||
* src/ltlast/multop.cc, src/ltlast/multop.hh: Protect
|
||
the constructor, destructor, as well as the add() method.
|
||
Provides the instance(), and add() class methods instead.
|
||
Store children_ as a pointer.
|
||
* src/ltlenv/defaultenv.cc (require): Adjust to
|
||
call atomic_prop::instance.
|
||
* src/ltlparse/ltlparse.yy: Adjust to call instance() functions
|
||
instead of constructors.
|
||
* src/ltltest/Makefile.am (LDADD): Tweak library ordering.
|
||
* src/ltlvisit/clone.hh (clone_visitor): Inherit from visitor,
|
||
not const_visitor, and adjust all prototypes appropriately.
|
||
* src/ltlvisit/clone.cc (clone_visitor): Likewise.
|
||
Call ref() or instance() methods instead of copy constructors.
|
||
* src/ltlvisit/equals.cc: Simplify atomic_prop and constant
|
||
cases.
|
||
* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc,
|
||
src/ltlvisit/tunabbrev.hh, src/ltlvisit/tunabbrev.cc,
|
||
src/ltlvisit/nenoform.hh, src/ltlvisit/nenoform.cc: Use instance()
|
||
methods instead of constructor. Make these children of visitor, not
|
||
const_visitor.
|
||
* src/ltltest/readltl.c (main): Do not delete the formula.
|
||
|
||
* src/ltlparse/ltlscan.ll (to_parse_size): Declare as size_t to
|
||
remove a warning with newer versions of Flex.
|
||
|
||
* src/ltlparse/ltlparse.yy (error_list, parse_environment, result):
|
||
CVS Bison now supports %parse-param for the C++ skeleton; pass these
|
||
variables as arguments to the Parser::Parser constructor instead of
|
||
using globals.
|
||
(parse): Adjust Parser::Parser call.
|
||
|
||
2003-05-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc: Reindent and strip out superfluous
|
||
spot::ltl:: prefixes.
|
||
(to_string(formula)): New function.
|
||
* src/ltlvisit/tostring.hh (to_string(formula)): Likewise.
|
||
* src/ltltest/tostring.cc: Use this new to_string function to
|
||
simplify.
|
||
|
||
2003-05-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/buddy.m4: New file.
|
||
* Makefile.am (EXTRA_DIST): Add m4/buddy.m4.
|
||
* configure.ac: Call AX_CHECK_BUDDY.
|
||
|
||
2003-04-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/Makefile.am (lib_LTLIBRARIES): Rename as ...
|
||
(noinst_LTLIBRARIES): ... this.
|
||
* src/ltlenv/Makefile.am, src/ltlast/Makefile.am,
|
||
src/ltlparse/Makefile.am: Likewise.
|
||
* src/Makefile.am (lib_LTLIBRARIES, libspot_la_SOURCES,
|
||
libspot_la_LIBADD): New variable. Build a libspot.la library
|
||
from all the sub-libraries.
|
||
|
||
* m4/pypath.m4: New file.
|
||
* Makefile.am (SUBDIRS): Add wrap.
|
||
* wrap/Makefile.am: New file.
|
||
* wrap/spot.i: New file. Preliminary bindings for Python.
|
||
* configure.ac: Call adl_CHECK_PYTHON and output wrap/Makefile.
|
||
|
||
2003-04-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Call AC_PROG_LIBTOOL.
|
||
* src/ltlast/Makefile.am, src/ltlenv/Makefile.am,
|
||
src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
|
||
src/ltlvisit/Makefile.am: Adust to build libtool libraries.
|
||
|
||
* src/ltlenv/defaultenv.hh: Do not include atomic_prop.hh here...
|
||
* src/ltlenv/defaultenv.cc: ... but here.
|
||
|
||
* src/ltltest/tostring.test: Simplify with set -e. Move the
|
||
description of the test ...
|
||
* src/ltltest/tostring.cc: ... here, where it is actually coded.
|
||
* src/ltltest/lunabbrev.test, src/ltltest/tunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/tunenoform.test:
|
||
Simplify with set -e.
|
||
|
||
* configure.ac (AM_INIT_AUTOMAKE): Use nostdinc, to make
|
||
sure we always use paths relative to src/ in src/'s
|
||
subdirectories.
|
||
|
||
2003-04-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/Makefile.am (CXXFLAGS): Turn on GCC warnings
|
||
now that CVS Bison is fixed.
|
||
* src/ltlparse/ltlscan.ll: Use yyunput to shut up a GCC warning.
|
||
|
||
2003-04-24 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* src/ltltest/tostring.test: New file.
|
||
* src/ltltest/tostring.cc: New files.
|
||
* src/ltlvisit/tostring.hh: From ast to string New files.
|
||
* src/ltlvisit/tostring.cc: From ast to string New files.
|
||
|
||
2003-04-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/Makefile.am (EXTRA_DIST): Distribute ltlparse.yy.
|
||
* src/ltlast/Makefile.am (libltlast_a_SOURCES): Add visitor.hh.
|
||
|
||
* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
|
||
src/ltlast/constant.hh, src/ltlast/formula.hh,
|
||
src/ltlast/multop.hh, src/ltlast/unop.hh, src/ltlast/visitor.hh,
|
||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
|
||
src/ltlparse/public.hh, src/ltlvisit/clone.hh,
|
||
src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/equals.hh, src/ltlvisit/lunabbrev.hh,
|
||
src/ltlvisit/nenoform.hh, src/ltlvisit/tunabbrev.hh: Add
|
||
Doxygen comments.
|
||
* src/visitor.hh: Do not use const_sel. This clarifies
|
||
the code and helps Doxygen.
|
||
|
||
* configure.ac: Output doc/Doxyfile and doc/Makefile.
|
||
* doc/Makefile.am, doc/Doxyfile.in: New files.
|
||
* Makefile.am (SUBDIRS): Add doc.
|
||
|
||
* src/ltlparse/ltlscan.ll: Recognize && and ||.
|
||
* src/ltltest/parse.test, src/ltltest/parseerr.test,
|
||
src/ltltest/equals.test: Use these operators..
|
||
|
||
2003-04-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltltest/readltl.cc, src/ltltest/equals.cc: Cosmetics.
|
||
|
||
* src/ltlenv/environment.hh (require): Return a formula, not
|
||
an atomic_prop.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop): New argument env.
|
||
(environment_): New member.
|
||
(env): New method.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop, env): Likewise.
|
||
* src/ltlenv/defaultenv.cc (require): Pass *this as the
|
||
environment argument to atomic_prop.
|
||
* src/ltlvisit/clone.cc (visit(const atomic_prop*)): Also copy
|
||
the environment.
|
||
* src/ltlvisit/nenoform.cc (visit(const atomic_prop*)): Likewise.
|
||
|
||
* configure.ac: Output src/ltlenv/Makefile.
|
||
* src/ltlenv/Makefile.am, src/ltlenv/defaultenv.cc,
|
||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh: New files.
|
||
* src/ltlparse/public.hh (parse): Take an environment as third
|
||
argument.
|
||
* src/ltlparse/ltlparse.yy (ATOMIC_PROP, parse): Require the
|
||
atomic proposition via the environment.
|
||
* src/ltltest/readltl.cc (main): Adjust the call to parse().
|
||
* src/ltltest/Makefile.am (LDADD): Add ../ltlenv/libltlenv.a.
|
||
|
||
* src/ltlvisit/clone.hh, src/ltlvisit/clone.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc: Inherit
|
||
from clone_visitor and remove all useless methods (now inherited).
|
||
|
||
* src/ltlvisit/nenoform.hh, src/ltlvisit/nenoform.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltltest/equals.cc (main) [NENOFORM]: Call negative_normal_form.
|
||
* src/ltltest/nenoform.test, src/ltltest/tunenoform.test: New files.
|
||
* src/ltltest/Makefile.am (check_PROGRAMS): Add nenoform and
|
||
tunenoform.
|
||
(nenoform_SOURCES, nenoform_CPPFLAGS, tunenoform_SOURCES,
|
||
tunenoform_CPPFLAGS): New variables.
|
||
(TESTS): Add nenoform.test and tunenoform.test.
|
||
|
||
* src/ltlvisit/lunabbrev.hh: Fix include guard.
|
||
|
||
2003-04-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltltest/tunabbrev.test: New file.
|
||
* src/ltltest/lunabbrev.test: Fix comment.
|
||
* src/ltltest/Makefile.am (TESTS): Add tunabbrev.test.
|
||
(check_PROGRAMS): Add tunabbrev.
|
||
(tunabbrev_SOURCES, tunabbrev_CPPFLAGS): New variables.
|
||
* src/ltltest/equals.cc (main) [TUNABBREV]: Call unabbreviate_ltl.
|
||
* src/ltlvisit/lunabbrev.hh (unabbreviate_logic_visitor::recurse):
|
||
New virtual function.
|
||
* src/ltlvisit/lunabbrev.cc (unabbreviate_logic_visitor::recurse):
|
||
Likewise.
|
||
(unabbreviate_logic_visitor::visit): Use it instead of calling
|
||
unabbreviate_logic directly.
|
||
|
||
* src/ltlvisit/lunabbrev.hh: Add missing include guard.
|
||
|
||
* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltlast/multop.cc (multop::multop(type)): New constructor.
|
||
* src/ltlast/multop.hh (multop::multop(type)): New constructor.
|
||
* src/ltltest/lunabbrev.test: New file.
|
||
* src/ltltest/Makefile.am (TESTS): Add lunabbrev.test.
|
||
(check_PROGRAMS): Add lunabbrev.
|
||
(lunabbrev_SOURCES, lunabbrev_CPPFLAGS): New variables.
|
||
* src/ltltest/equals.cc (main) [LUNABBREV]: Call unabbreviate_logic.
|
||
|
||
* src/ltltest/equals.test (check0, check1): Remove. Use check 0, and
|
||
check 1 instead.
|
||
|
||
* src/ltlast/formulae.hh: Rename as ...
|
||
* src/ltlast/formula.hh: ... this.
|
||
* src/ltlast/Makefile.am (libltlast_a_SOURCES): Adjust.
|
||
* src/ltlast/formula.hh (formulae): Rename as ...
|
||
(formula): ... this.
|
||
Adjust all uses.
|
||
|
||
* src/ltlparse/public.hh (format_parse_errors): New function.
|
||
* src/ltlparse/fmterror.cc: New file.
|
||
* src/ltlparse/Makefile.am (libltlparse_a_SOURCES): Add fmterror.cc.
|
||
* src/ltltests/equals.cc, src/ltltests/readltl.cc: Simplify using
|
||
format_parse_errors.
|
||
|
||
* src/ltlvisit/equals.cc, src/ltlvisit/equals.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add equals.hh
|
||
and equals.cc.
|
||
* src/ltltest/equals.cc, src/ltltest/equals.test: New files.
|
||
* src/ltltest/Makefile.am (check_PROGRAMS): Add equals.
|
||
(equals_SOURCES): New variable.
|
||
(TESTS): Add equals.test.
|
||
|
||
* src/ltlast/multop.cc (multop::multop): Use multop::add.
|
||
(multop::add): If the formulae we add is itself a multop for the
|
||
same operator, merge its children with ours.
|
||
* src/ltltest/parseerr.test: Add two tests for multop merging.
|
||
|
||
2003-04-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlast/formulae.hh (formulae::equals): Remove.
|
||
* src/ltlast/unop.hh (unop::equals): Remove.
|
||
* src/ltlast/unop.cc (unop::equals): Remove.
|
||
* src/ltlast/binop.hh (binop::equals): Remove.
|
||
* src/ltlast/binop.cc (binop::equals): Remove.
|
||
* src/ltlast/multop.hh (multop::equals): Remove.
|
||
* src/ltlast/multop.cc (multop::equals): Remove.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop::equals): Remove.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop::equals): Remove.
|
||
* src/ltlast/constant.hh (constant::equals): Remove.
|
||
* src/ltlast/constant.cc (constant::equals): Remove.
|
||
|
||
* HACKING, Makefile.am, configure.ac, m4/gccwarn.m4,
|
||
src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
|
||
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/formulae.hh,
|
||
src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/predecl.hh,
|
||
src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlast/visitor.hh,
|
||
src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
|
||
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/ltlvisit/Makefile.am,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
|
||
src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/rewrite.cc, src/ltlvisit/rewrite.hh,
|
||
src/ltltest/Makefile.am, src/ltltest/defs.in, src/ltltest/readltl.cc,
|
||
src/ltltest/parse.test, src/ltltest/parseerr.test,
|
||
src/misc/Makefile.am, src/misc/const_sel.hh: New files.
|