* ChangeLog.1, tests/core/autcross3.test, tests/core/ltl3ba.test, tests/core/ltl3dra.test, tests/core/ltlcross3.test, tests/core/ltlsynt.test, tests/sanity/style.test: Here.
10800 lines
399 KiB
Groff
10800 lines
399 KiB
Groff
2012-03-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.3a.
|
||
|
||
2012-03-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.8.3.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.3.
|
||
|
||
2012-03-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a segfault in the CGI script, reported by Denis.
|
||
|
||
* src/tgbaalgos/emptiness.cc
|
||
(emptiness_check_instantiator::construct): Set *err = 0
|
||
on success. This avoids problem with the python bindings
|
||
always converting *err to a string and sometimes failing
|
||
to do so when err was not initialized.
|
||
|
||
2012-03-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
ltl2tgba.html: Fix initialization of unset options on reload.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: On page reload, do not ignore
|
||
fields for which no value has been set in the hash fragment.
|
||
Otherwise they will keep their default value.
|
||
Reported by Thomas Badie.
|
||
|
||
2012-03-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/spot.in: Fix emulation of execfile.
|
||
|
||
2012-03-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
ltl2tgba.html: save state in URL to preserve history
|
||
|
||
* wrap/python/ajax/js/jquery.ba-bbq.min.js: New file.
|
||
* wrap/python/ajax/Makefile.am: Distribute it.
|
||
* wrap/python/ajax/ltl2tgba.html: Include it, and
|
||
Adjust the code to update the URL's hash fragment,
|
||
and to read it.
|
||
|
||
2012-03-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
python: fix return value of emptiness_check_instantiator
|
||
|
||
* wrap/python/spot.i: Fix typemap for
|
||
emptiness_check_instantiator::construct. The previous code used
|
||
to turn (None, "error") into simply ("error").
|
||
* wrap/python/ajax/spot.in: Fix handling or errors when
|
||
instantiating emptiness checks.
|
||
|
||
2012-02-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Summarize recent changes.
|
||
|
||
2012-02-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make all python code compatible with Python 2.x and Python 3.x.
|
||
|
||
* wrap/python/buddy.i (__le__, __lt__, __eq__, __ne__, __ge__
|
||
__gt__): New operators for bdd.
|
||
* wrap/python/spot.i (__le__, __lt__, __eq__, __ne__, __ge__
|
||
__gt__, __hash__): New operators for formula.
|
||
(nl_cout, nl_cerr): New functions.
|
||
* 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,
|
||
wrap/python/tests/minato.py, wrap/python/tests/modgray.py: Adjust
|
||
to the new print syntax by using sys.output.write() or nl_cout()
|
||
instead.
|
||
* wrap/python/tests/optionmap.py: Remove all print calls.
|
||
* wrap/python/ajax/spot.in: Massive adjustments in order to work
|
||
with both Python 2 and 3. In python 3, reopening stdout as
|
||
unbuffered requires it to be open as binary, which in turns
|
||
requires any string output to be encoded manually. BaseHTTPServer
|
||
and CGIHTTPServer have been merged into http.server, so we have
|
||
to try two different import syntaxes. execfile no longer exists,
|
||
so it has to be emulated.
|
||
This also fixes two bugs where the script would segfault on
|
||
empty input, or when calling Tau03 on automata with less then
|
||
one acceptance conditions.
|
||
|
||
2012-02-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix computation of PYTHONINC for Python 3.
|
||
|
||
* m4/pypath.m4: The print syntax changed in Python 3, so use
|
||
sys.stdout.write for compatibility with all versions.
|
||
|
||
2012-02-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* HACKING: Minor updates and corrections.
|
||
|
||
2012-02-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a race condition on the CGI script.
|
||
|
||
* wrap/python/ajax/spot.in: Create all cache files in a temporary
|
||
directory, and only rename this directory at the end. This way if
|
||
two processes are processing the same request, they won't attempt
|
||
to populate the same directory (and only one of the first of two
|
||
renames will succeed, but that is OK).
|
||
|
||
2012-01-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a segfault reported by Etienne Renault using dve2check.
|
||
|
||
* src/misc/intvcmp2.cc (stream_compression_base::run): Fix a case
|
||
where the "id" of the compression to use would be miscalculated,
|
||
causing wrong values to be encoded.
|
||
* src/tgbatest/intvcmp2.cc: Add this particular test case.
|
||
|
||
2012-01-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Add missing dates.
|
||
|
||
2012-01-19 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.2a.
|
||
|
||
2012-01-19 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.8.2.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.2.
|
||
|
||
2012-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Small speedup in safra_tree::compare().
|
||
|
||
* src/tgba/tgbasafracomplement.cc (safra_tree::compare): Improve
|
||
the order of the tests.
|
||
|
||
2012-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Mention the last two changes.
|
||
|
||
2012-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Implement a unicity table for states created by tgba_tba_proxy.
|
||
|
||
Suggested by Nikos Gorogiannis.
|
||
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::create_state): New method.
|
||
(tgba_tba_proxy::uniq_map_): New attribute.
|
||
* src/tgba/tgbatba.cc (state_tba_proxy): Use the default
|
||
copy constructor. Empty the destructor. Implement an empty
|
||
destroy() method. Use addresses for comparison. Make clone()
|
||
a no-op.
|
||
(tgba_tba_proxy): Allocate and deallocate the unicity table.
|
||
Implement create_sates().
|
||
(tgba_tba_proxy, tgba_sba_proxy, tgba_tba_proxy_succ_iterator):
|
||
Adjust state construction to call create_state().
|
||
|
||
2012-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Minor speedups in tgba_safra_complement().
|
||
|
||
* src/tgba/tgbasafracomplement.cc (safra_tree:succ_create): Do not
|
||
lookup *i twice, and do not copy it->second.
|
||
(safra_tree::normalize_siblings): Do not lookup *node_it before
|
||
insertion.
|
||
|
||
2012-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/eltlparse/eltlparse.yy (realias): Add a useless return to
|
||
fix a g++ warning.
|
||
|
||
2012-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/ltlclasses/run: Typo in comment.
|
||
|
||
2012-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make it possible not to build Python bindings.
|
||
|
||
* configure.ac: Add a --disable-python option tied to
|
||
a USE_PYTHON conditional.
|
||
* README: Document the option.
|
||
* wrap/Makefile.am: Use the conditional.
|
||
|
||
2012-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix position of the Send button with WebKit.
|
||
|
||
* wrap/python/ajax/css/ltl2tgba.css: Fix position of the "Send"
|
||
button with WebKit. The folding arrow icon had a vertical border
|
||
that overlapped with the next line.
|
||
|
||
2012-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/spot.py: Add a required "None" second
|
||
argument to utime().
|
||
|
||
2012-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
minimize_wdba() failed to fully minimize some automata.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_wdba): Fix the Löding
|
||
algorithm to use colors. The previous implementation was an
|
||
incorrect approximation.
|
||
* src/tgbatest/wdba2.test: New file showing two equivalent
|
||
formulas that were minimized in automata with different sizes.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2012-01-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Update with recent fixes.
|
||
|
||
2012-01-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a 'make check' failure when valgrind is not installed.
|
||
|
||
* src/kripketest/defs.in (run2): Remove this function. It was
|
||
incorrectly trying to run valgrind even when valgrind is not
|
||
installed.
|
||
* src/kripketest/kripke.test: Simplify and use run().
|
||
|
||
2012-01-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do use of tr1::unordered_map with G++ 4.0.0.
|
||
|
||
* m4/stl.m4 (AC_HEADER_TR1_UNORDERED_MAP): Add some code so
|
||
we don't pick a broken tr1::unordered_map.
|
||
|
||
2012-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* lrde-upload.sh: Retrieve the package version from configure.ac.
|
||
|
||
2012-01-05 Ala-Eddine Ben-Salem <ala@lrde.epita.fr>
|
||
|
||
Fix detection of the last iteration of minimize_dfa().
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_dfa): Fix detection of the
|
||
last iteration. An extra iteration case could be missed in case
|
||
where a split generates only singletons, and yet predecessor
|
||
classes need to be refined.
|
||
|
||
2012-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix computation of length of LTL formulas.
|
||
|
||
* src/ltlvisit/length.cc: Fix computation for ltl::multop
|
||
operator. "a&b&c" was reported with length 3, ignoring the
|
||
"&" operators, because of a typo.
|
||
* src/ltlvisit/length.hh: Fix description to correctly
|
||
reflect this change intended since 2010-01-22.
|
||
* src/ltltest/length.test, src/ltltest/length.cc: New files.
|
||
* src/ltltest/Makefile.am: Add them.
|
||
|
||
2011-12-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.1a.
|
||
|
||
2011-12-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.8.1.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.8.1.
|
||
|
||
2011-12-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Summarize recent fixes.
|
||
|
||
2011-12-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix VPATH builds, now that hash.hh include _config.h
|
||
|
||
* iface/dve2/Makefile.am, src/eltlparse/Makefile.am
|
||
src/eltltest/Makefile.am, src/evtgba/Makefile.am,
|
||
src/evtgbaalgos/Makefile.am, src/evtgbaparse/Makefile.am,
|
||
src/evtgbatest/Makefile.am, src/kripke/Makefile.am,
|
||
src/kripketest/Makefile.am, src/ltlast/Makefile.am,
|
||
src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
|
||
src/ltlvisit/Makefile.am, src/misc/Makefile.am,
|
||
src/neverparse/Makefile.am, src/saba/Makefile.am,
|
||
src/sabaalgos/Makefile.am, src/sabatest/Makefile.am,
|
||
src/sanity/Makefile.am, src/tgba/Makefile.am,
|
||
src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am,
|
||
src/tgbaparse/Makefile.am, src/tgbatest/Makefile.am,
|
||
wrap/python/Makefile.am (AM_CPPFLAGS): Make sure
|
||
$(top_builddir)/src is included.
|
||
|
||
2011-12-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Perform WDBA minimization before degeneralization.
|
||
|
||
There is no point in degeneralizing an automaton if it can be WDBA
|
||
minimized. Doing so will only augment the number of states and
|
||
slow down the powerset construction used by the WDBA minimization.
|
||
|
||
* src/tgbatest/babiak.test: New file. It includes 5 formulae
|
||
which Tomáš Babiak reported Spot 0.7.1 would take over one hour to
|
||
translate if degeneralization and WDBA minimization were both
|
||
requested.
|
||
* src/tgbatest/Makefile.am (TESTS): Add it.
|
||
* src/tgbatest/ltl2tgba.cc: Do WDBA minimization before
|
||
degeneralization. The above formulae are now all translated in a
|
||
few seconds.
|
||
|
||
2011-12-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Don't rely on the g++ version to include tr1/unordered_map and co.
|
||
|
||
The previous setup failed with clang++ 3.0.
|
||
|
||
* m4/stl.m4: New file.
|
||
* configure.ac: Call AC_HEADER_UNORDERED_MAP,
|
||
AC_HEADER_TR1_UNORDERED_MAP, and AC_HEADER_EXT_HASH_MAP.
|
||
* src/misc/hash.hh: Include _config.h, and used the
|
||
SPOT_HAVE_UNORDERED_MAP, SPOT_HAVE_TR1_UNORDERED_MAP,
|
||
or SPOT_HAVE_EXT_HASH_MAP defines to decide which
|
||
file to include.
|
||
|
||
2011-12-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix mkdir error in ajax/spot.in.
|
||
|
||
* wrap/python/ajax/spot.in: Do not print an error
|
||
when attempting to create an existing directory.
|
||
Reported by Étienne Renault.
|
||
|
||
2011-11-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix build failure during "make check" on MacOS X.
|
||
|
||
* src/kripketest/Makefile.am (LDADD): Remove a broken dependency.
|
||
Reported by Yann Thierry-Mieg.
|
||
* src/sanity/style.test: Make sure it does not appear again.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* AUTHORS: Sort alphabetically.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove the old CGI interface.
|
||
|
||
* wrap/python/cgi-bin: Remove this directory.
|
||
* wrap/python/Makefile.am (SUBDIRS): Remove it.
|
||
* configure.ac, README, wrap/python/ajax/README: Likewise.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Undocument `.' from the web interface.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Remove `.'
|
||
from the list of acceptable symbols for AND.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.8a.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.8.
|
||
|
||
* NEWS, configure.ac: Bump version to 0.8.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove spotref.pdf.
|
||
|
||
* doc/Doxyfile.in: Do not generate LaTeX output.
|
||
* doc/Makefile.am: Do not build spotref.pdf.
|
||
* NEWS, README: Adjust.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix some Doxygen errors.
|
||
|
||
* src/kripke/kripkeexplicit.hh: Reindent, and fix
|
||
some comments.
|
||
|
||
2011-11-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add more nodes when resizing BDD table.
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::initialize): Call
|
||
bdd_setmaxincrease(500000), because the default is 50000,
|
||
which cause garbage collection to occur too often.
|
||
|
||
2011-11-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Mention the Kripke I/O.
|
||
|
||
2011-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Don't flush the stream on each new line, when writing automata.
|
||
|
||
* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/dotty.cc,
|
||
src/tgbaalgos/save.cc: Prefer '\n' over std::endl to speedup I/O.
|
||
* src/ltltest/genltl.cc (syntax): Use '\n' too, although it won't
|
||
make a big difference.
|
||
|
||
2011-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add an ltl2tgba option to read Kripke structure.
|
||
|
||
Also offers two ways to output Kripke structures.
|
||
|
||
* src/kripketest/parse_print_test.cc, src/kripke/kripkeexplicit.cc
|
||
: Simplify includes.
|
||
* src/kripke/kripkeprint.hh (kripke_save_reachable,
|
||
kripke_save_reachable_renumbered): New declarations.
|
||
(KripkePrinter): Move and rename...
|
||
* src/kripke/kripkeprint.cc (kripke_printer): ... here.
|
||
(kripke_printer_renumbered): New class.
|
||
(kripke_save_reachable, kripke_save_reachable_renumbered): New
|
||
function.
|
||
* src/tgbatest/ltl2tgba.cc: Add an option to read Kripke
|
||
structures.
|
||
* iface/dve2/dve2check.cc: Use kripke_save_reachable_renumbered.
|
||
* iface/dve2/defs.in (run2): Remove.
|
||
* iface/dve2/kripke.test: Adjust tests.
|
||
|
||
2011-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* AUTHORS: Add Thomas Badie.
|
||
|
||
2011-05-07 Thomas Badie <badie@lrde.epita.fr>
|
||
|
||
Add text I/O for Kripke structures.
|
||
|
||
* src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
|
||
src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh: New files.
|
||
* src/kripke/Makefile.am: Add them.
|
||
* src/kripkeparse/fmterror.cc, src/kripkeparse/kripkeparse.yy,
|
||
src/kripkeparse/kripkescan.ll, src/kripkeparse/parsedecl.hh,
|
||
src/kripkeparse/public.hh, src/kripkeparse/scankripke.ll: New
|
||
files.
|
||
* src/kripkeparse/Makefile.am: Add them.
|
||
* src/kripketest/bad_parsing.test, src/kripketest/defs.in,
|
||
src/kripketest/kripke.test, src/kripketest/origin,
|
||
src/kripketest/parse_print_test.cc: New files.
|
||
* src/kripketest/Makefile.am: Add them.
|
||
* src/Makefile.am (SUBDIRS): Add kripkeparse and kripketest.
|
||
* README: Document src/kripketest/ and src/kripkeparse/.
|
||
* configure.ac: Generate src/kripkeparse/Makefile,
|
||
src/kripketest/Makefile, src/kripketest/defs.
|
||
* iface/dve2/defs.in (run2): New function.
|
||
* iface/dve2/dve2check.cc (syntax, main): Add option -gK.
|
||
* iface/dve2/kripke.test: New file.
|
||
* iface/dve2/Makefile.am (TESTS): Add kripke.test.
|
||
|
||
2011-11-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix bench/emptchk/pml2tgba.pl for more recent Spin version.
|
||
|
||
* bench/emptchk/pml2tgba.pl: Stop checking for version start lines
|
||
depending on the Spin version. This check was never always
|
||
correct. Reported by Étienne Renault.
|
||
|
||
2011-11-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Update formulae.ltl not to use uncommon operators.
|
||
|
||
* bench/emptchk/formulae.ltl: Do not use + and * in the list of
|
||
formulas. Use | and & instead. The * operator was removed on
|
||
2010-01-30. Reported by Étienne Renault.
|
||
|
||
2011-11-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More documentation.
|
||
|
||
* src/tgbaalgos/randomgraph.hh: Document the fact that adding
|
||
acceptance conditions to the graph may generate graphs that do not
|
||
have any accepting cycle.
|
||
|
||
2011-11-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Display transition annotations in dotty output.
|
||
|
||
* src/tgbaalgos/dotty.cc (process_link): Call
|
||
transition_annotation(). Reported by Nikos Gorogiannis.
|
||
* src/tgba/tgba.hh (transition_annotation): More documentation.
|
||
* NEWS: Mention this change.
|
||
|
||
2011-11-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Add an entry for the previous fix.
|
||
|
||
2011-11-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fully quote guards used by neverclaims.
|
||
|
||
Especially with should write !(p0) and not !p0, because p0 is
|
||
usually #define'd by the user and he may have forgotten to quote
|
||
the value of the macro. This issue was discovered by Kristin
|
||
Yvonne Rozier and diagnosed by Gerard Holzmann.
|
||
|
||
* src/tgbaalgos/neverclaim.cc (process_link): Call
|
||
to_spin_string(..., true) to fully parentheses the string.
|
||
* src/tgbatest/neverclaimread.test: Add a test.
|
||
|
||
2011-11-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a g++-4.7 warning about a variable used only in an assert().
|
||
|
||
* src/tgbaalgos/weight.cc (inc_weight_handler)
|
||
(dec_weight_handler): Remove these assertions that require the
|
||
loop the be completed, and use break to exit ASAP.
|
||
|
||
2011-11-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Allow neverclaim guards of the form `!(x)' or `! (x)'.
|
||
|
||
* src/neverparse/neverclaimscan.ll: Make the space between `!' and
|
||
`(' optional. This fixes the patch from 2011-02-07 that made this
|
||
space mandatory...
|
||
* src/tgbatest/neverclaimread.test: Augment test case.
|
||
|
||
2011-10-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Better documentation for print_tgba_run.
|
||
|
||
* src/tgbaalgos/emptiness.hh (print_tgba_run): Reword the
|
||
documentation after a report from Nikos Gorogiannis.
|
||
|
||
2011-10-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/finite.test: Swap -e and -E after change from 2011-07-26.
|
||
|
||
2011-10-24 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Update with recent fixes.
|
||
|
||
2011-10-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Safra: Fix usage of multiple acceptance conditions and fix text output.
|
||
|
||
* src/tgba/tgbasafracomplement.cc
|
||
(tgba_safra_complement::tgba_safra_complement)
|
||
(tgba_safra_complement::succ_iter): Correct the declaration and
|
||
use of multiple acceptance conditions.
|
||
(state_complement::to_string): Output the L set, not U. The previous
|
||
code caused different states to share the same names, causing issues
|
||
with the text-based output (state with identical names get merged).
|
||
* src/tgba/tgbasafracomplement.hh
|
||
(tgba_safra_complement::acceptance_cond_vec_): Adjust type to
|
||
store BDDs.
|
||
* src/tgbatest/complementation.cc: Implement a new "-b" option
|
||
to output automata in Spot's syntax.
|
||
* src/tgbatest/complementation.test: Add a test-case supplied
|
||
by Martin Dieguez Lodeiro.
|
||
* THANKS: Add Martin.
|
||
|
||
2011-10-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbasafracomplement.cc: Fix two asserts.
|
||
|
||
2011-10-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Improve the print_safra_automaton output.
|
||
|
||
* src/tgba/tgbasafracomplement.cc (print_safra_tree): Fix output in
|
||
case of hash collision. Use the actual states to get a number, not
|
||
their hash value.
|
||
(print_safra_automaton): Output a mapping of values to states names.
|
||
(safra_tree_automaton::get_sba): New method, used by
|
||
print_safra_automaton.
|
||
|
||
2011-08-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix errors reported by clang++-2.9.
|
||
|
||
* src/evtgbaalgos/tgba2evtgba.cc (process_link): Fix prototype
|
||
to match tgba_reachable_iterator::process_link.
|
||
* src/ltlvisit/tunabbrev.hh: Add using super::visit, so that the
|
||
other visit() method are in scope when we overload one.
|
||
* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc (start, end,
|
||
process_link): Remove these empty methods. The default
|
||
implementations are empty too, and process_link had the
|
||
wrong prototype.
|
||
* src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc
|
||
(start, end, process_link): Likewise.
|
||
|
||
2011-08-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Improve SCC simplification by removing implied acceptance conditions.
|
||
|
||
Spot 0.7.1 used to need 190 acceptance conditions to translate the
|
||
188 literature formulae. With this patch we are down to 185.
|
||
That's not an impressive, but there are only ~20 formulae that
|
||
require more than 1 acceptance conditions; hence little room for
|
||
improvement.
|
||
|
||
* src/misc/bddlt.hh (bdd_hash): New function.
|
||
* src/misc/accconv.hh, src/misc/accconv.cc: New files.
|
||
* src/misc/Makefile.am: Add them.
|
||
* src/tgbaalgos/scc.cc (scc_map::build_map): Adjust
|
||
to record all combination of acceptance conditions occurring in a SCC.
|
||
* src/tgbaalgos/scc.hh (scc_map::scc::useful_acc): Update description.
|
||
* src/tgbaalgos/sccfilter.cc (scc_filter): Simplify acceptance
|
||
conditions that are always implied by another acceptance
|
||
conditions. Previously, we only removed acceptance conditions
|
||
that where always present in accepting SCCs.
|
||
* src/tgbatest/sccsimpl.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS): Add it.
|
||
|
||
2011-08-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Refine yesterday's change to the degeneralization.
|
||
|
||
This avoids a small regression on the size of degeneralized
|
||
automata of our usual list of literature formulae.
|
||
|
||
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy::union_acceptance_conditions_of_original_state):
|
||
New method.
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): In accepting
|
||
states, ignore only the last expected acceptance condition if its
|
||
common to all outgoing transitions AND if it is not used by any
|
||
outgoing transitions of the destination.
|
||
|
||
2011-08-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make sure the degeneralization is idempotent (up to renaming of
|
||
states).
|
||
|
||
* src/tgbaalgos/tgbatba.cc: When degeneralizing to SBA, remove the
|
||
acceptance conditions that are common to all outgoing transitions
|
||
of this state. This helps to make the degeneralization
|
||
idempotent.
|
||
* src/tgbatest/degenid.test: New test case.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2011-08-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix escaping of state name in save_reachable()'s output.
|
||
|
||
* src/tgbaalgos/save.c (process_state): Escape quotes in the
|
||
name of source and destination states. This fixes a side bug
|
||
in the upcoming degenid.test test case.
|
||
|
||
2011-08-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Running `ltl2tgba -R1q -R1t -N` would degeneralize before and
|
||
after the simulation-reduction.
|
||
|
||
Report from Tomáš Babiak <xbabiak@fi.muni.cz>.
|
||
|
||
* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Take
|
||
a tgba as input.
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Call
|
||
state_is_accepting() only if this tgba turns out to be
|
||
a tgba_sba_proxy. Otherwise check the acceptance of one
|
||
outgoing transition as we do in dotty_bfs since 2011-03-05.
|
||
* src/tgbatest/ltl2tgba.cc: Do not redegeneralize before
|
||
calling never_claim_reachable() if we know the automaton is
|
||
degeneralized already.
|
||
* src/tgbatest/ltl2tgba.test: Add a test case.
|
||
|
||
2011-08-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Please GCC 4.6.
|
||
|
||
* src/tgbatest/complementation.cc (check, automaton): Remove
|
||
these unused variables.
|
||
|
||
2011-08-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a nondeterministic behavior of the degeneralization algorithm.
|
||
|
||
Reported by Tomáš Babiak <xbabiak@fi.muni.cz>.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy): Replace the std::map used
|
||
to record outgoing transitions by an Sgi::hash_map, and keep the
|
||
order of these transitions in a separate list.
|
||
* src/tgbatest/degendet.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS): Add it.
|
||
* THANKS: Add Tomáš and convert to utf8.
|
||
|
||
2011-08-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): -N implies -DS, not -D.
|
||
|
||
2011-07-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2check.cc: Add option -W and simplify formulae.
|
||
|
||
2011-07-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
-e means we expect an accepting run.
|
||
|
||
* iface/dve2/dve2check.cc: Reverse the value of
|
||
expect_counter_example with respect to the -e/-E options.
|
||
* iface/dve2/dve2check.test: Swap -e and -E.
|
||
|
||
2011-06-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add some "drop shadow" in ltl2tgba.html.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Add shadow to all boxes.
|
||
* wrap/python/ajax/css/ltl2tgba.css (.shadow): New class.
|
||
|
||
2011-06-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Revamp the ltl2tgba benchmark.
|
||
|
||
* bench/ltl2tgba/algorithms: Reduce the number of Spot configuration
|
||
tested.
|
||
* bench/ltl2tgba/Makefile.am (run, small.txt, big.txt, known.txt):
|
||
New rules.
|
||
* bench/ltl2tgba/big, bench/ltl2tgba/small, bench/ltl2tgba/known:
|
||
Add a 15min timeout to the lbtt configuration.
|
||
* bench/ltl2tgba/defs.in: Adjust variable definitions to accept
|
||
variable inderections.
|
||
* bench/ltl2tgba/parseout.pl: Add an option to output the table in
|
||
LaTeX. Also consider all formulae, not just the positive
|
||
formulae.
|
||
* bench/ltl2tgba/README: Update.
|
||
|
||
2011-06-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlvisit/tostring.cc (to_spin_string_visitor): Add missing break.
|
||
|
||
2011-06-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/spot.in: Touch the directory containing
|
||
the cached result for the requests. So that it survives
|
||
the browser's cache.
|
||
(finish): Prune the cache only once per hour, and only eraes
|
||
files that are older than 2 hours.
|
||
|
||
2011-06-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Add focus on the formula field
|
||
on page load.
|
||
|
||
2011-06-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Update with recent changes.
|
||
|
||
2011-06-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Implement cache pruning in the CGI script.
|
||
|
||
* wrap/python/ajax/spot.in (finish): Prune the cache once in a
|
||
while. We rely on hardlinks for garbage collecting the pictures
|
||
and dot sources that may be shared by different requests.
|
||
|
||
2011-06-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cache dot sources in the CGI script.
|
||
|
||
* wrap/python/ajax/spot.in (render_dot, render_dot_maybe)
|
||
(render_automaton, render_formula): Cache the dot source, so that
|
||
we do not have to regenerate two pictures from the same contents.
|
||
* wrap/python/spot.i: Typo in the ostringstream declaration.
|
||
|
||
2011-06-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Output a "Cache-Control:" header in the CGI script.
|
||
|
||
* wrap/python/ajax/spot.in: Output a cache-control header, so that
|
||
browsers do no even send two identical requests.
|
||
|
||
2011-06-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cache results of the spot.py CGI script.
|
||
|
||
* wrap/python/ajax/spot.in: Use the QUERY_STRING as a hash key to
|
||
cache the result of the script. Open stdout without buffering and
|
||
redirect it to a file that we can dump later on cache hits. Parts
|
||
of this change are extracted from code from Pierre Parutto
|
||
<parutto@lrde.epita.fr>.
|
||
* AUTHORS: Add him.
|
||
|
||
2011-06-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/genltl.cc (X_n): Fix assertion.
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlvisit/dotty.cc (dotty_visitor): Reorder attributes.
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/genltl.cc (fair_response): Typo.
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
DVE2: Do not display state variables with only one possible value.
|
||
|
||
* iface/dve2/dve2.cc (dve2_kripke::dve2_kripke): Fill
|
||
a format_filter_ array with boolean indicating whether each
|
||
variable should be printed. Ignore variable with only one
|
||
possible value.
|
||
(dve2_kripke::~dve2_kripke): Destroy it.
|
||
(dve2_kripke::format_state): Use it.
|
||
* iface/dve2/finite.test: Adjust.
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove Kristin Rozier's LTLcounter.pl scripts, now that we can
|
||
generate these formulae with "genltl".
|
||
|
||
* src/tgbatest/ltlcounter/: Remove this directory.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/ltlcounter.test, bench/ltlcounter/run: Use genltl
|
||
to generate the formulae.
|
||
* bench/ltlcounter/README: Do not mention src/tgbatest/ltlcounter/
|
||
anymore.
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@va-et-vient.net>
|
||
|
||
Better layout of the LTL formula parse tree.
|
||
|
||
* src/ltlvisit/dotty.cc: Display "L" and "R" tail-labels
|
||
for binary operators. Gather all constants and atomic
|
||
propositions in a sub-graph with "rank=sink".
|
||
|
||
2011-06-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add more formula families to genltl.
|
||
|
||
* src/ltltest/genltl.cc (fair_response, ltl_counter)
|
||
(ltl_counter_carry): New functions, constructing function from
|
||
gastin.03.cav and rozier.07.cav. The LTL counter will replace the
|
||
scripts in src/tgbatest/ltlcounter/.
|
||
(X_n): New helper function.
|
||
|
||
2011-06-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Install a misc/_config.h to hide all the defines that clutter the
|
||
built output.
|
||
|
||
This is also a step towards better checks for things like
|
||
__attribute__ or std::tr1.
|
||
|
||
* m4/ax_prefix_config_h.m4: New file.
|
||
* configure.ac: Call AC_CONFIG_HEADERS and AX_PREFIX_CONFIG_H.
|
||
* src/misc/Makefile.am: Install misc/_config.h.
|
||
* src/misc/random.cc, src/misc/version.cc: Include misc/_config.h.
|
||
|
||
2011-06-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Document the protocol used between ltl2tgba.html and spot.py.
|
||
|
||
* wrap/python/ajax/protocol.txt: New file.
|
||
* wrap/python/ajax/Makefile.am (EXTRA_DIST): Add it.
|
||
|
||
2011-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/README: Document state compression.
|
||
|
||
2011-06-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Update jQuery and jQuery-UI.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Adjust to use
|
||
jQuery 1.6.1 and jQuery-UI 1.8.13. Remove a useless check
|
||
of $("#autoupdate").attr("checked") since this checkbox no longer
|
||
exists.
|
||
* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.8.custom.css:
|
||
Replace by ...
|
||
* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.13.custom.css: This.
|
||
* wrap/python/ajax/Makefile.am (EXTRA_DIST): Adjust.
|
||
|
||
2011-05-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2.cc: Kill a spurious warning.
|
||
|
||
2011-05-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* bench/wdba/README: Typos.
|
||
|
||
2011-05-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Some intvcomp2 speedups.
|
||
|
||
* src/misc/intvcmp2.cc (stream_compression_base::run):
|
||
Implement a shift-less encoding for the 1-bit and 3-bit cases.
|
||
Also declare offsets as size_t, to help 64-bit compilers.
|
||
|
||
2011-05-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/intvcomp.hh, src/misc/intvcmp2.hh: Include stddef.h for
|
||
size_t.
|
||
|
||
2011-05-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/intvcmp2.cc: Cosmetics to please sanity checks.
|
||
|
||
2011-05-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix compilation error with g++ <= 4.3.
|
||
|
||
* src/misc/intvcmp2.cc (int_array_array_compression): Specify full
|
||
type of stream_compression_base<int_array_array_compression> in
|
||
constructor to please g++ versions <= 4.3.
|
||
|
||
2011-05-02 Alexandre Duret-Lutz <adl@va-et-vient.net>
|
||
|
||
DVE2: Minor memory compaction.
|
||
|
||
* iface/dve2/dve2.cc (dve2_state, dve2_compressed_state): Store
|
||
size and count on 16 bits, and hash on 32 bits, to limit memory
|
||
wasted.
|
||
|
||
2011-05-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
DVE2: Optionally use the new compression.
|
||
|
||
* iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc:
|
||
Add a -Z option and pass it through.
|
||
|
||
2011-05-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Implement a new compression inspired from simple-9.
|
||
|
||
* src/misc/intvcmp2.cc, src/misc/intvcmp2.hh: New files.
|
||
* src/misc/Makefile.am: Add them.
|
||
* src/tgbatest/intvcmp2.cc: New test.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
* src/tgbatest/intvcomp.test: Call it.
|
||
|
||
2011-04-15 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/intvcomp.cc: Low-level fine-tuning.
|
||
|
||
2011-04-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix compression of large repetitions
|
||
|
||
* src/misc/intvcomp.cc (stream_compression_base::run): Limit
|
||
repeatitions to 40, not 42.
|
||
(stream_decompression_base::refill): Refill the end of the stream
|
||
with 0.
|
||
(stream_decompression_base::look_n_bits): Add assertion.
|
||
* src/tgbatest/intvcomp.cc: Add a new test case.
|
||
|
||
2011-04-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
More interfaces to the int array compression routines.
|
||
|
||
* src/misc/intvcomp.cc, src/misc/intvcomp.cc: Add interfaces to
|
||
compress vector<int> to vector<unsigned>.
|
||
* src/tgbatest/intvcomp.cc: Test them.
|
||
* src/sanity/style.test: Refine check to avoid a spurious report.
|
||
|
||
2011-04-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2.cc: Typo when handling dead==true.
|
||
|
||
2011-04-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Always pass --enable-devel or --disable-devel to BuDDy.
|
||
|
||
* configure.ac: Do not add CXXFLAGS and CFLAGS in ac_configure_args,
|
||
it causes problem when using config.cache. Instead ...
|
||
* m4/devel.m4: Add --enable-devel or --disable-devel on
|
||
ac_configure_args, now that BuDDy understands that.
|
||
|
||
2011-04-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/escape.hh: Fix Doxygen documentation.
|
||
* src/misc/intvcomp.hh: Likewise.
|
||
|
||
2011-04-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Move the compression routines into their own *.cc file.
|
||
|
||
* src/misc/intvcomp.hh: Move all code...
|
||
* src/misc/intvcomp.cc: ... in this new file.
|
||
* src/misc/Makefile.am: Add invcomp.cc
|
||
|
||
2011-04-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
DVE2: Use mspool for compressed states.
|
||
|
||
* iface/dve2/dve2.cc: Adjust to use the new mspool allocator,
|
||
and get rid of the std::vector used to store compressed states.
|
||
* src/misc/intvcomp.hh: Add an "int* -> int*" interface
|
||
in addition to the "int* -> vector<unsigned>*" interface.
|
||
* src/tgbatest/intvcomp.cc: Test the two interfaces.
|
||
|
||
2011-04-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add a multiple-size memory pool implementation.
|
||
|
||
* src/misc/mspool.hh: New file.
|
||
* src/misc/Makefile.am: Add it.
|
||
|
||
2011-04-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/fixpool.hh: Typo in comment.
|
||
|
||
2011-04-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
DVE2: preliminary implementation of compressed states.
|
||
|
||
* iface/dve2/dve2.cc (dve2_compressed_state): New class.
|
||
(callback_context): Deal with general state*s, not dve2_state*s.
|
||
(transition_callback_compress): New function.
|
||
(dve2_kripke): Take a compress option.
|
||
(get_init_state, compute_state_condition, succ_iter,
|
||
format_state, state_condition): Handle compressed states.
|
||
(get_vars, compute_state_condition_aux): New helper methods.
|
||
* iface/dve2/dve2.hh (load_dve2): Add a compress option.
|
||
* iface/dve2/dve2check.cc: Add a -z option.
|
||
* iface/dve2/finite.test, iface/dve2/dve2check.test: Add more
|
||
tests.
|
||
|
||
2011-04-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Preliminary implementation of an int array compressor.
|
||
|
||
* src/misc/intvcomp.hh: New file.
|
||
* src/misc/Makefile.am: Add it.
|
||
* src/tgbatest/intvcomp.cc, src/tgbatest/intvcomp.test: New files.
|
||
* src/tgbatest/Makefile.am: Add them.
|
||
|
||
2011-04-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix two spurious segfaults in test cases for the Python interface.
|
||
|
||
* wrap/python/tests/setxor.py, wrap/python/tests/bddnqueen.py:
|
||
Clean all used bdd variables before calling bdd_done(), so that
|
||
bdd_delref() is never called after bdd_done(). In NDEBUG builds,
|
||
bdd_delref() does not check whether the BuDDy is running or not,
|
||
and calling it after bdd_done() will crash.
|
||
|
||
2011-04-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* HACKING: Add an example for using callgrind.
|
||
|
||
2011-04-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2check.cc (main): Catch out-of-memory errors
|
||
during emptiness check or counterexample generation.
|
||
|
||
2011-04-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc: Use
|
||
a fixed-size memory pool for product_state instances.
|
||
|
||
2011-04-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2.cc: Use a fixed-size memory pool for dve2_state
|
||
instances and their variables.
|
||
|
||
2011-04-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add a fixed-size memory pool implementation.
|
||
|
||
* src/misc/fixpool.hh: New file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add fixpool.hh.
|
||
|
||
2011-04-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* HACKING (command): Some notes about link-time optimizations.
|
||
|
||
2011-04-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac: Pass CXXFLAGS/CFLAGS/CPPFLAGS debug/optimization
|
||
settings to sub configure.
|
||
|
||
2011-03-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduct a down_cast macro.
|
||
|
||
* src/misc/casts.hh: New file.
|
||
* src/misc/Makefile.am: Add it.
|
||
* iface/dve2/dve2.cc, iface/gspn/gspn.cc, iface/gspn/ssp.cc,
|
||
src/evtgba/explicit.cc, src/evtgba/product.cc, src/misc/casts.hh,
|
||
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/taatgba.cc,
|
||
src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbakvcomplement.cc, src/tgba/tgbaproduct.cc,
|
||
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
|
||
src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
|
||
src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/reductgba_sim_del.cc: Use down_cast when
|
||
appropriate.
|
||
|
||
2011-03-31 Alexandre Duret-Lutz <adl@va-et-vient.net>
|
||
|
||
Cosmetics.
|
||
|
||
* src/sanity/style.test: Catch some binary operators not
|
||
delimited with spaces.
|
||
* src/tgbaalgos/bfssteps.cc, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/reducerun.cc, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Fix these.
|
||
|
||
2011-03-31 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make state_explicit instances persistent objects.
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Merge
|
||
state_explicit and tgba_explicit::state. In the past,
|
||
state_explicit was a small object encapsulating a pointer to the
|
||
persistent tgba_explicit::state; and we used to clone() and
|
||
destroy() a lot of state_explicit instance. Now state_explicit is
|
||
persistent, and clone() and destroy() have no effects.
|
||
* src/tgba/tgbareduce.cc: Adjust, since this inherits from
|
||
tgbaexplicit and uses the internals of state_explicit.
|
||
* src/tgbatest/reductgba.cc: Fix deletion order for automata.
|
||
* src/tgba/tgba.hh (last_support_conditions_input_,
|
||
last_support_variables_input_): Make these protected, so
|
||
they can be zeroed by tgba_explicit.
|
||
|
||
2011-03-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove tgba_reduc::format_state().
|
||
|
||
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh (format_state):
|
||
Remove this useless copy of the tgba_explicit_string::format_state
|
||
method.
|
||
|
||
2011-03-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Protect the state destructor.
|
||
|
||
Client code should always call the destroy() method instead. (It
|
||
was introduced in Spot 0.7.)
|
||
|
||
* src/tgba/state.hh (state::~state): Make it protected.
|
||
|
||
2011-03-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speedup tgba_product when one of the argument is a Kripke structure.
|
||
|
||
The gain is not very impressive. The runtime of the first example
|
||
in iface/dve2/README (also in dve2check.test) is 15% faster.
|
||
|
||
* src/tgba/tgbaproduct.hh (tgba_succ_iterator_product): Move ...
|
||
* src/tgba/tgbaproduct.cc (tgba_succ_iterator_product,
|
||
tgba_succ_iterator_product_common): ... in these two classes.
|
||
(tgba_succ_iterator_product_kripke): New class to speedup
|
||
successor computation on Kripke structures. We can assume that
|
||
all the transitions leaving the same state have the same label.
|
||
(tgba_product::tgba_product, tgba_product::succ_iter): Use
|
||
tgba_succ_iterator_product_kripke when appropriate.
|
||
(tgba_product_init::tgba_product_init): Adjust for the case
|
||
where tgba_product did reverse its operands.
|
||
|
||
2011-03-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2check.cc: Remove stray debug output.
|
||
|
||
2011-03-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbaproduct.hh: Do not include statebdd.hh.
|
||
|
||
2011-03-29 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Include <cstddef> in python modules to workaround Swig bug.
|
||
|
||
* wrap/python/spot.i, wrap/python/buddy.i: Include <cstddef>
|
||
because Swig 2.0.2 uses ptrdiff_t and does not do the include
|
||
itself. In g++ most libstdc++ standard headers have been changed
|
||
to no longer include <cstddef> as an implementation detail, so
|
||
the difference shows.
|
||
|
||
2011-03-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* THANKS: Add Michael Weber for his help on the DiVinE interface.
|
||
|
||
2011-03-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/genltl.cc (syntax): Typos in the help text.
|
||
|
||
2011-03-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Improve a reduction rule for "a M b".
|
||
|
||
* src/ltlvisit/reduce.cc (reduce_visitor): Always reduce "a M b"
|
||
to "a & b" if "a" is a pure eventual formula, remove the
|
||
constraint on "b".
|
||
* src/ltltest/reduccmp.test: Add two tests.
|
||
|
||
2011-03-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Mention recent changes to dotty_reachable.
|
||
|
||
2011-03-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add support for finite behaviors in the DVE interface.
|
||
|
||
* iface/dve2/dve2.hh (load_dve2): Take a "dead" argument.
|
||
* iface/dve2/dve2.cc (callback_context): Add a destructor
|
||
to simplify...
|
||
(dve2_succ_iterator::~dve2_succ_iterator) ... this one.
|
||
(convert_aps): Skip the dead proposition.
|
||
(dve2_kripke::dve2_kripke): Take a dead argument, and
|
||
setup alive_prop and dead_prop.
|
||
(compute_state_condition, get_succ): Use a cache for the
|
||
conditions and successor of the last state, to share
|
||
some work between these two function. Add loops on dead
|
||
states.
|
||
(load_dve2): Pass dead to dve2_kripke and convert_aps.
|
||
* iface/dve2/dve2check.cc: Add a -dDEAD option.
|
||
* iface/dve2/finite.test, iface/dve2/finite.dve: New file.
|
||
* iface/dve2/Makefile.am: Declare them.
|
||
|
||
2011-03-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2.cc (convert_aps): Fix two typos while
|
||
parsing >= and >, mistakenly registered as <= and <.
|
||
|
||
2011-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove the Nips interface.
|
||
|
||
* NEWS: Mention it.
|
||
* configure.ac, README: Remove it.
|
||
* iface/Makefile.am (SUBDIRS): Remove nips.
|
||
* iface/nips/: Delete this directory.
|
||
|
||
2011-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Accept "P_0 == CS" as synonym for "P_0.CS" in the dve2 interface.
|
||
Suggested by Yann Thierry-Mieg.
|
||
|
||
* iface/dve2/dve2.cc (convert_aps): Allow string on the right
|
||
of operators, and look them up.
|
||
* iface/dve2/dve2check.test: Test this syntax.
|
||
|
||
2011-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add some tests for the DVE2 interface.
|
||
|
||
* iface/dve2/defs.in, iface/dve2/dve2check.test,
|
||
iface/dve2/beem-peterson.4.dve: New files.
|
||
* iface/dve2/Makefile.am: Add them.
|
||
* configure.ac: Generate iface/dve2/defs.
|
||
|
||
2011-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Clear the timer map to help valgrind.
|
||
|
||
* src/misc/timer.hh (reset_all): New method.
|
||
* iface/dve2/dve2check.cc: Use it to help valgrind.
|
||
|
||
2011-03-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Some documentation of about the dve2 interface.
|
||
|
||
* iface/dve2/README: New file.
|
||
* NEWS: Mention it.
|
||
|
||
2011-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* iface/dve2/dve2.cc, iface/dve2/dve2check.cc: Cosmetic changes
|
||
to please sanity checks.
|
||
|
||
2011-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Call divine to compile dve models.
|
||
|
||
* iface/dve2/dve2.cc (compile_dve2): New function. Compile
|
||
the *.dve source if there is no newer *.dve2C already.
|
||
(load_dve2): Call compile_dve2 when given a *.dve file.
|
||
* iface/dve2/dve2.hh (load_dve2): Document it.
|
||
|
||
2011-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Allow atomic propositions and identifiers like `X.Y'.
|
||
|
||
* src/ltlparse/ltlscan.ll: Do not recognize `.' as an AND. Allow
|
||
it in atomic propositions.
|
||
* src/evtgbaparse/evtgbascan.ll, src/tgbaparse/tgbascan.ll: Accept
|
||
`.' in identifiers.
|
||
* src/misc/bareword.cc (is_bareword): Accept `.' inside
|
||
barewords, so that there is no need to quote `X.Y'.
|
||
* src/ltltest/parse.test: Do not use `.' as and operator..
|
||
|
||
2011-03-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Augment dve2check to perform LTL model checking.
|
||
|
||
* iface/dve2/dve2check.cc: Add many option to perform
|
||
emptiness check and other debugging tasks.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Teach the DVE2 interface about enumerated types.
|
||
|
||
* iface/dve2/dve2.cc (convert_aps): Add support for
|
||
enumerated types. E.g. an atomic proposition such
|
||
as "P_0.CS" really means "P_0 == CS".
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Teach the DVE2 interface about atomic propositions such as "a <=
|
||
10" or "b != 3". This only work for integer variables presently.
|
||
|
||
* iface/dve2/dve2.hh (load_dve2): Take an atomic_prop_set
|
||
argument to indicate the AP to observe.
|
||
* iface/dve2/dve2.cc (convert_aps): New function. Parse the
|
||
atomic propositions in format them in a prop_set structure that
|
||
will allow fast generation of the state condition.
|
||
(load_dve2): Call convert_aps, and pass the resulting prop_set
|
||
structure to the kripke object.
|
||
(dve2_kripke::dve2_kripke): Store the prop_set structure.
|
||
(dve2_kripke::~dve2_kripke): Release the prop_set, and unregister
|
||
the bdd_variable associated to it.
|
||
(compute_state_condition): New method that uses the prop_set.
|
||
(succ_iter, state_condition): Call compute_state_condition().
|
||
* iface/dve2/dve2check.cc: Adjust the call to load_dve2 to
|
||
pass it atomic propositions read from the command line.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Display states variables in the state label.
|
||
|
||
* iface/dve2/dve2.cc (dve2_kripke::dve2_kripke): Retrieve
|
||
the name of all the state variables.
|
||
(dve2_kripke::format_state): Use them to format the name
|
||
of the state.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
We can now explore a divine2 compiled model, but the atomic
|
||
properties are still missing.
|
||
|
||
* iface/dve2/dve2.cc, iface/dve2/dve2.hh: Add
|
||
classes for presenting the DiVinE2 model as a kripke object.
|
||
(load_dve2): Load the *.dve2C file using libltdl.
|
||
* iface/dve2/Makefile.am: Add a dve2check program.
|
||
* iface/dve2/dve2check.cc: New file. Currently it just
|
||
outputs the reachability graph using dotty.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Setup libltdl in ltdl/, so we can use it in the dve2 interface.
|
||
|
||
Don't keep it under version control since it is installed by
|
||
autoreconf.
|
||
|
||
* configure.ac: Call LT_CONFIG_LTDL_DIR and LTDL_INIT.
|
||
* README: Mention ltdl/.
|
||
* Makefile.am: Recurse into ldtl.
|
||
* iface/dve2/Makefile.am: Link with it.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Setup build system for a new dve2 interface.
|
||
|
||
* iface/dve2/dve2.cc, iface/dve2/dve2.hh: New dummy files.
|
||
* iface/dve2/Makefile.am: New file.
|
||
* iface/Makefile.am (SUBDIRS): Add dve2.
|
||
* configure.ac: Build iface/dve2/Makefile.
|
||
* README: Mention the new directory.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Using double borders for acceptance states in SBAs.
|
||
|
||
* src/tgbaalgos/dotty.hh (dotty_reachable): Take a new
|
||
assume_sba argument.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs): Take a new
|
||
mark_accepting_states arguments.
|
||
(dotty_bfs::process_state): Check if a state is accepting using
|
||
the state_is_accepting() method for tgba_sba_proxies, or by
|
||
looking at the first outgoing transition of the state. Pass
|
||
the result to the dectorator.
|
||
(dotty_reachable): Adjust function.
|
||
* src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc,
|
||
src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc
|
||
(state_decl): Add an "accepting" argument, and use it to
|
||
decorate accepting states with a double border.
|
||
* src/tgbatest/ltl2tgba.cc: Keep track of whether the output
|
||
is an SBA or not, so that we can tell it to dotty().
|
||
* wrap/python/ajax/spot.in: Likewise.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Likewise.
|
||
|
||
2011-03-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/genltl.cc (GF_n): Really use "op".
|
||
|
||
2011-03-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/spot.in: Use the degeneralized automaton if
|
||
available while computing the emptiness check.
|
||
|
||
2011-03-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speedup build_result() called by minimize_dfa().
|
||
|
||
* src/tgbaalgos/minimize.cc (build_result): Speed it up by
|
||
removing one useless loop, creating many duplicate transitions
|
||
that had to be merged.
|
||
|
||
2011-03-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/genltl.cc: Add 10 more LTL formula classes.
|
||
|
||
2011-02-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/bdddict.hh: Add more documentation.
|
||
|
||
2011-02-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/misc/escape.hh: Correct documentation.
|
||
|
||
2011-02-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Correct tgba_explicit::compute_support_conditions.
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::compute_support_conditions):
|
||
Fix logic. This function has always been returning bddtrue instead
|
||
of the actual computed value...
|
||
|
||
2011-02-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Enable VERBOSE logs for nips, greatspn, and python tests.
|
||
|
||
* wrap/python/tests/run.in, iface/nips/nipstest/defs.in,
|
||
iface/gspn/defs.in: Do not disable VERBOSE when running from "make
|
||
check". Since we have started using parallel-check on 2009-08-31,
|
||
we should always send verbose output to the log.
|
||
|
||
2011-02-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
This should finally fix kv.test and dotty.test on the LIP6 buildfarm.
|
||
|
||
* src/tgbatest/kv.test, iface/nips/nipstest/dotty.test: Don't rely
|
||
on the ${DOT-...} syntax, because DOT is always set and might be
|
||
set to the empty value.
|
||
|
||
2011-02-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* HACKING (Running coverage tests): New section.
|
||
|
||
2011-02-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Previous patch did not work on MacOS X, and I don't have shell
|
||
access to that host.
|
||
|
||
* src/tgbatest/kv.test: Use ${DOT-true} instead of ${DOT-:}. I
|
||
don't know, the MacOS shell must be mixing the syntaxes for
|
||
${DOT:-} and ${DOT-:}.
|
||
* iface/nips/nipstest/dotty.test: Likewise
|
||
|
||
2011-02-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Avoid running "dot" when it is not installed...
|
||
|
||
* src/tgbatest/kv.test: Do not run dot if it is not installed.
|
||
* iface/nips/nipstest/dotty.test: Likewise
|
||
|
||
2011-02-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add some tricks into HACKING.
|
||
|
||
* README: Typo.
|
||
* HACKING: s/CVS/GIT/ and add some tricks about libtool and doxygen.
|
||
|
||
2011-02-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Adjust the WDBA test to count for sub-transitions.
|
||
|
||
* bench/wdba/run: Use -kt to count sub-transitions.
|
||
* bench/wdba/README: Adjust comments.
|
||
|
||
2011-02-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a spurious g++ warning observed on Darwin builds.
|
||
|
||
* src/tgba/taatgba.cc (taa_succ_iterator::taa_succ_iterator):
|
||
Initialize iterator i to silence a spurious g++ warning on Darwin.
|
||
|
||
2011-02-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* configure.ac: s/gnit/gnu so that we can use 0.7.1a as a version.
|
||
|
||
2011-02-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Typos.
|
||
|
||
2011-02-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.7.1a
|
||
|
||
2011-02-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.7.1.
|
||
|
||
* NEWS: Update for 0.7.1.
|
||
* configure.ac: Bump version to 0.7.1.
|
||
|
||
2011-02-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Generalize patch from 2011-02-03 by allowing guards like "! (...)".
|
||
|
||
* src/neverparse/neverclaimscan.ll: Allow space between ! and (.
|
||
* src/tgbatest/neverclaimread.test: Add space for testing.
|
||
|
||
2011-02-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speedup scc_filter on tgba_explicit_number automata.
|
||
|
||
* src/tgbaalgos/sccfilter.cc (scc_filter): If the input automaton
|
||
is an instance of tgba_explicit_number, create a similar automaton
|
||
for output, instead of a tgba_explicit_string.
|
||
|
||
2011-02-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Document the new operators in the on-line tools.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Mention Goal's ~, -->, and <-->
|
||
operators.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Likewise.
|
||
|
||
2011-02-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a segfault in WDBA minimization.
|
||
|
||
* src/tgbaalgos/minimize.cc (build_result, minimize_dfa,
|
||
minimize_wdba): Correctly handle (i.e. ignore) useless states.
|
||
* src/tgbatest/ltl2tgba.test: Add two more tests.
|
||
|
||
2011-02-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix call to scc_filter in the CGI script.
|
||
|
||
* wrap/python/ajax/spot.in: Do full scc_filter for TGBA (-R3f),
|
||
and keep some extra acceptance conditions (-R3) when
|
||
degeneralizing. The converse was done.
|
||
|
||
2011-02-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Fix python error occurring
|
||
only when the user did not make any error...
|
||
|
||
2011-02-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Prevent Spot from using an installed BuDDy version that does not
|
||
have the latest function we added. Reported by Kristin Rozier.
|
||
|
||
* m4/buddy.m4 (AX_CHECK_BUDDY): Check for bdd_setxor.
|
||
|
||
2011-02-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add a way to count the number of sub-transitions.
|
||
|
||
* src/tgbaalgos/stats.hh (tgba_sub_statistics): New class.
|
||
(sub_stats_reachable): New function.
|
||
* src/tgbaalgos/stats.cc (sub_stats_bfs): New class.
|
||
(tgba_sub_statistics::dump, sub_stats_reachable): New function.
|
||
* src/tgbatest/ltl2tgba.cc (-kt): New option.
|
||
* src/tgbatest/ltl2tgba.test: Use -kt.
|
||
|
||
2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Read guard of the form !(x) in neverclaims.
|
||
|
||
So far all neverclaims encountered would use (!(x)), but the
|
||
files from the Büchi store do not.
|
||
|
||
* src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
|
||
so that we can read Promela files from Goal's Büchi store.
|
||
* src/tgbatest/neverclaimread.test: Test it.
|
||
|
||
2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Recognize Goal's syntax for Boolean operators.
|
||
|
||
* src/ltlparse/ltlscan.ll: Recognize ~, -->, and <--> operators
|
||
from Goal, to ease the use of formulas provided by the Goal team.
|
||
* src/ltltest/equals.test: Use these once, just to be on the
|
||
safe side.
|
||
|
||
2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Minor fixes to ltl2tgba.html.
|
||
|
||
* wrap/python/ajax/css/ltl2tgba.css,
|
||
wrap/python/ajax/ltl2tgba.html: Tweak a few things for Firefox
|
||
3.0, and fix a </li> tag.
|
||
|
||
2011-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS, configure.ac: Bump version to 0.7a.
|
||
|
||
2011-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Release Spot 0.7.
|
||
|
||
* NEWS, configure.ac: Bump version to 0.7.
|
||
|
||
2011-02-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.test: Fix previous test case.
|
||
|
||
2011-01-28 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fixup minimize_monitor().
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_monitor): Fix typo yielding
|
||
incorrect monitor if the input tgba is not deterministic.
|
||
* src/tgbatest/ltl2tgba.test: Add test case.
|
||
|
||
2011-01-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Report formulas that are both safety and guarantee.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (-O): Report formulas that are both
|
||
safety and guarantee.
|
||
* src/tgbatest/obligation.test: Add cases.
|
||
|
||
2011-01-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rename is_safety_automaton() as is_guarantee_automaton() and
|
||
implement is_safety_mwdba().
|
||
|
||
Note: I swapped the name of safety and guarantee when I
|
||
implemented is_safety_automaton() on 2010-03-20. Fortunately,
|
||
is_safety_automaton() was only used where is_guarantee_automaton()
|
||
would have been correct.
|
||
|
||
* src/tgbaalgos/safety.cc (is_guarantee_automaton): Rename as ...
|
||
(is_guarantee_automaton): ... this.
|
||
(is_safety_mwdba): New function.
|
||
* src/tgbaalgos/safety.hh: Adjust and add documentation.
|
||
* src/tgbaalgos/minimize.cc: Use is_guarantee_automaton() instead
|
||
of is_safety_automaton().
|
||
* src/tgbatests/safety.test: Rename as ...
|
||
* src/tgbatests/obligation.test: ... this, and augment the
|
||
test.
|
||
* src/tgbatest/Makefile.am: Adjust.
|
||
* src/tgbatest/ltl2tgba.cc (-O): Display whether a formula
|
||
represent a safety, guarantee, or obligation property.
|
||
* NEWS: Adjust.
|
||
|
||
2011-01-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Minor rewritings.
|
||
|
||
2011-01-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Replace delete by destroy in comments dealing with states.
|
||
|
||
* src/tgba/succiter.hh, src/tgba/tgba.hh,
|
||
src/tgba/tgbabddconcrete.hh, src/tgba/tgbaproduct.hh,
|
||
src/tgba/tgbaunion.hh, src/tgbaalgos/bfssteps.hh,
|
||
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.hh,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/replayrun.cc,
|
||
src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Update comments
|
||
to say that we "destroy" a state instead of "deleting" it.
|
||
|
||
2011-01-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Update gspn interface for recent tools.
|
||
|
||
* iface/gspn/ssp.cc: Use the new destroy() interface, and
|
||
fix a couple of recent g++ reports.
|
||
* iface/gspn/gspn.cc: Adjust to newer g++.
|
||
|
||
2011-01-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduce a destroy() method on states, and use it instead of delete.
|
||
|
||
Right now, destroy() just executes "delete this". But in a later
|
||
version, we will rewrite tgba_explicit so that it does not
|
||
allocate new states (and the destroy() method for explicit state
|
||
will do nothing).
|
||
|
||
* src/tgba/state.hh (state::destroy): New method, to replace
|
||
state::~state() in the future.
|
||
(shared_state_deleter): New function.
|
||
* src/evtgba/product.cc, src/evtgbaalgos/reachiter.cc,
|
||
src/evtgbaalgos/save.cc, src/evtgbaalgos/tgba2evtgba.cc,
|
||
src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbareduc.cc,
|
||
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
|
||
src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
|
||
src/tgbaalgos/cutscc.cc, src/tgbaalgos/emptiness.cc,
|
||
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.cc,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/nsheap.cc,
|
||
src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
|
||
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.hh,
|
||
src/tgbaalgos/reachiter.cc, src/tgbaalgos/reducerun.cc,
|
||
src/tgbaalgos/reductgba_sim.cc,
|
||
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/replayrun.cc,
|
||
src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc,
|
||
src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
|
||
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Adjust to call
|
||
"s->destroy()" instead of "delete s".
|
||
* src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc:
|
||
Pass shared_state_deleter to the shared_ptr constructor, so that
|
||
it calls destroy() instead of delete.
|
||
|
||
2011-01-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Display the Spot version in
|
||
the tooltip over the Spot logo.
|
||
|
||
2011-01-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/Makefile.am (EXTRA_DIST): Add icons/mail.png.
|
||
|
||
2011-01-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Mention the new on-line ltl2tgba version.
|
||
|
||
2011-01-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Updates to the ltl2tgba ajax version.
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Remove the auto-update button, and
|
||
enable auto-update automatically after the first submission. Add
|
||
tools tips for the "Desired Output" tabs, and the Spot logo.
|
||
Add a email icon to encourage feedback.
|
||
* wrap/python/ajax/ltl2tgba.css: fix sizes of formula field and
|
||
send button. Set position of mail icon.
|
||
* wrap/python/ajax/logos/mail.png: New logo, based on a public
|
||
domain SVG icon retrieved today from
|
||
http://commons.wikimedia.org/wiki/File:Internet-mail.svg
|
||
|
||
2011-01-19 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/ajax/ltl2tgba.html: Disable the browser spellcheck
|
||
on the input box.
|
||
|
||
2011-01-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Preliminary implementation of an ajax-based ltl2tgba translator.
|
||
|
||
* configure.ac: Output wrap/python/ajax/Makefile.
|
||
* wrap/python/Makefile.am (SUBDIRS): Add ajax.
|
||
* wrap/python/ajax/Makefile.am, wrap/python/ajax/README,
|
||
wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/spot.in: New files.
|
||
* wrap/python/ajax/css/, wrap/python/ajax/js,
|
||
wrap/python/ajax/logos: New directories.
|
||
* README: Document wrap/python/ajax/.
|
||
|
||
2011-01-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Do not output empty parse error blocks in the CGI script.
|
||
|
||
* wrap/python/spot.i: Provide a __nonzero__() method for
|
||
parse_error_list.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Do not call format_parse_errors()
|
||
unconditionally.
|
||
|
||
2011-01-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix "unused function" warnings reported by clang++.
|
||
|
||
* src/evtgbaparse/Makefile.am, src/ltlparse/Makefile.am,
|
||
src/neverparse/Makefile.am, src/tgbaparse/Makefile.am
|
||
(AM_CPPFLAGS): Define -DYY_NO_INPUT so that the unused yyinput()
|
||
function does not get compiled.
|
||
* src/eltlparse/Makefile.am (AM_CPPFLAGS): Likewise.
|
||
(AM_CXXFLAGS): Also enable warnings.
|
||
* src/eltlparse/eltlparse.yy: Move helper functions from
|
||
the "%code requires" block to the "%code" block, so that they
|
||
do not appear in the eltlparse.hh file (which is included in
|
||
two places...).
|
||
* iface/nips/nips.cc (search_error_callback_assert): Comment
|
||
this unused function.
|
||
|
||
2011-01-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
|
||
Fix segfault with g++-3.3.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_dfa): Fix deletion of the
|
||
state_set_map. It led to a crash when compiled with g++-3.3.
|
||
|
||
2011-01-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a compilation failure with g++-3.3.
|
||
|
||
* src/misc/hash.hh (identity_hash): New function.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit_number): Use
|
||
identity_hash<int> instead of std::tr1::hash<int> that does not
|
||
exist with g++-3.3.
|
||
|
||
2011-01-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix usage of minimize_obligation in the CGI script.
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.py (reduce_wdba): Use
|
||
minimize_obligation_new a pass the formula.
|
||
* wrap/python/spot.i (minimize_obligation_new): New function, to
|
||
cope with the strange specification of spot::minimize_obligation()
|
||
not always creating a new automaton.
|
||
|
||
2011-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Convert to utf-8 and fix a few typos.
|
||
|
||
2011-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
'([]a && XXXX!a)' was not properly minimized because its
|
||
translation contain useless SCCs that where not ignored for
|
||
minimization.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_wdba): Strip useless
|
||
SCCs before minimization.
|
||
* src/tgbatest/ltl2tgba.test: Add a check.
|
||
|
||
2011-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
The neverclaim output by spin -f '([]a && XXXX!a)' was not
|
||
understood by Spot.
|
||
|
||
* src/neverparse/neverclaimparse.yy: Support "if :: false fi;"
|
||
instructions. Spin sometimes output these on dead states.
|
||
Also rewrite the "transitions" rule as a left recursion.
|
||
* src/tgbatest/neverclaimread.test: Adjust output because
|
||
of the right->left recursion change, and add two more formula
|
||
to submit to Spin to test its output.
|
||
|
||
2011-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speed up computation of non_final states for minimize_wdba.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_dfa): Take final and
|
||
non_final sets.
|
||
(minimize_wdba): Fill in non_final at the same time as final.
|
||
(minimize_monitor): Call state_set() to fill non_final.
|
||
(init_sets): Simplify and rename as ...
|
||
(state_set): ... this.
|
||
|
||
2011-01-06 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduce a class to complement a WDBA on-the-fly.
|
||
|
||
* src/tgba/wdbacomp.hh, src/tgba/wdbacomp.cc: New file.
|
||
* src/tgba/Makefile.am: Add them.
|
||
* src/tgbaalgos/minimize.cc (minimize_obligation): Use
|
||
wdba_complement().
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/Makefile.am: Remove the unused minimize program.
|
||
* src/tgbatest/minimize.cc: Delete.
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cleanup the minimize.hh interface.
|
||
|
||
* src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc
|
||
(minimize): Split into ...
|
||
(minimize_wdba, minimize_monitor): ... these two functions.
|
||
* src/tgbatest/ltl2tgba.cc (main): Adjust the call to
|
||
minimize_monitor.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Adjust the calls to
|
||
minimize_monitor and minimize_obligation.
|
||
* wrap/python/spot.i: Declare minimize_monitor, minimize_wdba,
|
||
minimize_obligations.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit_string)
|
||
(tgba_explicit_formula, tgba_explicit_number): Add fake
|
||
declarations so that SWIG can see they inherits from tgba.
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Cleanup the DFA minimization algorithm.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize): Move the minimization
|
||
code into...
|
||
(minimize_dfa): ... this new function, and fix the condition
|
||
under which a partition is considered to be minimal. Also
|
||
use a map instead of a list to lookup known formulae.
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speed up the obligation test.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize_obligation): Do not
|
||
minimize aut_neg_f, complement min_aut_f instead.
|
||
* src/tgbaalgos/minimize.hh: Adjust description.
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize): Use the Loeding algorithm
|
||
to label transient states.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rewrite the check of WDBA state acceptance in minimize().
|
||
|
||
* src/tgbaalgos/powerset.hh (power_map): New structure, allowing
|
||
the caller to retrieve the set of original states corresponding to
|
||
the set in the deterministic automaton.
|
||
(power_set): Adjust prototype to take a power_map instead of the
|
||
acc_list.
|
||
* src/tgbaalgos/powerset.cc (power_set): Strip all code using
|
||
acc_list, and update power_set.
|
||
* src/tgbaalgos/minimize.cc (minimize): Rewrite, using an
|
||
algorithm similar to the one in the Dax paper to check whether
|
||
state of the minimized automaton should be accepting.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.hh, src/tgbaalgos/scc.cc (scc_map::trivial,
|
||
scc_map::one_state_of): Two new helper functions.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgba/tgbaunion.hh: Remove one useless include.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* README: Mention bench/wdba/.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Define tgba_product_init, a new kind of product with different
|
||
initial states.
|
||
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(tgba_product_init): New class.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/spotlbtt.test: Add test for -l -R3b, showing many
|
||
failure because the minimization() algorithm is currently
|
||
incorrect when applied to non-weak automata.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/scc.hh: Typo in documentation.
|
||
|
||
2011-01-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Move the logic for detecting when the minimize() algorithm is
|
||
correct from ltl2tgba to the library.
|
||
|
||
* src/tgbaalgos/minimize.hh,
|
||
src/tgbaalgos/minimize.cc (minimize_obligation): New function.
|
||
* src/tgbatests/ltl2tgba.cc (main): Fix constness of automata,
|
||
and call minimize_obligation() for -R3b.
|
||
|
||
2010-12-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Make minimization of obligation properties and deterministic
|
||
monitor available in the CGI script.
|
||
|
||
* wrap/python/spot.i: Declare the minimize() interface.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Add reduce_dmonitor and
|
||
reduce_wdba options.
|
||
|
||
2010-12-14 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add a WDBA benchmark.
|
||
|
||
* bench/wdba/: New directory.
|
||
* bench/Makefile.am (SUBDIRS): Add wdba.
|
||
* NEWS: Mention it.
|
||
* configure.ac: Output bench/wdba/defs and bench/wdba/Makefile.
|
||
|
||
2010-12-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Update the news about minimization.
|
||
|
||
2010-11-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Speed up wdba.test, it was too slow for our buildfarm.
|
||
|
||
* src/tgbatest/wdba.test: Speed up execution by running only a
|
||
couple of formula with valgrind. Half of those with`-l -R3b' and
|
||
the other half with `-f -R3'.
|
||
|
||
2010-11-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Regroup -M, -s, and -S option
|
||
under the same heading "automaton conversion".
|
||
|
||
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Preliminary support for monitors.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (-M): New option for building
|
||
deterministic monitors.
|
||
* src/tgbaalgos/minimize.cc (minimize): Take a monitor
|
||
argument and adjust the code.
|
||
* src/tgbaalgos/minimize.hh (minimize): Document it.
|
||
|
||
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
"ltl2tgba -Rm -X foo.tgba" would fail.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Warn if -Rm is used without
|
||
knowing the formula whose automaton is minimized.
|
||
|
||
2010-11-25 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix bugs in minimize().
|
||
|
||
* src/tgbaalgos/minimize.cc (init_sets, minimize): Fix memory
|
||
leaks and a usage of the wrong automaton.
|
||
* src/tgbatest/wdba.test: Try using -Rm with -R3 or -R3b, and with
|
||
valgrind. This caught all the bugs fixed above.
|
||
|
||
2010-04-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix bugs in minimize(), caught by spotlbtt.test.
|
||
|
||
* src/tgbaalgos/minimize.cc (minimize): Don't add acceptance
|
||
conditions if the final set is empty.
|
||
* src/tgbaalgos/powerset.cc (tgba_powerset): Add the initial state
|
||
to acc_list if it is accepting. Also do not compute an SCC build
|
||
map if we don't have to build acc_list.
|
||
|
||
2010-04-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
"ltl2tgba -Rm" will apply WDBA-minimization only if correct.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Use WDBA-minimization only when
|
||
it is correct. Either we can quickly determine that a formula or
|
||
its negation is a safety formula, or we can slowly check the
|
||
equivalence of the WDBA-minimized automaton and the original
|
||
automaton.
|
||
* src/tgbatest/wdba.test: New test.
|
||
* src/tgbatest/safety.test: Adjust comment.
|
||
* src/tgbatest/spotlbtt.test: Use -Rm.
|
||
* src/tgbatest/Makefile.am (TESTS): Add wdba.test.
|
||
|
||
2010-04-13 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Better resource handling in minimization.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Delete the minimized automaton.
|
||
* src/tgbaalgos/minimize.cc (minimize): Remove the call to
|
||
unregister_variable() at the end. It was both
|
||
wrong (unregistering only the first variable) and useless ("delete
|
||
del_a" will unregister all these variables). Use a map and a set
|
||
to keep track of free BDD variable and reuse them, otherwise the
|
||
algorithm would sometimes use more variables than allocated.
|
||
|
||
2010-03-20 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Implement is_safety_automaton().
|
||
|
||
* src/tgbaalgos/safety.hh, src/tgbaalgos/safety.cc: New
|
||
files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatests/ltl2tgba.cc: Add option "-O".
|
||
* src/tgbaalgos/scc.hh: Update documentation.
|
||
* src/tgbatest/Makefile.am (TESTS): Add safety.test.
|
||
* src/tgbatest/safety.test: New file.
|
||
|
||
2010-03-26 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/minimize.cc: Now use register_anonymous_variables.
|
||
|
||
2010-03-20 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Small fixes.
|
||
|
||
* src/tgbatest/minimize.cc: Delete useless includes.
|
||
* src/tgbaalgos/minimize.cc: Delete useless includes,
|
||
fixed acceptance conditions.
|
||
* src/tgbatest/ltl2tgba.cc: Add -Rm option for minimization.
|
||
* src/tgba/tgbaexplicit.cc: Fixed typo.
|
||
|
||
2010-03-20 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Test program for the minimization algorithm.
|
||
|
||
* src/tgbatest/minimize.cc: New file. Minimize an automaton
|
||
from a LTL formula and compare the size of the initial automaton
|
||
to the size of the minimized automaton.
|
||
|
||
2010-03-20 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
* src/tgbaalgos/minimize.cc, src/tgbaalgos/minimize.hh:
|
||
New files. Algorithm to minimize an automaton using first the powerset
|
||
construction to determinize the input automaton, the automaton is then
|
||
minimized using the standard algorithm, using BDDs to check if states
|
||
are equivalent.
|
||
|
||
2010-03-20 Felix Abecassis <abecassis@lrde.epita.fr>
|
||
|
||
Modify the powerset algorithm to keep track of accepting states
|
||
from the initial automaton.
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
|
||
Added class tgba_explicit_number, a tgba_explicit where states are
|
||
labelled by integers.
|
||
* src/tgbaalgos/powerset.hh, src/tgbaalgos/powerset.cc:
|
||
When building the deterministic automaton, keep track of which states
|
||
were created from an accepting state in the initial automaton.
|
||
The states are added to the new optional parameter (if not 0),
|
||
acc_list.
|
||
Use tgba_explicit_number instead of tgba_explicit_string to build
|
||
the result.
|
||
* src/tgbaalgos/scc.cc (spot): Small fix.
|
||
Print everything on std::cout.
|
||
|
||
2011-01-05 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix computation of support_conditions for bdd-based TGBA.
|
||
This fixes a bug in the powerset of such TGBA on the minimize branch.
|
||
|
||
* src/tgba/tgbabddconcrete.cc (compute_support_conditions): Also
|
||
account for the conditions from the acceptance relations.
|
||
* rc/tgba/tgbabddconcretefactory.hh, rc/tgba/tgbabddconcretefactory.cc
|
||
(acceptance_conditions_support): New variable to hold the value
|
||
of bdd_support(acceptance_conditions_support).
|
||
* src/tgba/tgbabddconcretefactory.cc (finish): Update
|
||
data_.acceptance_conditions_support.
|
||
|
||
2010-12-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Remove all "new" markers.
|
||
|
||
2010-12-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Define SWIG_TYPE_TABLE as suggested by the SWIG documentation.
|
||
|
||
* wrap/python/Makefile.am: Add -DSWIG_TYPE_TABLE=spot.
|
||
|
||
2010-12-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use swig2.0 if available.
|
||
|
||
* configure.ac: Search for swig2.0 and swig.
|
||
* wrap/python/Makefile.am: Use $(SWIG).
|
||
|
||
2010-12-23 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Get rid of ltihooks.py.
|
||
|
||
ltihooks.py apparently breaks the import mechanisms of Python 2.6,
|
||
causes SWIG's runtime to fail to share a global type table, and
|
||
yields various failures in our tests.
|
||
|
||
* wrap/python/ltihooks.py: Delete.
|
||
* wrap/python/Makefile.am (EXTRA_DIST): remove ltihooks.py.
|
||
* 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, wrap/python/tests/minato.py,
|
||
wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
|
||
wrap/python/tests/setxor.py: Do not use ltihooks.
|
||
* wrap/python/tests/run.in (pypath): Include the .libs/ directories
|
||
in the search path so that Python can find the *.so libraries.
|
||
* wrap/python/cgi-bin/ltl2tgba.in: Insert the .libs/ directories
|
||
into sys.path instead of importing ltihooks.
|
||
|
||
2010-12-12 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* NEWS: Summarize recent changes.
|
||
|
||
2010-12-11 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Merge transitions in tgba_tba_proxy.
|
||
|
||
With this change the output of
|
||
ltl2tgba -f -x -k -DS "GF(p_1) & ... & GF(p_n)
|
||
uses less than (n+1)^2 transitions when it used
|
||
exactly (n+1)*(2^n) transitions before.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): Merge
|
||
transitions going to the same states if they are both accepting or
|
||
if neither are.
|
||
(state_ptr_bool_t, state_ptr_bool_less_than): Helper type to
|
||
store a transition in tgba_tba_proxy_succ_iterator.
|
||
* src/tgba/tgbatba.cc, src/tgba/tgbatba.hh
|
||
(tgba_tba_proxy::transition_annotation): Remove. We cannot
|
||
implement this method if transitions are merged.
|
||
* src/tgbatest/ltl2tgba.test: Add a test.
|
||
|
||
2010-12-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Augment the size of the ltlclasses benchmark.
|
||
|
||
* bench/ltlclasses/run: Augment the max size to 20.
|
||
* bench/ltlcounter/run: Typo in comment.
|
||
|
||
2010-12-10 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Introduce -ks to print only the size of the automaton (without
|
||
SCC information).
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax, main): Add a -ks option.
|
||
* src/tgbatest/ltl2tgba.test, bench/ltlclasses/run,
|
||
bench/ltlcounter/run: Use -ks instead of -k to speed things up.
|
||
|
||
2010-12-09 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Use a cache to speed up tgba_tba_proxy.
|
||
|
||
tgba_tba_proxy used to spend a lot of time (re)computing the
|
||
acceptance condition common to all outgoing transition of a state.
|
||
|
||
* src/tgba/tgbatba.hh (accmap_): New cache.
|
||
(common_acceptance_conditions_of_original_state): New method.
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::~sync)
|
||
Call common_acceptance_conditions_of_original_state() instead of
|
||
computing the result.
|
||
(~tgba_tba_proxy): Cleanup the cache.
|
||
(common_acceptance_conditions_of_original_state): Implement it.
|
||
|
||
2010-12-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltltest/Makefile.am (genltl_SOURCES): Add missing variable.
|
||
|
||
2010-12-07 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* README: Mention bench/ltlclases/.
|
||
|
||
2010-12-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Preliminary benchmark using genltl, introduced earlier.
|
||
|
||
* bench/ltlclasses/: New benchmark.
|
||
* bench/Makefile.am: Add it.
|
||
* configure.ac: Adjust.
|
||
|
||
2010-12-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlvisit/syntimpl.cc: Reduce the number of dynamic_cast<>s.
|
||
|
||
2010-12-04 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Preliminary implementation of a tool to generate some interesting
|
||
families of LTL formulae.
|
||
|
||
* src/ltltest/genltl.cc: New file. Based on five classes of
|
||
formulae defined in a paper by Cichón, Czubak, and Jasiński.
|
||
* src/ltltest/Makefile.am (noinst_PROGRAMS): Build genltl.
|
||
|
||
2010-12-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Add full_parent support to to_spin_string().
|
||
|
||
* src/ltlvisit/tostrinc.hh (to_spin_string): Add a full_parent
|
||
optional parameter, like for the to_string() function.
|
||
* src/ltlvisit/tostrinc.cc (to_string_visitor): Fix the
|
||
handling of full_parent.
|
||
(to_spin_string_visitor): Handle full_parent.
|
||
|
||
2010-12-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Halve the number of application of eventual_universal_visitor in
|
||
reduce_visitor::visit(binop).
|
||
|
||
* src/ltlvisit/reduce.cc (eventual_universal_visitor::recurse_):
|
||
Move this method...
|
||
(recurse_eu): ... outside as a separate function. Likewise for
|
||
the universal/eventual result struct.
|
||
(reduce_visitor::visit(binop)): Call recurse_eu() once to replace
|
||
two calls to is_eventual and is_universal, thus replacing two
|
||
recursions by one.
|
||
|
||
2010-12-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Move the eventual-universal functions where the belong.
|
||
|
||
* src/ltlvisit/syntimpl.cc (eventual_universal_visitor,
|
||
is_eventual, is_universal): Move ...
|
||
* src/ltlvisit/reduce.cc (eventual_universal_visitor,
|
||
is_eventual, is_universal): ... here.
|
||
|
||
2010-11-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/ltlvisit/randomltl.cc (random_ltl::update_sums): Typo in string.
|
||
|
||
2010-11-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Remove a quadratic behavior in eventual_universal_visitor.
|
||
|
||
* src/ltlvisit/syntimpl.cc (eventual_universal_visitor): Use
|
||
a union to store the eventual and universal properties as two
|
||
bit in a bit-field, and "AND" both of them at once.
|
||
(eventual_universal_visitor::recurse_un,
|
||
eventual_universal_visitor::recurse_ev): Replace these
|
||
two functions by ...
|
||
(eventual_universal_visitor::recurse_): ... this one, that
|
||
returns both bits as an unsigned.
|
||
|
||
2010-12-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Delete the accepting run
|
||
even if it hasn't been printed.
|
||
|
||
2010-11-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Rationalize options for counter-example output.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Either replay the accepting
|
||
run or print it, but do not do both.
|
||
* src/tgbatest/emptchk.test: Adjust. I.e. use -C instead of -CR
|
||
when we expect the run to be displayed.
|
||
|
||
2010-11-30 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix a GCC 4.6 warning.
|
||
|
||
* src/tgbatest/randtgba.cc (main): Remove the set but unused opt_A
|
||
variable (the upcoming GCC 4.6 would warn about it) and set opt_ec
|
||
to 1 if -A is used without -e.
|
||
|
||
2010-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Typo.
|
||
|
||
2010-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Another Clang report.
|
||
|
||
* iface/nips/nips.cc (format_state): Do not use a variable-sized
|
||
array, this is not allowed in C++.
|
||
|
||
2010-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Fix more errors reported by Clang.
|
||
|
||
* src/tgbaalgos/reducerun.hh (tgba_run): Predeclare as a struct
|
||
since this is what it is.
|
||
* src/tgbatest/randtgba.cc (main): Avoid using "i" with two
|
||
different type in the same loop.
|
||
|
||
2010-11-26 Alexandre Duret-Lutz <adl@lrde.epita.fr>
|
||
|
||
Finalize Kripke interface.
|
||
|
||
* src/kripke/fairkripke.hh, src/kripke/fairkripke.cc,
|
||
* src/kripke/kripke.hh, src/kripke/kripke.cc: Finalize and
|
||
document the Kripke interface. I have tested it by updating
|
||
checkpn to use it.
|
||
|
||
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_ 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 §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 comma 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.
|