Commit graph

1589 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
9ea0e00ae7 Define WEXITSTATUS if not available (e.g. on MinGW)
* iface/dve2/dve2.cc: Here.
2012-04-27 15:40:54 +02:00
Alexandre Duret-Lutz
2c8e5297e7 Use clock() when times() is not available.
* configure.ac: Check for times() and sys/times.h.
* src/misc/timer.hh: Include sys/times.h conditionally
and use clock() if times() is not available.
Reported by Yann Thierry-Mieg.
2012-04-27 15:40:54 +02:00
Alexandre Duret-Lutz
8620138069 memusage: drop two useless includes.
* src/misc/memusage.cc: Do not include the unneeded sys/time.hh
and sys/resource.h.  Reported by Yann Thierry-Mieg.
2012-04-27 15:40:54 +02:00
Alexandre Duret-Lutz
907ba16bfa [lbtt] Remove a useless configure check.
* configure.ac: Do not check for mkstemp(), it is not used.
2012-04-27 15:40:54 +02:00
Thomas Badie
dfcaed034e Add the simulation in the Spot web interface.
* wrap/python/ajax/spot.in: Add the simulation.
* wrap/python/ajax/protocol.txt: Add the direct simulation in the
automaton simplifications section.
* wrap/python/spot.i (simulation_new): Create a function which
takes an automaton and a call to the simulation with the good
template parameter.
* wrap/python/ajax/ltl2tgba.html: Add the direct simulation
checkbox.
2012-04-18 19:02:09 +02:00
Thomas Badie
085ea52bf5 Fix two VPath-related bugs in bench.
* bench/ltl2tgba/known (ltlfile): Add a $srcdir.
* bench/ltlclasses/defs.in (builddir): Add the $builddir.
* bench/ltlclasses/run (gen): Change the $srcdir into $builddir.
2012-04-18 19:02:09 +02:00
Thomas Badie
876f8c90a2 Create the direct simulation.
* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: New files.
* src/tgbaalgos/Makefile.am: Add the new files to the compilation.
* src/tgbatest/spotlbtt.test: Add the simulation.
* src/tgbatest/ltl2tgba.cc: Add direct simulation (-RSD).
2012-04-18 19:02:09 +02:00
Thomas Badie
e75ad57446 Add a class to convert a bdd into its complement.
* src/misc/acccompl.cc, src/misc/acccompl.hh: Add a way to
an acceptance condition in an automaton, into its
complement.
Create a method to make the reverse operation.
* src/misc/Makefile.am: Add the new files to the compilation.
2012-04-18 18:54:41 +02:00
Alexandre Duret-Lutz
d3be530410 tgbatba: fix destroying of cache variables.
* src/tgba/tgbatba.cc (tgba_tba_proxy::~tgba_tba_proxy):
Zero last_support_conditions_input_ and last_support_variables_input_.
2012-04-13 12:23:53 +02:00
Alexandre Duret-Lutz
8269ae9cee tgbaexplicit: execute the test
* src/tgbatest/explicit2.test: New file.
* src/tgbatest/Makefile.am: Add it.
* src/tgbatest/explicit2.cc: Print the LTL formula as text.
2012-04-13 08:43:58 +02:00
Alexandre Duret-Lutz
37a6b601c1 Declare the sba class in its own header.
* src/tgba/sba.hh: New file, extrated from...
* src/tgba/tgbaexplicit.hh: ... here.  Also rename
sba_explicit::is_accepting as sba_explicit::state_is_accepting for
consistency with tgba_sba_proxy.
* src/tgbatest/explicit2.cc: Adjust to the renaming.
* src/tgba/Makefile.am: Add sba.hh.
2012-04-13 08:43:58 +02:00
Pierre PARUTTO
937248e561 Correct a bug in tgba_explicit_succ_iterator class
* src/tgba/tgbaexplicit.hh (current_acceptance_conditiosn):
remove a suspect and in return statement
2012-04-12 17:40:12 +02:00
Pierre PARUTTO
9cfc408262 Modify is_accepting sba's method to run in constant time.
* src/tgba/tgbaexplicit.hh: modify is_accepting method
2012-04-12 17:40:12 +02:00
Pierre PARUTTO
eec3a12f80 Implement sba_explicit class, add tests
* src/tgba/tgbaexplicit.hh: Add sba_explicit implementation
* src/tgbatest/explicit2.cc: Add test to check the good instantiation
of sba_explicit_*
2012-04-12 17:40:12 +02:00
Alexandre Duret-Lutz
603c5d603b tgba_explicit: make the new class work with Swig.
* src/tgba/tgbaexplicit.hh (explicit_graph, tgba_explicit): Make the
transition type explicit.
(state_explicit_string::get_iterator): New method.
(explicit_graph::get_transition): Use it.
(tba): Rename as ...
(sba): ... this.
* wrap/python/spot.i: Instanciate explicit_graph and tgba_explicit
for all three types.
2012-04-12 17:40:12 +02:00
Pierre PARUTTO
a15aac2845 Revamp tgbaexplicit.hh
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: Factor most of
the code in an explicit_graph<State, Type> that inherits from type.
The tgba_explicit type<State> now inherits from
explicit_graph<State,tgba>.
* src/ltlvisit/contain.cc, src/neverparse/neverclaimparse.yy
src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh, src/tgbaalgos/cutscc.cc,
src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/minimize.cc,
src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
src/tgbaalgos/sccfilter.cc, src/tgbaparse/tgbaparse.yy,
src/tgbatest/complementation.cc, src/tgbatest/explicit.cc,
src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc:
Replace tgba_explicit* by the actual type used.
* src/tgbatest/explicit2.cc: New file.
* src/tgbatest/Makefile.am: Add it.
2012-04-12 17:39:48 +02:00
Alexandre Duret-Lutz
9e2b932fe6 maint: add .checklog
* .checklog: New file.
2012-04-11 12:27:09 +02:00
Alexandre Duret-Lutz
e9ea9fd3fe maint: set umask 022 in lrde-upload.sh
* lrde-upload.sh: Call umask, so that newly created directories are
accessible.
2012-03-19 07:59:15 +01:00
Alexandre Duret-Lutz
862c248a41 ltl2tgba.html: Scroll to result. (Suggested by Thomas Badie.)
* wrap/python/ajax/ltl2tgba.html: Scroll the the results the first
time a formula is submitted, and anytime a formula is submitted with
'enter'.  Also do not animate the settings of panels when reloading
the page from a hash fragment.
2012-03-18 22:40:48 +01:00
Alexandre Duret-Lutz
3fb29ce1be Typo: rename automata_ as aut_.
* src/tgbaalgos/reachiter.hh, src/tgbaalgos/reachiter.cc,
src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
src/tgbaalgos/lbtt.cc, src/tgbaalgos/neverclaim.cc,
src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim_del.cc,
src/tgbaalgos/save.cc, src/tgbaalgos/sccfilter.cc,
src/tgba/tgbareduc.cc, src/evtgbaalgos/tgba2evtgba.cc,
src/kripke/kripkeprint.cc: Rename automata_ as aut_.
2012-03-17 14:37:59 +01:00
Alexandre Duret-Lutz
4749d77e4f Generate ChangeLog from git log during "make dist".
* tools/gitlog-to-changelog: New file, from gnulib.
* Makefile.am (EXTRA_DIST): Distribute it.
(dist-hook, gen_start, gen-ChangeLog): Generate the ChangeLog during
distdir.
2012-03-12 17:43:46 +01:00
Alexandre Duret-Lutz
915115d9e2 Rename ChangeLog as ChangeLog.1 and leave an empty ChangeLog.
The empty ChangeLog is required so that Automake does not complain.

* ChangeLog: Rename as ...
* ChangeLog.1: ... this.
* Makefile.am (EXTRA_DIST): Distribute it.
* ChangeLog: New empty file.
2012-03-12 16:41:32 +01:00
Alexandre Duret-Lutz
a0a22c4f7d * configure.ac, NEWS: Bump version to 0.8.3a. 2012-03-09 19:09:42 +01:00
Alexandre Duret-Lutz
91b59bfe66 Release Spot 0.8.3.
* configure.ac, NEWS: Bump version to 0.8.3.
2012-03-09 18:41:11 +01:00
Alexandre Duret-Lutz
a01034e5f9 Fix a segfault in the CGI script, reported by Denis.
* src/tgbaalgos/emptiness.cc
(emptiness_check_instantiator::construct): Set *err = 0
on success.  This avoids problem with the python bindings
always converting *err to a string and sometimes failing
to do so when err was not initialized.
2012-03-09 08:38:55 +01:00
Alexandre Duret-Lutz
187997fe5d 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 22:02:16 +01:00
Alexandre Duret-Lutz
802319ddbb * wrap/python/ajax/spot.in: Fix emulation of execfile. 2012-03-08 21:30:09 +01:00
Alexandre Duret-Lutz
9114305995 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 17:37:37 +01:00
Alexandre Duret-Lutz
88044453fc 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-03-04 17:23:46 +01:00
Alexandre Duret-Lutz
503a57cad2 * NEWS: Summarize recent changes. 2012-02-25 14:12:28 +01:00
Alexandre Duret-Lutz
61127a3fd5 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-25 14:01:43 +01:00
Alexandre Duret-Lutz
5e77b2498a 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-25 13:37:42 +01:00
Alexandre Duret-Lutz
84c2eed13f * HACKING: Minor updates and corrections. 2012-02-25 13:37:42 +01:00
Alexandre Duret-Lutz
eeda782f7f Adjust lrde-upload.sh to handle branchnames with a slash. 2012-02-15 17:06:07 +01:00
Alexandre Duret-Lutz
62914059f7 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-02-15 11:58:54 +01:00
Alexandre Duret-Lutz
547715463a 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-24 19:09:07 +01:00
Alexandre Duret-Lutz
4b5734d8ec * NEWS: Add missing dates. 2012-01-20 14:17:53 +01:00
Alexandre Duret-Lutz
bc66974bf2 * configure.ac, NEWS: Bump version to 0.8.2a. 2012-01-19 19:28:47 +01:00
Alexandre Duret-Lutz
b01ce51e65 Release Spot 0.8.2.
* configure.ac, NEWS: Bump version to 0.8.2.
2012-01-19 19:28:16 +01:00
Alexandre Duret-Lutz
15c2a9473e Small speedup in safra_tree::compare().
* src/tgba/tgbasafracomplement.cc (safra_tree::compare): Improve
the order of the tests.
2012-01-18 19:52:21 +01:00
Alexandre Duret-Lutz
a9669d3d17 * NEWS: Mention the last two changes. 2012-01-18 17:44:58 +01:00
Alexandre Duret-Lutz
75032c9fc4 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-18 12:22:07 +01:00
Alexandre Duret-Lutz
578c5894f5 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 10:50:18 +01:00
Alexandre Duret-Lutz
ebfec98e31 * src/eltlparse/eltlparse.yy (realias): Add a useless return to
fix a g++ warning.
2012-01-18 10:42:37 +01:00
Alexandre Duret-Lutz
b4ed47129d * bench/ltlclasses/run: Typo in comment. 2012-01-18 10:39:16 +01:00
Alexandre Duret-Lutz
4b0a3a7a37 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 14:42:34 +01:00
Alexandre Duret-Lutz
ebc92d4688 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 14:02:15 +01:00
Alexandre Duret-Lutz
7854283593 * wrap/python/ajax/spot.py: Add a required "None" second
argument to utime().
2012-01-17 13:27:09 +01:00
Alexandre Duret-Lutz
a5787937ef 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-17 12:11:55 +01:00
Alexandre Duret-Lutz
2952daf0ba * NEWS: Update with recent fixes. 2012-01-13 15:23:37 +01:00