* 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.
10780 lines
399 KiB
Text
10780 lines
399 KiB
Text
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 coma detection.
|
||
|
||
2004-05-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/reducform.cc (reduce_form_visitor::visit(constant)):
|
||
Simplify.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc: Use
|
||
dynamic_cast instead of node_type_form_visitor, this is usually
|
||
smaller.
|
||
* src/ltlvisit/reducform.hh,
|
||
src/ltlvisit/forminf.cc (node_type_form_visitor): Delete.
|
||
* src/sanity/style.test: Two more checks.
|
||
|
||
2004-05-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/formlength.cc: Rename as ...
|
||
* src/ltlvisit/length.cc: ... this.
|
||
* src/ltlvisit/length.hh: New file, extracted from ...
|
||
* src/ltlvisit/reducform.hh: ... here.
|
||
* src/ltlvisit/Makefile.am (ltlvisit_HEADERS): Add length.hh.
|
||
(libltlvisit_la_SOURCES): Rename formlength.cc as length.cc.
|
||
* src/ltltest/reduc.cc: Include length.hh.
|
||
|
||
* src/ltlvisit/formlength.cc (length_form_vistor): Rename as ..
|
||
(length_visitor): ... this.
|
||
(form_length): Rename as ...
|
||
(length): ... this.
|
||
* src/ltlvisit/reducform.hh (form_length): Rename as ...
|
||
(length): ... this.
|
||
* src/ltltest/reduc.cc: Adjust.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/formlength.cc: Remove
|
||
useless includes.
|
||
|
||
* AUTHORS: Update.
|
||
|
||
* src/ltlvisit/reducform.hh: Update Doxygen comments for
|
||
previous change.
|
||
|
||
* src/ltlvisit/reducform.hh (option): Rename as ...
|
||
(reduce_options): ... this, and use it as a bit field so
|
||
option can be combined easily.
|
||
(reduce): Adjust argument.
|
||
(reduce_form): Remove, not needed anymore.
|
||
* src/ltlvisit/reducform.cc, src/ltltest/reduc.cc,
|
||
src/tgbatest/ltl2tgba.cc: Adjust.
|
||
|
||
* src/sanity/style.test: Catch {.*{ and }.*}.
|
||
* src/sanity/80columns.test: Untabify files.
|
||
* iface/gspn/ltlgspn.cc, src/ltlvisit/basereduc.cc: Fix long lines.
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/forminf.cc: Remove superfluous spot::ltl:: prefixes.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Typos.
|
||
|
||
2004-05-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: Catch `;'-not-followed-by-space.
|
||
* src/ltlvisit/reducform.cc, src/ltlvisit/forminf.cc: Fix style.
|
||
|
||
* src/ltlvisit/reducform.hh: Fix some Doxygen comments.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Keep options sorted.
|
||
|
||
* src/sanity/Makefile.am (EXTRA_DIST): Distribute 80columns.test
|
||
and style.test.
|
||
|
||
* src/ltltest/Makefile.am (EXTRA_DIST): Distribute formulae.txt.
|
||
* src/ltltest/formulae.txt: New file (2200 LTL formulea generated
|
||
by Wring).
|
||
* src/ltltest/formules.ltl: Delete.
|
||
* src/reduc.test: Read formulae.txt.
|
||
|
||
2004-05-24 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
|
||
* iface/gspn/ssp.hh (gspn_ssp_interface::gspn_ssp_interface): Add
|
||
the `inclusion' flag.
|
||
* iface/gspn/ssp.cc (gspn_ssp_interface::gspn_ssp_interface): Call
|
||
inclusion_version when inclusion is set.
|
||
* iface/gspn/ltlgspn.cc (main) [SSP]: Turn on inclusion for -e3,
|
||
-e4, and -e5.
|
||
|
||
2004-05-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_): Define alive_prop,
|
||
and dead_prop from the dead argument passed to the constructor.
|
||
(tgba_succ_iterator_gspn): Stutter on dead transitions.
|
||
(tgba_gspn::tgba_gspn): Hand dead to tgba_gspn_private_.
|
||
(gspn_interface::gspn_interface): Hand dead to tgba_gspn.
|
||
* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take a
|
||
dead argument.
|
||
* iface/gspn/ltlgspn.cc [!SSP]: Add a option -d to specify the
|
||
dead property.
|
||
* iface/gspn/udcseltl.test: Try option -d.
|
||
|
||
* src/sanity/style.test: Check the iface/ tree too.
|
||
* iface/gspn/gspn.cc, iface/gspn/ssp.cc: Fix style.
|
||
|
||
* src/sanity/80columns.test: Check the iface/ tree too.
|
||
* iface/gspn/dcswaveltl.test, iface/gspn/dcswavefm.test,
|
||
iface/gspn/dcswaveeltl.test, iface/gspn/udcsltl.test,
|
||
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
|
||
iface/gspn/udcsefm.test: Wrap to fit 80 columns.
|
||
|
||
2004-05-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* doc/Makefile.am (EXTRA_DIST, spot.html): Built the html
|
||
documentation in $(srcdir) since it is distributed.
|
||
* doc/Doxyfile.in (HTML_OUTPUT): Likewise. Upgrade to Doxygen 1.3.7.
|
||
|
||
2004-05-17 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/ltlvisit/basereduc.cc, src/ltltest/inf.cc (main): Style.
|
||
|
||
* src/ltlvisit/basereduc.cc (spot): 80 columns.
|
||
* src/ltlvisit/reducform.cc (spot), src/ltltest/inf.cc,
|
||
src/ltltest/reduc.cc (main), src/ltlvisit/reducform.hh,
|
||
src/tgbatest/ltl2tgba.cc (main): More option.
|
||
* src/ltltest/inf.test: More test.
|
||
|
||
2004-05-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: Define typemap for input_buf and use it
|
||
for fdd_extdomain. Define const_int_ptr and use it for fdd_vars.
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::varnum): Suppress.
|
||
(bdd_allocator::bdd_allocator): Adjust.
|
||
(bdd_allocator::extvarnum): Always call bdd_varnum(), so that
|
||
it doesn't matter if the number of variable has been augmented
|
||
externally.
|
||
* src/misc/bddalloc.hh (bdd_allocator::varnum): Suppress.
|
||
|
||
* src/ltlvisit/formlength.cc: Fix style to please sanity checks.
|
||
|
||
* src/ltlvisit/lunabbrev.cc: Fix style to please sanity checks.
|
||
|
||
* src/tgbaalgos/neverclaim.cc: Fix them.
|
||
* sanity/style.test: Diagnose semicolons with leading spaces.
|
||
|
||
* src/ltlvisit/forminf.cc: Fix style to please sanity checks.
|
||
Also avoid node_type_form_visitor where a dynamic_cast is done.
|
||
|
||
2004-05-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: Preliminary bindings for FDD and BVEC.
|
||
|
||
* ltltest/inf.cc, ltltest/reduc.cc, ltlvisit/reducform.cc: Fix style.
|
||
* sanity/style.test: More tests.
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Fix style.
|
||
* HACKING: Mention `else if'.
|
||
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Do not output
|
||
space before colon, and do not output the top-level formula using
|
||
Spin's syntax.
|
||
|
||
2004-05-14 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Thinko.
|
||
|
||
* src/ltlvisit/basereduc.cc (spot): Correct some mistakes.
|
||
* src/ltlvisit/lunabbrev.cc (spot): Nothing change.
|
||
* src/tgbatest/ltl2tgba.cc (main): More option to reduce
|
||
formula.
|
||
* src/tgbatest/spotlbtt.test: One more test.
|
||
|
||
2004-05-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc (to_spin_string_visitor,
|
||
to_string_visitor): Do not parenthesize the top-level formula.
|
||
* tgbatest/explicit.test, tgbatest/explpro2.test,
|
||
tgbatest/explpro3.test, tgbatest/explprod.test,
|
||
tgbatest/readsave.test, tgbatest/tgbaread.test,
|
||
tgbatest/tripprod.test: Adjust expected output.
|
||
* sanity/style.test: Fix regexes to catch an error seen in
|
||
tostring.cc.
|
||
|
||
* src/tgbaalgos/gtec/gtec.cc (emptiness_check::remove_component):
|
||
Do not try to erase state that are not found in H.
|
||
Report from Soheib Baarir.
|
||
|
||
* src/ltltest/reduc.test: Use ./defs and clean result.data.
|
||
* src/ltltest/Makefile.am (CLEANFILES): Clean result.data.
|
||
|
||
2004-05-13 Thomas Martinez <martinez@src.lip6.fr>
|
||
|
||
* src/ltlvisit/Makefile.am: Copyright 2004.
|
||
* src/ltltest/inf.test: More test.
|
||
* src/ltlvisit/basereduc.cc, src/ltlvisit/forminf.cc (spot):
|
||
Use dynamic_cast.
|
||
* src/ltlvisit/reducform.cc, src/ltlvisit/reducform.hh,
|
||
src/ltltest/reduc.test, src/ltltest/reduc.cc: Add an option
|
||
to choose which rules applies to simplify the formula.
|
||
|
||
2004-05-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/reduc.test: Typo.
|
||
|
||
* src/ltlparse/ltlparse.yy (OP_POST_NEG, OP_POST_POS): New tokens.
|
||
(subformula): Recognize `ATOMIC_PROP OP_POST_POS' and
|
||
`ATOMIC_PROP OP_POST_NEG'.
|
||
* src/ltlparse/ltlscan.ll: Introduce the not_prop start condition,
|
||
to restrict the set of atomic propositions allowed in places
|
||
where they are not expected. Make `true' and `false' case insensitive.
|
||
* src/ltltest/parse.test, src/ltltest/tostring.test: More cases.
|
||
* src/ltlvisit/tostring.cc (to_string_visitor): Quote atomic
|
||
propositions equal to "true" or "false".
|
||
|
||
2004-05-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/Makefile.am (TESTS): Run inf.test and reduc.test last.
|
||
|
||
* src/ltltest/reduc.test: POSIXify.
|
||
|
||
2004-05-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/sanity/style.test: New file.
|
||
* src/sanity/Makefile.am (check-local): Run it.
|
||
* src/ltlvisit/nenoform.cc, src/ltlvisit/tostring.cc,
|
||
src/tgba/bdddict.cc, src/tgba/bddprint.cc, src/tgba/tgba.cc,
|
||
src/tgba/tgbaproduct.cc, src/tgbaalgos/lbtt.cc,
|
||
src/tgbaalgos/magic.cc, src/tgbaalgos/powerset.cc,
|
||
src/tgbaalgos/reachiter.cc, src/tgbaalgos/gtec/ce.cc,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbatest/ltl2tgba.cc: Fix style
|
||
issues reported by style.test.
|
||
|
||
* src/ltltest/inf.cc, src/ltltest/inf.test, src/ltltest/reduc.test,
|
||
src/ltlvisit/formlength.cc, src/ltlvisit/reducform.cc,
|
||
src/ltlvisit/reducform.hh: Fix copyright year, these files were
|
||
created in 2004.
|
||
|
||
* src/sanity/80columns.test: New file.
|
||
* src/sanity/Makefile.am (check-local): Run it.
|
||
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parseerr.test
|
||
src/ltltest/tunabbrev.test, src/ltltest/reduc.cc,
|
||
src/ltltest/tunabbrev.test, src/ltlvisit/forminf.cc,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/spotlbtt.test,
|
||
src/tgbatest/tripprod.test: Wrap long lines.
|
||
|
||
2004-05-10 Thomas MARTINEZ <martinez@abacus.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (main): Add a option for reduce the formula.
|
||
|
||
* src/ltltest/formules.ltl: A pattern of 2000 formulas.
|
||
* src/ltltest/inf.test: Test some case of implies.
|
||
* src/ltltest/inf.cc: Test some case of implies.
|
||
* src/ltltest/reduc.test: Test reduction of a file of formula.
|
||
* src/ltltest/reduc.cc: Test reduction of a formula.
|
||
|
||
* src/ltlvisit/formlength.cc: Gives the lenght of a formula.
|
||
* src/ltlvisit/forminf.cc: To know if a formula implies an other.
|
||
* src/ltlvisit/basereduc.cc: Implement only basic reduction.
|
||
* src/ltlvisit/reducform.cc: Implement reduction.
|
||
* src/ltlvisit/reducform.hh: To reduce a formula.
|
||
|
||
2004-05-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Refine
|
||
fair_loop_approximation when branching postponement is not used.
|
||
|
||
Cache formula translations, and canonize formulae before doing
|
||
branching postponement.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (formula_canonizer): New class, with
|
||
bits extracted from fill_dests and ltl_to_tgba_fm.
|
||
(fill_dests, ltl_to_tgba_fm): Adjust to use formula_canonizer.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
|
||
fair_loop_approx.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Implement the
|
||
fair_loop_approx optimization.
|
||
(ltl_promise_visitor, ltl_possible_fair_loop_visitor,
|
||
possible_fair_loop_checker): New classes.
|
||
* src/tgbatest/ltl2tgba.cc: Add the -L option.
|
||
* src/tgbatest/spotlbtt.test: Exercise fair_loop_approx.
|
||
* wrap/python/cgi/ltl2tgba.in: Make it an option.
|
||
|
||
2004-05-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
|
||
branching_postponement.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (fill_dests): New function, extracted
|
||
from ltl_to_tgba_fm().
|
||
(ltl_to_tgba_fm): Implement the branching_postponement optimization.
|
||
* src/tgbatest/ltl2tgba.cc: Add the -p option.
|
||
* src/tgbatest/spotlbtt.test: Exercise branching postponement.
|
||
* wrap/python/cgi/ltl2tgba.in: Make it an option.
|
||
|
||
2004-05-04 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Add a superfluous return to pacify
|
||
some GCC version. Report from Denis Poitrenaud.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix output HTML.
|
||
|
||
2004-05-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Clone and then
|
||
free all formulae entered into canonical_succ, to avoid errors
|
||
when a formula is entered into canonical_succ but not into
|
||
formulae_seen.
|
||
* src/tgbatest/ltl2tgba.test: Add a new test, and check with -f.
|
||
Report from Thomas Martinez.
|
||
|
||
2004-04-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0u.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0t.
|
||
* HACKING: Update tools requirements.
|
||
* src/sanity/Makefile.am (EXTRA_DIST): Distribute includes.test.
|
||
|
||
* src/sanity/Makefile.am, src/sanity/includes.test: New files.
|
||
* src/Makefile.am (SUBDIRS): Add sanity.
|
||
* configure.ac: Output src/sanity/Makefile.in.
|
||
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Move ltl2tgba ...
|
||
(noinst_PROGRAMS): ... here.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Rename as ...
|
||
(noinst_PROGRAMS): ... this.
|
||
|
||
2004-04-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/explicit.test: Reorder bdd variables in output.
|
||
Report from Denis Poitrenaud.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Print degeneralized statistics
|
||
when show_never_claim. Change the title to LTL-to-TGBA.
|
||
Suggested by Denis Poitrenaud.
|
||
|
||
2004-04-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_footer): Make ltl2tgba.py's
|
||
version a separate variable.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Pass the formula to
|
||
never_claim_reachable, and cgi.escape its output.
|
||
Lighten the color a bit.
|
||
|
||
* src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
|
||
src/tgba/bddprint.hh: Fix Doxygen comments.
|
||
|
||
* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Document
|
||
arguments.
|
||
* src/tgbaalgos/neverclaim.cc (never_claim_bfs::state_is_accepting):
|
||
New method.
|
||
(never_claim_bfs::get_state_label, never_claim_bfs::process_state):
|
||
Use it.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Use darker color and introduce
|
||
the new variable dot_bgcolor.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (add_options): Revamp options output
|
||
using this new function.
|
||
|
||
* wrap/python/spot.i: Process tgbaalgos/neverclaim.hh.
|
||
* wrap/python/cgi/ltl2tgba.in: Display the never claim on demand.
|
||
|
||
2004-04-21 Denis Poitrenaud <Denis.Poitrenaud@lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.hh (to_spin_string): New function.
|
||
Convert a formula into a string parsable by Spin.
|
||
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: New files.
|
||
Print the never claim in Spin format of a degeneralized TGBA.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/ltl2tgba.cc: Add the option -N which outputs the
|
||
never claim in Spin format of a degeneralized TGBA.
|
||
* src/tgbatest/ltl2neverclaim.test: New file.
|
||
* src/tgbatest/Makefile.am: Add it.
|
||
|
||
2004-04-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/defs.in, src/tgbatest/defs.in: Correctly set exitcode
|
||
when valgrind is not used.
|
||
Reported by Denis Poitrenaud.
|
||
|
||
* src/tgba/tgba.hh (tgba::succ_iter): Doco.
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::state_is_accepting): Document
|
||
it.
|
||
Reported by Denis Poitrenaud.
|
||
|
||
2004-04-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main) [SSP]: Use the standard
|
||
counter-example computation for -e5 too.
|
||
|
||
* iface/gspn/ltlgspn.cc (main) [!SSP]: Do not accept -e3, -e4, or -e5.
|
||
(main) [SSP]: Use the standard counter-example computation
|
||
for -e and -e1.
|
||
|
||
2004-04-15 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Rename EESRG as SSP.
|
||
* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
|
||
iface/gspn/dottyeesrg.cc: Rename as ...
|
||
* iface/gspn/ssp.cc, iface/gspn/ssp.hh, iface/gspn/dottyssp.cc:
|
||
... these. Adjust all classes and function names.
|
||
* iface/gspn/ltlgspn.cc, iface/gspn/Makefile.am: Adjust all classes
|
||
filenames and function names.
|
||
* m4/gspnlib.m4: Define WITH_GSPN_SSP and LIBGSPNSSP_LDFLAGS.
|
||
|
||
* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map::find):
|
||
Rewrite.
|
||
(numbered_state_heap_hash_map::index): New functions.
|
||
(numbered_state_heap_hash_map::filter): Delete.
|
||
* src/tgbaalgos/gtec/nsheap.hh
|
||
(numbered_state_heap_hash_map::index): New functions.
|
||
(numbered_state_heap_hash_map::filter): Delete.
|
||
* iface/gspn/eesrg.cc (numbered_state_heap_eesrg_semi::find,
|
||
numbered_state_heap_eesrg_semi::index): Rewrite.
|
||
(numbered_state_heap_eesrg_semi::filter): Remove.
|
||
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/ce.cc:
|
||
Adjust to use find() and index() instead of filter()..
|
||
|
||
|
||
* iface/gspn/eesrg.cc (connected_component_eesrg::has_state):
|
||
Free filtered states.
|
||
(emptiness_check_shy_eesrg): New class.
|
||
(emptiness_check_eesrg_shy): New function.
|
||
* iface/gspn/eesrg.hh (emptiness_check_eesrg_shy): New function.
|
||
* iface/gspn/ltlgspn.cc (main) [EESRG]: Handle -e3, -e4, and -e5.
|
||
* * src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
|
||
(emptiness_check_shy::check): Move arc, num, succ_queue, and todo
|
||
as attributes.
|
||
(emptiness_check_shy::find_state): New virtual function.
|
||
|
||
2004-04-14 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (connected_component_eesrg,
|
||
connected_component_eesrg_factory, numbered_state_heap_eesrg_semi,
|
||
numbered_state_heap_eesrg_const_iterator,
|
||
numbered_state_heap_eesrg_factory_semi): New classes.
|
||
(emptiness_check_eesrg_semi, emptiness_check_eesrg_shy_semi,
|
||
counter_example_eesrg): New functions.
|
||
* iface/gspn/eesrg.hh (emptiness_check_eesrg_semi,
|
||
emptiness_check_eesrg_shy_semi, counter_example_eesrg): New
|
||
functions.
|
||
* iface/gspn/ltlgspn.cc [EESRG]: Adjust to call these new functions.
|
||
|
||
2004-04-14 Soheib Baarir <Souheib.Baarir@lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg,
|
||
state_gspn_eesrg): Compute the array of all successors of the
|
||
right state beforehand, pass it to Greatspn (left automata) at
|
||
once, let it compute the resulting synchronized arcs, and iterate
|
||
on that result.
|
||
|
||
2004-04-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap_factory,
|
||
numbered_state_heap_hash_map_factory): New class.
|
||
* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map_factory):
|
||
Implement it.
|
||
* src/tgbaalgos/gtec/gtec.hh (emptiness_check::emptiness_check,
|
||
emptiness_check_shy::emptiness_check_shy): Take a
|
||
numbered_state_heap_factory argument.
|
||
* tgbaalgos/gtec/status.hh
|
||
(emptiness_check_status::emptiness_check_status): Likewise.
|
||
(emptiness_check_status::h): Make it a numbered_state_heap*.
|
||
* src/tgbaalgos/gtec/ce.cc, tgbaalgos/gtec/gtec.cc,
|
||
tgbaalgos/gtec/status.cc: Adjust uses of ecs_->h.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
|
||
Delete and split into ...
|
||
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
|
||
src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
|
||
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
|
||
src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
|
||
src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
|
||
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh: ...
|
||
these new files.
|
||
* src/tgbaalgos/gtec/Makefile.am: New file.
|
||
* src/tgbaalgos/Makefile.am (SUBDIRS, libtgbaalgos_la_LIBADD):
|
||
Recurse into gtec and link gtec/libgtec.la.
|
||
(tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES): Remove emptinesscheck.hh
|
||
and emptinesscheck.cc.
|
||
* configure.ac: Output src/tgbalagos/gtec/Makefile.
|
||
* iface/gspn/ltlgspn.cc, src/tgbatest/ltl2tgba.cc: Update includes.
|
||
* README: Update tree description.
|
||
|
||
2004-04-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (numbered_state_heap_const_iterator,
|
||
numbered_state_heap, numbered_state_heap_hash_map): New classes.
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(numbered_state_heap_hash_map_const_iterator): New class.
|
||
(numbered_state_heap_hash_map): Implement it.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(explicit_connected_component_factory,
|
||
connected_component_hash_set_factory): New classes.
|
||
(counter_example::counter_example): Take an
|
||
explicit_connected_component_factory factory argument.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (explicit_connected_component):
|
||
New class.
|
||
(counter_example::connected_component_set): Rename as ...
|
||
(connected_component_hash_set): ... this, and inherit from
|
||
explicit_connected_component.
|
||
(counter_example::accepting_path, counter_example::complete_cycle):
|
||
Take an explicit_connected_component argument instead of a
|
||
connected_component_set.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(counter_example::connected_component_set::has_state): Return
|
||
a const state* and behave like h_filt.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2): Move
|
||
into ...
|
||
(emptiness_check_shy): This new subclass of emptiness_check.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* src/tgba/bdddict.hh (bdd_dict::annon_free_list): Hide from Swig.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (counter_example): New class,
|
||
extracted from ...
|
||
(emptiness_check): ... here.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* wrap/python/Makefile.am ($(srcdir)/spot_wrap.cxx)
|
||
($(srcdir)/buddy_wrap.cxx): Use -noruntime instead of -c.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (emptiness_check_status): New class,
|
||
extracted from ...
|
||
(emptiness_check): ... here.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgo/semptinesscheck.hh (scc_stack): New class, extracted
|
||
from ...
|
||
(emptiness_check): ... here.
|
||
(emptiness_check::root): Redefined as a scc_stack object.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
2004-04-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Do not visit a state more than once. Report from Soheib Baarir.
|
||
|
||
2004-03-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Reuse Acc and Var
|
||
variables from a shared bdd_dict. Register Next variables as
|
||
anonymous variables.
|
||
(translate_dict::translate_dict, translate_dict::~translate_dict,
|
||
translate_dict::register_proposition,
|
||
translate_dict::register_a_variable,
|
||
translate_dict::register_next_variable,
|
||
translate_dict::dump, translate_dict::var_to_formula,
|
||
ltl_to_tgba_fm): Adjust.
|
||
(translate_dict::dict): New attribute.
|
||
(translate_dict::a_map, translate_dict::a_formula_map,
|
||
translate_dict::var_map, translate_dict::var_formula_map): Delete.
|
||
|
||
* src/misc/freelist.cc (free_list::remove): Work around
|
||
invalidated iterators.
|
||
* tgba/bdddict.cc (unregister_variable): New methods,
|
||
extracted from ...
|
||
(bdd_dict::unregister_all_my_variables): ... here.
|
||
* tgba/bdddict.hh (unregister_variable): Declare them.
|
||
|
||
2004-03-23 Alexandre DURET-LUTZ <adl@src.lip6.fr>
|
||
|
||
* src/misc/freelist.hh (free_list::remove, free_list::insert): New
|
||
methods.
|
||
* src/misc/freelist.cc (free_list::register_n,
|
||
free_list::releases_n): Rewrite using free_list::remove and
|
||
free_list::insert.
|
||
(free_list::remove, free_list::insert): New methods.
|
||
* src/tgba/bdddict.hh (bdd_dict::register_anonymous_variables):
|
||
New method.
|
||
(bdd_dict::annon_free_list): New subclass.
|
||
(bdd_dict::free_annonymous_list_of_type_of): New attribute.
|
||
* src/tgba/bdddict.cc (bdd_dict::register_all_variables_of,
|
||
bdd_dict::unregister_all_my_variables): Handle anonymous variables
|
||
too.
|
||
(bdd_dict::register_anonymous_variables,
|
||
bdd_dict::annon_free_list::annon_free_list,
|
||
bdd_dict::annon_free_list::extend): New methods.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::accepting_path)
|
||
Fix handling of PATH when backtracking. Report from Soheib Baarir.
|
||
|
||
2004-03-18 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Move the free_list management into a separate class for reuse.
|
||
|
||
* src/misc/freelist.hh, src/misc/freelist.cc: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
* src/misc/bddalloc.hh (bdd_allocator): Inherit from free_list and
|
||
make dump_free_list visible.
|
||
* src/misc/bddalloc.cc (bdd_allocator::allocate_variables): Move
|
||
all the code into free_list::register_n() and
|
||
bdd_allocator::extend(), and call the former.
|
||
(bdd_allocator::release_variables): Move all the code into
|
||
free_list::release_n() and call it.
|
||
(bdd_allocator::extend): New method.
|
||
* src/tgba/bdddict.cc (bdd_dict::dump): Call dump_free_list;
|
||
|
||
2004-03-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0s.
|
||
|
||
2004-03-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0r.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm) <exprop>: Do not
|
||
blindly enumerate all combinations of atomic properties; initially
|
||
set all_props to the set of all possibly satisfiable combinations.
|
||
|
||
2004-02-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* lbtt/src/Makefile.am (lbtt_translate_SOURCES): Fix leftover
|
||
from 1.0.3 merge.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Process ltl2tgba.opt if it exists.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Color translators and their options.
|
||
|
||
2004-02-20 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Present the options in a table.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Remove the "print dot" options,
|
||
add a "dot source" source behind each picture instead. Do
|
||
not run `dot' on big automata.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix example
|
||
in comment. Skip false transitions, and do not compute
|
||
sub-formulae reachable only via false transitions.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Revert
|
||
yesterday's change. This optimization is NOT covered by exprop.
|
||
In fact it could be generalized.
|
||
|
||
2004-02-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Remove the
|
||
cond_for_true optimization. It is covered by exprop.
|
||
|
||
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::current_state):
|
||
Fix reference to Oddoux's thesis.
|
||
|
||
2004-02-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add the
|
||
symb_merge argument.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Likewise.
|
||
* src/tgbatest/ltl2tgba.cc (main): Rename -fx as -x, and add -y
|
||
to unset symb_merge.
|
||
* wrap/python/cgi/ltl2tgba.in: Remove the exprop version
|
||
of the FM translator, make exprop and symb_merge options.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <unop::G>:
|
||
suppress the GFy optimisation introduced on 2003-11-26, it is
|
||
generalized by the identification of states with same symbolic
|
||
rewriting introduced on 2004-02-02.
|
||
|
||
* lbtt/: Merge lbtt 1.0.3.
|
||
|
||
2004-02-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2baw.pl (END): Ensure LTL2TGBA is always
|
||
closed.
|
||
|
||
2004-02-11 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Recognize "-" as input
|
||
filename for the formula. Merge the transitions of automata
|
||
read with -X.
|
||
* src/tgbatest/spotlbtt.test: Add many disabled algorithms.
|
||
It is convenient to reuse the `config' file created by this
|
||
test when making statistics.
|
||
* src/tgbatest/ltl2baw.pl: New file.
|
||
* src/tgbatest/Makefile.am (EXTRA_DIST): Add ltl2baw.pl.
|
||
|
||
2004-02-10 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/libpy.c: Update from Swig 1.3.21.
|
||
* HACKING: Update versions.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Take an exprop
|
||
argument. Consider all possible combinations of propositions when
|
||
generating arcs. Suggested by Jean-Michel Couvreur.
|
||
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Adjust.
|
||
* src/tgbatest/ltl2tgba.cc: Honor -fx.
|
||
* src/tgbatest/spotlbtt.test: Exercise -fx.
|
||
* wrap/python/cgi/ltl2tgba.in: Support Couvreur/FM with exploded
|
||
properties.
|
||
|
||
2004-02-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Typo.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Use render_dot when
|
||
showing formula.
|
||
* wrap/python/cgi/README: Mention unique_id.
|
||
|
||
2004-02-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
This should help getting accurate statistics (on both the
|
||
formula automaton and the synchronized product) from LBTT.
|
||
Idea from Jean-Michel Couvreur.
|
||
|
||
* src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class.
|
||
(nonacceptant_lbtt_reachable): New function.
|
||
* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New
|
||
function.
|
||
* src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable
|
||
if the -T option is used.
|
||
* src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by
|
||
default.
|
||
|
||
2004-02-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/lbtt.hh: Typos.
|
||
|
||
* src/tgbatest/spotlbtt.test: Typo.
|
||
|
||
* wrap/python/spot.i (unblock_signal): New function.
|
||
* wrap/python/cgi/ltl2tgba.in (print_footer, alarm_handler)
|
||
(reset_alarm): New functions. Kill the script and its
|
||
children if it runs for too long.
|
||
(render_dot): Call reset_alarm.
|
||
|
||
2004-02-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0q.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0p.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix <table> setting to cope
|
||
with IE, Safari, konqueror, ... None of these support
|
||
rules="groups" frame="border" properly (Mozilla is OK).
|
||
|
||
2004-02-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Output a description of the syntax.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Import spot and redirect stderr
|
||
to stdout early.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_stats): Compute and display
|
||
the number of acceptance conditions.
|
||
|
||
* wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
|
||
wrap/python/tests/ltlsimple.py: Specify coding system to
|
||
accommodate newer Python versions.
|
||
|
||
* src/misc/bddalloc.hh: Make all methods public.
|
||
* wrap/python/spot.i: Include misc/bddalloc.hh and misc/minato.hh.
|
||
* wrap/python/tests/minato.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add minato.py.
|
||
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/tgbaread.cc,
|
||
src/tgbatest/tripprod.cc: Add missing copyright license.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (render_dot): Render .png directly
|
||
with dot, without using convert.
|
||
* wrap/python/cgi/README: Do not mention convert.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (render_dot, render_automaton)
|
||
(render_bdd): New functions, extracted from the rest of the code.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (default_translator): Default
|
||
to trans_fm.
|
||
(translators): Show trans_fm before trans_lacim.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in (print_stats): New function. Call
|
||
it to display the size of the generalized and degeneralized
|
||
automata.
|
||
|
||
* src/tgbalagos/stats.hh, src/tgbalagos/stats.cc: New files.
|
||
* src/tgbalagos/Makefile.am: Add them.
|
||
* wrap/python/spot.i: Include src/tgbalagos/dupexp.hh and
|
||
src/tgbalagos/stats.hh
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Identify states
|
||
with identical successors. This optimizes the translation
|
||
of `a R (b R c)', for instance.
|
||
* src/tgbatest/ltl2tgba.test: Add two new tests.
|
||
|
||
Hide the tgba_gspn and tgba_gspn_eesrg classes. Offer the
|
||
corresponding automaton via the automaton() method of the
|
||
gspn_interface and gspn_eesrg_interface classes.
|
||
|
||
* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take dict and
|
||
env arguments.
|
||
(gspn_interface::automaton): New method.
|
||
(tgba_gspn): Move all the declaration ...
|
||
* iface/gspn/gspn.cc (tgba_gspn): ... here.
|
||
(gspn_interface::automaton): Implement it.
|
||
* iface/gspn/eesrg.hh (gspn_eesrg_interface::gspn_eesrg_interface):
|
||
Take dict and env arguments.
|
||
(gspn_eesrg_interface::automaton): New method.
|
||
(tgba_gspn_eesrg): Move all the declaration ...
|
||
* iface/gspn/gspn.cc (tgba_gspn_eesrg): ... here.
|
||
(gspn_eesrg_interface::automaton): Implement it.
|
||
* iface/gspn/dottygspn.cc, iface/gspn/dottyeesrg.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
2004-01-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc: Fix output of F0, F1, G0, G1, X0, and X1.
|
||
* src/ltltest/tostring.test: Test these.
|
||
|
||
2004-01-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_acceptance_condition):
|
||
Do not treat true and false specially. Otherwise it breaks
|
||
translation of F(false).
|
||
* src/tgbatest/explprod.test, src/tgbatest/tripprod.test: Do not
|
||
use true as acceptance condition.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor): Use Acc[b] as
|
||
acceptance condition for Fb, not Acc[Fb].
|
||
|
||
After this change, degeneralized automata are 40% smaller
|
||
in LBTT's statistics.
|
||
|
||
* src/tgba/tgbatba.cc (state_tba_proxy): Store an iterator,
|
||
pointing somewhere into the acceptance conditions list, instead of
|
||
an acceptance condition.
|
||
(state_tba_proxy::acceptance_iterator): New method.
|
||
(tgba_tba_proxy_succ_iterator): Adjust to use iterators too.
|
||
(tgba_tba_proxy_succ_iterator::current_state): If the current
|
||
transition is in several consecutive acceptance steps after the
|
||
expected one, advance many steps at once.
|
||
(tgba_tba_proxy::tgba_tba_proxy): Build the acceptance cycle
|
||
as a list, not a map.
|
||
(tgba_tba_proxy::get_init_state, tgba_tba_proxy::succ_iter):
|
||
Adjust.
|
||
* src/tgba/tgbatba.hh (tgba_tba_proxy::acc_cycle_): Declare as
|
||
a list, not a map.
|
||
|
||
2004-01-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc (magic_search::~magic_search): Release
|
||
all iterators on the stack.
|
||
(magic_search::check): Release iterators that are popped off the
|
||
stack.
|
||
|
||
* src/tgbatest/explpro2.test: Fix reordering regex.
|
||
|
||
* src/tgbatest/defs.in (run): Use libtool --mode=execute.
|
||
|
||
2004-01-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Merge transitions
|
||
with same destination and acceptance conditions directly, without
|
||
calling a->merge_transition(). If one transitions goes to "True",
|
||
subtract its conditions from all other transitions; this optimizes
|
||
a U b.
|
||
|
||
* src/ltlast/refformula.hh (ref_formula::ref_count_): New method.
|
||
* src/ltlast/refformula.cc (ref_formula::ref_count_): New method.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop::dump_instance): New method.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop::dump_instance): New method.
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc: Typos in comments.
|
||
|
||
2004-01-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0o.
|
||
|
||
* configure.ac: Bump version to 0.0n.
|
||
* NEWS: Update.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check,
|
||
emptiness_check::check2): Document them.
|
||
|
||
2004-01-12 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main): Typo, use MIN_ARG.
|
||
|
||
2004-01-09 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
|
||
iface/gspn/udcseltl.test: Exercize -e2.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check2):
|
||
New function, variant of emptiness_check::check().
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2):
|
||
Likewise.
|
||
* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Exercize -e2.
|
||
* src/tgbatest/ltl2tgba.cc: Support -e2, for emptiness_check::check2().
|
||
* iface/gspn/Makefile.am [WITH_GSPN_EESRG] (check_PROGRAMS):
|
||
Compile ltlgspn-eesrg instead of ltleesrg.
|
||
(ltleesrg_SOURCES, ltleesrg_LDADD): Replace by...
|
||
(ltlgspn_eesrg_SOURCES, ltlgspn_eesrg_LDADD, LIBGSPNESRG_LDFLAGS):
|
||
... these.
|
||
* iface/gspn/ltleesrg.cc: Delete.
|
||
* iface/gspn/ltlgspn.cc [EESRG]: Support EESRG conditionally.
|
||
Support -e2.
|
||
|
||
* src/tgbaalgos/ltl2tgba_lacim.cc: Typo in comment.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check): Typos
|
||
in comments.
|
||
|
||
|
||
* m4/gspnlib.m4 (AX_CHECK_GSPNLIB): Do not warn about a missing
|
||
library for eesrg. Define the WITH_GSPN_EESRG conditional.
|
||
* iface/gspn/Makefile.am (gspn_HEADERS, check_PROGRAMS): Add the
|
||
eesrg items in condition WITH_GSPN_EESRG.
|
||
(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
|
||
(libspotgspneesrg_la_SOURCES): Define only in condition
|
||
WITH_GSPN_EESRG.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_stats):
|
||
New function.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::print_stats):
|
||
Likewise.
|
||
* iface/gspn/ltlgspn.cc (main) <Couvreur>: Call print_stats().
|
||
* iface/gspn/ltleesrg.cc (main): Likewise.
|
||
|
||
* iface/gspn/ltlgspn.cc: Add option -P.
|
||
|
||
2004-01-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Run valgrind in test cases.
|
||
* src/tgbatest/defs.in (VALGRIND, run): Define.
|
||
* src/tgbatest/bddprod.test, src/tgbatest/dupexp.test,
|
||
src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
|
||
src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
|
||
src/tgbatest/explpro3.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.test,
|
||
src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Use run().
|
||
|
||
2004-01-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (format_state): Do not rewrite \n's,
|
||
just strip the last one. Escaping must be done at output.
|
||
* iface/gspn/gspm.cc (format_state): Likewise.
|
||
* src/misc/escape.hh, src/misc/escape.cc: New files.
|
||
* src/misc/Makefile.am: Add them.
|
||
* src/tgba/bddprint.cc (bdd_format_accset): New function.
|
||
* src/tgba/bddprint.hh (bdd_format_accset): New function.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_state):
|
||
Escape the state name using escape_str().
|
||
(dotty_bfs::process_link): Escape conditions and acceptance
|
||
conditions using escape_str().
|
||
* src/tgbaalgos/save.cc (save_bfs::start): Call print_acc().
|
||
(save_bfs::print_acc): New function extracted from save_bfs::start().
|
||
Escape each acceptance condition.
|
||
(save_bfs::process_state): Use escape_str() and print_acc()
|
||
|
||
* src/ltlvisit/tostring.cc
|
||
(to_string_visitor::visit(const atomic_prop*)): Quote propositions
|
||
that start with F, G, or X.
|
||
* src/ltltest/tostring.test: Test quoted propositions.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Escape " and \
|
||
characters in formulae.
|
||
* src/tgbatest/readsave.test: Test for this.
|
||
|
||
* src/tgbaalgos/reachiter.hh: Typos in comments.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::all_acceptance_conditions,
|
||
tgba_gspn_eesrg::neg_acceptance_conditions): Forward to
|
||
data_->operand.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Do not skip this computation if from == to but the period is empty.
|
||
|
||
* iface/gspn/eesrg.cc (state_gspn_eesrg::clone): Clone the right
|
||
state.
|
||
|
||
* iface/gspn/ltleesrg.cc: Emptinesscheck the full product, not
|
||
the control automaton.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method.
|
||
* iface/gspn/eesrg.hh: Likewise.
|
||
|
||
2004-01-05 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: New files.
|
||
* src/tgbaalgos/Makefile.am: Add them.
|
||
* src/tgbatest/powerset.cc: New file.
|
||
* src/tgbatest/Makefile.am: Construct powerset and expldot from
|
||
powerset.cc.
|
||
|
||
* src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::run)
|
||
Reuse s->second to avoid a hash lookup.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Delete dest.
|
||
|
||
* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)):
|
||
Use $(FROM_LTLPARSE_YY_MAIN), not $@, because $@ can contains
|
||
VPATH and we do not want Bison to see absolute paths.
|
||
* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.
|
||
|
||
* src/ltltest/parseerr.test: Adjust.
|
||
* src/ltlparse/ltlparse.yy: Simplify error handling now that Bison
|
||
will call destructors. Give each operator a full name, so that
|
||
Bison uses it in error messages.
|
||
|
||
2003-12-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltleesrg.cc: New file.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add ltleesrg.
|
||
(ltleesrg_LDADD, ltleesrg_SOURCES): New variables.
|
||
|
||
* src/ltltest/defs.in (run): Rerun valgrind with --leak-check=yes.
|
||
* src/ltlparse/ltlparse.yy: Add `%destructor's.
|
||
|
||
2003-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/defs.in (run): New function, run valgrind.
|
||
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parse.test,
|
||
src/ltltest/parseerr.test, src/ltltest/tostring.test,
|
||
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
|
||
* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
|
||
Automake 1.8 find them automatically.
|
||
* configure.ac: Require Automake 1.8, in gnits mode, and check
|
||
for valgrind.
|
||
* THANKS: New empty file.
|
||
|
||
* doc/Doxyfile.in: Upgrade to Doxygen 1.3.5. Build
|
||
documentation for iface/.
|
||
* dox/mainpage.dox: Fix reference to ltl_to_tgba.
|
||
* src/ltlenv/environment.hh: Typo.
|
||
|
||
2003-12-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit::merge_transitions): New method.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Factorize all
|
||
variables (not just Next and A) when computing prime implicants,
|
||
and then call merge_transitions().
|
||
|
||
2003-12-01 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0m.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0l.
|
||
* doc/Makefile.am ($(srcdir)/spotref.pdf): Do not assume spot.latex is
|
||
in the srcdir.
|
||
|
||
2003-11-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy (cond_list): Simplify into...
|
||
(condition): ... this. We now accept only one condition, which
|
||
is a formula.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::add_neg_condition,
|
||
tgba_explicit::get_condition): Remove, unused.
|
||
* src/tgba/tgbaexplicit.cc: Likewise.
|
||
|
||
* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc,
|
||
iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
|
||
src/tgba/bddprint.hh, src/tgba/succiter.hh,
|
||
src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
|
||
src/tgba/tgbaproduct.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
|
||
src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh,
|
||
src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
|
||
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
|
||
src/tgbaalgos/save.cc, src/tgbatest/explicit.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy,
|
||
wrap/python/tests/ltl2tgba.py:
|
||
Rewrite `accepting condition' as `acceptance condition'.
|
||
The symbols which have been renamed are:
|
||
tgba::all_accepting_conditions
|
||
tgba::neg_accepting_conditions
|
||
succ_iterator::current_accepting_conditions
|
||
bdd_dict::register_accepting_variable
|
||
bdd_dict::register_accepting_variables
|
||
bdd_dict::is_registered_accepting_variable
|
||
tgba_bdd_concrete_factory::declare_accepting_condition
|
||
tgba_bdd_core_data::accepting_conditions
|
||
tgba_bdd_core_data::all_accepting_conditions
|
||
tgba_explicit::declare_accepting_condition
|
||
tgba_explicit::complement_all_accepting_conditions
|
||
tgba_explicit::has_accepting_condition
|
||
tgba_explicit::get_accepting_condition
|
||
tgba_explicit::add_accepting_condition
|
||
tgba_explicit::all_accepting_conditions
|
||
tgba_explicit::neg_accepting_conditions
|
||
state_tba_proxy::acceptance_cond
|
||
accepting_cond_splitter
|
||
|
||
2003-11-26 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <G>:
|
||
Optimize translation of GFy.
|
||
|
||
* src/tgba/bddprint.cc (print_accset_handler, bdd_print_accset): New
|
||
functions.
|
||
* src/tgba/bddprint.cc (bdd_print_accset): Declare it.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use it.
|
||
* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test: Adjust
|
||
expected output.
|
||
|
||
2003-11-25 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy: Remove a random character.
|
||
* src/tgba/formula2bdd.cc: Include cassert.
|
||
|
||
2003-11-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
Explicit automata can now have arbitrary logic formula on their
|
||
arcs. ltl2tgba_fm benefits from this and join multiple arcs with
|
||
the same destination and acceptance conditions.
|
||
* src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
|
||
* src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
|
||
bdd_format_formula): New functions.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
|
||
tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
|
||
tgba_explicit::declare_accepting_condition,
|
||
tgba_explicit::has_accepting_condition,
|
||
tgba_explicit::get_accepting_condition,
|
||
tgba_explicit::add_accepting_condition): Take a const formula*.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
|
||
Rewrite using formula_to_bdd.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
|
||
bdd_print_formula to display conditions.
|
||
* src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
|
||
New function.
|
||
(translate_dict::conj_bdd_to_atomic_props): Remove.
|
||
(ltl_to_tgba_fm): Factor successors on accepting conditions
|
||
and destinations, not conditions. Use bdd_to_formula to translate
|
||
the conditions.
|
||
* src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
|
||
in a string, call the LTL parser for this.
|
||
* src/tgbaparse/tgbascan.ll: Process \" and \\ escapes in
|
||
strings.
|
||
* src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
|
||
src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.test: Adjust to new syntax for explicit
|
||
automata.
|
||
|
||
* src/misc/minato.hh (minato_isop(bdd,bdd)): New constructor variant.
|
||
(minato_isop::local_vars::vars): New attribute.
|
||
(minato_isop::local_vars::local_vars): Add the vars arguments.
|
||
(minato_isop::todo, minato_isop::cube, minato_isop::ret): Rename as ...
|
||
(minato_isop::todo_, minato_isop::cube_, minato_isop::ret_): ... these.
|
||
* src/misc/minato.cc: Adjust to factorize only variables in vars.
|
||
|
||
* m4/devel.m4: Fix quoting and simplify default setting of
|
||
enable_devel.
|
||
|
||
2003-11-21 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* AUTHORS: New file.
|
||
* configure.ac (AM_INIT_AUTOMAKE): Remove `foreign' option.
|
||
|
||
* COPYING: New file.
|
||
* Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
|
||
iface/gspn/Makefile.am, iface/gspn/common.cc,
|
||
iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
|
||
iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
|
||
iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
|
||
src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
|
||
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/formula.cc,
|
||
src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/multop.hh,
|
||
src/ltlast/predecl.hh, src/ltlast/refformula.cc,
|
||
src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
|
||
src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
|
||
src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
|
||
src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
|
||
src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
|
||
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/ltltest/Makefile.am,
|
||
src/ltltest/defs.in, src/ltltest/equals.cc,
|
||
src/ltltest/equals.test, src/ltltest/lunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/parse.test,
|
||
src/ltltest/parseerr.test, src/ltltest/readltl.cc,
|
||
src/ltltest/tostring.cc, src/ltltest/tostring.test,
|
||
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
|
||
src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
|
||
src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
|
||
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
|
||
src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
|
||
src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
|
||
src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
|
||
src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
|
||
src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
|
||
src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
|
||
src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
|
||
src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
|
||
src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
|
||
src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
|
||
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
|
||
src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
|
||
src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
|
||
src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
|
||
src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
|
||
src/tgbaalgos/Makefile.am, src/tgbaalgos/dotty.cc,
|
||
src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
|
||
src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
|
||
src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
|
||
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
|
||
src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
|
||
src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
|
||
src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
|
||
src/tgbaalgos/save.hh, src/tgbaparse/Makefile.am,
|
||
src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
|
||
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
|
||
src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
|
||
src/tgbatest/bddprod.test, src/tgbatest/defs.in,
|
||
src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
|
||
src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
|
||
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
|
||
src/tgbatest/explprod.test, src/tgbatest/ltl2tgba.test,
|
||
src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
|
||
src/tgbatest/readsave.test, src/tgbatest/spotlbtt.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
|
||
wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
|
||
wrap/python/spot.i, wrap/python/cgi/Makefile.am,
|
||
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
|
||
wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
|
||
wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
|
||
wrap/python/tests/run.in: Add Copyright license.
|
||
|
||
* src/misc/minato.cc: Include cassert.
|
||
|
||
* src/misc/minato.cc, src/misc/minato.hh: New files.
|
||
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Use minato_isop.
|
||
|
||
2003-11-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/ltltest/Makefile.am (AM_CXXFLAGS): New variable.
|
||
* tgba/bdddict.hh (bdd_dict::register_propositions,
|
||
bdd_dict::register_accepting_variables): New methods.
|
||
* src/bdddict.cc: Likewise.
|
||
* tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
|
||
tgba_explicit::add_accepting_conditions): New methods.
|
||
(tgba_explicit::get_init_state): Add an "empty" initial
|
||
state to empty automata.
|
||
* tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
|
||
tgba_explicit::add_accepting_conditions): New methods.
|
||
* tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
|
||
Add dupexp.hh and dupexp.cc.
|
||
* tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
|
||
* tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
|
||
(check_SCRIPTS): Add dupexp.test.
|
||
(CLEANFILES): Add output1 and output2.
|
||
* tgbatest/dupexp.test: New file.
|
||
* tgbatest/ltl2tgba.cc: Handle -s and -S.
|
||
* tgbatest/tgbaread.cc: Remove unused variable exit_code.
|
||
|
||
* src/ltlparse/ltlscan.ll: Include ltlparse/parsedecl.hh,
|
||
not parsedecl.hh.
|
||
* src/tgbaparse/tgbascan.ll: Likewise, include tgbaparse/parsedecl.hh.
|
||
|
||
2003-11-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Check whether the state is in the current SCC before passing it
|
||
to h_filt().
|
||
|
||
2003-11-07 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::first_): New
|
||
attribute.
|
||
(tgba_succ_iterator_gspn_eesrg::step): Use first_. Loop until
|
||
succ returns some successors.
|
||
Report from Soheib Baarir.
|
||
|
||
2003-11-06 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step): Fix
|
||
the iteration logic.
|
||
(tgba_succ_iterator_gspn_eesrg::tgba_succ_iterator_gspn_eesrg): Make
|
||
sure not to free successors_ twice.
|
||
(tgba_succ_iterator_gspn_eesrg::done): Fix definition.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_gspn_eesrg::get_init_state): Do not
|
||
call get_init_state(), use 0 instead.
|
||
(tgba_gspn_eesrg::format_state): Handle the case where s->left() == 0.
|
||
Reported by Soheib Baarir.
|
||
|
||
* src/ltlparse/ltlscan.ll: Cosmetics.
|
||
|
||
* configure.ac: Bump version to 0.0k.
|
||
|
||
2003-11-03 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
|
||
Really Skip unknown variables.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0j.
|
||
|
||
* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
|
||
Skip unknown variables.
|
||
|
||
* iface/gspn/gspn.cc
|
||
(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
|
||
and prop_kind() arguments on error.
|
||
|
||
* iface/gspn/eesrg.cc
|
||
(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
|
||
argument on error.
|
||
|
||
* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)): cd into
|
||
$(srcdir) before running bison, so that bison does not put
|
||
absolute filenames in generated files.
|
||
* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.
|
||
Reported by Soheib Baarir.
|
||
|
||
* iface/gspn/Makefile.am (gspn_HEADERS): Add eesrg.hh.
|
||
Reported by Soheib Baarir.
|
||
|
||
2003-10-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* README: More build instructions.
|
||
* HACKING: Update.
|
||
|
||
* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
|
||
$(srcdir).
|
||
|
||
2003-10-30 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: Define LIBGSPNESRG_LDFLAGS.
|
||
* iface/gspn/Makefile.am (gspn_HEADERS): Add common.hh.
|
||
(libspotgspn_la_SOURCES): Add common.cc.
|
||
(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
|
||
(libspotgspneesrg_la_SOURCES, ltlgspn_eesrg_SOURCES)
|
||
(dotty_eesrg_LDADD, dotty_eesrg_CPPFLAGS): New variables.
|
||
(lib_LTLIBRARIES): Add libspotgspneesrg.la.
|
||
(check_PROGRAMS): Add dottygspn-eesrg.
|
||
* iface/gspn/gspn.hh, iface/gspn/gspn.cc
|
||
(gspn_exeption, operator<<(gspn_exeption), gspn_environment): Move ...
|
||
* iface/gspn/common.hh, iface/gspn/common.cc: ... in these new files.
|
||
* iface/gspn/eesrg.hh, iface/gspn/eesrg.cc, iface/gspn/dottyeesrg.cc:
|
||
New files.
|
||
|
||
2003-10-28 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
|
||
Simplify, comment, and free memory.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (triplet): New class.
|
||
(emptiness_check::accepting_path): Simplify, comment,
|
||
derecursive, and free memory...
|
||
|
||
2003-10-27 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (connected_component): Split
|
||
into ...
|
||
(emptiness_check::connected_component,
|
||
emptiness_check::connected_component_set): ... these.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::h_filt,
|
||
emptiness_check::~emptiness_check) New methods.
|
||
(emptiness_check::check): Release all iterators in todo on exit.
|
||
(emptiness_check::counter_example): Rewrite the BFS logic.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::h_filt,
|
||
emptiness_check::~emptiness_check): New methods.
|
||
|
||
* src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy_succ_iterator::~tgba_tba_proxy_succ_iterator):
|
||
Delete the proxied iterator.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
|
||
Remove unused tmp_last, best_lst, and tmp_acc variables.
|
||
|
||
2003-10-24 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
|
||
Rewrite initialization.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
|
||
Fix memory leak.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check):
|
||
Simplify, reorganize, and comment.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::root_component):
|
||
Rename as ...
|
||
(emptiness_check::root): ... this, to follow the paper.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc: Remove some superfluous
|
||
`emptiness_check::'.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::remove_component):
|
||
Rewrite.
|
||
|
||
2003-10-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check,
|
||
emptiness_check::counter_example): Simplify access to hashes
|
||
after calls to find() for the same element..
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (connected_component::set_of_state):
|
||
Rename as ...
|
||
(connected_component::set_type): ... this, and define as a hash_set.
|
||
(connected_component::has_state): New method.
|
||
* src/tgbaalgos/emptinesscheck.cc (connected_component::has_state):
|
||
New method.
|
||
(emptiness_check::counter_example, emptiness_check::complete_cycle,
|
||
emptiness_check::accepting_path): Simplify using has_state().
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::seen_state_num):
|
||
Rename as ...
|
||
(emptiness_check::h): ... this, and define as a hash_map.
|
||
(emptiness_check::remove_component): Remove superfluous state_map
|
||
argument.
|
||
* src/tgbaalgos/emptinesscheck.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
|
||
Remove superfluous includes.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::emptiness_check):
|
||
New, take the automaton to work on, and store it ...
|
||
(emptiness_check::aut_): ... in this new attribute.
|
||
(emptiness_check::tgba_emptiness_check): Rename as ...
|
||
(emptiness_check::check): ... this, and remove the automata
|
||
argument.
|
||
(emptiness_check::counter_example, emptiness_check::print_result,
|
||
emptiness_check::remove_component, emptiness_check::accepting_path,
|
||
emptiness_check::complete_cycle): Remove the automata argument.
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
|
||
iface/gspn/ltlgspn.cc: Adjust.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh (connected_component::not_null,
|
||
connected_component::transition_acc,
|
||
connected_component::nb_transition,
|
||
connected_component::nb_state): Remove these unused attributes.
|
||
(connected_component::connected_component): Merge the two
|
||
definitions into one.
|
||
(connected_component::~connected_component): Remove.
|
||
(connected_component::isAccepted): Delete, unused.
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(connected_component::connected_component,
|
||
connected_component::~connected_component): Adjust.
|
||
(connected_component::isAccepted): Delete.
|
||
(spot):
|
||
|
||
* src/tgbatest/emptchk.test: Typo.
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh
|
||
(emptiness_check::remove_component, emptiness_check::root_component,
|
||
emptiness_check::seen_state_num, emptiness_check::suffix): Move in
|
||
private part.
|
||
(emptiness_check::arc_accepting, emptiness_check::todo): Move ...
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check): ... as local variables
|
||
of this function.
|
||
* src/tgbaalgos/emptinesscheck.hh (emptiness_check::vec_component):
|
||
Move ...
|
||
(emptiness_check::counter_example): ... as local variable of this
|
||
function.
|
||
* src/tgbaalgos/emptinesscheck.hh (pair_state_iter, triplet):
|
||
Move ...
|
||
* src/tgbaalgos/emptinesscheck.cc (pair_state_iter, triplet):
|
||
... here.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
|
||
Indent output as in the magic search.
|
||
|
||
* src/tgbatest/spotlbtt.test: Add notice about long run time.
|
||
|
||
Merge emptinesscheckexplicit into ltl2tgba.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove
|
||
emptinesscheckexplicit.
|
||
(emptinesscheckexplicit_SOURCES): Remove.
|
||
(TESTS): Replace emptinesscheckexplicit.test by emptchke.test.
|
||
* src/tgbatest/emptinesscheckexplicit.cc,
|
||
src/tgbatest/emptinesscheckexplicit.test: Delete.
|
||
* src/tgbatest/empchke.test: New file.
|
||
* src/tgbatest/ltl2tgba.cc: Add support for -X.
|
||
|
||
Merge emptiness-checks tests into ltl2tgba.
|
||
* src/tgbatest/Makefile (check_PRORGRAMS): Remove
|
||
emptinesscheck and ltlmagic.
|
||
(emptinesscheck_SOURCES, ltlmagic_SOURCES): Remove.
|
||
(TESTS): Replace emptinesscheck.test and ltlmagic.test by
|
||
emptchk.test.
|
||
* src/tgbatest/emptinesscheck.test, src/tgbatest/ltlmagic.test:
|
||
Delete.
|
||
* src/tgbatest/emptchk.test: New file.
|
||
* src/tgbatest/emptinesscheck.cc, src/tgbatest/ltlmagic.cc:
|
||
Delete.
|
||
* src/tgbatest/ltl2tgba.cc: Add support for -e, -E, -m, -M, and -n.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check): Do not print anything.
|
||
(emptiness_check::counter_example): Assume that tgba_emptiness_check
|
||
has already been called.
|
||
|
||
2003-10-22 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::seq_counter, emptiness_check::periode): Rename as ...
|
||
(emptiness_check::prefix, emptiness_check::period): ... these.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc
|
||
(emptiness_check::tgba_emptiness_check,
|
||
emptiness_check::accepting_path): Simplify BDD operations.
|
||
|
||
* src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh:
|
||
Reindent.
|
||
(emptiness_check::~emptiness_check, emptiness_check::emptiness_check):
|
||
Remove, unused.
|
||
|
||
2003-10-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc (main): Allow invocations with
|
||
only one atomic proposition.
|
||
|
||
2003-10-14 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* src/misc/bddalloc.cc (bdd_allocator::initialize): Augment
|
||
bdd_init()'s arguments.
|
||
|
||
2003-10-08 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: Use command-line options to
|
||
select algorithms, not #defines.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Remove eltlgspn-srg,
|
||
efmgspn-srg, fmgspn-rg, and fmgspn-srg and their associated
|
||
source variables. These are all replaced by
|
||
ltlgspn-rg and ltlgspn-srg.
|
||
* iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
|
||
iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
|
||
iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
|
||
iface/gspn/udcsltl.test: Adjust calls to ltlgspn-srg.
|
||
|
||
* iface/gspn/Makefile.am (XFAIL_TESTS): Remove.
|
||
|
||
2003-10-06 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* iface/gspn/ltlgspn.cc: We call tgba_emptiness_check before
|
||
counter_example. And we print the prefix and the periode of
|
||
counter_example's result.
|
||
* src/tgbatest/emptinesscheckexplicit.cc (main):
|
||
We call tgba_emptiness_check before counter_example.
|
||
* src/tgbatest/emptinesscheck.cc (main):
|
||
We call tgba_emptiness_check before counter_example.
|
||
* src/tgbaalgos/emptinesscheck.hh (spot):
|
||
(spot::print_result): New methode to print the prefix and the
|
||
periode of counter_example's result.
|
||
* src/tgbaalgos/emptinesscheck.cc (spot): counter_example doesn't
|
||
call tgba_emptiness_check. counter_example must be executed after
|
||
calling tgba_emptiness_check. Remove tgba_emptiness_check calls.
|
||
(print_result): New methode to print the prefix and the
|
||
periode of counter_example's result. Remove most of all std::cout
|
||
during execution of emptiness_check's methodes.
|
||
|
||
2003-10-02 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* iface/gspn/udcsfm.test, iface/gspn/udcsefm.test: New files.
|
||
* iface/gspn/Makefile.am (TESTS) Add them.
|
||
(check_PROGRAMS): Add emgspn-srg.
|
||
(efmgspn_srg_SOURCES, efmgspn_srg_LDADD, efmgspn_srg_CPPFLAGS): New
|
||
variables.
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: Complete.
|
||
|
||
* src/ltlparse/ltlscan.ll: Allow doubly quoted atomic propositions.
|
||
|
||
2003-10-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test,
|
||
iface/gspn/dcswaveltl.test, iface/gspn/dcswaveeltl.test,
|
||
iface/gspn/dcswavefm.test: Do not accept $? = 0 when
|
||
a failure is expected.
|
||
|
||
* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: New files
|
||
* iface/gspn/Makefile.am (TESTS): Add them.
|
||
(XFAIL_TESTS): Add udcseltl.test.
|
||
* iface/gspn/example/udcs/udcs.net, iface/gspn/example/udcs/udcs.def
|
||
iface/gspn/example/udcs/udcs.tobs: New files.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): Add them.
|
||
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add eltlgspn-srg.
|
||
(eltlgspn_srg_SOURCES, eltlgspn_srg_LDADD, eltlgspn_srg_CPPFLAGS):
|
||
New variables.
|
||
(TESTS): Add dcswaveeltl.test.
|
||
* iface/gspn/dcswaveeltl.test: New file.
|
||
* iface/gspn/ltlgspn.cc [CEC]: Use emptiness_check.
|
||
|
||
* m4/debug.m4, m4/devel.m4, m4/gccoptim.m4, m4/ndebug.m4: New files.
|
||
* Makefile.am (EXTRA_DIST): Add them.
|
||
* configure.ac: Call adl_ENABLE_DEVEL, adl_ENABLE_DEBUG, ad_GCC_OPTIM,
|
||
and adl_NDEBUG.
|
||
|
||
2003-09-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than, state_ptr_equal):
|
||
Declare as std::binary_function.
|
||
(state_ptr_hash): Declare as std::unary_function.
|
||
* src/tgbaalgos/lbtt.cc (state_acc_pair_equal,
|
||
state_acc_pair_hash): Likewise.
|
||
* src/misc/bddlt.hh (bdd_less_than): Likewise.
|
||
* src/misc/hash.hh (ptr_hash, string_hash): Likewise.
|
||
|
||
2003-09-25 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* src/tgbatest/emptinesscheckexplicit.test,
|
||
src/tgbatest/emptinesscheckexplicit.cc
|
||
src/tgbatest/emptinesscheck.test,
|
||
src/tgbatest/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.cc,
|
||
src/tgbaalgos/emptinesscheck.hh: New files.
|
||
|
||
2003-09-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh: Rename as ...
|
||
* src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.hh:
|
||
... this, and rename ltl_to_tgba() as ltl_to_tgba_lacim as well.
|
||
* iface/gspn/ltlgspn.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlmagic.cc,
|
||
src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
|
||
src/tgbatest/tripprod.cc, wrap/python/spot.i,
|
||
wrap/python/cgi/ltl2tgba.in, wrap/python/tests/interdep.py,
|
||
wrap/python/tests/ltl2tgba.py: Adjust.
|
||
|
||
2003-09-11 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh: Include cassert.
|
||
|
||
2003-08-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state::hash): New method.
|
||
(state_ptr_equal, state_ptr_hash): New functors.
|
||
* src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash):
|
||
New method.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
|
||
(state_explicit::hash): New method.
|
||
(ns_map, sn_map): Use Sgi::hash_map instead of std::map.
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(state_product::hash): New method.
|
||
* src/tgba/tgbatba.cc (state_tba_proxy::hash): New method.
|
||
* src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine
|
||
using Sgi::hash_map or Sgi::hash_set.
|
||
(lbtt_reachable): Don't erase a key that is pointed to by an
|
||
iterator.
|
||
* src/tgbaalgos/reachiter.cc
|
||
(tgba_reachable_iterator::~tgba_reachable_iterator): Likewise.
|
||
* src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise.
|
||
* src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map.
|
||
* src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map.
|
||
* iface/gspn/gspn.cc (state_gspn::hash): New method.
|
||
* src/misc/hash.hh (string_hash): New functor.
|
||
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::all_accepting_conditions)
|
||
Compute all_accepting_conditions_ from neg_accepting_conditions_,
|
||
not by browsing the dictionary. The dictionary also contains
|
||
accepting conditions from other automata... This bug was a
|
||
consequence of the change from 2003-07-14.
|
||
* src/tgbaalgos/save.cc (save_bfs::start()): Likewise, do not
|
||
browse the dictionary to print accepting conditions. Call
|
||
->all_accepting_conditions() instead.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Typo
|
||
from 2003-08-22 in the computation of all_accepting_conditions_.
|
||
* src/tgbatest/explpro3.test: New file.
|
||
* src/tgbatest/Makefile.am (TESTS): Add explpro3.test.
|
||
* src/tgbatest/explprod.test, src/tgbatest/explpro2.test,
|
||
src/tgbatest/tripprod.test: Sort the output using Perl.
|
||
|
||
2003-08-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Rewrite all std::map<const formula*, ...> as
|
||
Sgi::hash_map<const formula*, ...>.
|
||
|
||
* src/misc/hash.hh: New file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add it.
|
||
* src/ltlvisit/dotty.cc (dotty_visitor::map): Use a hash_map instead
|
||
of a map.
|
||
* src/tgba/bdddict.hh (bdd_dict::fv_map, bdd_dict::vf_map,
|
||
bdd_dict::ref_set, bdd_dict::var_map): Define as hash_map or
|
||
hash_set.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::fv_map,
|
||
translate_dict::vf_map): Likewise.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::acc_map_): Likewise.
|
||
* src/tgba/tgbatba.hh, src/tgbaalgos/reachiter.hh: Include <map>.
|
||
|
||
2003-08-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than): Make sure left is
|
||
non-null. Suggested by Denis Poitreneaud.
|
||
|
||
2003-08-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/Makefile.am (MAINTAINERCLEANFILES): Add
|
||
buddy_wrap.cxx and buddy.py.
|
||
|
||
2003-08-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/magic.cc (seen_with_magic, seen_without_magic): Remove.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Fix display of relations for
|
||
tgba_bdd_concrete automata.
|
||
|
||
Fix computation of product acceptance conditions, when the
|
||
two operands share some acceptance conditions.
|
||
* src/tgba/tgbaproduct.hh (tgba_product::left_acc_complement_,
|
||
tgba_product::right_acc_complement_): New attribute.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Set them.
|
||
(tgba_product::succ_iter): Use them.
|
||
* src/tgba/explpro2.test: New file.
|
||
* src/tgba/Makefile.am (TESTS): Add it.
|
||
|
||
2003-08-20 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* tgba/tgbaproduct.cc, tgba/tgbaproduct.hh:
|
||
(state_bdd_product, tgba_product_succ_iterator): Rename as ...
|
||
(state_product, tgba_succ_iterator_product): ... these.
|
||
|
||
* iface/gspn/dcswavefm.test: New file.
|
||
* iface/gspn/Makefile.am (check_PROGRAMS): Add fmgspn-rg and
|
||
fmgspn-srg.
|
||
(fmgspn_rg_SOURCES, fmgspn_rg_CPPFLAGS, fmgspn_rg_LDADD,
|
||
fmgspn_srg_SOURCES, fmgspn_srg_CPPFLAGS, fmgspn_srg_LDADD):
|
||
New variables.
|
||
(TESTS): Add dcswavefm.test.
|
||
|
||
2003-08-19 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlast/formula.hh: Make it clear that ref() and unref()
|
||
deals with one node, not a entire formula.
|
||
|
||
2003-08-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0i.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0h.
|
||
|
||
* wrap/python/cgi/Makefile.am (CLEANFILES): Clean ltl2tgba.py.
|
||
|
||
* wrap/python/tests/ltl2tgba.test: Run $srcdir/ltl2tgba.py, not
|
||
ltl2tgba.py.
|
||
|
||
2003-08-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
This implements Couvreur's FM'99 ltl2tgba translation.
|
||
* src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
|
||
(bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
|
||
bdd_dict::is_registered_accepting_variable): ... these.
|
||
* src/tgba/bdddict.hh: Likewise.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
|
||
(tgba_explicit::declare_accepting_condition): Arrange so that this
|
||
function can be called during the construction of the automaton.
|
||
(tgba_explicit::complement_all_accepting_conditions): New method.
|
||
(tgba_explicit::has_accepting_condition): Adjust to call
|
||
bdd_dict::is_registered_accepting_variable.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
|
||
tgba_explicit::complement_all_accepting_conditions): New methods.
|
||
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
|
||
New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
|
||
libtgbaalgos_la_SOURCES): Add them.
|
||
* src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
|
||
and tbalbtt.
|
||
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
|
||
* src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
|
||
* src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
|
||
* src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
|
||
"spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
|
||
also check the ltl2tgba_fm translator.
|
||
* wrap/python/spot.i: Wrap ltl2tgba_fm.
|
||
* wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
|
||
between ltl2tgba and ltl2tgba_fm.
|
||
* wrap/python/tests/ltl2tgba.py: Add support for the -f option.
|
||
* wrap/python/tests/ltl2tgba.test: Try the -f option.
|
||
|
||
varnum can be augmented by other allocator. Keep track
|
||
of a local varnum (lvarnum) in each allocator.
|
||
* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Initialize
|
||
lvarnum.
|
||
(bdd_allocator::extvarnum): New method.
|
||
(bdd_allocator::allocate_variables): Use lvarnum and extvarnum.
|
||
* src/misc/bddalloc.hh (bdd_allocator::extvarnum): New mathod.
|
||
(bdd_allocator::lvarnum): New variable.
|
||
|
||
2003-08-14 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/state.hh, src/tgba/statebdd.hh, src/tgba/statebdd.cc:
|
||
Remove the translate() method. Useless since 2003-07-14.
|
||
|
||
2003-08-11 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/Makefile.am (SUBDIRS): Build `.' first.
|
||
* wrap/python/cgi/Makefile.am (ltl2tgba.py): Depend on Makefile.
|
||
|
||
2003-08-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Revamp the multop interface to allow some basic optimizations like
|
||
not constructing a single-child multop.
|
||
* src/ltlast/multop.hh (multop::instance(type)): Remove.
|
||
(multop::instance(type, formula*, formula*)): Return a formula*.
|
||
(multop::instance(type, vec*)): Make it public and return a formula*.
|
||
(multop::add_sorted, multop::add):
|
||
* src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite.
|
||
(multop::instance(type)): Delete.
|
||
(multop::instance(type, formula*, formula*)): Adjust.
|
||
(multop::add_sorted, multop::add): Remove.
|
||
* src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust.
|
||
* src/ltlvisit/nenoform.cc
|
||
(negative_normal_form_visitor::::visit(multop*)) Adjust.
|
||
* src/ltltest/equals.test: Make sure `a & a' and `a' are equals.
|
||
* wrap/python/tests/ltlsimple.py: Adjust.
|
||
|
||
* src/tgba/succiterconcrete.cc, src/tgba/tgbaexplicit.cc,
|
||
src/tgba/tgbatba.cc, src/tgbaalgos/lbtt.cc: Use `-' instead of `& !'
|
||
between two BDDs. That's one less call to BuDDy.
|
||
|
||
* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test:
|
||
Adjust expected output after 2003-08-07's change.
|
||
|
||
* src/tgba/bdddict.hh: Typo in comments.
|
||
|
||
* src/ltlenv/environment.hh: Typo in comments.
|
||
|
||
2003-08-08 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Handle and diagnose mismatched parentheses.
|
||
* src/ltltest/parseerr.test: Add some examples.
|
||
|
||
2003-08-07 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Convert GIFs to PNGs. Restrict
|
||
the size of dot's output to 1024x1024.
|
||
* src/tgbaalgos/dotty.cc (dotty_bfs::start): Do not preset
|
||
the size of the graph. Set height=0 for the invisible state.
|
||
|
||
2003-08-06 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy: Fix precedence OP_OR < OP_XOR < OP_AND.
|
||
* src/ltlast/binop.cc (binop::instance): Order operands for
|
||
associative operators, so that e.g. "a xor b" and "b xor a" are
|
||
mapped to the same formula.
|
||
* src/ltltest/equals.test: Check this.
|
||
|
||
* src/ltlvisit/dotty.cc (draw_node_): s/shabe/shape/.
|
||
(visit): Draw rectangular nodes for atomic propositions and
|
||
constant. This is an attempt to mimic BuDDy's output.
|
||
|
||
* wrap/python/cgi/ltl2tgba.in: Handle show_formula_dot and
|
||
show_formula_gif.
|
||
|
||
* src/ltlvisit/dotty.hh (dotty): Move the ostream argument first.
|
||
* src/ltlvisit/dump.hh (dump): Likewise.
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/dump.cc: Adjust.
|
||
|
||
2003-08-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/misc/version.hh, src/misc/version.cc: New files.
|
||
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
|
||
* wrap/python/spot.i: Include misc/version.hh.
|
||
* wrap/python/cgi/ltl2tgba.in: Print spot.version().
|
||
|
||
* README: Update layout.
|
||
|
||
* wrap/python/cgi/Makefile.am, wrap/python/cgi/ltl2tgba.in,
|
||
wrap/python/cgi/README: New files.
|
||
* wrap/python/Makefile.am (SUBDIRS): Add cgi.
|
||
* configure.ac: Output wrap/python/cgi/Makefile.
|
||
|
||
* wrap/python/spot.i: Add an ostringstream emulation.
|
||
|
||
2003-08-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/spot.i: Add an ofstream emulation.
|
||
|
||
* wrap/python/spot.i: Declare spot::tgba::get_init_state,
|
||
spot::tgba::succ_iter, and spot::tgba_succ_iterator::current_state
|
||
as constructors.
|
||
|
||
* wrap/python/Makefile.am (lib_LTLIBRARIES)
|
||
(libspotswigpy_la_SOURCES, libspotswigpy_la_CFLAGS)
|
||
(libspotswigpy_la_LDFLAGS): New variables.
|
||
(_spot_la_LIBADD, _buddy_la_LDFLAGS): Link with libspotswigpy.la
|
||
($(srcdir)/spot_wrap.cxx, $(srcdir)/buddy_wrap.cxx): Run
|
||
swig with -c.
|
||
* wrap/python/tests/libpy.c: New file.
|
||
* wrap/python/tests/run.in: Run python if no arguments are given.
|
||
* wrap/python/tests/interdep.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add interdep.py.
|
||
|
||
* wrap/python/spot.i: Declare spot::ltl_to_tgba as a constructor.
|
||
* wrap/python/tests/ltl2tgba.py: Do not force `thisown=1' on tgba
|
||
objects.
|
||
|
||
* wrap/python/spot.i: Include headers from tgba/ and tgbaalgos/.
|
||
* wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test:
|
||
New files.
|
||
|
||
* wrap/python/tests/Makefile.am (TESTS): Add ltl2tgba.test.
|
||
(EXTRA_DIST): Add ltl2tgba.py.
|
||
* wrap/python/tests/run.in: Distinguish *.py and *.test.
|
||
|
||
* wrap/python/tests/ltlparse.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
2003-08-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* wrap/python/buddy.i: New file.
|
||
* wrap/python/Makefile.am (EXTRA_DIST): Add it.
|
||
(python_PYTHON, MAINTAINERCLEANFILES): Add buddy.py.
|
||
(pyexec_LTLIBRARIES): Add _buddy.la.
|
||
(_buddy_la_SOURCES, _buddy_la_LDFLAGS, $(srcdir)/buddy_wrap.cxx)
|
||
($(srcdir)/buddy.py): New.
|
||
* wrap/python/tests/bddnqueen.py: New file.
|
||
* wrap/python/tests/Makefile.am (TESTS): Add it.
|
||
|
||
* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh: Merge the
|
||
two unabbreviate_logic definitions (const and non-const) into a
|
||
function that takes a const formula* and return a non-const
|
||
formula*. Since formula* is convertible to const formula*, and
|
||
the const version of the function just called the non-onst one, it
|
||
makes no sense to keep both. Also, it confused Swig.
|
||
* src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh: Likewise
|
||
for negative_normal_form.
|
||
* src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh: Likewise
|
||
for unabbreviate_ltl.
|
||
* src/ltlvisit/clone.cc, src/ltlvisit/clone.hh: Likewise for clone.
|
||
* src/ltlvisit/destroy.cc, src/ltlvisit/destroy.hh: Likewise
|
||
for destroy.
|
||
|
||
* configure.ac: Bump version to 0.0g.
|
||
|
||
* configure.ac, NEWS: Bump version to 0.0f.
|
||
|
||
* iface/gspn/simple.test, iface/gspn/dcswave.test,
|
||
iface/gspn/dcswaveltl.test: Make sure the example directory
|
||
is writable.
|
||
* m4/lbtt.m4, m4/buddy.m4: Always configure buddy/ and lbtt/,
|
||
regardless of the --with-included-buddy and --with-included-lbtt
|
||
settings.
|
||
|
||
* wrap/python/Makefile.am (python_PYTHON, _spot_la_SOURCES):
|
||
Explicitely refer to spot_wrap.cxx and spot.py as
|
||
$(srcdir)/spot_wrap.cxx and $(srcdir)/spot.py.
|
||
(spot_wrap.cxx, spot.py):
|
||
|
||
* wrap/python/Makefile.am (spot_wrap.cxx, spot.py): Lookup
|
||
spot.i in $(srcdir).
|
||
|
||
2003-07-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||
|
||
* configure.ac: Output wrap/python/tests/Makefile
|
||
and wrap/python/tests/run.
|
||
* wrap/python/Makefile.am (SUBDIRS): New variable.
|
||
* wrap/python/spot.i: Include all formulae headers from ltlast/,
|
||
as well as ltlvisit/destroy.hh.
|
||
(spot::ltl::formula::__cmp__, spot::ltl::formula::__str__): New
|
||
functions.
|
||
* wrap/python/tests/Makefile.am, wrap/python/tests/ltlsimple.py,
|
||
wrap/python/tests/run.in: New files.
|
||
|
||
* wrap/python/ltihooks.py: New file.
|
||
* wrap/python/Makefile.am (EXTRA_DIST): Add ltihooks.py.
|
||
|
||
* wrap/Makefile.am, wrap/spot.i: Move ...
|
||
* wrap/python/Makefile.am, wrap/python/spot.i: ... here.
|
||
|
||
* wrap/Makefile.am: New file.
|
||
* configure.ac: Output wrap/python/Makefile.
|
||
|
||
* src/misc/const_sel.hh: Delete.
|
||
* src/misc/Makefile.am (misc_HEADERS): Remove const_sel.hh.
|
||
|
||
* src/tgbaalgos/magic.cc, src/tgbaalgos/reachiter.cc: Include cassert.
|
||
* iface/Makefile.am (SUBDIRS): Recurse in gspn only if condition
|
||
WITH_GSPN.
|
||
|
||
2003-07-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn::format_state): Call gspn's
|
||
print_state.
|
||
|
||
* iface/gspn/dcswaveltl.test: Check for a false formula too.
|
||
|
||
* iface/gspn/dcswaveltl.test, iface/gspn/ltlgspn.cc: New files.
|
||
* iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test.
|
||
(ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
|
||
(ltlgspn_srg_SOURCES): New variables.
|
||
(check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.
|
||
|
||
* iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
|
||
gspn.hh.
|
||
|
||
* src/tgba/tgba.hh, src/tgba/tgba.cc
|
||
(tgba::project_state): New method.
|
||
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
|
||
(tgba_product::project_state): New method.
|
||
* src/tgba/tgbabta.hh, src/tgba/tgbabta.cc
|
||
(tgba_bta_proxy::project_state): New method.
|
||
* src/tgbaalgos/magic.cc (magic_search::print_result): Take
|
||
a restrict argument.
|
||
|
||
2003-07-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlscan.ll: Allow /\, \/, and xor, used in LBTT.
|
||
* src/ltltest/parse.test: Test them.
|
||
|
||
* src/tgbaalgos/lbtt.cc: Typos.
|
||
|
||
* lbtt/: Upgrade to lbtt 1.0.2.
|
||
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add tbalbtt.
|
||
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS): New variables.
|
||
* src/tgbatest/spotlbtt.cc [TBA]: Build tba proxies conditionally.
|
||
* src/tgbatest/spotlbtt.test: Include tbalbtt in the tests.
|
||
|
||
2003-07-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
|
||
(tgba_tba_proxy::state_is_accepting): New method.
|
||
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
|
||
tgbaalgos_HEADERS): Add them.
|
||
* src/tgbatest/ltlmagic.cc, src/tgbatest/ltlmagic.test: New files.
|
||
* src/tgbatest/Makefile.am (TESTS, ltlmagic_SOURCES,
|
||
check_PROGRAMS): Add them.
|
||
|
||
2003-07-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgba.hh (tgba::~tgba): Make it public.
|
||
* src/tgba/tgbatba.cc, src/tgba/tgbatba.hh: New files.
|
||
* src/tgba/Makefile.am (tgba_HEADERS): Add tgbatba.hh.
|
||
(libtgba_la_SOURCES): Add tgbatba.cc.
|
||
* src/tgbatest/ltl2tgba.cc: Add option -D.
|
||
|
||
* src/tgbaalgos/lbtt.cc (bdd_less_than): Move ...
|
||
* src/misc/bddlt.hh: ... in this new file.
|
||
* src/misc/Makefile.am (misc_HEADERS): Add bddlt.hh.
|
||
|
||
* iface/gspn/dcswave.test: Comment state space sizes.
|
||
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add reachiters.hh.
|
||
(libtgbaalgos_la_SOURCES): Add reachiters.cc.
|
||
* src/tgbaalgos/dotty.cc, src/tgbaalgos/save.cc: Rewrite using
|
||
spot::tgba_reachable_iterator_breadth_first.
|
||
* src/tgbatest/explicit.test, src/tgbatest/tgbaread.test,
|
||
src/tgbatest/tripprod.test: Adjust expected output.
|
||
|
||
2003-07-24 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Output iface/gspn/defs.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): Add $(TESTS).
|
||
(TESTS, check_SCRIPTS, distclean-local): New.
|
||
* iface/gspn/dcswave.test, iface/gspn/simple.test,
|
||
iface/gspn/defs.in: New files.
|
||
* iface/gspn/dottygspn.cc (main): Take the list of properties
|
||
of interest in argument.
|
||
|
||
2003-07-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* iface/gspn/examples/DCSwave/DCSWave.def,
|
||
iface/gspn/examples/DCSwave/DCSWave.net
|
||
iface/gspn/examples/DCSwave/DCSWave.tobs,
|
||
iface/gspn/examples/simple/simple.def,
|
||
iface/gspn/examples/simple/simple.net,
|
||
iface/gspn/examples/simple/simple.tobs: New files, from
|
||
Yann Thierry-Mieg.
|
||
* iface/gspn/Makefile.am (EXTRA_DIST): New variables.
|
||
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_::tgba_gspn_private_):
|
||
Rethrow caught expections.
|
||
|
||
2003-07-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: Check for libgspnRG.a and libgspnSRG.a.
|
||
Define LIBGSPNRG_LDFLAGS and LIBGSPNSRG_LDFLAGS, not
|
||
LIBGSPN_LDFLAGS.
|
||
* iface/gspn/Makefile.am: Adjust, build dottygspn-rg and
|
||
dottygspn-srg instead of dottygspn.
|
||
* iface/gspn/gspn.cc (EVENT_TRUE): Undefine.
|
||
(tgba_gspn_private_::~tgba_gspn_private_): Free all_indexes.
|
||
* iface/gspn/dottygspn.cc (main): Destroy the automaton before
|
||
its dictionary.
|
||
|
||
2003-07-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Now succ_iter() can fetch extra information from
|
||
the root of a product to reduce its number of successors.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgba.cc.
|
||
* src/tgba/tgba.hh (tgba::succ_iter): Add the global_state and
|
||
global_automaton arguments.
|
||
(tgba::support_conditions, tgba::support_variables,
|
||
tgba::compute_support_conditions, tgba::compute_support_variables):
|
||
New functions.
|
||
(tgba::last_support_conditions_input_,
|
||
tgba::last_support_conditions_output_,
|
||
tgba::last_support_variables_input_,
|
||
tgba::last_support_variables_output_): New attributes.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
|
||
Handle the two new arguments.
|
||
(tgba_bdd_concrete::compute_support_conditions,
|
||
tgba_bdd_concrete::compute_support_variables): Implement them.
|
||
* src/tgba/tgbabddconcrete.hh: Adjust.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::succ_iter): Ignore
|
||
the two new arguments.
|
||
(tgba_explicit::compute_support_conditions,
|
||
tgba_explicit::compute_support_variables): Implement them.
|
||
* src/tgba/tgbaexplicit.hh: Adjust.
|
||
* src/tgba/tgbaproduct.cc (tgba_product::succ_iter): Handle the
|
||
two new arguments.
|
||
(tgba_product::compute_support_conditions,
|
||
tgba_product::compute_support_variables): Implement them.
|
||
* src/tgba/tgbaproduct.hh: Adjust.
|
||
* iface/gspn/gspn.cc (tgba_gspn_private_::last_state_cond_input,
|
||
tgba_gspn_private_::last_state_cond_output,
|
||
(tgba_gspn_private_::tgba_gspn_private_): Set last_state_cond_input.
|
||
(tgba_gspn_private_::~tgba_gspn_private_): Delete
|
||
last_state_cond_input.
|
||
(tgba_gspn_private_::state_conds): New function, eved out
|
||
from tgba_gspn::succ_iter.
|
||
(tgba_gspn::succ_iter): Use it. Use the two new arguments.
|
||
(tgba_gspn::compute_support_conditions,
|
||
tgba_gspn::compute_support_variables): New functions.
|
||
* iface/gspn/gspn.hh: Adjust.
|
||
|
||
* iface/gspn/gspn.cc (EVENT_TRUE): Override temporarily.
|
||
(tgba_gspn::succ_iter): Fix usage of cube.
|
||
|
||
2003-07-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gspnlib.m4: New file.
|
||
* configure.ac: Call AX_CHECK_GSPNLIB.
|
||
* Makefile.am (EXTRA_DIST): Add m4/gspnlib.m4.
|
||
* iface/gspn/Makefile.am (AM_CPPFLAGS): Add $(LIBGSPN_CPPFLAGS).
|
||
(libspotgspn_la_LIBADD, check_PROGRAMS, dottygspn_SOURCES,
|
||
dottygspn_LDADD): New variables.
|
||
* iface/gspn/gspn.hh (gspn_interface): New class.
|
||
(gspn_exeption): Take a string argument and adjust all callers.
|
||
(operator<<): Define for gspn_exeption.
|
||
* iface/gspn/gspn.cc (gspn_interface::gspn_interface,
|
||
gspn_interface::~gspn_interface): New.
|
||
* iface/gspn/gspnlib.h: Delete, it belongs to GSPN.
|
||
* iface/gspn/dottygspn.cc: New file.
|
||
|
||
2003-07-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/lbtt.m4 (AX_CHECK_LBTT): Set LBTT and LBTT_TRANSLATE
|
||
when using an already installed lbtt.
|
||
|
||
Homogenize passing of automata as pointers, not references.
|
||
Disallow copy for security.
|
||
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
|
||
tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
|
||
* src/tgba/tgbabddconcreteproduct.cc
|
||
(tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
|
||
product): Take operand automata as pointers.
|
||
* src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
|
||
(tgba_product): Disallow copy.
|
||
(tgba_product::tgba_product): Take operand automata as pointers.
|
||
* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
|
||
Take tgba arguments as pointer.
|
||
* src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
|
||
* src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
|
||
* src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
|
||
Likewise.
|
||
* src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
|
||
* src/tgbaalgos/save.hh (save): Likewise.
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
|
||
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
|
||
src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
|
||
src/tgbatest/tripprod.cc: Likewise.
|
||
|
||
2003-07-14 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Before this change, all automata would construct their own
|
||
dictionaries (map of BDD variables to LTL formulae). This was
|
||
cumbersome, because to multiply two automata we had to build a
|
||
common dictionary (the union of the two LTL formula spaces), and
|
||
install wrappers to translate each automaton's BDD answers into
|
||
the common dictionary. This translation, that had to be repeated
|
||
when several products were nested, was time consuming and was a
|
||
hindrance for some optimizations.
|
||
In the new scheme, all automata involved in a product must
|
||
share the same dictionary. An empty dictionary should be
|
||
constructed by the user and passed to the automaton' constructors
|
||
as necessary.
|
||
This huge change removes more code than it adds.
|
||
|
||
* src/Makefile.am (libspot_la_LIBADD): Add misc/libmisc.la.
|
||
* src/misc/bddalloc.hh, src/misc/bddalloc.cc: New files. These
|
||
partly replace src/tgba/bddfactory.hh and src/tgba/bddfactory.cc.
|
||
* src/misc/Makefile.am: Adjust to build bddalloc.hh and bddalloc.cc.
|
||
* src/tgba/bddfactory.hh, src/tgba/bddfactory.cc,
|
||
src/tgba/dictunion.hh, src/tgba/dictunion.cc,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabddtranslatefactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbatranslateproxy.hh, src/tgba/tgbatranslateproxy.cc:
|
||
Delete.
|
||
* src/tgba/bdddict.hh, src/tgba/bdddict.cc: New files. These
|
||
replaces tgbabdddict.hh and tgbabdddict.cc, and also part of
|
||
bddfactory.hh and bddfactory.cc.
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Adjust to
|
||
use bdd_dict* instead of tgba_bdd_dict&.
|
||
* src/tgba/succiterconcrete.cc (succ_iter_concrete::next()):
|
||
Get next_to_now from the dictionary.
|
||
* src/tgba/tgba.hh (tgba::get_dict): Return a bdd_dict*,
|
||
not a const tgba_bdd_dict*.
|
||
* src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh:
|
||
Adjust to use the new dictionary, stored in data_.
|
||
* src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh: Likewise. Plus
|
||
now_to_next_ is now also stored in the dictionary.
|
||
* src/tgba/tgbabddconcreteproduct.cc: Likewise. Now
|
||
that both operand share the same product, there is not
|
||
point in using tgba_bdd_translate_factory.
|
||
* src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh:
|
||
Store a bdd_dict (taken as constructor argument).
|
||
(tgba_bdd_core_data::~tgba_bdd_core_data): Remove.
|
||
(tgba_bdd_core_data::translate): Remove.
|
||
(tgba_bdd_core_data::next_to_now): Remove (now in dict).
|
||
(tgba_bdd_core_data::dict): New pointer.
|
||
* src/tgba/tgbabddfactory.hh: (tgba_bdd_factory::get_dict): Remove.
|
||
* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
|
||
Adjust to use the new dictionary.
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Likewise. Do
|
||
not use tgba_bdd_dict_union and tgba_bdd_translate_proxy anymore.
|
||
* src/tgbaalgos/lbtt.cc, src/tgbaalgos/save.cc: Adjust to
|
||
use bdd_dict* instead of tgba_bdd_dict&.
|
||
* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.cc: Likewise.
|
||
(ltl_to_tgba): Take a dict argument.
|
||
* src/tgbaparse/public.hh (tgba_parse): Take a dict argument.
|
||
* src/tgbaparse/tgbaparse.yy (tgba_parse): Take a dict argument.
|
||
* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
|
||
src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
|
||
src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Instantiate
|
||
a dictionary, and pass it to the automata' constructors.
|
||
* src/tgbatest/ltl2tgba.cc: Likewise, and remove the -o (defrag)
|
||
option.
|
||
* iface/gspn/gspn.hh (tgba_gspn::tgba_gspn): Take a bdd_dict argument.
|
||
(tgba_gspn::get_dict): Adjust return type.
|
||
* iface/gspn/gspn.cc: Do not use bdd_factory, adjust to
|
||
use the new dictionary instead.
|
||
|
||
2003-07-13 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Bump version to 0.0e.
|
||
|
||
* configure.ac: Bump version to 0.0d.
|
||
* NEWS, README: New files.
|
||
|
||
2003-07-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/lbtt.m4: Run lbtt-translate, not lbtt.
|
||
|
||
* iface/gspn/gspn.cc: Include cassert.
|
||
|
||
2003-07-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(multop)):
|
||
Forward root_ to children of And.
|
||
(ltl_trad_visitor::recurse): Take a root argument.
|
||
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::add_relation): Rename as ...
|
||
(tgba_bdd_concrete_factory::constrain_relation): ... this.
|
||
* src/tgba/tgbabddconcretefactory.cc, src/tgbaalgos/ltl2tgba.cc:
|
||
Adjust.
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::G)): Do
|
||
not create Now/Next variable when G is the root of the formula.
|
||
(ltl_trad_visitor::ltl_trad_visitor): Take a root argument.
|
||
(ltl_trad_visitor::recurse): Create a new visitor, do not copy
|
||
the current one.
|
||
(ltl_to_tgba): Build ltl_trad_visitor with root = true.
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::X)):
|
||
Remove FIXME about handling X(a U b) and X(a R b) better, it's
|
||
done naturally.
|
||
|
||
* src/tgbatest/spotlbtt.test: Make 100 rounds.
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Fix so that !p.!Acc[g].Acc[f] + p.!Acc[g].Acc[f] + p.Acc[g].!Acc[f]
|
||
is factored as !p.!Acc[g].Acc[f] + p.(!Acc[g].Acc[f] + Acc[g].!Acc[f]),
|
||
not !Acc[g].Acc[f] + p.Acc[g].!Acc[f].
|
||
|
||
2003-07-09 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* lbtt/: New directory. Contains a patched version of lbtt 1.0.1.
|
||
* Makefile.am (MAYBE_LBTT): New variables.
|
||
(SUBDIRS): Add $(MAYBE_LBTT).
|
||
(EXTRA_DIST): Add m4/lbtt.m4.
|
||
* configure.ac: Call AX_CHECK_LBTT.
|
||
* m4/lbtt.m4: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add spotlbtt.
|
||
(spotlbtt_SOURCES): New variables.
|
||
(TESTS): Add spotlbtt.test.
|
||
(CLEANFILE): Add config.
|
||
* src/tgbatest/defs.in (top_builddir, LBTT, LBTT_TRANSLATE): New
|
||
substitutions.
|
||
* src/tgbatest/spotlbtt.cc, src/tgbatest/spotlbtt.test: New files.
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Fix computation of states sharing the same accepting set.
|
||
|
||
Make sure we only output one initial state in LBTT's output.
|
||
* src/tgbaalgos/lbtt.cc (fill_todo): Add the 'first' argument
|
||
to designate initial states.
|
||
(lbtt_reachable): Adjust calls to fill_todo. Handle the
|
||
fake initial state accepting conditions specially.
|
||
* src/tgbaalgos/lbtt.hh: Update comments.
|
||
|
||
* src/tgbaalgos/lbtt.cc (lbtt_reachable): Do not end transitions
|
||
guards with -1 in output.
|
||
|
||
2003-07-08 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Add option -t to output the LBTT automata.
|
||
* src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add lbtt.hh.
|
||
(libtgbaalgos_la_SOURCES): Add lbtt.cc.
|
||
* src/tgba/bddprint.cc (print_sat_handler): Put a space after "!".
|
||
* src/tgbatest/readsave.test: Adjust spaces after "!".
|
||
|
||
* src/ltlvisit/dump.cc: Strip useless spot::ltl:: prefixes.
|
||
|
||
2003-07-07 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
First sketch of the GSPN wrapper objects.
|
||
* iface/gspn/gspn.cc, iface/gspn/gspn.hh: New files.
|
||
* iface/gspn/Makefile.am (libspotgspn_la_SOURCES): Add them.
|
||
|
||
* src/tgba/succiter.hh (current_state, current_conditions
|
||
current_accepting_conditions): Mark as const.
|
||
* src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
|
||
src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
|
||
src/tgba/tgbatranslateproxy.cc, src/tgba/tgbatranslateproxy.hh:
|
||
Likewise.
|
||
|
||
* iface/gspn/gspnlib.h: Fit 80 columns.
|
||
[__cplusplus]: Wrap everything under extern "C".
|
||
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::current_acc_): New attribute.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Set current_acc_.
|
||
(tgba_succ_iterator_concrete::current_accepting_conditions):
|
||
Simply return it.
|
||
|
||
* configure.ac: Output iface/Makefile and iface/gspn/Makefile.
|
||
* iface/Makefile.am, iface/gspn/Makefile.am: New files.
|
||
* Makefile.am (SUBDIRS): Add iface.
|
||
* iface/gspn/gspnlib.h: New file, from Yann and Souheib.
|
||
|
||
* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::tgba_bdd_core_data,
|
||
tgba_bdd_core_data::translate): Handle all_accepting_conditions.
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::finish): Fill all_accepting_conditions.
|
||
|
||
2003-07-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit): Declare
|
||
accepting conditions w.r.t. to Now variables, not Next.
|
||
|
||
2003-07-03 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaproduct.cc (tgba_product_succ_iterator::first):
|
||
Simplify, do not call next_non_false_() if either side is done.
|
||
|
||
* src/tgba/succiter.hh (tgba_succ_iterator::current_condition):
|
||
State that this is a boolean function.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::trans_dest_,
|
||
tgba_succ_iterator_concrete::trans_set_,
|
||
tgba_succ_iterator_concrete::trans_set_left_,
|
||
tgba_succ_iterator_concrete::neg_trans_set_): Remove.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete,
|
||
tgba_succ_iterator_concrete::first): Adjust to removed members.
|
||
(tgba_succ_iterator_concrete::next): Simplify, transitions
|
||
are no labelled by boolean functions, not only conjunctions.
|
||
Suggested by Denis Poitrenaud.
|
||
|
||
2003-07-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::translate): New
|
||
function.
|
||
* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::translate):
|
||
Likewise.
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
|
||
tgba_bdd_core_data::translate.
|
||
|
||
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
|
||
New attribute.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||
Handle nownext_set.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Use nownext_set to simplify.
|
||
|
||
Rewrite tgba_succ_iterator_concrete::next for the fourth time
|
||
(or is it the fifth?).
|
||
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::trans_dest_,
|
||
tgba_succ_iterator_concrete::trans_set_,
|
||
tgba_succ_iterator_concrete::trans_set_left_,
|
||
tgba_succ_iterator_concrete::neg_trans_set_): New attributes.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete): Initialize
|
||
new members.
|
||
(tgba_succ_iterator_concrete::first): Likewise.
|
||
(tgba_succ_iterator_concrete::next): Rewrite.
|
||
* tgba/tgbabddcoredata.hh (tgba_bdd_core_data::acc_set): New attribute.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||
Handle acc_set.
|
||
|
||
2003-07-01 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Translate
|
||
varandnext_set.
|
||
|
||
2003-06-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaparse/tgbaparse.yy (lines): Expect at last one line.
|
||
|
||
* doc/Doxyfile.in (HAVE_DOT): Set to YES to output
|
||
collaboration diagrams.
|
||
* doc/mainpage.dox: Typo.
|
||
|
||
* src/tgba/state.hh (state::as_bdd): Delete.
|
||
* src/tgba/tgbaproduct.hh (state_bdd_product): Inherit from state,
|
||
not state_bdd.
|
||
(state_bdd_product::state_bdd_product): Adjust.
|
||
* src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
|
||
Adjust.
|
||
|
||
* src/tgba/succiter.hh (tgba_bdd_succ_iterator::done):
|
||
Mark as const.
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::done): Likewise.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::done): Likewise.
|
||
* src/tgba/tgbaexplicit.cc
|
||
(tgba_explicit_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaproduct.cc
|
||
(tgba_product_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbaproduct.hh
|
||
(tgba_product_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbatranslateproxy.hh
|
||
(tgba_translate_proxy_succ_iterator::done): Likewise.
|
||
* src/tgba/tgbatranslateproxy.cc
|
||
(tgba_translate_proxy_succ_iterator::done): Likewise.
|
||
|
||
* src/tgba/succiterconcrete.cc
|
||
(tgba_succ_iterator_concrete::next): Call bdd_satoneset
|
||
on data_.varandnext_set. The previous implementation
|
||
was wrong for GFa.
|
||
* src/tgba/tgbabddcoredata.hh: Declare varandnext_set.
|
||
* src/tgba/tgbabddcoredata.cc: Handle varandnext_set.
|
||
|
||
* doc/Doxygen.in: Enable LaTeX output.
|
||
* doc/Makefile.am (spotref.pdf): New rule.
|
||
(EXTRA_DIST): Add spotref.pdf.
|
||
|
||
* src/tgba/tgbabddconcretefactory.cc:
|
||
(tgba_bdd_concrete_factory::tgba_bdd_concrete_factory): New.
|
||
(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
|
||
(tgba_bdd_concrete_factory::finish): Constraint Next variables
|
||
in the relation.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::now_to_next_): New variable.
|
||
|
||
2003-06-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Fix errors reported by ICC.
|
||
|
||
* src/tgba/state.hh (state_ptr_less_than::operator()): Make it const.
|
||
* src/tgba/tgbaproduct.cc: Include string.hh.
|
||
* src/ltlast/multop.hh (multop::add, multop::add_sorted): Do
|
||
not use qualified names in declarations.
|
||
* m4/gccwarn.m4 (CF_GXX_WARNINGS): Fix GXX test.
|
||
* src/ltlenv/defaultenv.hh, src/ltlenv/defaultenv.cc,
|
||
src/ltlenv/environment.hh: Add virtual destructors.
|
||
|
||
2003-06-26 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* Makefile.am (EXTRA_DIST): Add HACKING.
|
||
|
||
* configure.ac: Bump version to 0.0c.
|
||
|
||
* configure.ac: Bump version to 0.0b.
|
||
|
||
* INSTALL: New file.
|
||
|
||
* src/tgba/ltl2tgba.hh, src/tgba/ltl2tgba.cc: Move ...
|
||
* src/tgbaalgos/ltl2tgba.hh, src/tgbaalgos/ltl2tgba.cc: ... here.
|
||
* src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
|
||
* src/tgba/public.hh: Do not include ltl2tgba.hh.
|
||
* src/tgbatests/explprod.cc, src/tgbatests/ltl2tgba.cc,
|
||
src/tgbatests/ltlprod.cc, src/tgbatests/mixprod.cc,
|
||
src/tgbatests/reach.cc, src/tgbatests/tripprod.cc: Adjust inclusions.
|
||
|
||
* src/tgba/tgbabddcoredata.hh: Fix some Doxygen comments.
|
||
* src/ltlast/formula.hh: More Doxygen comments.
|
||
* src/tgba/tgba.hh: Use <tt> in Doxygen comments.
|
||
|
||
* doc/mainpage.dox: New file.
|
||
* doc/Makefile.am (EXTRA_DIST): Add mainpage.dox.
|
||
* doc/Doxyfile.in (INPUT): Add @srcdir@/mainpage.dox
|
||
|
||
* src/tgba/succiter.hh: Adjust comments about promises to
|
||
refer to accepting conditions.
|
||
* src/tgba/tgbabddconcretefactory.hh: Likewise.
|
||
* src/tgba/tgbabddcoredata.hh: Likewise.
|
||
* src/tgba/dictunion.cc: Likewise.
|
||
* src/tgba/tgba.hh: Likewise.
|
||
|
||
* doc/Makefile.am (doc): Typo.
|
||
* src/ltlvisit/tostring.hh (to_string): Add doxygen comments.
|
||
* src/ltlast/multop.hh (multop::paircmp): Add doxygen comments.
|
||
* src/tgba/tgbaexplicit.hh (tgba_explicit::transtion,
|
||
state_explicit, tgba_explicit_succ_iterator): Add doxygen comments.
|
||
* src/ltlvisit/postfix.hh: Typo.
|
||
|
||
* src/ltlast/Makefile.am (ltlastdir, ltlast_HEADERS): New variables.
|
||
(libltlast_la_SOURCES): Move all headers to ltlast_HEADERS.
|
||
* src/ltlenv/Makefile.am (ltlenvdir, ltlenv_HEADERS): New variables.
|
||
(libltlenv_la_SOURCES): Move all headers to ltlenv_HEADERS.
|
||
* src/ltlparse/Makefile.am (ltlparsedir, ltlparse_HEADERS): New
|
||
variables.
|
||
(libltlparse_la_SOURCES): Move all public headers to ltlparse_HEADERS.
|
||
* src/ltlvisit/Makefile.am (ltlvisitdir, ltlvisit_HEADERS): New
|
||
variables.
|
||
(libltlvisit_la_SOURCES): Move all headers to ltlparse_HEADERS.
|
||
* src/misc/Makefile.am (include_HEADERS): Rename as ..
|
||
(misc_HEADERS): ... this.
|
||
(miscdir): New variable.
|
||
* src/tgba/Makefile.am (tgbadir, tgba_HEADERS): New variables.
|
||
(libtgba_la_SOURCES): Move all headers to tgba_HEADERS.
|
||
* src/tgbaalgos/Makefile.am (tgbaalgosdir, tgbaalgos_HEADERS):
|
||
New variables.
|
||
(libtgbaalgos_la_SOURCES): Move all headers to tgbaalgos_HEADERS.
|
||
* src/tgbaparse/Makefile.am (tgbaparsedir, tgbaparse_HEADERS): New
|
||
variables.
|
||
(libtgbaparse_la_SOURCES): Move all public headers to
|
||
tgbaparse_HEADERS.
|
||
* src/tgbaparse/public.hh: Include ltlparse/location.hh, not
|
||
location.hh.
|
||
|
||
* doc/Makefile.am (stamp): Prefix $(srcdir) explicitely.
|
||
|
||
* m4/buddy.m4 (BUDDY_LDFLAGS): Use $(top_builddir), not $(top_srcdir).
|
||
* src/tgbaparse/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
|
||
|
||
* doc/Makefile.am: Rewrite to run Doxygen whenever Doxyfile.in
|
||
or configure.ac changes. Distribute the html doc.
|
||
* doc/Doxyfile.in (EXCLUDE_PATTERNS): Complete with
|
||
useless Bison classes.
|
||
(FILE_PATTERNS): Remove *.cc files.
|
||
|
||
Distribute BuDDy. Compile and link with the included version if
|
||
explicitely requested (--with-included-buddy) or if there is now
|
||
stuitable version already installed.
|
||
|
||
* buddy/: New directory. Contains a patched version of BuDDy 2.2.
|
||
* m4/buddy.m4: Make sure the installed BuDDy supports bdd_mergepairs.
|
||
Honor --with-included-buddy and --without-included-buddy. Define
|
||
the BUDDY_LDFLAGS and BUDDY_CPPFLAGS output variables, and the
|
||
WITH_INCLUDED_BUDDY Automake conditional
|
||
* Makefile.am [WITH_INCLUDED_BUDDY] (MAYBE_SUBDIRS): New variable.
|
||
(SUBDIRS): Prepend $(MAYBE_SUBDIRS).
|
||
* src/Makefile.am (libspot_LDFLAGS): New variable.
|
||
* src/tgba/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
|
||
* src/tgbaalgos/Makefile.am (AM_CPPFLAGS): Likewise.
|
||
* src/tgbatest/Makefile.am (AM_CPPFLAGS): Likewise.
|
||
|
||
2003-06-25 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
|
||
Rewrite using bdd_satoneset. This time it's for real. (I hope.)
|
||
* src/tgba/succiterconcrete.hh (current_base_,
|
||
current_base_left_): Delete.
|
||
* tgba/tgbabddcoredata.hh (next_set): New variable.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
|
||
to update next_set.
|
||
|
||
* src/tgba/bddprint.hh, src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbaproduct.hh: Fix Doxygen comments.
|
||
|
||
* src/tgba/succiterconcrete.hh (next_succ_set_): Rename as ...
|
||
(succ_set_left_): ... this.
|
||
(current_base_, current_base_left_): New variables.
|
||
* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::first):
|
||
Reset current_.
|
||
(tgba_succ_iterator_concrete::next): Rewrite.
|
||
(tgba_succ_iterator_concrete::current_state): Simplify.
|
||
(tgba_succ_iterator_concrete::current_accepting_conditions): Remove
|
||
atomic proposition with universal quantification.
|
||
* src/tgba/ltl2tgba.cc (ltl_to_tgba): Normalize the formula.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::set_init_state):
|
||
Complete the initial state.
|
||
(tgba_bdd_concrete::succ_iter): Do not remove Now variable
|
||
from the BDD passed to the iterator.
|
||
* tgba/tgbabddcoredata.hh (notnow_set, var_set): New variables.
|
||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
|
||
to update notnow_set and var_set.
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Support -v.
|
||
|
||
2003-06-24 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/ltl2tgba.cc (syntax): Fix usage message.
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test: Sort
|
||
accepting conditions.
|
||
|
||
* src/ltlvisit/nenoform.cc (negative_normal_form): New const variant.
|
||
* src/ltlvisit/nenoform.hh (negative_normal_form): New const variant.
|
||
* src/ltlvisit/lunabbrev.cc (unabbreviate_logic): New const variant.
|
||
* src/ltlvisit/lunabbrev.hh (unabbreviate_logic): New const variant.
|
||
* src/ltlvisit/tunabbrev.cc (unabbreviate_ltl): New const variant.
|
||
* src/ltlvisit/tunabbrev.hh (unabbreviate_ltl): New const variant.
|
||
|
||
2003-06-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Switch from "promises" to "accepting sets". Fix the definitions
|
||
of these accepting sets so that they are really useful. Provide
|
||
an all_accepting_conditions() method for use in the emptiness
|
||
check, and a neg_accepting_conditions() for products. Predeclare
|
||
TGBA accepting conditions in the i/o.
|
||
|
||
* src/tgba/bddprint.cc (want_prom): Rename as ...
|
||
(want_prom): ... this.
|
||
(print_handler): Adjust to display Acc[].
|
||
(print_acc_handler, bdd_print_acc): New functions.
|
||
* src/tgba/bddprint.hh (print_acc_handler, bdd_print_acc):
|
||
New functions.
|
||
* src/tgba/succiter.hh (current_promise): Rename as ...
|
||
(current_accepting_conditions): ... this.
|
||
* src/tgba/succiterconcrete.cc (current_state):
|
||
Rename next to now.
|
||
(current_promise): Rename as ...
|
||
(current_accepting_conditions): ... this, and compute
|
||
the accepting conditions.
|
||
* src/tgba/dictunion.cc, src/tgba/ltl2tgba.cc,
|
||
src/tgba/succiterconcrete.hh,
|
||
src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgbaalgos/dotty.cc: Adjust to new names.
|
||
* src/tgba/tgba.hh (all_accepting_conditions,
|
||
neg_accepting_conditions): New functions.
|
||
* src/tgba/tgbabddconcretefactory.cc: Adjust to new
|
||
names, and record accepting conditions instead of promises.
|
||
* src/tgba/tgbabddcoredata.hh (accepting_conditions,
|
||
all_accepting_conditions, negacc_set): New variables.
|
||
(notnow_set, notprom_set, declare_promise): Rename as ...
|
||
(notnext_set, notacc_set, declare_accepting_condition): ... these.
|
||
* src/tgba/tgbaexplicit.hh
|
||
(tgba_explicit_succ_iterator::current_promise): Rename as ...
|
||
(tgba_explicit_succ_iterator::current_accepting_conditions): ... this.
|
||
(tgba_explicit::add_promise): Rename as ...
|
||
(tgba_explicit::add_accepting_condition): ... this.
|
||
(tgba_explicit::declare_accepting_condition,
|
||
tgba_explicit::has_accepting_condition): New variables.
|
||
(tgba_explicit::get_promise): Rename as ...
|
||
(tgba_explicit::get_accepting_condition): ... this.
|
||
(tgba_explicit::all_accepting_conditions,
|
||
tgba_explicit::neg_accepting_conditions): Implement them.
|
||
(all_accepting_conditions, neg_accepting_conditions,
|
||
all_accepting_conditions): New variables.
|
||
(tgba_explicit_succ_iterator): Embed all_accepting_conditions_.
|
||
* src/tgba/tgbaexplicit.cc: Likewise.
|
||
* src/tgba/tgbaproduct.hh
|
||
(tgba_product_succ_uterator): Embed left_neg_ and right_neg_.
|
||
(tgba_product::all_accepting_conditions,
|
||
tgba_product::neg_accepting_conditions): Implement them.
|
||
* src/tgba/tgbatranslateproxy.hh:
|
||
(tgba_translate_proxy::all_accepting_conditions,
|
||
tgba_translate_proxy::neg_accepting_conditions): Implement them.
|
||
* src/tgba/tgbatranslateproxy.cc: Likewise.
|
||
* src/tgbaalgos/save.cc (save_rec): Call bdd_print
|
||
(tgba_save_reachable): Output the `acc =' line.
|
||
* src/tgbaparse/tgbaparse.yy: Support the for
|
||
accepting conditions definitions using an "acc =" line
|
||
at the start. Later, use has_accepting_condition while
|
||
parsing accepting conditions to ensure they were declared.
|
||
Disallow !cond in accepting conditions.
|
||
* src/tgbaparse/tgbascan.ll (ACC_DEF): New token.
|
||
* src/tgbatest/explicit.cc (main): Declare accepting conditions.
|
||
* src/tgbatest/ltl2tgba.cc (main): Add support for the -a, -A,
|
||
and -R new options.
|
||
* src/tgbatest/tgbaread.cc (main): Really exit on parse error.
|
||
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
|
||
src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Reflect
|
||
recent changes.
|
||
|
||
2003-06-22 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test:
|
||
Sort out some possible inversions in the output.
|
||
|
||
2003-06-19 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory): destroy the
|
||
formulae used as keys in prom_.
|
||
(tgba_bdd_concrete_factory::create_promise): Delete.
|
||
(tgba_bdd_concrete_factory::declare_promise,
|
||
tgba_bdd_concrete_factory::finish): New functions.
|
||
* src/tgba/tgbabddconcretefactory.hh
|
||
(tgba_bdd_concrete_factory::create_promise): Delete.
|
||
(tgba_bdd_concrete_factory::declare_promise,
|
||
tgba_bdd_concrete_factory::finish): New functions.
|
||
(tgba_bdd_concrete_factory::prom_): New map.
|
||
* src/tgba/ltl2tgba.cc (ltl_trad_visitor::visit): Adjust
|
||
the Fx and aUb cases to register promises with
|
||
tgba_bdd_concrete_factory::declare_promise().
|
||
(ltl2tgba): Call tgba_bdd_concrete_factory::finish().
|
||
|
||
* src/tgba/tgbabddconcrete.cc (set_init_state, succ_iter):
|
||
Revert the change from 2003-06-12, it needs more work (the
|
||
automaton generated on Xa&(b U !a) was bogus, with that
|
||
patch).
|
||
|
||
* src/tgbatest/ltl2tgba.cc: Handle the -o and -r options.
|
||
|
||
* src/tgbatest/tripprod.test, src/tgbatest/explprod.test,
|
||
src/tgbatest/readsave.test: Adjust to reflect yesterday's
|
||
bddprint.cc change.
|
||
|
||
2003-06-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc (print_handler): Quote promises
|
||
when !want_prom.
|
||
* src/tgbaparse/tgbaparse.yy (prop_list): Accept strings or
|
||
identifiers. Discard empty strings.
|
||
* src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add mixprod.
|
||
(mixprod_SOURCES): New variable.
|
||
(TESTS): Add mixprod.test.
|
||
|
||
2003-06-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
|
||
New constructor.
|
||
* src/tgba/tgbaproduct.hh (state_bdd_product::state_bdd_product):
|
||
New constructor.
|
||
* tgbatest/tripprod.cc, tgbatest/tripprod.test: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
|
||
(tripprod_SOURCES): New variable.
|
||
(CLEANFILES): Add input3.
|
||
(TESTS): Add tripprod.test.
|
||
|
||
2003-06-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddprod.cc, src/tgba/tgbabddprod.hh: Rename as ...
|
||
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: ... these.
|
||
(tgba_bdd_product, tgba_bdd_product_succ_iterator): Rename as ...
|
||
(tgba_product, tgba_product_succ_iterator): ... these, and adjust
|
||
all uses.
|
||
* src/tgba/tgbabddtranslateproxy.cc,
|
||
src/tgba/tgbabddtranslateproxy.hh: Rename as ...
|
||
* src/tgba/tgbatranslateproxy.cc,
|
||
src/tgba/tgbatranslateproxy.hh: ... these.
|
||
(tgba_bdd_translate_proxy, tgba_bdd_translate_proxy_succ_iterator):
|
||
Rename as ...
|
||
(tgba_translate_proxy, tgba_translate_proxy_succ_iterator): ... these,
|
||
and adjust all uses.
|
||
|
||
Make sure we can multiply two tgba_explicit.
|
||
|
||
* tgba/state.hh (state::translate, state::clone, state::as_bdd):
|
||
New virtual methods.
|
||
* tgba/stataebdd.cc (state::translate, state::clone): New methods.
|
||
* tgba/stataebdd.hh (state::translate, state::clone): New methods.
|
||
* tgba/tgbabddprod.cc (state_bdd_product::clone,
|
||
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
|
||
New methods.
|
||
(tgba_bdd_product_succ_iterator::first): Reset right_
|
||
if any of left_ or right_ is already done (i.e., is empty).
|
||
(tgba_bdd_product_succ_iterator::done): Return true
|
||
if right_ is NULL.
|
||
(tgba_bdd_product_succ_iterator::current_state,
|
||
tgba_bdd_product::get_init_state): Work directory with `state's.
|
||
* tgba/tgbabddprod.hh (state_bdd_product::clone,
|
||
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
|
||
New methods.
|
||
* tgba/tgbabddtranslateproxy.cc
|
||
(tgba_bdd_translate_proxy_succ_iterator::
|
||
tgba_bdd_translate_proxy_succ_iterator): Work on any kind of iteraator.
|
||
(tgba_bdd_translate_proxy_succ_iterator::
|
||
~tgba_bdd_translate_proxy_succ_iterator): New method.
|
||
(tgba_bdd_translate_proxy_succ_iterator::current_state,
|
||
tgba_bdd_translate_proxy::get_init_state,
|
||
tgba_bdd_translate_proxy::succ_iter): Work on `state's and
|
||
`tgba_succ_iterator's directlry.
|
||
(tgba_bdd_translate_proxy::format_state): Delegate formating
|
||
to the proxied automata.
|
||
* tgba/tgbaexplicit.cc (state_explicit::clone): New method.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
|
||
tgba_explicit::get_promise): Call ltl::destroy on existing formulae.
|
||
* tgbatest/explprod.cc, tgbatest/explprod.test: New files.
|
||
* tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
|
||
(explprod_SOURCES): New variable.
|
||
(TESTS): Add explprod.test.
|
||
(CLEANFILES): Add input1 and input2.
|
||
|
||
2003-06-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabddconcrete.cc (set_init_state, succ_iter): Make
|
||
sure to compute the status of the most Now variables possible.
|
||
This helps to identify equivalant states.
|
||
(tgba_bdd_concrete): Call set_init_state.
|
||
|
||
2003-06-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/ltl2tgba.cc (ltl_trad_visitor::visit): Handle F and G.
|
||
* src/tgbatest/ltl2tgba.test: Use F and G.
|
||
|
||
2003-06-06 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbatest/bddprod.test: New file.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add bddprod.
|
||
(bddprod_SOURCES, bddprod_CXXFLAGS): New variables.
|
||
(TESTS): Add bddprod.test.
|
||
* src/tgbatest/ltlprod.c: Handle BDD_CONCRETE_PRODUCT.
|
||
|
||
* src/tgba/dictunion.cc (tgba_bdd_dict_union): Clone formulae
|
||
while building new dictionary.
|
||
* src/tgbatest/ltlprod.test, src/tgbatest/ltlprod.cc: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltlprod.
|
||
(ltlprod_SOURCES): New variable.
|
||
(TESTS): Add ltlprod.test.
|
||
|
||
* src/ltlvisit/clone.cc (clone): New const version.
|
||
* src/ltlvisit/clone.hh (clone): Likewise.
|
||
* src/ltlvisit/destroy.cc (destroy): New const version.
|
||
* src/ltlvisit/destroy.hh (destroy): Likewise.
|
||
* src/tgba/tgbabddconcretefactory.cc
|
||
(tgba_bdd_concrete_factory::create_state,
|
||
tgba_bdd_concrete_factory::create_atomic_prop,
|
||
tgba_bdd_concrete_factory::promise): Clone new formulae.
|
||
* src/tgba/tgbabdddict.cc (tgba_bdd_dict::tgba_bdd_dict,
|
||
tgba_bdd_dict::~tgba_bdd_dict, tgba_bdd_dict::operator=): New methods
|
||
that clone and destroy formulae.
|
||
* src/tgbatest/ltl2tgba.test, src/tgbatest/ltl2tgba.cc: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltl2tgba.
|
||
(ltl2tgba_SOURCES): New variable.
|
||
(TESTS): Add ltl2tgba.test.
|
||
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/tgba/bddprint.cc, src/ltltest/tostring.cc: Include <cassert>.
|
||
|
||
2003-06-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc (dict): Make this variable static.
|
||
(want_prom): New global static variable.
|
||
(print_handle): Honor want_prom.
|
||
(print_sat_handler, bdd_print_sat, bdd_format_sat): New functions.
|
||
(bdd_print_set, bdd_print_dot, bdd_print_table): Set want_prom.
|
||
* src/tgba/bddprint.hh (bdd_print_sat, bdd_format_sat): New functions.
|
||
* src/tgbaalgos/save.cc, src/tgbaalgos/save.hh,
|
||
src/tgbatest/readsave.cc, src/tgbatest/readsave.test: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES): Add
|
||
save.cc and save.hh.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add readsave.
|
||
(readsave_SOURCES): New variable.
|
||
(TESTS): Add readsave.test.
|
||
|
||
* configure.ac: Output src/tgbaparse/Makefile.
|
||
* src/Makefile.am (SUBDIRS): Add tgbaparse.
|
||
(libspot_la_LDADD): Add tgbaparse/libtgbaparse.la.
|
||
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
|
||
tgba_explicit::get_promise, tgba_explicit::add_neg_condition,
|
||
tgba_explicit::add_neg_promise): New methods.
|
||
* src/tgba/tgbaexplicit.hh: Declare them.
|
||
* src/tgbaparse/Makefile.am, src/tgbaparse/fmterror.cc,
|
||
src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
|
||
src/tgbaparse/tgbaparse.yy, src/tgbaparse/tgbascan.ll,
|
||
src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test: New files.
|
||
* src/tgbatest/Makefile.am (check_PROGRAMS): Add tgbaread.
|
||
(TESTS): Add tgbaread.cc.
|
||
(CLEANFILES): Add input.
|
||
(tgbaread_SOURCES): New variable.
|
||
|
||
* src/ltlparse/ltlparse.yy: Typo in comment.
|
||
|
||
* configure.ac: Output src/tgbatest/Makefile and src/tgbatest/defs.
|
||
* src/Makefile.am (SUBDIRS): Add tgbatest.
|
||
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: New file.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgbaexplicit.cc
|
||
and tgbaexplicit.hh.
|
||
* src/tgbatest/Makefile.am, src/tgbatest/defs.in,
|
||
src/tgbatest/explicit.cc, src/tgbatest/explicit.test: New files.
|
||
|
||
2003-06-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/ltlparse.yy (result): Suppress unused definition.
|
||
|
||
* src/Makefile.am (SUBDIRS): Build `ltltest' after `.'.
|
||
|
||
* src/ltlparse/ltlscan.ll: Use ltlyy as %prefix.
|
||
* src/ltlparse/parsedecl.hh (YY_DECL): Rename yylex to ltlyylex.
|
||
* src/ltlparse/ltlparse.yy: Define yylex as ltlyylex.
|
||
|
||
2003-06-03 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/dictunion.cc, src/tgba/ltl2tgba.cc,
|
||
src/tgba/succiterconcrete.cc, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddprod.cc, src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbabddtranslateproxy.cc: Include <cassert>.
|
||
|
||
2003-06-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/tgbabdddict.cc, src/tgba/tgbabdddict.hh: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
* src/tgba/tgbabdddict.cc (tgba_bdd_dict::contains): New function.
|
||
* src/tgba/tgbabdddict.hh (tgba_bdd_dict::contains): Likewise.
|
||
|
||
2003-05-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/statebdd.hh (state_bdd::as_bdd): Add non-const variant.
|
||
* src/tgba/tgbabddtranslateproxy.cc,
|
||
src/tgba/tgbabddtranslateproxy.hh: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
|
||
2003-05-27 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgba/bddprint.cc, src/tgba/bddprint.hh,
|
||
src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.hh, src/tgbaalgos/dotty.cc:
|
||
Add Doxygen comments.
|
||
|
||
* src/tgba/bddfactory.hh, src/tgba/statebdd.hh,
|
||
src/tgba/succiterconcrete.hh, src/tgba/tgbabddconcrete.hh,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.hh: Add
|
||
Doxygen comments.
|
||
|
||
* src/tgba/bddprint.hh (bdd_format_set): New function.
|
||
* src/tgba/bddprint.cc (bdd_format_set): Likewise.
|
||
* src/tgba/state.hh: Add Doxygen comments.
|
||
(state::compare): Take a state*, not a state&.
|
||
(state_ptr_less_than): New functor.
|
||
* src/tgba/statebdd.hh (state_bdd::compare): Take a state*, not a
|
||
state&.
|
||
* src/tgba/statebdd.cc (state_bdd::compare): Likewise.
|
||
* src/tgba/succiter.hh: Add Doxygen comments.
|
||
* src/tgba/tgba.hh: Mention promises.
|
||
(tgba::formate_state): New pure virtual method.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete::formate_state):
|
||
New method.
|
||
* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::formate_state):
|
||
Likewise.
|
||
* src/tgbaalgos/dotty.cc: Adjust to use state_ptr_less_than
|
||
and tgba::formate_state.
|
||
|
||
* src/tgba/succiter.hh (tgba_succ_iterator::current_state):
|
||
Return a state*, not a state_bdd.
|
||
* src/tgba/succiterconcrete.hh
|
||
(tgba_succ_iterator_concrete::current_state): Return a state_bdd*,
|
||
not a state_bdd.
|
||
* src/tgba/tgba.hh: Add Doxygen comments.
|
||
(tgba::succ_iter, tgba::get_init_state): Use state*, not state_bdd.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete::get_init_state):
|
||
Return a state_bdd*, not a state_bdd.
|
||
(tgba_bdd_concrete::get_init_bdd): New method.
|
||
(tgba_bdd_concrete::succ_uter): Take a state* as argument.
|
||
* src/tgba/tgbabddconcrete.cc: Likewise.
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
|
||
tgba_bdd_concrete::get_init_bdd.
|
||
* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty): Adjust
|
||
to use state* instead of state_bdd.
|
||
* src/tgba/succlist.hh: Delete. (Leftover from a previous
|
||
draft.)
|
||
|
||
2003-05-26 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh: New files.
|
||
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES): Add them.
|
||
|
||
* src/tgba/tgbabddtranslatefactory.cc
|
||
(tgba_bdd_translate_factory::compute_pairs): Be quiet.
|
||
|
||
* src/Makefile.am (SUBDIRS): Add tgbaalgos.
|
||
(libspot_la_LIBADD): Add tgba/libtgbaalgos.
|
||
* src/tgbaalgos/Makefile.am: New file.
|
||
* configure.ac: Output src/tgbaalgos/Makefile.
|
||
|
||
* src/tgba/bddprint.hh, src/tgba/bddprint.cc: New files.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
|
||
* src/tgba/public.hh: Include bddprint.hh.
|
||
|
||
* src/tgba/tgba.hh: Rename as ...
|
||
* src/tgba/public.hh: .. this.
|
||
* src/tgba/tgba.hh: New file.
|
||
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add public.hh.
|
||
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Inherit from tgba.
|
||
(tgba_bdd_concrete::init_iter): Delete.
|
||
(tgba_bdd_concrete::succ_iter): Take a state_bdd as argument,
|
||
not a bdd.
|
||
* src/tgba/tgbabddconcrete.cc: Likewise.
|
||
|
||
Initial code for TGBA (Transition Generalized Büchi Automata).
|
||
Contains tgba_bdd, a BDD-encoded TGBA, and ltl_to_tgba,
|
||
a LTL-to-TGBA translator using Couvreur's algorithm.
|
||
|
||
* src/Makefile.am (SUBDIRS): Add tgba.
|
||
(libspot_la_LIBADD): Add tgba/libtgba.la.
|
||
* configure.ac: Output src/tgba/Makefile.
|
||
* src/tgba/Makefile.am, src/tgba/bddfactory.cc,
|
||
src/tgba/bddfactory.hh, src/tgba/dictunion.cc,
|
||
src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh,
|
||
src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
|
||
src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
|
||
src/tgba/succiterconcrete.hh, src/tgba/succlist.hh,
|
||
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
|
||
src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
|
||
src/tgba/tgbabddconcretefactory.hh,
|
||
src/tgba/tgbabddconcreteproduct.cc,
|
||
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
|
||
src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.cc,
|
||
src/tgba/tgbabdddict.hh, src/tgba/tgbabddfactory.hh,
|
||
src/tgba/tgbabddtranslatefactory.cc,
|
||
src/tgba/tgbabddtranslatefactory.hh: New files.
|
||
|
||
2003-05-23 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/gccwarn.m4: Do not use -Winline, this is inappropriate
|
||
with STL.
|
||
* src/ltlast/atomic_prop.cc, src/ltlvisit/lunabbrev.cc,
|
||
src/ltlvisit/nenoform.cc: Include <cassert>.
|
||
|
||
2003-05-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/dotty.cc: Rewrite to display formulae as
|
||
graphs rather than trees, to show how nodes are shared.
|
||
|
||
* src/ltlvisit/dump.hh (dump): Return the passed ostream.
|
||
* src/ltlvisit/dump.cc (dump): Likewise.
|
||
* src/ltlvisit/dotty.hh (dotty): Likewise.
|
||
* src/ltlvisit/dotty.cc (dotty): Likewise.
|
||
* src/ltlvisit/tostring.hh (to_string): Likewise.
|
||
* src/ltlvisit/tostring.cc (to_string): Likewise.
|
||
|
||
* src/ltlvisit/dump.hh (dump): Take a formula* as argument,
|
||
not a formula&. This is more homogeneous.
|
||
* src/ltlvisit/dump.cc (dump): Likewise.
|
||
* src/ltlvisit/dotty.hh (dotty): Likewise.
|
||
* src/ltlvisit/dotty.cc (dotty): Likewise.
|
||
* src/ltlvisit/tostring.hh (to_string): Likewise.
|
||
* src/ltlvisit/tostring.cc (to_string): Likewise.
|
||
* src/ltltest/readltl.cc, src/ltltest/equals.cc,
|
||
src/ltltest/tostring.cc: Adjust usage.
|
||
|
||
Check trivial multop equality at build time. This makes the equal
|
||
visitor useless, since two equals formulae will now share the same
|
||
address.
|
||
|
||
* src/ltlast/multop.hh (add_sorted): New function.
|
||
(paircmp): New comparison functor.
|
||
(map): Use paircmp, we want to compare the vectors' contents,
|
||
not their addresses.
|
||
* src/ltlast/multop.cc (add_sorted): New function.
|
||
(add): Use it.
|
||
* src/ltltest/equals.cc, src/ltltest/tostring.cc: Compare
|
||
pointers instead of calling equal.
|
||
* src/ltlvisit/equals.cc, src/ltlvisit/equals.hh: Delete.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES): Remove
|
||
equals.cc and equals.hh.
|
||
* wrap/spot.i: Do not include equals.hh.
|
||
|
||
2003-05-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
Implement spot::ltl::destroy() and exercise it.
|
||
|
||
* src/ltlast/atomic_prop.hh: Declare instance_count().
|
||
* src/ltlast/binop.hh, src/ltlast/unop.hh, src/ltlast/multop.hh:
|
||
Likewise. Also, really inherit for ref_formula this time.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
|
||
src/ltlast/unop.cc, src/ltlast/multop.cc: On destruction, suppress
|
||
the instance from the instance map. Implement instance_count().
|
||
* src/ltlast/formula.cc, src/ltlast/formula.hh,
|
||
src/ltlast/ref_formula.cc, src/ltlast/ref_formula.hh: Add virtual
|
||
destructors.
|
||
* src/ltlparse/ltlparse.yy: Recover from binary operators with
|
||
missing right hand operand (the point is just to destroy the
|
||
the left hand operand).
|
||
* src/ltltest/equals.cc, src/ltltest/readltl.cc,
|
||
src/ltltest/tostring.cc: Destroy used formulae. Make sure
|
||
instance_count()s are null are the end.
|
||
* src/ltltest/parseerr.test: Adjust expected result, now
|
||
that the parser lnows about missing right hand operands.
|
||
* src/ltlvisit/destroy.hh, src/ltlvisit/destroy.cc,
|
||
src/ltlvisit/postfix.hh, src/ltlvisit/postfix.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES): Add them.
|
||
* src/ltlvisit/lunabbrev.cc (Xor, Equiv): Clone formulae
|
||
occurring twice in the rewritten expression.
|
||
|
||
Massage the AST so that identical sub-formula share the same
|
||
reference-counted formula*. One can't call constructors for AST
|
||
items anymore, everything need to be acquired through instance()
|
||
class methods.
|
||
|
||
* src/ltlast/formula.cc, src/ltlast/refformula.cc,
|
||
src/ltlast/refformula.hh: New files.
|
||
* src/ltlast/Makefile.am (libltlast_la_SOURCES): Add them.
|
||
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/unop.cc, src/ltlast/unop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh: Make the constructor
|
||
and destructor protected. Define a static function `instance()'
|
||
to get an instance with specific argument. Use a map called
|
||
`instances' to store all known instances. Inherit from
|
||
ref_formula.
|
||
* src/ltlast/constant.hh, src/ltlast/constant.cc: Protect
|
||
the constructor and destructor. Provide the false_instance()
|
||
and true_instance() functions instead.
|
||
* src/formula.hh (ref, unref, ref_, unref_): New methods.
|
||
* src/ltlast/multop.cc, src/ltlast/multop.hh: Protect
|
||
the constructor, destructor, as well as the add() method.
|
||
Provides the instance(), and add() class methods instead.
|
||
Store children_ as a pointer.
|
||
* src/ltlenv/defaultenv.cc (require): Adjust to
|
||
call atomic_prop::instance.
|
||
* src/ltlparse/ltlparse.yy: Adjust to call instance() functions
|
||
instead of constructors.
|
||
* src/ltltest/Makefile.am (LDADD): Tweak library ordering.
|
||
* src/ltlvisit/clone.hh (clone_visitor): Inherit from visitor,
|
||
not const_visitor, and adjust all prototypes appropriately.
|
||
* src/ltlvisit/clone.cc (clone_visitor): Likewise.
|
||
Call ref() or instance() methods instead of copy constructors.
|
||
* src/ltlvisit/equals.cc: Simplify atomic_prop and constant
|
||
cases.
|
||
* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc,
|
||
src/ltlvisit/tunabbrev.hh, src/ltlvisit/tunabbrev.cc,
|
||
src/ltlvisit/nenoform.hh, src/ltlvisit/nenoform.cc: Use instance()
|
||
methods instead of constructor. Make these children of visitor, not
|
||
const_visitor.
|
||
* src/ltltest/readltl.c (main): Do not delete the formula.
|
||
|
||
* src/ltlparse/ltlscan.ll (to_parse_size): Declare as size_t to
|
||
remove a warning with newer versions of Flex.
|
||
|
||
* src/ltlparse/ltlparse.yy (error_list, parse_environment, result):
|
||
CVS Bison now supports %parse-param for the C++ skeleton; pass these
|
||
variables as arguments to the Parser::Parser constructor instead of
|
||
using globals.
|
||
(parse): Adjust Parser::Parser call.
|
||
|
||
2003-05-12 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tostring.cc: Reindent and strip out superfluous
|
||
spot::ltl:: prefixes.
|
||
(to_string(formula)): New function.
|
||
* src/ltlvisit/tostring.hh (to_string(formula)): Likewise.
|
||
* src/ltltest/tostring.cc: Use this new to_string function to
|
||
simplify.
|
||
|
||
2003-05-05 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* m4/buddy.m4: New file.
|
||
* Makefile.am (EXTRA_DIST): Add m4/buddy.m4.
|
||
* configure.ac: Call AX_CHECK_BUDDY.
|
||
|
||
2003-04-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/Makefile.am (lib_LTLIBRARIES): Rename as ...
|
||
(noinst_LTLIBRARIES): ... this.
|
||
* src/ltlenv/Makefile.am, src/ltlast/Makefile.am,
|
||
src/ltlparse/Makefile.am: Likewise.
|
||
* src/Makefile.am (lib_LTLIBRARIES, libspot_la_SOURCES,
|
||
libspot_la_LIBADD): New variable. Build a libspot.la library
|
||
from all the sub-libraries.
|
||
|
||
* m4/pypath.m4: New file.
|
||
* Makefile.am (SUBDIRS): Add wrap.
|
||
* wrap/Makefile.am: New file.
|
||
* wrap/spot.i: New file. Preliminary bindings for Python.
|
||
* configure.ac: Call adl_CHECK_PYTHON and output wrap/Makefile.
|
||
|
||
2003-04-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* configure.ac: Call AC_PROG_LIBTOOL.
|
||
* src/ltlast/Makefile.am, src/ltlenv/Makefile.am,
|
||
src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
|
||
src/ltlvisit/Makefile.am: Adust to build libtool libraries.
|
||
|
||
* src/ltlenv/defaultenv.hh: Do not include atomic_prop.hh here...
|
||
* src/ltlenv/defaultenv.cc: ... but here.
|
||
|
||
* src/ltltest/tostring.test: Simplify with set -e. Move the
|
||
description of the test ...
|
||
* src/ltltest/tostring.cc: ... here, where it is actually coded.
|
||
* src/ltltest/lunabbrev.test, src/ltltest/tunabbrev.test,
|
||
src/ltltest/nenoform.test, src/ltltest/tunenoform.test:
|
||
Simplify with set -e.
|
||
|
||
* configure.ac (AM_INIT_AUTOMAKE): Use nostdinc, to make
|
||
sure we always use paths relative to src/ in src/'s
|
||
subdirectories.
|
||
|
||
2003-04-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/Makefile.am (CXXFLAGS): Turn on GCC warnings
|
||
now that CVS Bison is fixed.
|
||
* src/ltlparse/ltlscan.ll: Use yyunput to shut up a GCC warning.
|
||
|
||
2003-04-24 Rachid REBIHA <rebiha@src.lip6.fr>
|
||
|
||
* src/ltltest/tostring.test: New file.
|
||
* src/ltltest/tostring.cc: New files.
|
||
* src/ltlvisit/tostring.hh: From ast to string New files.
|
||
* src/ltlvisit/tostring.cc: From ast to string New files.
|
||
|
||
2003-04-18 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlparse/Makefile.am (EXTRA_DIST): Distribute ltlparse.yy.
|
||
* src/ltlast/Makefile.am (libltlast_a_SOURCES): Add visitor.hh.
|
||
|
||
* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
|
||
src/ltlast/constant.hh, src/ltlast/formula.hh,
|
||
src/ltlast/multop.hh, src/ltlast/unop.hh, src/ltlast/visitor.hh,
|
||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
|
||
src/ltlparse/public.hh, src/ltlvisit/clone.hh,
|
||
src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/equals.hh, src/ltlvisit/lunabbrev.hh,
|
||
src/ltlvisit/nenoform.hh, src/ltlvisit/tunabbrev.hh: Add
|
||
Doxygen comments.
|
||
* src/visitor.hh: Do not use const_sel. This clarifies
|
||
the code and helps Doxygen.
|
||
|
||
* configure.ac: Output doc/Doxyfile and doc/Makefile.
|
||
* doc/Makefile.am, doc/Doxyfile.in: New files.
|
||
* Makefile.am (SUBDIRS): Add doc.
|
||
|
||
* src/ltlparse/ltlscan.ll: Recognize && and ||.
|
||
* src/ltltest/parse.test, src/ltltest/parseerr.test,
|
||
src/ltltest/equals.test: Use these operators..
|
||
|
||
2003-04-17 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltltest/readltl.cc, src/ltltest/equals.cc: Cosmetics.
|
||
|
||
* src/ltlenv/environment.hh (require): Return a formula, not
|
||
an atomic_prop.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop): New argument env.
|
||
(environment_): New member.
|
||
(env): New method.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop, env): Likewise.
|
||
* src/ltlenv/defaultenv.cc (require): Pass *this as the
|
||
environment argument to atomic_prop.
|
||
* src/ltlvisit/clone.cc (visit(const atomic_prop*)): Also copy
|
||
the environment.
|
||
* src/ltlvisit/nenoform.cc (visit(const atomic_prop*)): Likewise.
|
||
|
||
* configure.ac: Output src/ltlenv/Makefile.
|
||
* src/ltlenv/Makefile.am, src/ltlenv/defaultenv.cc,
|
||
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh: New files.
|
||
* src/ltlparse/public.hh (parse): Take an environment as third
|
||
argument.
|
||
* src/ltlparse/ltlparse.yy (ATOMIC_PROP, parse): Require the
|
||
atomic proposition via the environment.
|
||
* src/ltltest/readltl.cc (main): Adjust the call to parse().
|
||
* src/ltltest/Makefile.am (LDADD): Add ../ltlenv/libltlenv.a.
|
||
|
||
* src/ltlvisit/clone.hh, src/ltlvisit/clone.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc: Inherit
|
||
from clone_visitor and remove all useless methods (now inherited).
|
||
|
||
* src/ltlvisit/nenoform.hh, src/ltlvisit/nenoform.cc: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltltest/equals.cc (main) [NENOFORM]: Call negative_normal_form.
|
||
* src/ltltest/nenoform.test, src/ltltest/tunenoform.test: New files.
|
||
* src/ltltest/Makefile.am (check_PROGRAMS): Add nenoform and
|
||
tunenoform.
|
||
(nenoform_SOURCES, nenoform_CPPFLAGS, tunenoform_SOURCES,
|
||
tunenoform_CPPFLAGS): New variables.
|
||
(TESTS): Add nenoform.test and tunenoform.test.
|
||
|
||
* src/ltlvisit/lunabbrev.hh: Fix include guard.
|
||
|
||
2003-04-16 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltltest/tunabbrev.test: New file.
|
||
* src/ltltest/lunabbrev.test: Fix comment.
|
||
* src/ltltest/Makefile.am (TESTS): Add tunabbrev.test.
|
||
(check_PROGRAMS): Add tunabbrev.
|
||
(tunabbrev_SOURCES, tunabbrev_CPPFLAGS): New variables.
|
||
* src/ltltest/equals.cc (main) [TUNABBREV]: Call unabbreviate_ltl.
|
||
* src/ltlvisit/lunabbrev.hh (unabbreviate_logic_visitor::recurse):
|
||
New virtual function.
|
||
* src/ltlvisit/lunabbrev.cc (unabbreviate_logic_visitor::recurse):
|
||
Likewise.
|
||
(unabbreviate_logic_visitor::visit): Use it instead of calling
|
||
unabbreviate_logic directly.
|
||
|
||
* src/ltlvisit/lunabbrev.hh: Add missing include guard.
|
||
|
||
* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add them.
|
||
* src/ltlast/multop.cc (multop::multop(type)): New constructor.
|
||
* src/ltlast/multop.hh (multop::multop(type)): New constructor.
|
||
* src/ltltest/lunabbrev.test: New file.
|
||
* src/ltltest/Makefile.am (TESTS): Add lunabbrev.test.
|
||
(check_PROGRAMS): Add lunabbrev.
|
||
(lunabbrev_SOURCES, lunabbrev_CPPFLAGS): New variables.
|
||
* src/ltltest/equals.cc (main) [LUNABBREV]: Call unabbreviate_logic.
|
||
|
||
* src/ltltest/equals.test (check0, check1): Remove. Use check 0, and
|
||
check 1 instead.
|
||
|
||
* src/ltlast/formulae.hh: Rename as ...
|
||
* src/ltlast/formula.hh: ... this.
|
||
* src/ltlast/Makefile.am (libltlast_a_SOURCES): Adjust.
|
||
* src/ltlast/formula.hh (formulae): Rename as ...
|
||
(formula): ... this.
|
||
Adjust all uses.
|
||
|
||
* src/ltlparse/public.hh (format_parse_errors): New function.
|
||
* src/ltlparse/fmterror.cc: New file.
|
||
* src/ltlparse/Makefile.am (libltlparse_a_SOURCES): Add fmterror.cc.
|
||
* src/ltltests/equals.cc, src/ltltests/readltl.cc: Simplify using
|
||
format_parse_errors.
|
||
|
||
* src/ltlvisit/equals.cc, src/ltlvisit/equals.hh: New files.
|
||
* src/ltlvisit/Makefile.am (libltlvisit_a_SOURCES): Add equals.hh
|
||
and equals.cc.
|
||
* src/ltltest/equals.cc, src/ltltest/equals.test: New files.
|
||
* src/ltltest/Makefile.am (check_PROGRAMS): Add equals.
|
||
(equals_SOURCES): New variable.
|
||
(TESTS): Add equals.test.
|
||
|
||
* src/ltlast/multop.cc (multop::multop): Use multop::add.
|
||
(multop::add): If the formulae we add is itself a multop for the
|
||
same operator, merge its children with ours.
|
||
* src/ltltest/parseerr.test: Add two tests for multop merging.
|
||
|
||
2003-04-15 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||
|
||
* src/ltlast/formulae.hh (formulae::equals): Remove.
|
||
* src/ltlast/unop.hh (unop::equals): Remove.
|
||
* src/ltlast/unop.cc (unop::equals): Remove.
|
||
* src/ltlast/binop.hh (binop::equals): Remove.
|
||
* src/ltlast/binop.cc (binop::equals): Remove.
|
||
* src/ltlast/multop.hh (multop::equals): Remove.
|
||
* src/ltlast/multop.cc (multop::equals): Remove.
|
||
* src/ltlast/atomic_prop.hh (atomic_prop::equals): Remove.
|
||
* src/ltlast/atomic_prop.cc (atomic_prop::equals): Remove.
|
||
* src/ltlast/constant.hh (constant::equals): Remove.
|
||
* src/ltlast/constant.cc (constant::equals): Remove.
|
||
|
||
* HACKING, Makefile.am, configure.ac, m4/gccwarn.m4,
|
||
src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
|
||
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
|
||
src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
|
||
src/ltlast/constant.hh, src/ltlast/formulae.hh,
|
||
src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/predecl.hh,
|
||
src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlast/visitor.hh,
|
||
src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
|
||
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
|
||
src/ltlparse/public.hh, src/ltlvisit/Makefile.am,
|
||
src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
|
||
src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
|
||
src/ltlvisit/rewrite.cc, src/ltlvisit/rewrite.hh,
|
||
src/ltltest/Makefile.am, src/ltltest/defs.in, src/ltltest/readltl.cc,
|
||
src/ltltest/parse.test, src/ltltest/parseerr.test,
|
||
src/misc/Makefile.am, src/misc/const_sel.hh: New files.
|