* 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.
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.
* 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.
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.
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.
* 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.
* 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.
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
* 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.
Fix compilation with Clang.
* state.c: Do not include state_inline.h twice with different
value of STATE_INLINE. It was included once via state.h with
STATE_INLINE = "extern inline", and another time directly with
STATE_INLINE = "extern". Now...
* state.h: ... only include it once here with STATE_INLINE =
"static inline".
2008-06-02 Guillaume SADEGH <sadegh@lrde.epita.fr>
* 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.
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.
(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).
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.
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::state_index): 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::state_index): Adjust
to new prototype.
* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
to group/group2.