Commit graph

185 commits

Author SHA1 Message Date
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
28b7c0858b 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/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-18 12:56:44 +01:00
Alexandre Duret-Lutz
a804c88e1b 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-12-01 12:33:20 +01:00
Alexandre Duret-Lutz
6acf30b2ab 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 18:17:50 +01:00
Alexandre Duret-Lutz
6794b8570a Undocument `.' from the web interface.
* wrap/python/ajax/ltl2tgba.html: Remove `.'
from the list of acceptable symbols for AND.
2011-11-28 17:56:46 +01:00
Alexandre Duret-Lutz
7aefc190c9 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-26 18:26:20 +02:00
Alexandre Duret-Lutz
c42d55e6b1 * 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-10 11:12:05 +02:00
Alexandre Duret-Lutz
8059047b21 * wrap/python/ajax/ltl2tgba.html: Add focus on the formula field
on page load.
2011-06-09 14:51:45 +02:00
Alexandre Duret-Lutz
3216494cf6 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 16:44:52 +02:00
Alexandre Duret-Lutz
155ba42c90 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 16:44:52 +02:00
Alexandre Duret-Lutz
0d2ac81a8c 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 16:44:47 +02:00
Alexandre Duret-Lutz
b8f8441167 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-08 11:36:45 +02:00
Alexandre Duret-Lutz
78f932081b 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-03 17:13:53 +02:00
Alexandre Duret-Lutz
f3bae53e5b 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-06-02 14:10:40 +02:00
Alexandre Duret-Lutz
9ad062b247 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 17:33:42 +02:00
Alexandre Duret-Lutz
35a0193781 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-29 22:52:17 +02:00
Alexandre Duret-Lutz
e1ef47d975 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 10:26:20 +01:00
Alexandre Duret-Lutz
0792fb741d * wrap/python/ajax/spot.in: Use the degeneralized automaton if
available while computing the emptiness check.
2011-03-04 21:04:38 +01:00
Alexandre Duret-Lutz
40e7350c80 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 12:58:16 +01:00
Alexandre Duret-Lutz
caaf0a80c2 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 17:36:26 +01:00
Alexandre Duret-Lutz
97df5b4285 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-05 14:27:04 +01:00
Alexandre Duret-Lutz
08ee714760 * wrap/python/cgi-bin/ltl2tgba.in: Fix python error occurring
only when the user did not make any error...
2011-02-04 21:59:43 +01:00
Alexandre Duret-Lutz
2fe5b3fb62 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-03 15:49:37 +01:00
Alexandre Duret-Lutz
dd0f01fe03 more files to ignore 2011-01-27 21:47:47 +01:00
Alexandre Duret-Lutz
60930d7a12 * wrap/python/ajax/ltl2tgba.html: Display the Spot version in
the tooltip over the Spot logo.
2011-01-26 23:13:40 +01:00
Alexandre Duret-Lutz
656eeeaf3b * wrap/python/ajax/Makefile.am (EXTRA_DIST): Add icons/mail.png. 2011-01-26 22:10:57 +01:00
Alexandre Duret-Lutz
f3c6f01e8d 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-26 22:03:14 +01:00
Alexandre Duret-Lutz
c7f3bd5111 * wrap/python/ajax/ltl2tgba.html: Disable the browser spellcheck
on the input box.
2011-01-19 08:44:33 +01:00
Alexandre Duret-Lutz
34f49a8692 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-18 16:31:33 +01:00
Alexandre Duret-Lutz
dc2a89f853 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-17 21:52:59 +01:00
Alexandre Duret-Lutz
74f14567d1 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-07 23:31:30 +01:00
Alexandre Duret-Lutz
8c972ad3ce 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 22:53:57 +01:00
Alexandre Duret-Lutz
241ba112d6 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.
2011-01-05 08:02:38 +01:00
Alexandre Duret-Lutz
0f08fbc206 * wrap/python/cgi-bin/ltl2tgba.in: Remove all "new" markers. 2010-12-26 18:42:14 +01:00
Alexandre Duret-Lutz
f1d3e999ae Define SWIG_TYPE_TABLE as suggested by the SWIG documentation.
* wrap/python/Makefile.am: Add -DSWIG_TYPE_TABLE=spot.
2010-12-24 10:28:47 +01:00
Alexandre Duret-Lutz
8419cb6f8d Use swig2.0 if available.
* configure.ac: Search for swig2.0 and swig.
* wrap/python/Makefile.am: Use $(SWIG).
2010-12-24 10:28:47 +01:00
Alexandre Duret-Lutz
3d61b3a3c0 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/ directory
in the search path so that Python can find the *.so libraries.
2010-12-24 10:28:47 +01:00
Alexandre Duret-Lutz
2b46cb4bab 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-07 11:15:56 +01:00
Alexandre Duret-Lutz
aa5426b2fb * wrap/python/cgi-bin/ltl2tgba.in: Document W and M operators. 2010-04-12 16:40:42 +02:00
Alexandre Duret-Lutz
60dbeb1128 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-12 16:39:28 +02:00
Alexandre Duret-Lutz
72b7deec12 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-17 16:05:16 +01:00
Alexandre Duret-Lutz
bc61ca73c6 * wrap/python/cgi-bin/ltl2tgba.in: Reword description of svg_output. 2010-02-02 18:28:43 +01:00
Alexandre Duret-Lutz
72ae820b0c 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 16:58:14 +01:00
Alexandre Duret-Lutz
a4766f2f82 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 14:52:16 +01:00
Alexandre Duret-Lutz
4efde0d3d3 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 14:15:03 +01:00
Alexandre Duret-Lutz
85532dc8f8 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 12:27:20 +01:00
Alexandre Duret-Lutz
7d5f493fb2 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 15:48:56 +01:00
Damien Lefortier
58d6b7912c * wrap/python/cgi/ltl2tgba.in, wrap/python/spot.i: Add a new
translation algorithm: Tauriainen/TAA.
2010-01-25 18:37:19 +01:00
Damien Lefortier
d9b8fcddd6 * wrap/python/cgi/ltl2tgba.in: Use the uuid Python module instead
of the UNIQUE_ID environment variable to avoid being
Apache-specific.
2010-01-25 18:33:31 +01:00